2024/06/22

2024-06-22 02:13:24 +0200mekeor(~user@2001:a61:24d2:9401:96ac:ce90:6d78:efe3) (Quit: towards emacs as interface to cybernetic council communism)
2024-06-22 03:15:48 +0200dysthesis(~dysthesis@user/dysthesis)
2024-06-22 04:43:16 +0200 <haskellbridge> <iqubic (she/her)> Is there a place I can go to see all the atoms that X.H.ExwhDesktops supports and handles?
2024-06-22 04:43:58 +0200 <haskellbridge> <iqubic (she/her)> I'm trying to see if that set all the right atoms for me to just be able to use polybar's xwindow and xworkspaces modules out of the box.
2024-06-22 04:44:16 +0200 <haskellbridge> <iqubic (she/her)> xwindow says: "NOTE: Requires a WM that supports the EWMH atom _NET_ACTIVE_WINDOW."
2024-06-22 04:45:24 +0200 <haskellbridge> <iqubic (she/her)> Wait... I think I can just use "xprop -root _NET_SUPPORTED"
2024-06-22 04:51:25 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> iqubic (she/her): https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Hooks/EwmhDesktops.hs
2024-06-22 04:52:03 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> iqubic (she/her): you mean, displaying the actual active window title in polybar?
2024-06-22 04:52:13 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> if you meant that, i already do this with polybar and xmonad
2024-06-22 04:52:30 +0200 <geekosaur> yeh, _NET_SUPPORTED is the easiest place to find them
2024-06-22 04:53:12 +0200 <haskellbridge> <iqubic (she/her)> 柱間: This is what I mean.
2024-06-22 04:53:17 +0200td_(~td@i53870921.versanet.de) (Ping timeout: 240 seconds)
2024-06-22 04:53:22 +0200 <geekosaur> you can get them from the source but I think they're scatted all over plus with extensible EWMH some may be defined in other modules
2024-06-22 04:53:28 +0200 <haskellbridge> <iqubic (she/her)> I'm also wondering if you have a good way to get polybar to show the layout.
2024-06-22 04:53:32 +0200 <geekosaur> and registered with EWMH
2024-06-22 04:54:26 +0200 <geekosaur> I think the only way to get the layout is to send it one way or another, since EWMH doesn't have the concept
2024-06-22 04:54:46 +0200 <geekosaur> you could use dbus, or write it to a file and use a polybar module to read the file when it changes
2024-06-22 04:55:03 +0200 <haskellbridge> <iqubic (she/her)> Cool... I'll stick to using the dbus and a PP.
2024-06-22 04:55:11 +0200td_(~td@i5387090B.versanet.de)
2024-06-22 04:55:41 +0200 <haskellbridge> <iqubic (she/her)> https://github.com/troydm/xmonad-dbus?tab=readme-ov-file#configuring-polybar
2024-06-22 04:56:14 +0200 <haskellbridge> <iqubic (she/her)> Looks like this has a neat little guide on how to set up xmonad and polybar to play nicely.
2024-06-22 04:56:46 +0200 <haskellbridge> <iqubic (she/her)> And that Go package for reading from dbus is in the Nix repos so I can just get it there.
2024-06-22 04:57:13 +0200 <haskellbridge> <iqubic (she/her)> geekosaur: I know you do a similar thing in your config.
2024-06-22 04:58:00 +0200 <geekosaur> yes, but with a dbus receiver that's a panel applet that can be built for gnome 2, mate, or xfce
2024-06-22 04:59:26 +0200 <geekosaur> (I think Nix has derivations for all three variants)
2024-06-22 05:01:08 +0200 <haskellbridge> <iqubic (she/her)> It does. But I'm planning on using polybar and not some DE like that, so I'm gonna use the small Go program and tell polybar to run that to get info. I'll have to wrap the data I send to have proper formatting and stuff, but that's more a polybar issue than an xmonad one.
2024-06-22 05:01:09 +0200 <geekosaur> xmonad-log-applet-{gnome,mate,xfce}
2024-06-22 05:01:59 +0200 <geekosaur> yeh, xmonad-log-applet speaks Pango markup, I have some utility functions for it in my config
2024-06-22 05:03:53 +0200 <haskellbridge> <iqubic (she/her)> Yeah... polybar has its own special text formatting stuff. https://github.com/polybar/polybar/wiki/Formatting#format-tags
2024-06-22 05:07:38 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> iqubic (she/her): quite easy to do
2024-06-22 05:08:21 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> https://codeberg.org/hashirama/modern_lisp-machine/src/commit/491183a723ce7d7decc1961deef2266d524a…
2024-06-22 05:08:59 +0200 <haskellbridge> <iqubic (she/her)> But does that show your current XMonad layout?
2024-06-22 05:09:16 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> you mean the name of the layout?
2024-06-22 05:09:32 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i think that would be very hard to do
2024-06-22 05:09:43 +0200 <haskellbridge> <iqubic (she/her)> Yeah... It's fine.
2024-06-22 05:10:49 +0200 <geekosaur> you can't get it from EWMH, as I said earlier, but with a custom PP it's easy
2024-06-22 05:11:00 +0200 <geekosaur> in fact most of the standard PPs include it
2024-06-22 05:11:07 +0200 <geekosaur> as does my custom one
2024-06-22 05:12:47 +0200 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L347-L365
2024-06-22 05:13:25 +0200 <geekosaur> current screen's workspace is bright, other visible workspaces dim, then layout name and focused window title
2024-06-22 05:14:26 +0200 <geekosaur> https://imgur.com/F1Wg9qB.png
2024-06-22 05:27:15 +0200dysthesis(~dysthesis@user/dysthesis) (Quit: dysthesis)
2024-06-22 09:14:19 +0200mightyby1e(~mightybyt@ec2-52-201-220-249.compute-1.amazonaws.com) (Ping timeout: 256 seconds)
2024-06-22 09:14:34 +0200mightybyte(~mightybyt@ec2-52-201-220-249.compute-1.amazonaws.com)
2024-06-22 09:41:33 +0200 <haskellbridge> <iqubic (she/her)> Is there a hook that runs every time I change layout, that I can use to write the new layout to a file or otherwise do something with the new layout name?
2024-06-22 09:48:06 +0200 <Leary> iqubic: Sounds like a job for the `logHook`. You'll have to track the `description` of the current layout/s yourself, though. A bit of extensible state will do it.
2024-06-22 09:49:46 +0200 <haskellbridge> <iqubic (she/her)> Oh, yeah, that might work really well.
2024-06-22 09:50:03 +0200 <haskellbridge> <iqubic (she/her)> Why would I need to track the descriptions myself?
2024-06-22 10:02:23 +0200 <Leary> `logHook` runs every refresh; it's not layoutDescriptionChangedHook, so you need to be the one to decide whether or not it's changed. If you really wanted that hook you'd need to put a modifier over the Choose layout to watch for relevant messages, which is another approach.
2024-06-22 10:03:18 +0200 <haskellbridge> <iqubic (she/her)> I see. That makes sense actually...
2024-06-22 10:11:26 +0200 <haskellbridge> <iqubic (she/her)> Is there a guide to using ExtensibleState stuff?
2024-06-22 10:37:46 +0200 <Leary> iqubic: https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Util-ExtensibleState.html
2024-06-22 11:18:28 +0200 <haskellbridge> <iqubic (she/her)> What's the difference between "StateExtension" and "PersistentExtension"?
2024-06-22 11:25:57 +0200 <liskin> iqubic: one survives restart and the other doesn't
2024-06-22 11:26:36 +0200 <liskin> the one that doesn't is useful for caching stuff (e.g. ManageDocks uses it)
2024-06-22 11:26:45 +0200 <liskin> EwmhDesktops possibly as well
2024-06-22 11:27:13 +0200 <haskellbridge> <iqubic (she/her)> Is the WindowSet part of the state, and it is Persistant?
2024-06-22 11:27:50 +0200 <liskin> WindowSet isn't stored using ExtensibleState, but it is preserved across restarts
2024-06-22 11:27:57 +0200 <liskin> otherwise you'd lose your layouts on reload
2024-06-22 11:28:55 +0200 <liskin> (train about to reach its destination, afk soon)
2024-06-22 11:29:56 +0200 <haskellbridge> <iqubic (she/her)> Makes sense. I'll think about this more myself.
2024-06-22 13:34:45 +0200down200(~down200@shell.lug.mtu.edu) (Ping timeout: 268 seconds)
2024-06-22 13:37:20 +0200down200(~down200@shell.lug.mtu.edu)
2024-06-22 14:01:53 +0200down200(~down200@shell.lug.mtu.edu) (Ping timeout: 268 seconds)
2024-06-22 14:05:48 +0200down200(~down200@shell.lug.mtu.edu)
2024-06-22 14:33:21 +0200down200(~down200@shell.lug.mtu.edu) (Ping timeout: 256 seconds)
2024-06-22 14:35:30 +0200down200(~down200@shell.lug.mtu.edu)
2024-06-22 14:45:10 +0200down200(~down200@shell.lug.mtu.edu) (Ping timeout: 256 seconds)
2024-06-22 14:47:31 +0200down200(~down200@shell.lug.mtu.edu)
2024-06-22 17:58:32 +0200Enrico63(~Enrico63@81.109.143.226)
2024-06-22 20:23:18 +0200Enrico63(~Enrico63@81.109.143.226) (Quit: Client closed)
2024-06-22 21:15:19 +0200wlhn(~wlhn@dl46fx8hbfttwvhb-h1ly-3.rev.dnainternet.fi) (Quit: Leaving)
2024-06-22 21:35:38 +0200tremon(~tremon@83.80.159.219)
2024-06-22 22:11:47 +0200catman(~catman@user/catman) (Ping timeout: 256 seconds)
2024-06-22 22:14:33 +0200catman(~catman@user/catman)
2024-06-22 23:06:21 +0200 <haskellbridge> <iqubic (she/her)> Why does X.Util.ExtensibleState use XLike, and is the titular X Monad an instance of XLike?
2024-06-22 23:08:54 +0200 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Util-PureX.html#g:1
2024-06-22 23:09:19 +0200 <geekosaur> the ideas is you can write pure actions and later apply them to X
2024-06-22 23:09:51 +0200 <geekosaur> the instances of XLike are X and PureX
2024-06-22 23:10:41 +0200 <haskellbridge> <iqubic (she/her)> What is PureX used for?
2024-06-22 23:12:09 +0200 <geekosaur> avoiding changes when they're unsafe (most notably, in a logHook where it could cause an infinite refresh loop)
2024-06-22 23:12:50 +0200 <haskellbridge> <iqubic (she/her)> I see.
2024-06-22 23:13:33 +0200 <geekosaur> basically you can queue up changes in a PureX and apply them later with toX or defile
2024-06-22 23:14:02 +0200 <geekosaur> toX produces an X action without applying it, defile applies it
2024-06-22 23:28:57 +0200 <haskellbridge> <iqubic (she/her)> Right. Makes sense. Can I run arbitrary IO actions in X?
2024-06-22 23:29:52 +0200 <haskellbridge> <iqubic (she/her)> Specifically the thing I want to is create a custom logHook that emits DBus stuff for me using my own custom logger.
2024-06-22 23:30:28 +0200 <haskellbridge> <iqubic (she/her)> It's an instance of MonadIO, so I should be able to do it.
2024-06-22 23:33:30 +0200 <geekosaur> yes, liftIO works and XMonad.Prelude has a convenience alias `io`
2024-06-22 23:33:57 +0200 <geekosaur> (I wouldn't bother importing it if that's all you're going to use from it, though)
2024-06-22 23:35:03 +0200dysthesis(~dysthesis@user/dysthesis)
2024-06-22 23:46:59 +0200dysthesis(~dysthesis@user/dysthesis) (Quit: dysthesis)