Logs: liberachat/#xmonad
| 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.