Home liberachat/#xmonad: Logs Calendar

Logs: liberachat/#xmonad

←Prev  Next→ 184,733 events total
2024-06-14 23:13:38 <geekosaur> myLayout = toggleLayouts Full (Tall 1 (3/100) (1/2)) ||| etc..
2024-06-14 23:14:08 <haskellbridge> <iqubic (she/her)> Yeah, but that seems to imply that you can only swap between Full and Tall.
2024-06-14 23:14:26 <geekosaur> you did see the |||?
2024-06-14 23:14:58 <geekosaur> toggleLayouts someLayout (a list of layouts here with |||/Choose between them, as usual)
2024-06-14 23:15:21 <haskellbridge> <iqubic (she/her)> I think I'm getting confused by the fixity here. I kept assuming that the given example was the same as this:
2024-06-14 23:16:03 <haskellbridge> <iqubic (she/her)> myLayout = (toggleLayouts Full (Tall nmaster delta initialWidth)) ||| etc..
2024-06-14 23:17:30 <geekosaur> oh, hm, that is a bad example
2024-06-14 23:18:34 <haskellbridge> <iqubic (she/her)> Do you have a better one?
2024-06-14 23:19:48 <geekosaur> toggleLayouts Full $ Tall nmaster delta initialWidth ||| Mirror (Tall nmaster delta initialWidth) ||| Full
2024-06-14 23:20:10 <geekosaur> I don't think \limiting it to the first layout like the parens there do is particularly useful
2024-06-14 23:20:44 <haskellbridge> <iqubic (she/her)> No... but that's how I'm reading what the given example does.
2024-06-14 23:21:26 <geekosaur> yes, that's' what it's doing. as an example it's pretty useless
2024-06-14 23:21:43 <geekosaur> why would you ever want it to only apply to the first of a list of layouts?
2024-06-14 23:22:24 <haskellbridge> <iqubic (she/her)> Does function application bind at a higher precedence than the infix Choose operator? According to all that I know about Haskell the answer should be yes.
2024-06-14 23:22:33 <geekosaur> yes
2024-06-14 23:22:44 <geekosaur> the only thing that binds tighter is record update syntax
2024-06-14 23:23:38 <haskellbridge> <iqubic (she/her)> Oh. I didn't know that.
2024-06-14 23:34:52 <haskellbridge> <iqubic (she/her)> Is it a good idea to run unGrab before spawning my screen locker?
2024-06-14 23:35:46 <geekosaur> yes, because xmonad retains its key grab while the command is running so keys don't leak to the focused window if it's a Submap or GridSelect or etc.
2024-06-14 23:36:13 <geekosaur> but screen lockers also grab the keyboard so they'll error out
2024-06-14 23:37:03 <geekosaur> you could also sleep for half a second before running the locker, which is the old workaround, but unGrab is cleaner
2024-06-14 23:37:14 <geekosaur> and doesn't suffer from race conditions
2024-06-14 23:37:50 <haskellbridge> <iqubic (she/her)> Awesome!!!
2024-06-14 23:41:25 <haskellbridge> <iqubic (she/her)> Wait... wrong WM
2024-06-15 00:26:22 <haskellbridge> <iqubic (she/her)> I wish there was a better description on how to use X.L.MessageControl.
2024-06-15 00:30:34 × dysthesis quits (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
2024-06-15 00:32:39 dysthesis joins (~dysthesis@user/dysthesis)
2024-06-15 00:33:56 <geekosaur> I don't think there can be; it's kinda tricky to do at all
2024-06-15 00:38:34 <geekosaur> so if you're trying to send messages through a `combineTwoP (TwoPane 0.03 0.5) (layout1) (layout2) (predicate)` it would be `combineTwoP (TwoPane 0.03 0.5) (unEscape layout1) (unEscape layout2) (predicate))` and you send a message with `sendMessage $ escape theMessage`
2024-06-15 00:40:07 <geekosaur> uh, I think I have too many close parens at the end of that
2024-06-15 00:40:11 <haskellbridge> <iqubic (she/her)> What do "unEscape" and "escape" do?
2024-06-15 00:40:55 <geekosaur> escape wraps a message in an EscapedMessage message, and unEscape recognizes EscapedMessage, unwraps the message, and forwards it to its sublayout
2024-06-15 00:41:12 <geekosaur> everything else is forwarded directly to the sublayout
2024-06-15 00:42:03 <haskellbridge> <iqubic (she/her)> Will this allow me to send a message to just layout1, or just layout2, or just the super layout?
2024-06-15 00:42:07 <geekosaur> so in this case, since combineTwoP doesn't recognize EscapedMessage it'll ignore those messages and forward them on to the sublayouts, where unEscape uwraps them
2024-06-15 00:42:48 <geekosaur> with the example I gave the message will go to both layout1 and layout2 but not TwoPane
2024-06-15 00:43:16 <haskellbridge> <iqubic (she/her)> Right. I see. Is there a way to get messages to only one of the sub layouts?
2024-06-15 00:43:41 <geekosaur> I don't think there's a way to forward different messages to different layouts, except to copy-paste MessageControl and use distinct wrappers
2024-06-15 00:44:08 <geekosaur> if you only ever wan t to send it to one of the layouts, only apply unEscape to that layout
2024-06-15 00:44:28 <haskellbridge> <iqubic (she/her)> Right... I see. That's fine. I don't actually need anything this complex. I've realized I was overthinking my setup.
2024-06-15 00:44:41 <geekosaur> messages are broadcast, so there isn't much else you can do
2024-06-15 00:45:23 <geekosaur> hm, actually I'd have to check, Combo and CompoB might only relay to the active sublayout
2024-06-15 00:45:52 <haskellbridge> <iqubic (she/her)> They don't.
2024-06-15 00:46:36 <geekosaur> no, I just checked, it relays messages to all three layouts
2024-06-15 00:47:07 <haskellbridge> <iqubic (she/her)> You sure about that? https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L159
2024-06-15 00:47:16 <haskellbridge> <iqubic (she/her)> Is that comment just wrong?
2024-06-15 00:48:07 <geekosaur> the commented function is only used by the SwapWindowN message when N /= 0 (https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L117)
2024-06-15 00:48:27 <geekosaur> everything else is handled by https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L127-L135
2024-06-15 00:48:35 <haskellbridge> <iqubic (she/her)> Right. I see. In general it sends the message to all three layouts.
2024-06-15 00:50:36 <haskellbridge> <iqubic (she/her)> But like I said... I don't actually need to use this, because I actually want a simpler layout.
2024-06-15 00:52:28 <haskellbridge> <iqubic (she/her)> I'm looking at the DecorationMadness module and I hate bitrot. I just wanna see what the decorations look like.
2024-06-15 01:05:03 × td_ quits (~td@i53870931.versanet.de) (Ping timeout: 264 seconds)
2024-06-15 01:35:52 × dysthesis quits (~dysthesis@user/dysthesis) (Quit: dysthesis)
2024-06-15 03:40:42 plp joins (~plp@2601:380:8386:8b20::cf8f)
2024-06-15 03:43:46 <plp> is it better to use stack or cabal to compile from source? using netbsd but couldn't get xmobar to install
2024-06-15 03:46:48 <geekosaur> these days either should work
2024-06-15 03:46:56 <geekosaur> I personally use cabal
2024-06-15 03:57:51 <geekosaur> stack is probably better documented since the tutorial uses it (see the /topic)
2024-06-15 04:34:42 <plp> geekosaur: stack isn't supported on NetBSD
2024-06-15 04:39:44 <plp> does the cabal.project file need to be in the ~/.config/xmonad directory?
2024-06-15 04:54:44 × thunderrd quits (~thunderrd@118.174.53.205) (Quit: If it wasn't written down it didn't happen...)
2024-06-15 04:55:04 thunderrd joins (~thunderrd@118.174.53.205)
2024-06-15 04:59:33 × thunderrd quits (~thunderrd@118.174.53.205) (Remote host closed the connection)
2024-06-15 05:00:23 thunderrd joins (~thunderrd@118.174.53.205)
2024-06-15 05:26:19 × plp quits (~plp@2601:380:8386:8b20::cf8f) (Quit: Client closed)
2024-06-15 05:57:53 <haskellbridge> <iqubic (she/her)> What do the parameters for the RationalRect mean again? What's the order of the 4 Rationals?
2024-06-15 06:18:33 <geekosaur> x, y, w, h, as fractions of the screen size
2024-06-15 06:19:03 <geekosaur> plp, you don't need a cabal.project. just cabal install --package-env=. --lib xmonad xmonad-contrib
2024-06-15 06:19:34 <geekosaur> I use a full-blown cabal setup, but that's because I'm a developer and use git checkouts, plus I have extra dependencies most people don't want or need
2024-06-15 06:22:10 <geekosaur> https://xmonad.org/INSTALL.html#build-using-cabal-install
2024-06-15 06:23:41 <geekosaur> @tell plp you don't need a cabal.project. just cabal install --package-env=. --lib xmonad xmonad-contrib
2024-06-15 06:23:41 <lambdabot> Consider it noted.
2024-06-15 06:23:55 <geekosaur> @tell plp I use a full-blown cabal setup, but that's because I'm a developer and use git checkouts, plus I have extra dependencies most people don't want or need
2024-06-15 06:23:55 <lambdabot> Consider it noted.
2024-06-15 06:24:09 <geekosaur> @tell plp https://xmonad.org/INSTALL.html#build-using-cabal-install
2024-06-15 06:24:09 <lambdabot> Consider it noted.
2024-06-15 06:24:47 <haskellbridge> <iqubic (she/her)> I'm just telling NixOS to treat my config as a stand alone cabal project and compile it for me. One cool benefit of this is that I can easily tell Nix to fetch additional libraries from Hackage if I want/need extra stuff.
2024-06-15 06:25:02 <haskellbridge> <iqubic (she/her)> This is not the typical way to do this, and I fully recognize that.
2024-06-15 06:26:15 <haskellbridge> <iqubic (she/her)> Essentially, I'm just asking nix to call cabal for me and is just like "Sure thing buddy. I'll recompile that only when changes have been made"
2024-06-15 06:29:25 <haskellbridge> <iqubic (she/her)> And then I tell Nix to move the resulting binary to ~/.cache/xmonad/xmonad-x86_64-linux so that "xmonad --restart" works properly. I also tell nix to write the .xinitrc for me, which calls my specially compiled xmonad binary.
2024-06-15 06:29:49 <haskellbridge> <iqubic (she/her)> This isn't something the average user will need to do. And this also isn't something that works on NetBSD.
2024-06-15 06:30:00 <haskellbridge> <iqubic (she/her)> Nix doesn't run on NetBSD
2024-06-15 06:30:05 <geekosaur> sounds like you reimplemented home-manager?
2024-06-15 06:30:19 <haskellbridge> <iqubic (she/her)> No. I'm using home-manager to do these things.
2024-06-15 06:30:55 <haskellbridge> <iqubic (she/her)> https://github.com/IQubic/nixos-config/blob/main/hm/xmonad/xmonad.nix#L3
2024-06-15 06:31:24 <haskellbridge> <iqubic (she/her)> Line 41 there is also relevant:
2024-06-15 06:31:24 <haskellbridge> "home.file.".cache/xmonad/xmonad-${pkgs.stdenv.system}".source = "${my-xmonad}/bin/my-xmonad";"
2024-06-15 06:32:06 <haskellbridge> <iqubic (she/her)> That line there is literally just telling nix to put the compiled binary in the place that "xmonad --restart" expects.
2024-06-15 07:24:10 × catman quits (~catman@user/catman) (Ping timeout: 255 seconds)
2024-06-15 08:17:33 × Nixkernal quits (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-06-15 11:31:29 td_ joins (~td@i53870937.versanet.de)
2024-06-15 12:57:17 plp joins (~plp@2601:380:8386:8b20::cf8f)
2024-06-15 12:58:00 Viking667 joins (~user@user/Viking667)
2024-06-15 12:59:08 <Viking667> 'llo all. I've got a question (doesn't everyone?). in the statement findEagle = title =? "Eagle Mode ", how do I get it to match just on the Eagle Mode part, and not any other thing glommed on the end?
2024-06-15 12:59:44 <Viking667> err, "Eagle Mode - Clock" would be the window string, but that "clock" could be any one of a number of things. The "Eagle Mode" bit stays the same.
2024-06-15 13:07:32 <Leary> Viking667: `title ^? "Eagle Mode"`, with (^?) coming from X.H.ManageHelpers.
2024-06-15 13:09:11 <Leary> Though if your version of contrib is not most recent, you might need to copy the definition into your xmonad.hs. IIRC it was broken until recently.
2024-06-15 13:11:29 <Viking667> hrm. And I'm on about 0.17 or something like that - from 2022-ish.
2024-06-15 13:12:23 <Viking667> I had this as the import line: import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat)
2024-06-15 13:12:33 <Viking667> will that do, or do I just inhale the whole thing instead?

All times are in UTC.