Logs: liberachat/#xmonad
| 2022-12-18 10:38:45 | → | ml| joins (~ml|@user/ml/x-5298235) |
| 2022-12-18 10:39:19 | → | xmonadtrack joins (~xmonadtra@069-135-003-034.biz.spectrum.com) |
| 2022-12-18 10:39:19 | × | xmonadtrack quits (~xmonadtra@069-135-003-034.biz.spectrum.com) (Changing host) |
| 2022-12-18 10:39:19 | → | xmonadtrack joins (~xmonadtra@xmonad/geekosaur) |
| 2022-12-18 10:47:04 | × | xmonadtrack quits (~xmonadtra@xmonad/geekosaur) (Ping timeout: 272 seconds) |
| 2022-12-18 10:48:05 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 2022-12-18 10:48:05 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 2022-12-18 10:48:08 | allbery_b | is now known as geekosaur |
| 2022-12-18 10:56:33 | → | xacktm joins (~xacktm@user/xacktm) |
| 2022-12-18 11:07:13 | → | xmonadtrack joins (~xmonadtra@069-135-003-034.biz.spectrum.com) |
| 2022-12-18 11:07:13 | × | xmonadtrack quits (~xmonadtra@069-135-003-034.biz.spectrum.com) (Changing host) |
| 2022-12-18 11:07:13 | → | xmonadtrack joins (~xmonadtra@xmonad/geekosaur) |
| 2022-12-18 11:26:58 | × | ml| quits (~ml|@user/ml/x-5298235) (Ping timeout: 272 seconds) |
| 2022-12-18 11:30:51 | × | haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer) |
| 2022-12-18 11:33:03 | → | haskl joins (~haskl@user/haskl) |
| 2022-12-18 11:39:58 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2022-12-18 11:40:27 | → | ml| joins (~ml|@user/ml/x-5298235) |
| 2022-12-18 12:13:58 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection) |
| 2022-12-18 12:29:05 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 2022-12-18 12:30:04 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 2022-12-18 12:47:31 | × | hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 2022-12-18 12:47:50 | → | hrberg joins (~quassel@171.79-160-161.customer.lyse.net) |
| 2022-12-18 13:49:28 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 2022-12-18 14:04:08 | × | xacktm quits (~xacktm@user/xacktm) (Ping timeout: 255 seconds) |
| 2022-12-18 14:42:49 | → | xacktm joins (~xacktm@user/xacktm) |
| 2022-12-18 15:21:49 | × | xacktm quits (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 2022-12-18 16:00:13 | × | Rutherther[m] quits (~rutherthe@2001:470:69fc:105::2:bc05) (Quit: You have been kicked for being idle) |
| 2022-12-18 16:37:05 | → | xacktm joins (~xacktm@user/xacktm) |
| 2022-12-18 17:10:07 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2022-12-18 18:23:18 | × | xacktm quits (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 2022-12-18 19:10:58 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 2022-12-18 20:33:34 | → | sogens joins (sogens@gateway/vpn/protonvpn/sogens) |
| 2022-12-18 20:39:04 | → | xacktm joins (~xacktm@user/xacktm) |
| 2022-12-18 20:59:47 | → | jsoo joins (~znc@irc.refl.club) |
| 2022-12-18 22:39:23 | × | ^[ quits (~user@user//x-8473491) (Quit: ^[) |
| 2022-12-18 23:00:38 | × | xacktm quits (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 2022-12-18 23:16:12 | → | LemanR joins (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) |
| 2022-12-18 23:17:52 | × | sogens quits (sogens@gateway/vpn/protonvpn/sogens) (Ping timeout: 252 seconds) |
| 2022-12-18 23:19:25 | <LemanR> | hey all, so I want to use the import function from imagemagick binded to M-Ctrl-Print. However the function requires naming a file such as 'import picture-name.png". My question is that is there some way in my xmonad config to say something like spawn import but ask me for additional arguments in some prompt? |
| 2022-12-18 23:19:34 | → | sogens joins (sogens@gateway/vpn/protonvpn/sogens) |
| 2022-12-18 23:19:54 | <LemanR> | just found https://stackoverflow.com/questions/30575941/passing-environment-variables-to-xmonad-spawn |
| 2022-12-18 23:20:46 | → | xacktm joins (~xacktm@user/xacktm) |
| 2022-12-18 23:22:57 | <LemanR> | that was useful but not what I was looking for lol |
| 2022-12-18 23:23:27 | <geekosaur> | unclear what exactly you want. if you are looking to prompt for a filename and spawn a program passing it as a parameter, https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Prompt-AppLauncher.html |
| 2022-12-18 23:31:51 | <LemanR> | exactly although I'm messing up the syntax, but thanks for getting me in the right path. When it comes to really technical documentation I tend to get lost but that's something I just have to get used to. |
| 2022-12-18 23:34:12 | × | LemanR quits (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) (Quit: Client closed) |
| 2022-12-18 23:36:44 | → | LemanR joins (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) |
| 2022-12-18 23:37:32 | <LemanR> | Yay I did it :p, funny thing is, on my first attempt I thought the computer froze. As it turns out the prompt is just really thin on the bottom of the screen which is actually perfect. |
| 2022-12-18 23:45:18 | → | ghormoon_ joins (~ghormoon@ghorland.net) |
| 2022-12-18 23:45:30 | × | ghormoon quits (~ghormoon@ghorland.net) (Ping timeout: 252 seconds) |
| 2022-12-18 23:46:57 | ghormoon_ | is now known as ghormoon |
| 2022-12-18 23:48:15 | <LemanR> | btw I love how the default allows for tab auto completion. Visually having the entire file path is unappealing to the eyes, but I'm assuming that I could pipe this to something in which case having the entire file-path is useful so overall a feature. |
| 2022-12-19 00:05:26 | → | ^[ joins (~user@user//x-8473491) |
| 2022-12-19 00:10:24 | × | LemanR quits (~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) (Quit: Client closed) |
| 2022-12-19 00:27:40 | → | Guest4 joins (~Guest4@ip68-101-166-83.sd.sd.cox.net) |
| 2022-12-19 00:28:59 | <Guest4> | I've got a question about modifying the list of workspaces in the `XMonad.config` (not the current StackSet) |
| 2022-12-19 00:29:35 | <Guest4> | So this lets me query the list of WorkspaceIds in the config: |
| 2022-12-19 00:29:35 | <Guest4> | ``` |
| 2022-12-19 00:29:36 | <Guest4> | workspacesInConfig :: X [WorkspaceId] |
| 2022-12-19 00:29:36 | <Guest4> | workspacesInConfig = asks (XMonad.workspaces . XMonad.config) |
| 2022-12-19 00:29:37 | <Guest4> | ``` |
| 2022-12-19 00:30:55 | <Guest4> | What is the idiomatic analogue of this for modification? |
| 2022-12-19 00:31:41 | <geekosaur> | you can't modify it; it's read-only |
| 2022-12-19 00:33:03 | <geekosaur> | you can modify the workspaces in the StackSet, but you need some way to access them afterward because you can't rebind the keys that were defined using the read-only list of workspaces |
| 2022-12-19 00:33:24 | <Guest4> | That makes sense |
| 2022-12-19 00:33:47 | <Guest4> | related question |
| 2022-12-19 00:34:50 | <Guest4> | well, really just a rephrasing of my question to make sure it's clear |
| 2022-12-19 00:35:01 | <Guest4> | is there a way of essentially updating (in a normal functional way = generating a new modified value) the config with a modified list of workspaces? |
| 2022-12-19 00:36:31 | <Guest4> | The context for asking is that I'm trying to simultaneously use `XMonad.Actions.TreeSelect` and functions that rename/add to/remove from the workspaces in the StackSet |
| 2022-12-19 00:38:30 | <geekosaur> | do you know what the Reader monad is? |
| 2022-12-19 00:38:33 | <Guest4> | Yes |
| 2022-12-19 00:39:09 | × | ft quits (~ft@p4fc2a257.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 2022-12-19 00:39:42 | <Guest4> | So basically you're telling me that the relevant value I'm asking about is never meant to modified after initialization |
| 2022-12-19 00:39:42 | <geekosaur> | the XMonad configuration is stored in a Reader, so it can be accessed but not modified. there are no tricks to get around this, and everything else assumes this so won't look for changes anyway |
| 2022-12-19 00:39:49 | <geekosaur> | correct |
| 2022-12-19 00:39:52 | <Guest4> | Yeah ok |
| 2022-12-19 00:40:34 | <Guest4> | Alright |
| 2022-12-19 00:40:54 | → | ft joins (~ft@p4fc2a257.dip0.t-ipconnect.de) |
| 2022-12-19 00:42:06 | <Guest4> | So I'm currently trying to accomplish my goal by using `XMonad.Util.ExtensibleState` to create a `TreeZipper WorkspaceId` that essentially parallels some of the information in the `StackSet` |
| 2022-12-19 00:42:19 | <geekosaur> | right. the list of workspaces in particular is there only for reference; the "live" version is the StackSet |
| 2022-12-19 00:43:21 | <Guest4> | yeah - and a lot of code is written in a way that grabs information from the static, totally ordered list of workspaces from the initial config rather than the StackSet |
| 2022-12-19 00:43:28 | <Guest4> | which I understand why |
| 2022-12-19 00:44:29 | <Guest4> | but I've written a bunch of tweaked versions of operations for navigating/updating workspaces that update the treezipper state appropriately |
| 2022-12-19 00:44:33 | <geekosaur> | one reason for that is it gives you the possibility for "hidden" workspaces, which for example NamedScratchpads uses to put hidden scratchpads in an "NSP" workspace |
| 2022-12-19 00:45:19 | <Guest4> | and nevertheless I keep finding situations where there are calls that cause the current workspace to change that I didn't anticipate |
| 2022-12-19 00:45:34 | <Guest4> | and then the TreeZipper and the StackSet end up unsynced |
| 2022-12-19 00:45:59 | <Guest4> | (I have a keybinding to manually update the TreeZipper, but this is Not Ideal) |
| 2022-12-19 00:46:08 | <geekosaur> | you could probably stick something to resync them in logHook |
| 2022-12-19 00:46:24 | <Guest4> | that is exactly what I was hoping someone would say! |
| 2022-12-19 00:48:37 | <Guest4> | I am having trouble figuring out how exactly to use logHook, however |
| 2022-12-19 00:48:55 | <Guest4> | Like - when is whatever's in the logHook run? |
| 2022-12-19 00:49:07 | <Guest4> | what is the type of information that is available? |
| 2022-12-19 00:49:26 | <geekosaur> | it's the last step of XMonad.Operations.windows, which is the master function that handles all focus, workspace, etc. changes |
| 2022-12-19 00:50:16 | <geekosaur> | it is not passed anything explicitly but it can access the StackSet (`gets windowset`) so you can see what workspace is current and adjust your TreeZipper as needed |
| 2022-12-19 00:51:24 | <geekosaur> | since it's in X, all read-only (asks) and mutable (gets) state is available to it |
| 2022-12-19 00:54:07 | <geekosaur> | the only restriction is that, since it's run in X.O.windows, you can't run X.O.windows from it without causing an infinite loop |
| 2022-12-19 00:54:35 | <geekosaur> | (unless you are very careful to avoid such loop) |
| 2022-12-19 00:55:54 | <Guest4> | that makes sense |
| 2022-12-19 00:56:05 | <Guest4> | that's very helpful, thank you! |
| 2022-12-19 00:58:52 | <geekosaur> | if you need a pointer to the exact state information, X is StateT XState (ReaderT XConf IO). XState and XConf are defined in XMonad.Core. |
All times are in UTC.