Logs on 2024-06-17 (liberachat/#xmonad)
| 00:03:17 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 00:08:42 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 01:45:07 | <haskellbridge> | <iqubic (she/her)> Ugh... Haskell Layout Rules are being a pain. Why doesn't this work? https://gist.github.com/IQubic/f8262777ebc4f9b9afe6b6aec895ea46 |
| 01:53:12 | <geekosaur> | you need to indent the lines following the `NS` constructor, or they're treated as independent expressions. but that's not the cause of the error. the error is you're missing a close paren on line 8 |
| 01:53:25 | <geekosaur> | (you will eventually get a type error from the other) |
| 03:00:15 | × | td_ quits (~td@i53870926.versanet.de) (Ping timeout: 264 seconds) |
| 03:01:38 | → | td_ joins (~td@i53870910.versanet.de) |
| 04:18:23 | → | ChubaDuba joins (~ChubaDuba@79.136.183.37) |
| 06:31:26 | × | ChubaDuba quits (~ChubaDuba@79.136.183.37) (Quit: Leaving) |
| 06:31:41 | → | ChubaDuba joins (~ChubaDuba@79.136.183.37) |
| 08:02:10 | × | ChubaDuba quits (~ChubaDuba@79.136.183.37) (Quit: WeeChat 4.2.1) |
| 08:10:18 | → | derfflinger joins (~derffling@user/derfflinger) |
| 08:38:46 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:24:15 | × | ft quits (~ft@p3e9bcb39.dip0.t-ipconnect.de) (Quit: leaving) |
| 10:34:17 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 256 seconds) |
| 11:04:16 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:04:24 | → | ChubaDuba joins (~ChubaDuba@79.136.183.37) |
| 11:07:50 | × | ChubaDuba quits (~ChubaDuba@79.136.183.37) (Client Quit) |
| 11:18:53 | <haskellbridge> | <iqubic (she/her)> If I modify my layouts in the layout hook, will that cause issues with hot-reloading via "xmonad --restart"? |
| 11:23:22 | <Leary> | iqubic: That depends on what you consider an issue. If you change the layout type then you'll lose all dynamic layout state. If you don't then you'll keep it all, but that means you only changed the defaults, not the active layouts. |
| 11:29:04 | <haskellbridge> | <iqubic (she/her)> Do I need to log-out of my graphical user session? |
| 11:30:37 | <haskellbridge> | <iqubic (she/her)> I'm fine losing the dynamic layout state, if I can keep using my keybindings to change my layouts, and tell XMonad about the new dynamic layout stat that I want. |
| 11:32:19 | <Leary> | Honestly, the hack I use is to just temporarily change the layout type and reload twice. |
| 11:36:09 | <haskellbridge> | <iqubic (she/her)> What do you mean by that? |
| 11:39:34 | <Leary> | Err, there was probably a misunderstanding. If you're already changing the layout type then just go for it. |
| 11:40:05 | <haskellbridge> | <iqubic (she/her)> Yeah, I'm changing the layout type, because I want to have different layouts. |
| 11:40:14 | <haskellbridge> | <iqubic (she/her)> I'm not doing anything temporary here. |
| 11:40:23 | <haskellbridge> | <iqubic (she/her)> I'm doing this as a permanent change. |
| 11:41:14 | <Leary> | (the misunderstanding was that you were just changing settings and were willing to drop dynamic state to see those changes) |
| 11:42:18 | <haskellbridge> | <iqubic (she/her)> No. I've made a change to my config and recompiled XMonad. |
| 12:13:17 | × | eso quits (a0662dfd5e@2a03:6000:1812:100::1266) (Remote host closed the connection) |
| 12:13:17 | × | samhh quits (7569f027cf@2a03:6000:1812:100::e4) (Remote host closed the connection) |
| 12:13:17 | × | wsx quits (055e6b628d@2a03:6000:1812:100::dd6) (Remote host closed the connection) |
| 12:13:19 | × | alethkit quits (23bd17ddc6@sourcehut/user/alethkit) (Remote host closed the connection) |
| 12:13:19 | × | bwolf quits (c3bc363dd1@2a03:6000:1812:100::180) (Remote host closed the connection) |
| 12:13:19 | × | dxld quits (a6d27c8ee6@2a03:6000:1812:100::52) (Remote host closed the connection) |
| 12:13:19 | × | raghavgururajan quits (ea769b8000@user/raghavgururajan) (Remote host closed the connection) |
| 12:13:51 | → | raghavgururajan joins (ea769b8000@user/raghavgururajan) |
| 12:13:52 | → | wsx joins (055e6b628d@2a03:6000:1812:100::dd6) |
| 12:13:55 | → | bwolf joins (c3bc363dd1@2a03:6000:1812:100::180) |
| 12:14:00 | → | samhh joins (7569f027cf@2a03:6000:1812:100::e4) |
| 12:14:04 | → | alethkit joins (23bd17ddc6@sourcehut/user/alethkit) |
| 12:14:04 | → | dxld joins (a6d27c8ee6@2a03:6000:1812:100::52) |
| 12:14:04 | → | eso joins (a0662dfd5e@2a03:6000:1812:100::1266) |
| 13:28:05 | × | weitcis quits (~quassel@syn-075-083-074-003.res.spectrum.com) (Ping timeout: 240 seconds) |
| 13:28:18 | → | weitcis joins (~quassel@syn-076-082-169-160.res.spectrum.com) |
| 13:30:13 | → | derfflinger_ joins (~derffling@user/derfflinger) |
| 13:34:15 | × | derfflinger quits (~derffling@user/derfflinger) (Ping timeout: 260 seconds) |
| 13:54:51 | × | derfflinger_ quits (~derffling@user/derfflinger) (Ping timeout: 268 seconds) |
| 14:05:25 | × | catman quits (~catman@user/catman) (Quit: WeeChat 4.3.0-dev) |
| 14:06:42 | → | catman joins (~catman@user/catman) |
| 14:13:40 | → | derfflinger_ joins (~derffling@user/derfflinger) |
| 14:37:57 | × | derfflinger_ quits (~derffling@user/derfflinger) (Ping timeout: 256 seconds) |
| 16:58:35 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 19:40:24 | → | ft joins (~ft@p3e9bcb39.dip0.t-ipconnect.de) |
| 20:11:59 | × | Solitary quits (~Solitary@user/solitary) (Ping timeout: 264 seconds) |
| 20:22:40 | → | Solitary joins (~Solitary@user/solitary) |
| 20:32:23 | × | Solitary quits (~Solitary@user/solitary) (Ping timeout: 260 seconds) |
| 20:39:08 | → | Solitary joins (~Solitary@user/solitary) |
| 20:42:38 | × | Solitary quits (~Solitary@user/solitary) (Read error: Connection reset by peer) |
| 20:46:27 | → | Solitary joins (~Solitary@user/solitary) |
| 21:05:23 | × | redgloboli quits (~redglobol@user/redgloboli) (Ping timeout: 264 seconds) |
| 21:06:49 | × | srk quits (~sorki@user/srk) (Ping timeout: 268 seconds) |
| 21:07:54 | → | redgloboli joins (~redglobol@user/redgloboli) |
| 21:12:50 | <haskellbridge> | <iqubic (she/her)> How does XMonad track dynamic state when I reload via "xmonad --restart"? |
| 21:16:25 | <geekosaur> | it writes the state to a file and passes it to the next invocation via the command line |
| 21:17:33 | <geekosaur> | each chunk (persistent extensible state, layout state, stackset) is separately serialized and will be discarded if it can't be parsed (practically, this can only happen to the layout) |
| 21:27:42 | <haskellbridge> | <iqubic (she/her)> But if I change the layout hook, then the old state won't work correctly to describe the new layouts I have. |
| 21:28:17 | <geekosaur> | right, which means it won't be able to deserialize that part of the state, so the layout geets reinitialized with defaults instead |
| 22:10:50 | <haskellbridge> | <iqubic (she/her)> https://dpaste.com/7DK35KQXB |
| 22:11:58 | <haskellbridge> | <iqubic (she/her)> I have no idea how this works... If I'm in "Mirror tall" and I toggle to fullscreen and back, XMonad remembers that I was in Mirror tall. How does it remember that?!?! |
| 22:18:39 | <geekosaur> | the ToggleLayouts data constructor holds state. Running a layout or sending a message can replace the constructor with a new value |
| 22:18:59 | <geekosaur> | In this case, the value is a Bool indicating whether the layout is toggled or not |
| 22:21:34 | <haskellbridge> | <iqubic (she/her)> Does I assume the (|||) layout combinator just tracks the state of which layout I'm using. |
| 22:21:50 | <geekosaur> | yes |
| 22:22:02 | <geekosaur> | its constructor is Choose, which contains a Bool |
| 22:22:20 | <geekosaur> | hm, actually I think it uses a bespoke type which is either Left or Right |
| 22:22:43 | <geekosaur> | when the layout is initialized, all Choose constructors have Left |
| 22:23:30 | <geekosaur> | every time you mod-space, every Choose constructor checks its state: if it's Left then it changes the state to Right; if it's Right then it relays the message to its rightward layout |
| 22:23:57 | <geekosaur> | when a layout is run, Choose runs either its Left or Right layout depending on the state |
| 22:25:53 | <geekosaur> | (iirc "Left" and "Right" are actually called "CL" and "CR") |
| 22:26:27 | <haskellbridge> | <iqubic (she/her)> CL and CR are the constructors, yeah. |
| 22:28:39 | <haskellbridge> | <iqubic (she/her)> So, the "Toggle" layout remembers the state of the two layouts it lets me toggle between. |
| 22:29:06 | <geekosaur> | right |
| 22:29:23 | <geekosaur> | it's ToggleLayout Bool leftlayout rightlayout |
| 22:29:46 | <geekosaur> | if the Bool is True then it's toggled on and runs leftlayout, otherwise rightlayout |
| 22:30:26 | <geekosaur> | er, ToggleLayouts. "ToggleLayout" is the message constructor which toggles the Bool |
| 22:30:43 | <haskellbridge> | <iqubic (she/her)> Is there a way I can debug why a namedScratchpadAction isn't working for me? |
| 22:31:38 | <haskellbridge> | <iqubic (she/her)> Like, I have a list of scratchpads defined and I have a keybinding set for it. But invoking the keybinding doesn't seem to do anything. |
| 22:37:24 | <geekosaur> | did you remember to add namedScratchpadManageHook to the manageHook? that's a fairly common mistake (and I've made it myself 🙂 ) |
| 22:37:40 | <haskellbridge> | <iqubic (she/her)> Uh... I don't think I did that. |
| 22:37:45 | <haskellbridge> | <iqubic (she/her)> What should that look like? |
| 22:37:48 | <geekosaur> | pass it the list of NamedScratchPads |
| 22:38:02 | <geekosaur> | , manageHook = namedScratchpadManageHook scratchpads |
| 22:38:20 | <geekosaur> | as usual use <> <+> or composeAll to combine it with other manageHooks |
| 22:45:36 | <haskellbridge> | <iqubic (she/her)> Yeah. I know how to add a ManageHook to my already existing manage hooks. |
| 22:52:24 | <haskellbridge> | <iqubic (she/her)> I just added it to my manageHook and it's still not working. |
| 22:59:37 | <geekosaur> | https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L166-L179 (manageHook) https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L223-L235 (keys) |
| 23:01:47 | <haskellbridge> | <iqubic (she/her)> I found the error. In the first argument for NS, I used uppercased the first letter of the name. In the keybindings I used all lowercase names. |
| 23:12:09 | <haskellbridge> | <iqubic (she/her)> This looks really wonderful. I'm loving this: https://imgur.com/a/LiffReW |
| 23:35:29 | <haskellbridge> | <iqubic (she/her)> Is there a way that I can write a simple function to create a centered RationalRect? Like "centered :: Rational -> Rational -> RationalRect" where I give it a width and a height in fractions of the screen size, and it works out where the top left corner should be for me, so that the rectangle is centered. |
| 23:35:38 | <haskellbridge> | <iqubic (she/her)> Or is that something that already exists? |
| 23:36:55 | <haskellbridge> | <iqubic (she/her)> I want something like "doCenteredFloat" but with the ability to specify a height and a width. |
| 23:42:27 | <geekosaur> | doesn't look like we have anything conveniently prepackaged, but you can derive it from the local function `move` that's part of https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/src/XMonad.Hooks.ManageHelpers.html#doSideFloat |
| 23:43:03 | <haskellbridge> | <iqubic (she/her)> Cool. Thanks! |
| 23:50:26 | <geekosaur> | hm, you might also need https://hackage.haskell.org/package/xmonad-0.18.0/docs/XMonad-Operations.html#v:floatLocation |
| 23:53:04 | <haskellbridge> | <iqubic (she/her)> Hmm... yeah, maybe. |
All times are in UTC on 2024-06-17.