Logs: liberachat/#xmonad
| 2025-09-11 15:52:55 | <Enrico63> | I use XMobar, which shows various things, among which the name (I suppose the result of show) of the current layout. If I wanted to always show all layouts in a given moment (maybe highlighting the current one in bold), I would be hitting the same limitation, right? |
| 2025-09-11 15:53:18 | <geekosaur> | right. Choose happens to act mostly like a list, but other things act in more complex ways |
| 2025-09-11 15:53:46 | <geekosaur> | because what you're not seeing there is the LayoutClass, which is where the real work is done (in doLayout) |
| 2025-09-11 15:54:03 | <geekosaur> | which means it's not just a renamed list, it's a smart list |
| 2025-09-11 15:54:12 | <geekosaur> | it's a programmable `:` |
| 2025-09-11 15:54:32 | <geekosaur> | but it does share with lists that there can't be back-pointers, only forward |
| 2025-09-11 15:54:38 | <Enrico63> | So it is not even possible to query "what would be the next layout if I press now Super+Space?", is it? |
| 2025-09-11 15:54:53 | <geekosaur> | right |
| 2025-09-11 15:55:30 | <haskellbridge> | <Solid (@slot-:matrix.org)> You can, however, jump to an arbitrary layout (that you know by name) by your way of "trying the next thing" |
| 2025-09-11 15:57:19 | <Enrico63> | haskellbridge, but that wouldn't solve the problem, would it? I mean, where do I get the name of the previous layout from? |
| 2025-09-11 15:58:37 | <Solid> | You can't really in a general way, which is why it doesn't solve the problem |
| 2025-09-11 15:58:55 | <Solid> | But for your user-specified layout you can make a lookup table if you want |
| 2025-09-11 15:59:04 | <Solid> | and then bind that to a key |
| 2025-09-11 16:00:01 | <Enrico63> | geekosaur, however the key bindings are `[(String, X ())]`, so the actions have all the power of `X ()`, right? In theory it would be possible to query the name of the current layout, apply next layout repeatedly until we get to the same layout by name, and keep a count in between, then reapply next layout that count-1 times. Sounds as ugly as it |
| 2025-09-11 16:00:02 | <Enrico63> | can be, and I'm not even going to try, but I'm curious to know if it could work. |
| 2025-09-11 16:01:10 | <Leary> | You can interrogate the layout by pulling it out of the `WindowSet` and manually applying `handleMessage`/`description`. |
| 2025-09-11 16:02:35 | <Leary> | That's enough to get the "name" of the next layout, anyway, which you could indeed iterate until you see a repeat. |
| 2025-09-11 16:02:38 | <geekosaur> | there is a JumpToLayout message which works by name |
| 2025-09-11 16:04:19 | <Enrico63> | Solid, you mean that if I have `a ||| b ||| c` somewhere to make the layouts, I could have a `[a, b, c]` and then pass that to a key binding, while passing the |||-based fold to xmonad? |
| 2025-09-11 16:05:11 | <Enrico63> | The more I understand of XMonad, the more I question whether I'm turing-complete at all X) |
| 2025-09-11 16:12:01 | <geekosaur> | it's just complex in the name of flexibility |
| 2025-09-11 16:12:18 | <geekosaur> | but any time you add flexibility in one dimension, you lose it in others |
| 2025-09-11 16:14:03 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-09-11 16:15:58 | → | Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) |
| 2025-09-11 16:29:38 | <Solid> | Enrico63: Yeah, something like that. Query the name of the current layout, look that up in the list, and jump to the one you want |
| 2025-09-11 16:39:31 | <Leary> | Enrico63: Try this: https://gist.github.com/LSLeary/28e2157ccb7eb83cf6b63d9a5aed4dd0 |
| 2025-09-11 16:44:12 | <Solid> | oh yeah doing it this way is much smarter |
| 2025-09-11 16:53:32 | → | ft joins (~ft@p4fc2a25a.dip0.t-ipconnect.de) |
| 2025-09-11 18:22:01 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-09-11 19:09:02 | × | byorgey quits (~byorgey@user/byorgey) (Ping timeout: 260 seconds) |
| 2025-09-11 19:09:20 | → | byorgey joins (~byorgey@user/byorgey) |
| 2025-09-11 19:19:42 | → | Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) |
| 2025-09-11 19:37:21 | → | hightower4 joins (~hightower@cpe-94-253-191-254.zg.cable.xnet.hr) |
| 2025-09-11 19:39:57 | × | hightower2 quits (~hightower@cpe-94-253-191-254.zg.cable.xnet.hr) (Ping timeout: 260 seconds) |
| 2025-09-11 19:43:31 | <Enrico63> | Leary, it works, thnaks! |
| 2025-09-11 19:51:47 | × | Solid quits (~slot@xmonad/slotThe) (Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)) |
| 2025-09-11 20:54:22 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-09-11 20:55:52 | → | Guest1 joins (~Guest1@ip174-65-196-198.sd.sd.cox.net) |
| 2025-09-11 21:04:47 | × | Guest1 quits (~Guest1@ip174-65-196-198.sd.sd.cox.net) (Ping timeout: 250 seconds) |
| 2025-09-12 00:11:29 | × | hightower4 quits (~hightower@cpe-94-253-191-254.zg.cable.xnet.hr) (Ping timeout: 250 seconds) |
| 2025-09-12 00:22:46 | × | yaslam quits (~yaslam@user/yaslam) (Ping timeout: 256 seconds) |
| 2025-09-12 00:23:05 | × | tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2025-09-12 00:23:38 | → | yaslam joins (~yaslam@user/yaslam) |
| 2025-09-12 02:43:14 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:9d11::) (Quit: The Lounge - https://thelounge.chat) |
| 2025-09-12 02:45:43 | → | terrorjack joins (~terrorjac@2a01:4f8:c17:9d11::) |
| 2025-09-12 03:26:06 | → | rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-15-174-95-4-83.dsl.bell.ca) |
| 2025-09-12 03:38:18 | → | ChubaDuba joins (~ChubaDuba@46.147.210.91) |
| 2025-09-12 06:12:03 | → | Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) |
| 2025-09-12 06:26:49 | × | ft quits (~ft@p4fc2a25a.dip0.t-ipconnect.de) (Quit: leaving) |
| 2025-09-12 06:40:30 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-09-12 07:37:46 | → | Solid joins (~slot@xmonad/slotThe) |
| 2025-09-12 09:09:47 | × | sajenim quits (~sajenim@user/sajenim) (Ping timeout: 248 seconds) |
| 2025-09-12 09:53:17 | × | ChubaDuba quits (~ChubaDuba@46.147.210.91) (Quit: WeeChat 4.6.3) |
| 2025-09-12 10:54:09 | × | haskellbridge quits (~hackager@syn-096-028-224-214.res.spectrum.com) (Remote host closed the connection) |
| 2025-09-12 10:57:04 | → | haskellbridge joins (~hackager@syn-096-028-224-214.res.spectrum.com) |
| 2025-09-12 11:44:15 | × | Solid quits (~slot@xmonad/slotThe) (Remote host closed the connection) |
| 2025-09-12 11:54:17 | × | catman quits (~catman@user/catman) (Quit: WeeChat 4.7.1) |
| 2025-09-12 11:58:08 | → | catman joins (~catman@user/catman) |
| 2025-09-12 12:37:46 | → | Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) |
| 2025-09-12 12:42:19 | → | ft joins (~ft@p4fc2a25a.dip0.t-ipconnect.de) |
| 2025-09-12 13:01:52 | → | tremon joins (~tremon@83.80.159.219) |
| 2025-09-12 14:15:19 | → | xnxn joins (~xnxn@dslb-002-206-034-018.002.206.pools.vodafone-ip.de) |
| 2025-09-12 14:18:08 | × | xnxn quits (~xnxn@dslb-002-206-034-018.002.206.pools.vodafone-ip.de) (Client Quit) |
| 2025-09-12 14:21:46 | <liskin> | Hm I think i have a similar thing somewhere. I thought I posted it upstream. Maybe not |
| 2025-09-12 14:23:22 | <liskin> | https://github.com/liskin/dotfiles/blob/home/.xmonad/XMonad/Hooks/LayoutHistory.hs - looks like I haven't |
| 2025-09-12 14:23:26 | <liskin> | wish I remebered why |
| 2025-09-12 14:25:08 | <liskin> | probably because it assumes the set of all WorkspaceIds doesn't grow too big, which is a sensible assumption in most configs but maybe not all; although the memory consumption might still be negligible compared to the crap software people tend to run these days |
| 2025-09-12 14:32:01 | → | Solid joins (~slot@xmonad/slotThe) |
| 2025-09-12 15:20:36 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-09-12 16:41:47 | × | catman quits (~catman@user/catman) (Quit: WeeChat 4.7.1) |
| 2025-09-12 16:43:39 | → | catman joins (~catman@user/catman) |
| 2025-09-12 16:53:08 | × | catman quits (~catman@user/catman) (Quit: WeeChat 4.7.1) |
| 2025-09-12 17:29:58 | → | catman joins (~catman@user/catman) |
| 2025-09-12 17:30:10 | × | Solid quits (~slot@xmonad/slotThe) (Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)) |
| 2025-09-13 00:13:12 | × | tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2025-09-13 13:46:47 | → | Guest55 joins (~Guest55@142-73-208-87.ftth.glasoperator.nl) |
| 2025-09-13 13:47:11 | <Guest55> | is it true that xnomad is built in haskell? |
| 2025-09-13 13:47:18 | × | catman quits (~catman@user/catman) (Quit: WeeChat 4.7.1) |
| 2025-09-13 13:47:41 | × | Guest55 quits (~Guest55@142-73-208-87.ftth.glasoperator.nl) (Client Quit) |
| 2025-09-13 13:54:35 | → | catman joins (~catman@user/catman) |
| 2025-09-13 13:55:06 | × | catman quits (~catman@user/catman) (Client Quit) |
| 2025-09-13 13:55:27 | → | catman joins (~catman@user/catman) |
| 2025-09-13 13:56:29 | → | tremon joins (~tremon@83.80.159.219) |
| 2025-09-13 14:39:33 | <Digit> | what's xnomad? the marketplace thing? the portable monitors thing? or a dyslexic misspelling of xmonad (which is built in haskell, yup)? |
| 2025-09-13 14:46:59 | <geekosaur> | they're gone |
| 2025-09-13 15:40:52 | <Digit> | i noticed. still wondered if there were some xmonad related thing called xnomad, maybe others know what websearch was not forthcoming about. |
| 2025-09-13 15:50:30 | <geekosaur> | no, pretty sure that's people just misreading as something they're more familiar with |
| 2025-09-13 15:51:04 | <geekosaur> | (i.e "nomad" is a relatively common word, at least as compared to "monad") |
| 2025-09-13 16:03:21 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 2025-09-13 16:05:07 | → | xnxn joins (~xnxn@dslb-002-201-020-218.002.201.pools.vodafone-ip.de) |
| 2025-09-13 16:30:45 | → | xnxn16 joins (~xnxn@dynamic-176-001-195-073.176.1.pool.telefonica.de) |
| 2025-09-13 16:31:12 | × | xnxn quits (~xnxn@dslb-002-201-020-218.002.201.pools.vodafone-ip.de) (Quit: Client closed) |
| 2025-09-13 16:31:39 | × | xnxn16 quits (~xnxn@dynamic-176-001-195-073.176.1.pool.telefonica.de) (Client Quit) |
| 2025-09-13 16:36:55 | → | xnxn joins (~xnxn@dslb-002-201-020-218.002.201.pools.vodafone-ip.de) |
| 2025-09-13 16:53:00 | × | xnxn quits (~xnxn@dslb-002-201-020-218.002.201.pools.vodafone-ip.de) (Quit: Client closed) |
| 2025-09-13 17:35:19 | → | xnxn joins (~xnxn@dslb-002-201-020-218.002.201.pools.vodafone-ip.de) |
| 2025-09-13 17:36:25 | × | xnxn quits (~xnxn@dslb-002-201-020-218.002.201.pools.vodafone-ip.de) (Client Quit) |
| 2025-09-13 17:47:04 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-09-13 18:33:25 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 250 seconds) |
| 2025-09-13 18:36:01 | → | werneta joins (~werneta@syn-071-083-160-242.res.spectrum.com) |
All times are in UTC.