2022/09/23

2022-09-23 00:00:12 +0200 <QNX> You know what, I'm just gonna say it.
2022-09-23 00:00:19 +0200 <QNX> KDE developers are just terrible people.
2022-09-23 00:00:41 +0200 <QNX> There is no discussion with them about anything. Elitist ahole who think they have the gods gift to desktop software
2022-09-23 00:01:00 +0200 <floweynt[m]> <geekosaur> "XMonadPropRead reads _XMONAD_LOG..." <- ` Run XPropertyLog "_XMONAD_LOG_0"` is what i have
2022-09-23 00:01:12 +0200 <QNX> There is nothing you can phrase in any diplomatic manner
2022-09-23 00:01:20 +0200 <QNX> About why some changes were made that are breaking
2022-09-23 00:01:39 +0200 <QNX> Anyway.
2022-09-23 00:02:08 +0200 <QNX> It's time to start making own software
2022-09-23 00:03:17 +0200 <geekosaur> this is one of the reasons people run xmonad, i3, …
2022-09-23 00:03:57 +0200steve_(~steve@ool-182c2b80.dyn.optonline.net) (Ping timeout: 265 seconds)
2022-09-23 00:04:47 +0200 <QNX> Well, it's not that.
2022-09-23 00:05:03 +0200 <QNX> It's that ... I just got back from kde devel and raised some issues about genuine things
2022-09-23 00:05:13 +0200 <geekosaur> floweynt[m], I don't see anything wrong with your config and I can't see your smobar config (and I don't know xmobar well enough anyway) but things seem to be okay at least in your xmonad.hs
2022-09-23 00:05:17 +0200 <QNX> The general mentality is ... they don't.... I just...
2022-09-23 00:05:40 +0200 <QNX> I'm not one to talk about people badly, but it's just too much ... elitist toxicity in the circle
2022-09-23 00:05:51 +0200 <geekosaur> ask liskin about the gnome devs sometime
2022-09-23 00:05:55 +0200 <QNX> KDE does things that break things for Xmonad people and they don't care.
2022-09-23 00:05:57 +0200 <QNX> :(
2022-09-23 00:05:59 +0200 <QNX> That makes me sad.
2022-09-23 00:06:13 +0200 <geekosaur> (I haven't tried to work with them in a decade, they clearly have not improved)
2022-09-23 00:06:22 +0200 <QNX> They have not. Sadly.
2022-09-23 00:06:31 +0200 <QNX> Oh I need a Big Xmonad HUG!
2022-09-23 00:06:39 +0200 <floweynt[m]> geekosaur: xprop -root doesnt show _XMONAD_LOG_{N}
2022-09-23 00:07:00 +0200 <QNX> I need a fly down terminal like yakuake
2022-09-23 00:07:00 +0200 <geekosaur> I am saddened by KDE though. I used to contribute to it, and even did a Solaris port back in the KDE 2 days
2022-09-23 00:07:14 +0200 <geekosaur> we ran it in the main undergrad cluster
2022-09-23 00:07:30 +0200 <QNX> I need to be able to quickly access a terminal no matter which workspace I'm on, floated/hovered, on/of toggle with either mouse edge screen touch up top, with a delay
2022-09-23 00:07:44 +0200 <QNX> I used to too, circa 2.5.10
2022-09-23 00:07:47 +0200 <QNX> 3.x
2022-09-23 00:08:02 +0200 <QNX> I was an old debian maint and used to contribute a lot circa 20020-2006
2022-09-23 00:08:10 +0200 <QNX> 2002
2022-09-23 00:08:52 +0200 <QNX> But that's the beauty of FOSS
2022-09-23 00:09:03 +0200 <QNX> Find a community you like, can stand, like minded people, contribute, make friensd
2022-09-23 00:09:15 +0200 <QNX> Linus Trovadldes maybe crass but he's got a point
2022-09-23 00:09:22 +0200 <QNX> Find what you like and contribute there.
2022-09-23 00:09:26 +0200 <QNX> I like Xmonad
2022-09-23 00:09:42 +0200 <QNX> Even if I was an asshole sometimes, people were still nice to me here and understanding.
2022-09-23 00:09:54 +0200 <QNX> People with mental problems like mine have hard time finding a place to fit in.
2022-09-23 00:10:10 +0200 <QNX> But anyway, glad to be here.
2022-09-23 00:10:30 +0200 <QNX> Gladly I stuck with ubuntu LTS so I don't have to update plasma-framework patches too often.
2022-09-23 00:10:37 +0200 <QNX> Not something you can do with a rolling distro.
2022-09-23 00:11:23 +0200 <geekosaur> I have a terminal scratchpad. one could conceivably do that with X.H.ScreenCorners
2022-09-23 00:11:28 +0200 <QNX> I wanted to try out a few rolling distros, but my workflow/desktop is heavily KDE app oriented, dont' use kde desktop, Xmonad instad, but I use plasma panels for easy peasy app/taskman/systray
2022-09-23 00:11:37 +0200 <QNX> Hmm
2022-09-23 00:11:39 +0200 <QNX> Interesting.
2022-09-23 00:11:40 +0200 <geekosaur> I use MATE fwiw
2022-09-23 00:12:14 +0200 <geekosaur> plays pretty well once you reconfigure the menu applet to let go of the windows key
2022-09-23 00:12:28 +0200 <QNX> GTK based?
2022-09-23 00:12:37 +0200 <QNX> I have a mental problem. I hate GTK dialog design.
2022-09-23 00:12:43 +0200 <geekosaur> yes. more or less it's a supported fork of gnome 2
2022-09-23 00:12:48 +0200 <QNX> Especially the GTK2/3 file open/save dialog boxes. Horrendous
2022-09-23 00:13:05 +0200 <QNX> Who came up with such a terrible nonstandard design for especially those two
2022-09-23 00:13:15 +0200 <QNX> And you always have to open/save files, and that is too annoying for me to use
2022-09-23 00:13:30 +0200 <QNX> Gimp I have to use, and that's terrible with that file/save/open dialogs, Horrible design.
2022-09-23 00:13:36 +0200 <QNX> Just unintuitive.
2022-09-23 00:13:44 +0200 <QNX> Anyway, i'm sounding like a old grumpy man.
2022-09-23 00:15:06 +0200 <geekosaur> wait until you are one πŸ™‚
2022-09-23 00:15:10 +0200 <QNX> 42 man.
2022-09-23 00:15:15 +0200 <QNX> Getting there!
2022-09-23 00:15:22 +0200 <geekosaur> 58
2022-09-23 00:15:28 +0200 <QNX> Whoah. Damn.
2022-09-23 00:15:29 +0200 <QNX> Sir.
2022-09-23 00:15:34 +0200 <QNX> Respect.
2022-09-23 00:15:53 +0200 <QNX> I thought you were my age, man. haha
2022-09-23 00:16:59 +0200 <QNX> XHSC seems cool.
2022-09-23 00:17:23 +0200 <QNX> But what action might I launch which would show the terminal floated on top of the already existing window in a workspace
2022-09-23 00:17:47 +0200 <QNX> Don't want to switch ws, nothing else, no app switching nothing, just float a terminal on top like this one: https://apps.kde.org/yakuake/
2022-09-23 00:18:38 +0200 <geekosaur> like I said, I use a scratchpad. https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L77-L80 (keybind https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L213)
2022-09-23 00:19:09 +0200 <QNX> Interesting.
2022-09-23 00:19:22 +0200 <QNX> What is this scratchpad thing?
2022-09-23 00:19:35 +0200 <QNX> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Util-NamedScratchpad.html
2022-09-23 00:19:37 +0200 <QNX> I see.
2022-09-23 00:19:52 +0200 <geekosaur> https://alternativeto.net/software/guake/?platform=linux
2022-09-23 00:20:14 +0200 <geekosaur> or search for "quake-like terminal linux"
2022-09-23 00:20:23 +0200 <QNX> Gotcha
2022-09-23 00:21:18 +0200 <QNX> Scratchpad seems pretty awesome
2022-09-23 00:22:29 +0200 <geekosaur> it summons (or lau7nches if needed) a window on the current workspace on command, then banishes it to NSP on repeat of that command so you can pop stuff up/down on the current workspace. I have quite a few defined, as you can see
2022-09-23 00:22:48 +0200 <geekosaur> although much of that is experimentation and in particular I may take all the crawl consoles back out
2022-09-23 00:23:11 +0200 <geekosaur> since I only really use local and cbr2
2022-09-23 00:23:54 +0200 <QNX> yeah yeah nice
2022-09-23 00:25:35 +0200 <QNX> What's this 'crawl' stuff?
2022-09-23 00:25:58 +0200 <QNX> Like web crawler on diff sites gathering data?
2022-09-23 00:25:59 +0200 <geekosaur> https://crawl.develz.org
2022-09-23 00:26:06 +0200 <geekosaur> a dungeon crawler
2022-09-23 00:26:12 +0200 <QNX> Oh nice.
2022-09-23 01:09:19 +0200sagax(~sagax_nb@user/sagax) (Excess Flood)
2022-09-23 01:43:35 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:2dfd:13d3:f366:7e03) (Ping timeout: 244 seconds)
2022-09-23 02:04:29 +0200 <floweynt[m]> It seems like xmonad isn't setting the properties for xmobar stuff
2022-09-23 02:15:47 +0200 <geekosaur> I think you'll need Solid; I don't know enough about that part of xmonad
2022-09-23 02:16:42 +0200 <floweynt[m]> Solid?
2022-09-23 02:17:21 +0200 <geekosaur> the dev who overhauled the statusbar stuff including dynamicSBs
2022-09-23 03:01:45 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
2022-09-23 03:17:03 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
2022-09-23 03:36:28 +0200benin06(~benin@183.82.204.58)
2022-09-23 03:37:36 +0200benin0(~benin@183.82.204.58) (Ping timeout: 265 seconds)
2022-09-23 03:37:36 +0200benin06benin0
2022-09-23 03:39:50 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-09-23 04:03:42 +0200banc(banc@gateway/vpn/airvpn/banc) (Ping timeout: 265 seconds)
2022-09-23 04:04:19 +0200benin0(~benin@183.82.204.58) (Ping timeout: 246 seconds)
2022-09-23 04:07:22 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-23 04:11:17 +0200 <floweynt[m]> I seem to have fixed the issue, now i am trying to figure out how to make xmonad treat a specific screen as the primary
2022-09-23 04:21:34 +0200td_(~td@94.134.91.59) (Ping timeout: 265 seconds)
2022-09-23 04:22:57 +0200td_(~td@muedsl-82-207-238-210.citykom.de)
2022-09-23 04:23:46 +0200banc(banc@gateway/vpn/airvpn/banc)
2022-09-23 04:26:57 +0200benin0(~benin@183.82.24.8)
2022-09-23 04:43:08 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-09-23 04:45:20 +0200 <QNX> How many workspaces can you have in xmonad?
2022-09-23 04:45:26 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-09-23 04:45:50 +0200 <QNX> I have currentoly 12, 0-9, and -,=, so 12
2022-09-23 04:46:05 +0200 <floweynt[m]> i dont think xmonad cares
2022-09-23 04:46:10 +0200 <QNX> Or I never tried dynamic workspaces
2022-09-23 04:46:13 +0200 <QNX> you ever tried that
2022-09-23 04:46:30 +0200 <floweynt[m]> nope
2022-09-23 04:46:34 +0200 <QNX> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Actions-DynamicWorkspaces.html
2022-09-23 04:53:55 +0200 <floweynt[m]> any sentient haskell people want to tell me how to turn a `A -> X ( B -> C )` into a `X (A -> B -> C`
2022-09-23 04:53:59 +0200 <floweynt[m]> * -> C)`
2022-09-23 05:02:04 +0200 <Lears> floweynt[m]: The former is stronger; you can only go the other direction. What are you actually trying to do?
2022-09-23 05:03:31 +0200 <floweynt[m]> when doing xmobar pretty-print stuff, i would like to do something that depends on the state but `ppCurrent` does not take X (WorkspaceId -> String)
2022-09-23 05:09:34 +0200 <Lears> Doesn't look to be possible; `ppCurrent :: WorkspaceId -> String` is a pure function. You can produce that function dynamically utilising IO (or perhaps X), but once produced it's state-independent.
2022-09-23 05:09:48 +0200 <Lears> But there might be another way to do what you want, I don't know.
2022-09-23 05:26:55 +0200 <QNX> https://bpa.st/GAOA I can't get scratchpad to show up
2022-09-23 05:27:08 +0200 <QNX> https://bpa.st/GAOA#1L164 added pad here
2022-09-23 05:27:20 +0200 <QNX> https://bpa.st/GAOA#1L252 add manage hook here
2022-09-23 05:27:28 +0200 <QNX> https://bpa.st/GAOA#1L376 add keybind here
2022-09-23 05:27:40 +0200 <QNX> No errors at all, but when I do my key shortcut, pad doesn't open.
2022-09-23 05:27:45 +0200 <QNX> What am I doing wrong?
2022-09-23 05:27:49 +0200 <QNX> geekosaur: if you're around
2022-09-23 05:29:29 +0200 <Lears> Based on the keybind directly above, you probably want "C-F1" to be "C-<F1>".
2022-09-23 05:34:33 +0200 <QNX> Oh
2022-09-23 05:35:03 +0200 <QNX> That did it
2022-09-23 05:35:05 +0200 <QNX> Thanks
2022-09-23 05:36:00 +0200 <QNX> Now xterm opens, but when it's visible, I do the same key again, and it doesn't go back to hidden workspace
2022-09-23 05:38:12 +0200steve_(~steve@ool-182c2b80.dyn.optonline.net)
2022-09-23 05:39:38 +0200 <QNX> it just opens another one instead of sending this back.
2022-09-23 05:39:43 +0200 <QNX> Also if I use: NS "term" "xterm" (className =? "xterm") (customFloating $ W.RationalRect (1/6) (1/6) (2/3) (2/3))
2022-09-23 05:40:01 +0200 <QNX> It still takes up full screen. DefuaultFloating also takes up full screen.
2022-09-23 05:41:32 +0200 <Lears> I don't really know scratchpads, but it sounds like yours is malformed: it knows how to launch a window, but can't recognise it once open. Most likely `className =? "xterm"` isn't right.
2022-09-23 05:43:06 +0200 <QNX> Allows to have several floating scratchpads running different applications. Bind a key to namedScratchpadSpawnAction. Pressing it will spawn configured application, or bring it to the current workspace if it already exists. Pressing the key with the application on the current workspace will send it to a hidden workspace called NSP.
2022-09-23 05:43:18 +0200 <QNX> So I tried that
2022-09-23 05:43:24 +0200 <QNX> , ("C-<F1>", namedScratchpadSpawnAction scratchpads "term")
2022-09-23 05:43:29 +0200 <QNX> I get error that not a variable in scope
2022-09-23 05:44:21 +0200 <QNX> spawnHereNamedScratchpadAction seems like this
2022-09-23 05:44:40 +0200 <Lears> Looks like a documentation bug.
2022-09-23 05:44:53 +0200 <QNX> ("C-<F1>", spawnHereNamedScratchpadAction scratchpads "term")
2022-09-23 05:44:55 +0200 <Lears> Maybe a holdover from an earlier version.
2022-09-23 05:44:57 +0200 <QNX> same thing, not ins cope.
2022-09-23 05:45:07 +0200 <QNX> Maybe I'm doing something wrong
2022-09-23 05:46:14 +0200 <Lears> You might not be using the same version of xmonad-contrib as the docs you're looking at; that one should exist.
2022-09-23 05:46:21 +0200 <QNX> Oh
2022-09-23 05:46:23 +0200 <QNX> I'm on .15
2022-09-23 05:46:37 +0200 <Lears> In any case, `namedScratchpadAction` was probably fine.
2022-09-23 05:46:57 +0200 <Lears> The issue, as I said, is probably in the ManageHook it uses to recognise the window.
2022-09-23 05:47:11 +0200 <Lears> You have to check the xprops of your xterm and see what it actually shows.
2022-09-23 05:47:54 +0200 <QNX> it's correct prop
2022-09-23 05:48:09 +0200 <QNX> xterm
2022-09-23 05:48:12 +0200sagax(~sagax_nb@user/sagax)
2022-09-23 05:48:35 +0200 <QNX> It just opens a new window each time, of xterm, on C-<F1>
2022-09-23 05:48:42 +0200 <QNX> It doesn't send the opened xterm window to hidden WS
2022-09-23 05:48:53 +0200 <QNX> It does spawn xterm though.
2022-09-23 05:48:58 +0200 <QNX> Not sure what exactly is happening
2022-09-23 05:49:12 +0200 <Lears> That only makes sense if the hook doesn't catch the window.
2022-09-23 05:49:28 +0200 <QNX> I see
2022-09-23 05:49:38 +0200 <Lears> You might need "XTerm"
2022-09-23 05:49:43 +0200 <QNX> WM_CLASS(STRING) = "xterm", "XTerm"
2022-09-23 05:49:48 +0200 <QNX> Ok
2022-09-23 05:50:11 +0200 <QNX> there it does.
2022-09-23 05:50:14 +0200 <QNX> there it goes.
2022-09-23 05:50:21 +0200 <QNX> So peculiar why classname is case sensitive?
2022-09-23 05:50:23 +0200 <QNX> Or what
2022-09-23 05:50:55 +0200 <QNX> Means my doShifts won't work either, on lower case classnames. I should have copied the case sensitive one?
2022-09-23 05:51:49 +0200 <Lears> It's a bit unfortunate, but that's just how `(=?)` is defined; it needs an exact match. There might be a case insensitive version floating around in contrib somewhere, or you can define your own.
2022-09-23 05:52:35 +0200 <Lears> Something like `prop =?? s = prop <&> \p -> toLower p == toLower s`.
2022-09-23 05:55:26 +0200 <QNX> No I mean why does xprop report two diff class names
2022-09-23 05:55:36 +0200 <QNX> I expected either of them to work
2022-09-23 05:55:45 +0200 <QNX> since both were reported by xprop
2022-09-23 05:56:14 +0200 <Lears> I can't recall the details, but technically they're different properties or something, not just case variants.
2022-09-23 05:56:35 +0200 <QNX> I see.
2022-09-23 05:56:43 +0200 <QNX> Thanks man dude homie bro
2022-09-23 05:57:04 +0200 <Lears> Only one of them (the second, apparently) is correct with `className`.
2022-09-23 05:57:15 +0200 <QNX> I see.
2022-09-23 06:12:46 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c) (Ping timeout: 244 seconds)
2022-09-23 06:24:42 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: Lost terminal)
2022-09-23 06:27:44 +0200sogens(~sogens@pa49-197-130-227.pa.qld.optusnet.com.au) (Ping timeout: 265 seconds)
2022-09-23 06:47:47 +0200steve_(~steve@ool-182c2b80.dyn.optonline.net) (Ping timeout: 252 seconds)
2022-09-23 06:57:05 +0200sogens(sogens@gateway/vpn/protonvpn/sogens)
2022-09-23 07:02:49 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
2022-09-23 07:09:29 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-09-23 07:42:17 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-09-23 08:15:27 +0200 <QNX> addScreenCorners [ (SCUpperLeft, namedScratchpadAction scratchpads "term") ]
2022-09-23 08:15:43 +0200 <QNX> I added this to screen corners, and when I hit it with the mouse, nothing happens.
2022-09-23 08:16:11 +0200 <QNX> https://bpa.st/44CQ here's the current xmonad.hs
2022-09-23 08:16:37 +0200 <QNX> I don't get any errors, but I don't get the desired functionality
2022-09-23 08:18:37 +0200 <Lears> Looks like you're not using the event hook.
2022-09-23 08:19:27 +0200 <QNX> Oh
2022-09-23 08:20:16 +0200 <QNX> I'm not sure how to add that
2022-09-23 08:20:48 +0200 <QNX> XMonad.Hooks.EventHook I need this?
2022-09-23 08:21:04 +0200 <Lears> The module should probably expose a config combinator, and it looks like it's also using XS where it should be XC... Must be pretty old.
2022-09-23 08:21:47 +0200 <Lears> No, you just need to add `screenCornerEventHook` to your `handleEventHook` with (<>) AKA (<+>).
2022-09-23 08:22:44 +0200 <QNX> Brilliant.
2022-09-23 08:22:47 +0200 <QNX> Thank you!
2022-09-23 08:22:55 +0200 <QNX> I don't understand any of this stuff at all!
2022-09-23 08:23:13 +0200steve_(~steve@ool-182c2b80.dyn.optonline.net)
2022-09-23 08:23:14 +0200 <QNX> I have no idea how I'm making do. No idea. Well, with you guys help! :)
2022-09-23 09:33:59 +0200 <xmonadtrack> xmonad-contrib L. S. Leary * v0.17.1-19-gb9794e6a: Fix documentation bug in X.U.NSP (12 minutes ago, 1 file, 1+ 1-) https://github.com/xmonad/xmonad-contrib/commit/b9794e6a1384
2022-09-23 09:54:33 +0200 <QNX> I have used stack to build Xmoand .17 and updated my PATH to include ~/.local/bin
2022-09-23 09:54:47 +0200 <QNX> Should I now remove the distro packages of xmonad .15?
2022-09-23 09:59:38 +0200 <QNX> I try to reload xmonad and it complains that xmonad is not in my path. hmm
2022-09-23 09:59:49 +0200 <QNX> updated path on terminal, but i guess that's for that bash session and not global.
2022-09-23 10:01:33 +0200 <QNX> stoned@stoned-desktop - ~/.config/xmonad - -
2022-09-23 10:01:35 +0200 <QNX> $ xmonad --recompile
2022-09-23 10:01:37 +0200 <QNX> XMonad will use ghc to recompile, because neither "/home/stoned/.xmonad/build" nor "/home/stoned/.xmonad/stack.yaml" exists.
2022-09-23 10:01:39 +0200 <QNX> XMonad recompiling (forced).
2022-09-23 10:01:41 +0200 <QNX> xmonad: ghc: runProc: exec: does not exist (No such file or directory)y
2022-09-23 10:01:47 +0200 <QNX> They exist in ~/.config/xmoand though
2022-09-23 10:01:50 +0200 <QNX> I'm confused.
2022-09-23 10:04:37 +0200 <Lears> Some of the stuff that xmonad logs on recompile is of questionable accuracy, iirc. The issue there looks to be that it doesn't find `ghc` in your path.
2022-09-23 10:05:41 +0200 <QNX> https://xmonad.org/INSTALL.html i folloowd this, then removed distro packages
2022-09-23 10:05:49 +0200 <QNX> I did using stack
2022-09-23 10:08:40 +0200 <QNX> The ~/.cache prefix is the $XDG_CACHE_HOME directory. Note that if your xmonad configuration resides within ~/.xmonad, then the executable will also be within that directory and not in $XDG_CACHE_HOME.
2022-09-23 10:08:48 +0200 <QNX> maybe I should mv that
2022-09-23 10:10:26 +0200 <QNX> after I mv ~/.xmonad to ~/.xmonad-back, I launch new xmoand and I get this https://bpa.st/S6DQ
2022-09-23 10:10:34 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-23 10:10:48 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-09-23 10:13:41 +0200 <QNX> Could not find module β€˜Data.Default’
2022-09-23 10:13:51 +0200 <QNX> It complains about the import Data.Default line
2022-09-23 10:15:32 +0200 <Lears> You probably don't need to import that.
2022-09-23 10:18:01 +0200 <QNX> Ok
2022-09-23 10:18:04 +0200 <QNX> I took out that line
2022-09-23 10:18:10 +0200 <QNX> Now I get this https://bpa.st/BZSA
2022-09-23 10:18:40 +0200 <QNX> https://bpa.st/GDTQ <- xmonad.hs current
2022-09-23 10:19:11 +0200 <QNX> GridSelect
2022-09-23 10:19:58 +0200 <Lears> You're updating two versions, it might pay to look over the changelog.
2022-09-23 10:20:11 +0200 <QNX> What do you mean two versions?
2022-09-23 10:20:15 +0200 <QNX> From .15 to .17?
2022-09-23 10:20:21 +0200 <QNX> I see.
2022-09-23 10:20:22 +0200 <Lears> Yes. But my best bet is, replace `defaut*` with `def`.
2022-09-23 10:20:27 +0200 <QNX> I'm looking at the
2022-09-23 10:20:31 +0200 <QNX> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Actions-GridSelect.html
2022-09-23 10:21:35 +0200 <QNX> Yeah, it changed things up
2022-09-23 10:21:46 +0200 <QNX> compared .15 doc and .17 doc pages side by side
2022-09-23 10:21:59 +0200 <QNX> binding thing is changed from GSConfig soemthing to def
2022-09-23 10:26:32 +0200 <QNX> https://bpa.st/WVGA now these errors
2022-09-23 10:26:48 +0200 <QNX> One by one heh
2022-09-23 10:28:23 +0200 <QNX> Yay. I got it.
2022-09-23 10:29:32 +0200 <QNX> Lears: thank you
2022-09-23 10:33:00 +0200 <Lears> np
2022-09-23 10:33:53 +0200 <QNX> https://bpa.st/WVGA#1L30 I get an error after making this recommended change: https://bpa.st/4PAA
2022-09-23 10:35:26 +0200 <QNX> I fixed the rest of the errors
2022-09-23 10:35:59 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:a8f6:62e0:a0fa:7808)
2022-09-23 10:37:36 +0200 <Lears> Line 30 is complaining about the deprecated fullscreen evhook, not the other one.
2022-09-23 10:40:28 +0200 <Lears> Luckily, deprecations all come with handy recommendations, though not necessarily drop-in replacements. I would see what the module has to say about the suggested replacement.
2022-09-23 10:43:54 +0200 <QNX> ok thanks fixed
2022-09-23 10:44:07 +0200 <QNX> , handleEventHook = focusOnMouseMove <+> screenCornerEventHook <- took it out of here
2022-09-23 10:44:16 +0200 <QNX> xmonad $ docks $ ewmhFullscreen . ewmh $ def <- put it into here
2022-09-23 10:44:31 +0200 <QNX> Updated to .17 and no more errors in config file.
2022-09-23 10:44:34 +0200 <QNX> Brilliant.
2022-09-23 11:00:15 +0200liskin[m](~liskinmat@2001:470:69fc:105::768) (Quit: You have been kicked for being idle)
2022-09-23 11:03:49 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce)
2022-09-23 11:18:53 +0200realsun[m](~realsunma@2001:470:69fc:105::2:7b7a) ()
2022-09-23 11:57:36 +0200 <QNX> I would like to display/overlay an [x] button on corner of all windows, (not extra title bar space) so when clicked with mouse, just kills the window.
2022-09-23 11:57:52 +0200liskin[m](~liskinmat@2001:470:69fc:105::768)
2022-09-23 12:03:03 +0200 <Lears> If you mean to say that the solution via window decorations is no good, then I imagine you'd have to implement it yourself.
2022-09-23 12:05:11 +0200 <QNX> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Layout-ButtonDecoration.html
2022-09-23 12:05:16 +0200 <QNX> I'm trying this
2022-09-23 12:05:35 +0200 <QNX> Trying to figure out how to put this in the layouthook
2022-09-23 12:12:34 +0200 <QNX> Oh yeah I see some screenshots
2022-09-23 12:12:36 +0200 <QNX> No this is not what I'
2022-09-23 12:12:40 +0200 <QNX> I'd like.
2022-09-23 12:12:59 +0200 <QNX> Reason, it seems to create a whole new titlebar for each window, taking up prescious screen space.
2022-09-23 12:13:18 +0200 <QNX> I just want to kind of overlay a [x] in the corner of every window, not as a title bar button
2022-09-23 12:25:31 +0200sogens(sogens@gateway/vpn/protonvpn/sogens) (Ping timeout: 246 seconds)
2022-09-23 12:42:49 +0200 <geekosaur> you would have to write something like that yourself. XMonad.Layout.DwmStyle might help, although it doesn't do what you want right now
2022-09-23 12:46:27 +0200 <QNX> It's probably easier to put a button on my panel for xkill
2022-09-23 12:57:57 +0200 <geekosaur> but where's the fun in thsat? πŸ™‚
2022-09-23 13:04:59 +0200 <QNX> looks like I'll have to learn me a haskell for great good
2022-09-23 13:37:19 +0200fjMSX(~hypni2p@2.92.213.55) (Read error: Connection reset by peer)
2022-09-23 13:58:45 +0200fjMSX(~hypni2p@2.92.213.55)
2022-09-23 14:25:13 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de)
2022-09-23 14:28:34 +0200coin_ex_exchange(~coinexexc@2001:470:69fc:105::2:87c8) (Quit: User was banned)
2022-09-23 15:07:01 +0200benin0(~benin@183.82.24.8) (Quit: The Lounge - https://thelounge.chat)
2022-09-23 15:43:08 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet)
2022-09-23 15:43:25 +0200 <mesaoptimizer> how do I map a keybind to either switch to or open an instance of a program?
2022-09-23 15:46:27 +0200 <QNX> mesaoptimizer: I recently did this using NamedScratchPads, you don't have to float the window
2022-09-23 15:46:54 +0200 <QNX> Then you can bind a key to show the scratchpad workspace
2022-09-23 15:46:57 +0200 <QNX> If that's what you want
2022-09-23 15:47:06 +0200 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Actions-WindowGo.html#v:runO…
2022-09-23 15:47:47 +0200 <QNX> Run or raise isn't a key shortcut to the actual app though
2022-09-23 15:48:13 +0200 <QNX> But it does give you a little prompt where youcan type an app name, if it's already launched, it will switch to it, else it will run it.
2022-09-23 15:48:13 +0200fjMSX(~hypni2p@2.92.213.55) (Read error: Connection reset by peer)
2022-09-23 15:48:35 +0200 <QNX> But if you want a keyboard shortcut, that's probably with NamedScratchpads
2022-09-23 15:48:52 +0200 <QNX> I'm also noob. :)
2022-09-23 15:49:41 +0200 <geekosaur> no, because it can't auto-derive a Query Bool from a typed app name (see discussion of Firefox's name earlier in the file)
2022-09-23 15:49:45 +0200 <QNX> Wait, this run or raise isn't the same
2022-09-23 15:50:08 +0200 <geekosaur> first parameter is an app to run, second is a Query to identify a running instance window
2022-09-23 15:50:23 +0200 <QNX> There is run/raise in prompts. I mistkenly thought that
2022-09-23 15:50:36 +0200 <QNX> This is in Actions. I see.
2022-09-23 15:53:52 +0200fjMSX(~hypni2p@2.92.213.55)
2022-09-23 16:00:12 +0200 <mesaoptimizer> beautiful, thank you
2022-09-23 16:01:06 +0200 <mesaoptimizer> xmonad is probably the best experience I've had working with a software, even better than emacs. With emacs debugging configs is a pain that xmonad doesn't have.
2022-09-23 16:05:14 +0200 <Lears> I should hope so, or all our static types and purity would be in vain. Emacs config is a great terrible monster of hooks in hooks in hooks and they're all dynamic and there are no types. Just remembering it makes me shiver.
2022-09-23 16:06:31 +0200 <mesaoptimizer> Lears: you don't use emacs anymore? if so, what do you use instead?
2022-09-23 16:07:23 +0200 <Lears> I retreated to vim.
2022-09-23 16:09:06 +0200 <Lears> I gather vim-script isn't actually any better, but luckily, I find a more-or-less plain vim does everything I need.
2022-09-23 16:09:34 +0200 <Lears> (and evil-mode really doesn't)
2022-09-23 16:11:30 +0200 <mesaoptimizer> I consider vimscript strictly worse than elisp. I once spent a few months maintaining and upgrading a vim-taskwarrior fork and that convinced me I couldn't stick with vim and vimscript any longer
2022-09-23 16:12:51 +0200 <floweynt[m]> why is xmobar failing to parse <action> tags
2022-09-23 16:13:10 +0200 <QNX> Then we need an emacs and vim like editor with sane types in haskell
2022-09-23 16:13:25 +0200 <geekosaur> yi exists but is currently not maintained
2022-09-23 16:15:03 +0200 <geekosaur> floweynt[m], did you use the unsafe version of the xmobar operation (https://codeberg.org/xmobar/xmobar/src/branch/master/doc/plugins.org#headline-64)
2022-09-23 16:15:33 +0200 <geekosaur> by default xmobar rejects most tags for safety, you have to explicitly request that it honor them
2022-09-23 16:16:34 +0200 <Lears> QNX: People have tried, but it's not that easy. I tried to get into yi way back, but the design was poor and the functionality it offered was too lacking. rasa is a more likely replacement; haven't looked at that in a few years...
2022-09-23 16:17:03 +0200 <floweynt[m]> geekosaur: yeah, i think that fixed it
2022-09-23 16:28:41 +0200thunderrd(~thunderrd@183.182.111.127) (Remote host closed the connection)
2022-09-23 16:35:32 +0200uj[m](~ujmatrixo@2001:470:69fc:105::2:888f)
2022-09-23 16:36:39 +0200thunderrd(~thunderrd@183.182.111.127)
2022-09-23 17:26:50 +0200 <floweynt[m]> time to figure out "why the fuck won't xmonad float touhou project"
2022-09-23 17:27:51 +0200 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Hooks-ManageDebug.html
2022-09-23 17:46:38 +0200 <floweynt[m]> for some reason adding logLayout to ppExtras doesnt work
2022-09-23 17:46:41 +0200 <floweynt[m]> this is very strange
2022-09-23 17:47:35 +0200 <floweynt[m]> it prevents the entire status bar from updating
2022-09-23 17:48:03 +0200 <geekosaur> when I get that ot usually means there's a bug in the markup and it confuses the status bar
2022-09-23 17:48:15 +0200 <geekosaur> but in my case that's xmonad-log-applet
2022-09-23 17:48:24 +0200 <geekosaur> *it
2022-09-23 18:19:05 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2022-09-23 18:31:28 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2022-09-23 18:42:44 +0200berberman(~berberman@user/berberman)
2022-09-23 18:55:25 +0200berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2022-09-23 18:56:12 +0200berberman(~berberman@user/berberman)
2022-09-23 19:28:13 +0200Lears(~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-09-23 19:29:04 +0200[Leary](~Leary]@user/Leary/x-0910699)
2022-09-23 19:35:56 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet) (Quit: mesaoptimizer)
2022-09-23 19:36:07 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet)
2022-09-23 20:09:48 +0200gauge_(~gauge@user/gauge) (Quit: Quitting)
2022-09-23 20:10:42 +0200gauge(~gauge@user/gauge)
2022-09-23 20:21:29 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-23 20:27:19 +0200gauge(~gauge@user/gauge) (Quit: Quitting)
2022-09-23 20:28:04 +0200gauge(~gauge@user/gauge)
2022-09-23 21:20:31 +0200 <QNX> Hello. I have a need to do the following, but I can't remember how
2022-09-23 21:20:48 +0200 <QNX> I want to switch to a workspace after a doShift
2022-09-23 21:21:20 +0200 <QNX> If I doShift a window to for example, workspace 3:, then I would also like to switch to that workspace automtically
2022-09-23 21:22:15 +0200 <geekosaur> doShift "3" <> view "3"
2022-09-23 21:22:24 +0200 <geekosaur> hm, might need to reverse them
2022-09-23 21:25:52 +0200 <QNX> I got error both ways: , className =? "dolphin" --> doShift "4:FileManager" <> W.view "4:FileManager"
2022-09-23 21:26:07 +0200 <QNX> I tried W.view and also just view by itself
2022-09-23 21:26:12 +0200 <QNX> I also tried both orders
2022-09-23 21:26:48 +0200 <QNX> Variable view not in scope, perhaps I meant W. ?
2022-09-23 21:26:55 +0200 <QNX> Is the error.
2022-09-23 21:27:54 +0200 <QNX> https://hackage.haskell.org/package/xmonad-0.17.1/docs/XMonad-ManageHook.html I don't see a view function here
2022-09-23 21:30:00 +0200 <QNX> https://bbs.archlinux.org/viewtopic.php?id=66854 trying to understand this
2022-09-23 21:30:01 +0200 <geekosaur> it's in XMonad.StackSet which is what's normally imported as W
2022-09-23 21:30:17 +0200 <QNX> Yes I ahve it imported as W
2022-09-23 21:31:04 +0200 <geekosaur> oh, right, need the doF so you can't use doShift
2022-09-23 21:31:37 +0200 <geekosaur> doF (W.shift "4" <> W.view "4") -- (or W.greedyView if you prefer)
2022-09-23 21:32:56 +0200 <QNX> , className =? "dolphin" --> doF (W.shift "4:FileManager") <+> doF (W.greedyview "4:FileManager")
2022-09-23 21:33:09 +0200 <QNX> I trid this too, without luck, I got error on W.view or W.greedyview not in scope
2022-09-23 21:33:49 +0200 <QNX> import qualified XMonad.StackSet as W < I have this in there too
2022-09-23 21:34:17 +0200 <geekosaur> don't combine the doF's like that, for one; I showed it the way I did for a reason
2022-09-23 21:34:18 +0200 <QNX> I tried greedyView and I didn't get error
2022-09-23 21:34:24 +0200 <QNX> Oh sorry ok
2022-09-23 21:34:27 +0200 <QNX> I copied from the site I pasted
2022-09-23 21:34:48 +0200 <geekosaur> but it sounds like you have some other problem as view and greedyView are both definitely in XMonad.StackSet and have been since xmonad 0.1
2022-09-23 21:34:59 +0200 <QNX> I will paste my entire file
2022-09-23 21:35:20 +0200 <floweynt[m]> can you compose loggers?
2022-09-23 21:35:48 +0200 <QNX> https://bpa.st/RCRA xmonad.hs
2022-09-23 21:35:53 +0200 <geekosaur> conmpose in what sense?
2022-09-23 21:37:19 +0200 <QNX> I don't get error with W.greedyView (but I do if view is lower ase, with or without greedy)
2022-09-23 21:38:45 +0200 <geekosaur> "W.greedyView" is correct, "W.greedyview" is not. "W.view" is correct. https://hackage.haskell.org/package/xmonad-0.17.1/docs/XMonad-StackSet.html#v:view
2022-09-23 21:39:48 +0200 <QNX> I no longer have error with view or with greedyView
2022-09-23 21:39:51 +0200 <QNX> Thank you
2022-09-23 21:43:11 +0200 <floweynt[m]> <geekosaur> "conmpose in what sense?" <- concatenation
2022-09-23 21:44:34 +0200 <geekosaur> liftA2 (++) logger1 logger2
2022-09-23 21:44:53 +0200 <geekosaur> (they're `Maybe String`s)
2022-09-23 21:45:28 +0200 <QNX> So you were correct in saying that view first, then shift, and it works.
2022-09-23 21:54:36 +0200berberman(~berberman@user/berberman) (Ping timeout: 260 seconds)
2022-09-23 21:57:41 +0200 <QNX> https://bpa.st/SO4A In this bit of code, how can I consolidate these all into one line using regex type stuff like ...
2022-09-23 21:58:07 +0200 <QNX> like ("mpv" | "obs" | "vlc")
2022-09-23 21:58:19 +0200 <QNX> Instead of having to do them on each line separately
2022-09-23 21:58:40 +0200 <QNX> (or not regex) but how can I combine them into one
2022-09-23 22:02:16 +0200 <[Leary]> You could define, say: prop `oneOf` ss = prop >>= (`elem` ss)
2022-09-23 22:02:46 +0200 <[Leary]> Then you'd write: className `oneOf` ["mpv", "obs", "vlc"] --> ...
2022-09-23 22:04:39 +0200 <QNX> Where would I define the prop?
2022-09-23 22:07:32 +0200 <[Leary]> Top level is fine, or in a local where decl. Also, I don't think you should use `W.shift` in a ManageHook; that moves the focus rather than the window coming under management, and they're not always the same.
2022-09-23 22:08:40 +0200 <[Leary]> It should be better to use something like `(doF . W.view <> doShift) "4"`; not sure what geekosaur has against it.
2022-09-23 22:09:20 +0200 <QNX> https://bpa.st/VSOA#1L130
2022-09-23 22:09:24 +0200 <QNX> I did something like this
2022-09-23 22:09:48 +0200 <QNX> I'm sorry I don't know haskell language at all well
2022-09-23 22:12:24 +0200 <floweynt[m]> <geekosaur> "(they're `Maybe String`s)" <- they are X (Maybe String)..
2022-09-23 22:12:25 +0200 <floweynt[m]> s/../.../
2022-09-23 22:12:51 +0200 <geekosaur> ok, that means lifting twice, sorrt
2022-09-23 22:12:54 +0200 <geekosaur> *sorry
2022-09-23 22:16:21 +0200 <floweynt[m]> could i get an example? I'm not actually that familiar with haskell
2022-09-23 22:22:10 +0200 <geekosaur> I'm still trying to work it out myself πŸ˜•
2022-09-23 22:22:22 +0200 <[Leary]> (liftA2 . liftA2) (++)?
2022-09-23 22:22:34 +0200 <[Leary]> Or maybe just (<>).
2022-09-23 22:22:38 +0200 <[Leary]> I don't know loggers.
2022-09-23 22:23:30 +0200 <geekosaur> β€’ Couldn't match expected type β€˜X (Maybe [Char])’
2022-09-23 22:23:30 +0200 <geekosaur> with actual type β€˜(String -> String)
2022-09-23 22:23:30 +0200 <geekosaur> -> (String -> String) -> Logger’
2022-09-23 22:23:47 +0200 <geekosaur> (Logger is `X (Maybe String)`)
2022-09-23 22:24:28 +0200 <geekosaur> (<>) same error
2022-09-23 22:24:45 +0200 <geekosaur> trying to figure out how to apply it past X and Maybe
2022-09-23 22:25:34 +0200 <[Leary]> :t (liftA2 . liftA2) (++)
2022-09-23 22:25:35 +0200 <lambdabot> (Applicative f1, Applicative f2) => f1 (f2 [a]) -> f1 (f2 [a]) -> f1 (f2 [a])
2022-09-23 22:25:36 +0200 <geekosaur> oh wait, I'm using the wrong etst logger
2022-09-23 22:25:58 +0200 <floweynt[m]> I think liftM2 $ liftM2 works
2022-09-23 22:26:27 +0200 <geekosaur> *Main XMonad.Hooks.StatusBar XMonad.Util.Loggers Control.Applicative> :t (liftA2 . liftA2) (<>) logLayout XMonad.Util.Loggers.logTitle(liftA2 . liftA2) (<>) logLayout XMonad.Util.Loggers.logTitle
2022-09-23 22:26:27 +0200 <geekosaur> :: X (Maybe String)
2022-09-23 22:26:49 +0200 <geekosaur> complicated by the fact that I defined a `logTitle` in my own config that is unrelated to the one in X.U.Loggers
2022-09-23 22:26:59 +0200 <geekosaur> but didn't think to import that qualified πŸ™‚
2022-09-23 22:27:40 +0200 <geekosaur> hm, wonder where the first line split went
2022-09-23 22:28:11 +0200 <geekosaur> anyway looks like (liftA2 . liftA2) (++) should work (import Control.Applicative if necessary for liftA2)
2022-09-23 22:28:35 +0200 <geekosaur> was the first thing I tried but I chose the wrong logger and didn't read the error right, sigh
2022-09-23 22:32:25 +0200 <[Leary]> QNX: Oh, looks like I gave you a type error; that should be: prop `oneOf` ss = prop <&> (`elem` ss)
2022-09-23 22:32:35 +0200sogens(sogens@gateway/vpn/protonvpn/sogens)
2022-09-23 22:33:38 +0200 <QNX> [Leary]: https://bpa.st/Y3TQ
2022-09-23 22:34:12 +0200 <[Leary]> it's from Data.Functor
2022-09-23 22:34:22 +0200 <QNX> Ok
2022-09-23 22:34:41 +0200 <QNX> Ty
2022-09-23 22:55:52 +0200dmrz(~dmr@c-71-202-36-200.hsd1.ca.comcast.net)
2022-09-23 22:59:32 +0200 <dmrz> did xmonad ever add support for manual tiling as in the notion wm or similar?
2022-09-23 23:03:08 +0200 <geekosaur> not currently
2022-09-23 23:03:14 +0200 <geekosaur> pity, I have a use for it
2022-09-23 23:03:39 +0200 <dmrz> i didn't think so
2022-09-23 23:03:46 +0200 <dmrz> oh well
2022-09-23 23:04:55 +0200 <dmrz> it's too bad b/c xmonad & related things (e.g. waymonad) have much more active development, and i'd switch if i could
2022-09-23 23:05:21 +0200 <dmrz> it's weird how few tiling wm projects see the value in supporting manual tiling
2022-09-23 23:06:52 +0200 <dmrz> like i don't think wayland is going to start being the standard to the exclusion of x any time soon (if ever), but if it did i'd be SOL
2022-09-23 23:14:16 +0200 <[Leary]> The layout I use is kinda similar; it's written to avoid resizing windows except in ways I tell it to.
2022-09-23 23:15:29 +0200 <[Leary]> I only support four "frames" though, and they move. I don't think the approach would generalise very well.
2022-09-23 23:15:50 +0200 <QNX> https://bpa.st/MJDQ refactored file, in case you guys wanna look at it.
2022-09-23 23:16:05 +0200 <dmrz> but it doesn't actually reify layouts, right? you just tell it not to update the layout
2022-09-23 23:16:42 +0200 <geekosaur> I was trying to play with using BSP for that kind of thing but I managed to crash xmonad instead. apparently it doesn't like 30 `display`s running at once
2022-09-23 23:17:01 +0200 <geekosaur> haven't tried it since, would prefer not to crash my session again πŸ™‚
2022-09-23 23:18:55 +0200 <[Leary]> dmrz: I'm not sure I understand the question. I just implemented the logic in the layouting algorithm in such a way that window sizes are stable across certain changes like new/lost windows.
2022-09-23 23:19:26 +0200 <dmrz> in notion, layouts exist whether they have windows in them or not
2022-09-23 23:19:51 +0200 <[Leary]> They do in xmonad too.
2022-09-23 23:20:04 +0200 <geekosaur> well, they do but they dont get run
2022-09-23 23:20:22 +0200 <geekosaur> because runLayout takes a list of windows
2022-09-23 23:20:55 +0200 <geekosaur> and X.O.windows zips the resulting list of Rectangles against the window list
2022-09-23 23:21:10 +0200 <[Leary]> That's doLayout, right? runLayout always runs iirc.
2022-09-23 23:21:22 +0200 <geekosaur> I may have them swapped
2022-09-23 23:21:57 +0200 <[Leary]> The names aren't exactly helpful.
2022-09-23 23:22:40 +0200 <[Leary]> Anyway, in my particular layout, it really does hold onto four sublayouts, each of which reserves a portion of the screen regardless of whether it's given windows.
2022-09-23 23:22:44 +0200 <geekosaur> and I forgot about emptyLayout, but that at least proves that runLayout always happens
2022-09-23 23:23:39 +0200 <dmrz> [Leary]: can you modify the sublayouts regardless of whether they have windows in them?
2022-09-23 23:23:49 +0200 <[Leary]> But I have fancy expanding/centering logic that I can toggle dynamically, so it's not always wasted when empty.
2022-09-23 23:23:49 +0200 <geekosaur> it just calls emptyLayout instead of doLayout if it's Nothing instead of Just
2022-09-23 23:23:59 +0200 <[Leary]> dmrz: Yeah, I can send them any messages I want.
2022-09-23 23:24:06 +0200 <[Leary]> That's not difficult.
2022-09-23 23:24:49 +0200 <dmrz> but this is something you personally hacked together, not like a contrib-grade layout or similar?
2022-09-23 23:25:19 +0200 <geekosaur> most of contrib is personally hacked together stuff πŸ™‚
2022-09-23 23:25:37 +0200 <[Leary]> Yeah, a fair bit of it by me, too.
2022-09-23 23:25:39 +0200 <dmrz> sure, i know code is written by humans tooo
2022-09-23 23:26:02 +0200 <[Leary]> Well, the layout could go in contrib, but I'd need to clean it up. And it's /big/.
2022-09-23 23:26:34 +0200 <dmrz> what i'm getting at is: i'm trying to guesstimate out how much effort it will take me to verify whether xmonad & this layout actually work the way i want them too or not
2022-09-23 23:26:57 +0200 <dmrz> and then if they do, how much extra work it would take on top of that to turn them into the window manager i actually want
2022-09-23 23:28:10 +0200 <dmrz> so if this layout that [Leary] refers too was just one of the standard xmonad layouts, i would expect that i could start it up in something like xnest & figure out pretty quickly if it was what i was hoping for or not
2022-09-23 23:28:32 +0200 <dmrz> since it isn't...i mean, i used to know how to write haskell, but it's been a while
2022-09-23 23:28:42 +0200 <dmrz> does that make sense?
2022-09-23 23:30:50 +0200 <[Leary]> I mean, if always having exactly four frames is fine with you, then I think there's a reasonable chance it approaches what you want, since it's highly optimised and over-featured for that niche.
2022-09-23 23:31:00 +0200 <[Leary]> But honestly I figured that would be a deal breaker.
2022-09-23 23:32:09 +0200 <dmrz> literally that would be a dealbreaker, but i sort of assumed i'd have to do some work anyway
2022-09-23 23:32:31 +0200 <dmrz> basically my real question is: can i turn xmonad into notion?
2022-09-23 23:34:01 +0200 <[Leary]> I'm gonna say you can, if you have the cojones to write a monster layout, estimated 2kloc.
2022-09-23 23:34:05 +0200 <dmrz> i assume i'd have to do some work to make that happen, but it's a question of whether it means adding a bunch of hacks onto an existing custom layout, or actually redesigning how layouts in xmonad work in general
2022-09-23 23:34:49 +0200 <dmrz> i usually write code with my fingers, since i find that faster, but i suppose i could do it other ways if necessary
2022-09-23 23:35:41 +0200 <dmrz> i hope my keyboard doesn't get too dirty
2022-09-23 23:38:10 +0200 <dmrz> my real concern is what geekosaur said about "runLayout takes a list of windows" which conforms to my suspicion that what i actually want to do won't really work without changing that
2022-09-23 23:38:46 +0200 <geekosaur> as I pointed out afterward, there's also an emptyLayout method that's run if there's no list of windows
2022-09-23 23:38:54 +0200 <geekosaur> so you can do things in there
2022-09-23 23:39:17 +0200 <[Leary]> I don't fully understand the not-ion deal, but I'm guessing it would come down to a kind of rose tree, where you have window leaves and layout branches. You'd need to duplicate the stack, storing the windows within your structure.
2022-09-23 23:39:27 +0200 <geekosaur> runLayout is always run and by default calls doLayout if there are windows and emptyLayout otherwise
2022-09-23 23:39:47 +0200 <[Leary]> The most difficult thing is dealing with the fact that windows are being created and destroyed while you (the layout) aren't looking.
2022-09-23 23:40:30 +0200 <[Leary]> You need to figure out how to insert and delete them from the structure without ruining your properties.
2022-09-23 23:42:15 +0200 <[Leary]> But that can be simplified if you fill all the appropriate hooks and wrap all appropriate actions, forcing them to notify the layout when you kill, move or open windows.
2022-09-23 23:44:25 +0200 <geekosaur> (or hook the handleEventHook to look for the appropriate events)
2022-09-23 23:44:58 +0200 <geekosaur> although that won't catch move between two hidden workspaces, but how common is that?
2022-09-23 23:45:04 +0200 <dmrz> the "notion deal" is that the fact that you have 3 panes in some particular orientation has nothing to do with how many windows you have
2022-09-23 23:45:59 +0200 <dmrz> you can put windows into those panes or take them out, and putting multiple windows into a pane causes them to follow a tabbed layout
2022-09-23 23:47:09 +0200 <dmrz> so the tabbed sublayouts should probably work exactly how they normally do in xmonad
2022-09-23 23:47:56 +0200 <dmrz> but the primary layout should not have anything to do with the number of windows
2022-09-23 23:49:22 +0200 <dmrz> and of course you can take one of those primary layout panes and split it in half, and then the two child panes are now both tabbed sublayouts
2022-09-23 23:50:49 +0200 <[Leary]> Rose tree with tabbed leaves and BSP branches ... wait, can't you already do that with sublayouts? <.<
2022-09-23 23:52:16 +0200 <dmrz> i'm not totally sure
2022-09-23 23:52:40 +0200 <dmrz> you definitely couldn't many years ago when i switched to notion, but i have no idea what xmonad has done since then
2022-09-23 23:58:28 +0200berberman(~berberman@user/berberman)