2024/06/14

2024-06-14 00:00:07 +0200 <haskellbridge> <iqubic (she/her)> I'm running XMonad without any sort of DE
2024-06-14 00:00:27 +0200 <geekosaur> because I open like 8 `sxiv` windows (still trying to reproduce https://github.com/xmonad/xmonad-contrib/issues/753) and I don't want them clogging my taskbar
2024-06-14 00:02:28 +0200 <geekosaur> the XMonad.Desktop hierarchy provides support for xmonad as WM for a number of desktops. read the wiki because you generally need to reconfigure the DE to use xmonad; for example https://wiki.haskell.org/Xmonad/Using_xmonad_in_MATE
2024-06-14 00:02:30 +0200 <haskellbridge> <iqubic (she/her)> Do you know if XMobar is EWMH compliant? I don't want named scratchpads to show up in the list of workspaces that XMobar reports.
2024-06-14 00:02:39 +0200 <geekosaur> it's not
2024-06-14 00:04:11 +0200 <haskellbridge> <iqubic (she/her)> Got it. So I'd probably have to modify my Pretty Printer to explicitly exclude those.
2024-06-14 00:04:14 +0200 <geekosaur> to hide the NSP workspace from the information that xmobar gets, you want https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Hooks-StatusBar-PP.html#v:fi…
2024-06-14 00:04:56 +0200 <haskellbridge> <iqubic (she/her)> Yeah. I can totally use that!
2024-06-14 00:06:07 +0200 <haskellbridge> <iqubic (she/her)> What is "myPlaceHook" doing for you? (noTaskbar <> doFloatPlace)
2024-06-14 00:06:07 +0200 <haskellbridge> <iqubic (she/her)> -(noTaskbar <> doFloatPlace)
2024-06-14 00:06:13 +0200 <haskellbridge> <iqubic (she/her)> https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L296C1-L296C42
2024-06-14 00:07:29 +0200 <geekosaur> places floating windows near the center of the screen, not allowing them to go outside the screen unless they're straight-up too big to fit, and trying to keep them from overlapping each other
2024-06-14 00:09:39 +0200 <haskellbridge> <iqubic (she/her)> If I want to do something simple, can't I just use "customFloating"?
2024-06-14 00:10:02 +0200 <geekosaur> yes
2024-06-14 00:10:50 +0200 <haskellbridge> <iqubic (she/her)> What do the 4 parameters to "W.RationalRect" even specify? The docs don't explain it. It just shows it as 4 strict Rationals with no explanation.
2024-06-14 00:11:40 +0200 <geekosaur> it's an X112 Rectangle rephrased as a proportion of the screen, since it can be applied to screens with different sizes
2024-06-14 00:12:40 +0200 <haskellbridge> <iqubic (she/her)> Ah. I see.
2024-06-14 00:13:11 +0200 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L112
2024-06-14 00:14:26 +0200 <geekosaur> start a quarter of the way across the screen horizontally and right at the top vertically, width is half the screen, height is 35/100 of the screen
2024-06-14 00:14:57 +0200 <haskellbridge> <iqubic (she/her)> Right. I see.
2024-06-14 00:15:05 +0200 <haskellbridge> <iqubic (she/her)> "myPlaceHook = inBounds $ smart (0.5, 0.5)"
2024-06-14 00:15:17 +0200 <haskellbridge> <iqubic (she/her)> What do the two 0.5s there mean?
2024-06-14 00:15:34 +0200 <geekosaur> https://imgur.com/CtdtqU0.png
2024-06-14 00:15:54 +0200 <geekosaur> indicates the center of the screen (halfway across in both X and Y dimensions)
2024-06-14 00:16:49 +0200 <haskellbridge> <iqubic (she/her)> Right. Got it. I'll have a play with this and see what I can get setup.
2024-06-14 00:16:53 +0200 <haskellbridge> <iqubic (she/her)> * set up.
2024-06-14 00:17:33 +0200 <haskellbridge> <iqubic (she/her)> I assume your most recent image is wide because you have a dual-head setup. Is that right?
2024-06-14 00:17:39 +0200 <geekosaur> yes
2024-06-14 00:17:59 +0200 <haskellbridge> <iqubic (she/her)> Cool. Thanks for helping me understand this.
2024-06-14 00:19:09 +0200 <haskellbridge> <iqubic (she/her)> I've been using XMonad for a while, but I've only just now decided to make major changes to my config.
2024-06-14 00:19:56 +0200 <haskellbridge> <iqubic (she/her)> It's actually really easy to use XMonad with NixOS.
2024-06-14 00:21:00 +0200 <haskellbridge> <iqubic (she/her)> I had a few ideas for making my own layouts, but then found out that all of them could be found in contrib already.
2024-06-14 00:29:20 +0200 <haskellbridge> <iqubic (she/her)> As a woman in tech spaces, people sometimes don't want to help me. Thank you for helping me understand XMonad.
2024-06-14 00:29:44 +0200 <haskellbridge> <iqubic (she/her)> And to make matters worse, I'm a trans woman!
2024-06-14 00:57:28 +0200MrElendig(~Urist@archlinux/op/MrElendig) (Quit: Hans, get the flammenwerfer)
2024-06-14 00:59:01 +0200MrElendig(~Urist@archlinux/op/MrElendig)
2024-06-14 04:43:34 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
2024-06-14 04:47:47 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2024-06-14 04:53:48 +0200td_(~td@i53870929.versanet.de) (Ping timeout: 256 seconds)
2024-06-14 04:55:32 +0200td_(~td@i53870931.versanet.de)
2024-06-14 05:31:51 +0200 <haskellbridge> <iqubic (she/her)> geekosaur: Is there a better way to provide types for layouts than just listing out everything?!?! Or is the answer that I just need to cry?
2024-06-14 05:31:53 +0200 <haskellbridge> ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/KBZQKAtOElBBlOyBBAoZIwYd (3 lines)
2024-06-14 05:32:16 +0200 <geekosaur> cry, or make an LSP client do it for you
2024-06-14 05:32:40 +0200 <haskellbridge> <iqubic (she/her)> Got it... I'm not gonna specify types for this.
2024-06-14 05:32:58 +0200 <haskellbridge> <iqubic (she/her)> Also, why did the haskell bridge react to that message?
2024-06-14 05:33:04 +0200 <geekosaur> (sadly, while they'll happily write out the type signature, they don't add the imports needed for it to work)
2024-06-14 05:33:38 +0200 <haskellbridge> <iqubic (she/her)> I know what you mean. I'm just not gonna add the type signature there...
2024-06-14 05:33:47 +0200 <geekosaur> one emote means it split it into separate lines for IRC, the other means it was too long so it pastebinned it
2024-06-14 05:34:08 +0200 <haskellbridge> <iqubic (she/her)> Oh? Is this channel bridged to IRC?
2024-06-14 05:34:18 +0200 <geekosaur> yes
2024-06-14 05:34:37 +0200 <geekosaur> #xmonad on libera
2024-06-14 05:42:25 +0200 <haskellbridge> <iqubic (she/her)> Where's the default layoutHook defined?
2024-06-14 05:43:24 +0200 <geekosaur> https://github.com/xmonad/xmonad/blob/master/src/XMonad/Config.hs#L135-L149
2024-06-14 05:45:07 +0200 <haskellbridge> <iqubic (she/her)> I mainly just wanted to have the default values for Tall, because I like those defaults.
2024-06-14 05:46:29 +0200 <haskellbridge> <iqubic (she/her)> Do I need to have any special imports to get the Tall, Mirrored, and Full data constructors in scope, or are those defaults?
2024-06-14 05:46:53 +0200 <geekosaur> you should get those with `import XMonad`
2024-06-14 05:47:36 +0200 <geekosaur> which re-exports everything exported by the core modules, except for XMonad.StackSet which collides with Prelude functions (by convention we import that qualified as W when needed)
2024-06-14 05:48:10 +0200 <haskellbridge> <iqubic (she/her)> Why do we use W? Why is that the letter we use?
2024-06-14 05:49:05 +0200 <geekosaur> I think you'd have to ask Spencer about that
2024-06-14 05:49:21 +0200 <geekosaur> I think he's in #haskell:matrix.org as @SpencerJanssen
2024-06-14 05:49:41 +0200 <haskellbridge> <iqubic (she/her)> Is it work it to use X.L.WindowNavigation ?
2024-06-14 05:50:08 +0200 <haskellbridge> <iqubic (she/her)> s/work/worth
2024-06-14 05:52:31 +0200 <geekosaur> depends. I don't, but I usually don't have enough visible windows in a workspace to justify it
2024-06-14 05:57:26 +0200 <haskellbridge> <iqubic (she/her)> I'm wanting to use X.L.Combo, which advocates using X.L.WindowNavigation for some reason...
2024-06-14 05:58:35 +0200 <geekosaur> that's so you can easily move windows between panes
2024-06-14 05:58:50 +0200 <geekosaur> by binding keys to send Move messages
2024-06-14 05:59:43 +0200 <geekosaur> the alternative is to use ComboP, which lets you automatically assign windows to panes using what amounts to a ManageHook
2024-06-14 06:00:35 +0200 <geekosaur> (WindowNavigation is what defines and implements Move)
2024-06-14 06:09:40 +0200 <haskellbridge> <iqubic (she/her)> Wait... actually, I do want ComboP.
2024-06-14 06:10:48 +0200 <haskellbridge> <iqubic (she/her)> Why does ComboP also advocate for WindowNavigation?
2024-06-14 06:10:57 +0200geekosauris heading to bed soon… past midnight and he got maybe 4 hours of sleep last night
2024-06-14 06:12:14 +0200 <geekosaur> because you might want to move a window later
2024-06-14 06:13:05 +0200 <haskellbridge> <iqubic (she/her)> Oh... I thought ComboP forced you to have all matching windows in the Master Pane.
2024-06-14 06:13:40 +0200 <geekosaur> only at first
2024-06-14 06:14:35 +0200 <haskellbridge> <iqubic (she/her)> That's the part I was missing. Thanks.
2024-06-14 06:14:35 +0200 <geekosaur> when a new window appears, windows that match the Property will go to the master, others to the slave. if you also include WindowNavigation then you can arbitrarily move windows afterward
2024-06-14 06:32:41 +0200 <haskellbridge> <iqubic (she/her)> If I want to send a message to just one of the sub-layouts in a ComboP layout? How can I do that? It looks like ComboP sends messages to the super layout and both sub-layouts. https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L127
2024-06-14 08:21:16 +0200ft(~ft@p3e9bcb39.dip0.t-ipconnect.de) (Quit: leaving)
2024-06-14 10:30:42 +0200cfricke(~cfricke@user/cfricke)
2024-06-14 10:47:24 +0200ChubaDuba(~ChubaDuba@37.112.230.146)
2024-06-14 10:52:38 +0200rascasse(~rascasse@user/diep)
2024-06-14 11:18:13 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 268 seconds)
2024-06-14 11:31:48 +0200cfricke(~cfricke@user/cfricke)
2024-06-14 12:22:36 +0200rascasse(~rascasse@user/diep) (Ping timeout: 256 seconds)
2024-06-14 13:22:01 +0200rascasse(~rascasse@user/diep)
2024-06-14 14:34:03 +0200ChubaDuba_(~ChubaDuba@5.166.233.249)
2024-06-14 14:36:29 +0200ChubaDuba(~ChubaDuba@37.112.230.146) (Ping timeout: 240 seconds)
2024-06-14 15:11:44 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
2024-06-14 15:13:07 +0200Digit(~user@user/digit)
2024-06-14 15:40:32 +0200ChubaDuba_(~ChubaDuba@5.166.233.249) (Quit: Leaving)
2024-06-14 15:52:54 +0200ft(~ft@p3e9bcb39.dip0.t-ipconnect.de)
2024-06-14 16:21:43 +0200rascasse(~rascasse@user/diep) (Remote host closed the connection)
2024-06-14 16:51:59 +0200cfricke(~cfricke@user/cfricke)
2024-06-14 17:24:47 +0200 <geekosaur> XMonad.Layout.MessageControl, I think
2024-06-14 17:42:53 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 240 seconds)
2024-06-14 17:47:11 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> any way of generating a cool keybinding list/diagram like the one available at the xmonad website?
2024-06-14 18:01:24 +0200 <geekosaur> someone recently asked where the code for generating that diagram was and we couldn't find it
2024-06-14 18:01:58 +0200 <geekosaur> I know it at least used to be out there, because it was used to add the mod-shift-/ binding back in 0.9
2024-06-14 18:48:40 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> ic
2024-06-14 18:58:52 +0200 <geekosaur> don't see it in the archived old repo either
2024-06-14 20:15:07 +0200 <haskellbridge> <iqubic (she/her)> How does X.L.MessageControl work? How would I use that with Combo?
2024-06-14 21:00:07 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> i wish we have a repo listing a lot of user's config, so we could look up what people have done so far
2024-06-14 21:00:27 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> this would mitigate (partially) the problem of "how i do X or Y?"
2024-06-14 21:51:21 +0200 <geekosaur> we had one but it's bitrotted (https://wiki.haskell.org/Xmonad/Config_archive). there's a stalled ticket on updating it (https://github.com/xmonad/xmonad-contrib/issues/160)
2024-06-14 21:59:02 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> thanks
2024-06-14 22:02:44 +0200 <geekosaur> the main developers (liskin, Solid, and myself) have links to our configs in the README. (if you think mine's complex, wait until you see liskin's…)
2024-06-14 22:04:22 +0200 <geekosaur> iqubic: it wraps messages intended for sublayouts. you send a wrapped message, and modify (or wrap) the sublayout to unescape it
2024-06-14 22:04:28 +0200 <geekosaur> it's not especially friendly
2024-06-14 22:04:48 +0200 <geekosaur> but the interaction of layouts and messages is a somewhat tricky part of xmonad
2024-06-14 22:08:14 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> im using a package that can limit the number of visible windows to 2 , and i thought it was hacky, lol
2024-06-14 22:08:27 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> * module
2024-06-14 22:11:07 +0200 <geekosaur> it's not that hacky
2024-06-14 22:11:28 +0200 <geekosaur> it's a pretty simple thing to do in runLayout
2024-06-14 22:12:18 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> i suck at haskell, so it was a bit hard for me
2024-06-14 22:13:23 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> https://kf8nh.com/_matrix/media/v3/download/aria-net.org/ifjTdCcENkCmtTguQXqrMNFc/image.png
2024-06-14 22:13:50 +0200 <geekosaur> yes
2024-06-14 22:16:00 +0200 <haskellbridge> <iqubic (she/her)> I would like to look at liskin's config, but I can't seem to find it.
2024-06-14 22:36:08 +0200 <geekosaur> oh, sorry, it's at the end of the tutorial, not the readme. https://github.com/liskin/dotfiles/tree/home/.xmonad
2024-06-14 23:06:12 +0200dysthesis(~dysthesis@user/dysthesis)
2024-06-14 23:07:46 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> geekosaur: i stopped caring about red-shift after getting red glasses...
2024-06-14 23:08:21 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> i think im okay with the actual state of my config, just wanted to see which cool things others user are using
2024-06-14 23:08:47 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> i changed to xmonad because stumpwm has not so hackable to me, and xmonad did an awesome job
2024-06-14 23:33:47 +0200 <geekosaur> no, awesome's the other one 😛