Home liberachat/#xmonad: Logs Calendar

Logs on 2021-10-17 (liberachat/#xmonad)

00:00:36 <geekosaur> the way the strut stuff is designed, you have to have the layout modifier there. but you're telling it to avoid struts nowhere
00:01:00 <geekosaur> this also means you can mod-b (or whatever) to turn them on temporarily
00:01:17 <davve> I see
00:01:20 × mestre quits (~mestre@191.177.175.57) (Quit: leaving)
00:02:44 <geekosaur> anyway I'd put the stuff I want to apply to the tiled layouts in tiled (none of them will be affected by Mirror so that's not an issue) and put the other ones (noBorders, avoidStrutsOn []) on Full
00:05:04 <geekosaur> hm, actually I wonder if that's true. avoidStruts might do something weird inside Mirror
00:05:44 s joins (~s@24.16.46.64)
00:05:57 × s quits (~s@24.16.46.64) (Client Quit)
00:39:25 × tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
00:39:55 tomsmeding joins (~tomsmedin@tomsmeding.com)
00:52:39 allbery_b joins (~geekosaur@xmonad/geekosaur)
00:52:39 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
00:52:42 allbery_b is now known as geekosaur
02:02:47 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 264 seconds)
02:10:43 × catman quits (~catman@user/catman) (Quit: WeeChat 3.4-dev)
02:15:29 catman joins (~catman@user/catman)
02:23:59 banc joins (banc@gateway/vpn/airvpn/banc)
02:28:29 Hash is now known as HelloNewman
02:36:05 × catman quits (~catman@user/catman) (Remote host closed the connection)
04:49:01 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds)
05:38:58 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
05:53:05 geekosaur joins (~geekosaur@xmonad/geekosaur)
06:18:06 benin joins (~benin@183.82.25.86)
07:24:59 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
07:44:13 wonko joins (~wjc@62.115.229.50)
08:17:48 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:48 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:51 allbery_b is now known as geekosaur
08:34:29 humky joins (~humky@user/humky)
08:55:39 mc47 joins (~mc47@xmonad/TheMC47)
09:08:58 seschwar joins (~seschwar@user/seschwar)
09:14:30 alternateved joins (~user@194.177.28.164)
09:26:11 × benin quits (~benin@183.82.25.86) (Ping timeout: 264 seconds)
09:28:09 benin joins (~benin@183.82.25.86)
09:34:10 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 252 seconds)
10:37:25 × Solitary quits (~Solitary@user/solitary) (Ping timeout: 252 seconds)
10:38:43 Solitary joins (~Solitary@user/solitary)
10:48:09 td_ joins (~td@94.134.91.73)
11:12:23 × alternateved quits (~user@194.177.28.164) (Ping timeout: 264 seconds)
11:22:36 liskin has just finished writing the first draft of XMonad.Util.EWMH module \o/
11:27:22 × humky quits (~humky@user/humky) (Quit: Leaving)
11:29:07 humky joins (~humky@user/humky)
11:30:10 <Solid> /o/ \o/ \o\
11:31:31 <geekosaur> w00t
12:02:39 mestre joins (~mestre@191.177.175.57)
12:10:11 <FOSSHuman[m]> > * <@liskin:libera.chat> has just finished writing the first draft of XMonad.Util.EWMH module \o/
12:10:11 <FOSSHuman[m]> :))
12:10:14 <lambdabot> <hint>:1:1: error: parse error on input ‘*’
12:17:07 <FOSSHuman[m]> <liskin> "oh, that may not be an overrider..." <- Tried this out today and it worked in combination with the Util.Hacks trayAbovePanelEventHook...
12:17:14 <FOSSHuman[m]> * out today in the manageHook of my config and it
12:33:26 <FOSSHuman[m]> <liskin> "oh, that may not be an overrider..." <- Just added a manageHook with doLower and stalonetray className matching to my config and it seems to work for now, as a temporary solution...
12:34:26 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
12:40:05 <FOSSHuman[m]> * className matching and Util.Hacks trayAbovePanelEventHook to my
12:46:03 <liskin> FOSSHuman[m]: good
13:31:27 alternateved joins (~user@194.177.28.171)
14:33:46 <mc47> liskin, awesome!
14:39:13 jonahgs joins (~jonahgs@c-73-9-97-169.hsd1.il.comcast.net)
14:49:51 × jonahgs quits (~jonahgs@c-73-9-97-169.hsd1.il.comcast.net) (Quit: Leaving)
14:51:17 <liskin> geekosaur: do you happen to know what exactly is meant by "hints" in the specification for _NET_SUPPORTED (https://specifications.freedesktop.org/wm-spec/latest/ar01s03.html#idm45623294106896)?
14:52:17 <liskin> like e.g. with _NET_NUMBER_OF_DESKTOPS (https://specifications.freedesktop.org/wm-spec/latest/ar01s03.html#idm45623294103328), does having _NET_NUMBER_OF_DESKTOPS in _NET_SUPPORTED mean the WM supports both the property and the client message?
14:52:47 <geekosaur> it pretty much tells you; you're supposed to liust any EWMH atoms you support (and their parents, as shown)
14:54:29 <geekosaur> basically anything named in the ICCCM, which EWMH builds upon, is a hint. window managers are free to ignore or interpret the hints as they see fit, and clients must accept it
14:55:43 <geekosaur> it means both, but note "The Window Manager is free to honor or reject this request"
14:56:32 <liskin> so if we "reject" it by simply not having any code to handle it, that means we support it, and we should list _NET_NUMBER_OF_DESKTOPS in _NET_SUPPORTED, which we haven't for years?
14:56:33 <geekosaur> so if you list it in _NET_SUPPORTED it doesn't actually claim you will do anything with the desktop message
14:57:57 <geekosaur> right. the spec tells us what we SHOULD/MUST do *if* we respond to it, but doesn't require us to support it even if we advertise it. this is admittedly something of a weakness in EWMH, but then it gets many things related to pager / WM communication fairly wrong
14:59:07 <liskin> okay, thx :-)
14:59:28 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:59:53 <liskin> (I probably shouldn't waste much time on this, as we haven't even had _NET_WM_STATE_DEMANDS_ATTENTION for all those years and only last month someone complained)
15:01:10 geekosaur joins (~geekosaur@xmonad/geekosaur)
15:01:17 <geekosaur> see for example _NET_WM_STATE_SKIP_TASKBAR which is supposed to be set in _NET_SUPPORTED and owned by _NET_WM_STATE, but _NET_SUPPORTED and _NET_WM_STATE belong to the WM while _NET_WM_STATE_SKIP_TASKBAR belongs to the taskbar
15:01:38 <geekosaur> EWMH is a cruddy hacked-up mess
15:02:58 <liskin> well a decent WM surely has its own integrated taskbar!
15:04:22 <liskin> and in our case, _NET_WM_STATE_SKIP_TASKBAR should actually be interpreted by X.H.StatusBar.PP :-)
15:05:05 <liskin> (and we can now, indeed, have X.H.StatusBar announce its support for _NET_WM_STATE_SKIP_TASKBAR, if we wanted to do something like that)
15:05:23 <liskin> anyway, back to coding :-)
15:07:16 <geekosaur> I'm also thinking of my X.U.NoTaskbar which should really check first :)
15:09:57 <geekosaur> oh, and PP cares about _SKIP_PAGER not _SKIP_TASKBAR :)
15:11:06 <liskin> uh, does it? I'm grepping for SKIP and only finding X.U.NoTaskbar
15:11:27 <liskin> oh, you probably meant "should care, if anything"
15:12:14 <liskin> (anyway, my mockery about decent WMs having all that integrated still applies :-))
15:12:31 <geekosaur> yeh
15:13:13 <geekosaur> suppose they don't consider marco a decent WM since it offloads that to applets in mate-panel…
15:24:08 benin5 joins (~benin@183.82.25.86)
15:27:41 × benin quits (~benin@183.82.25.86) (Ping timeout: 264 seconds)
15:27:41 benin5 is now known as benin
15:37:14 <liskin> jakefromstatefar: https://github.com/xmonad/xmonad-contrib/blob/fa3536b40bc121b6cc724ee393b14b7db44db890/XMonad/Hooks/EwmhDesktops.hs#L186-L191 is O(n²) with n being the total number of windows across all workspaces so this probably contributes to the slowness somehow (still, one should start with a profiler, not by optimizing random bits of code…)
15:37:53 HelloNewman is now known as Hash
15:39:48 <Solid> I mean, anything with nub in it is technically O(n^2) but, as we found out, up until 15 or so windows this is faster than nubOrd and friends :)
15:41:20 <geekosaur> people always look at the big-O and forget the constant factors actually matter
16:13:04 <liskin> oh well, time for stack build criterion I guess :-)
16:13:37 <liskin> (nub [1..10000] takes over a second here in ghci, but a hundred might very well be under a millisec, true)
16:14:22 <geekosaur> if someone has 10000 windows, they have bigger problems than how xmonad will deal with them :)
16:18:55 <liskin> okay, silly me, nub [1..100] takes 70 μs; nub [1..1000] takes 7 ms
16:19:22 <liskin> none of that is in the realm of being perceptible by contemporary humans with contemporary personal computers
16:20:02 <geekosaur> even over a second is dubious; consider how long it'd take a human to mod-shift-C 10000 windows
16:20:21 <geekosaur> 20 seconds, we have a problem. 1s, not sure we do
16:20:48 <liskin> well I didn't mean anyone might actually have 10k windows
16:21:11 <liskin> it's just the first number for which length (nub [1..n]) took noticeable time in ghci :-)
16:21:20 <liskin> (first power of 10, to be precise)
16:22:03 liskin is so silly he really did decide to benchmark stuff by looking at how long it feels to eval in ghci
17:51:35 <Solid> :D
17:53:43 <Solid> I doubt it takes anywhere near as long compiled
17:54:01 <Solid> (ghci really is quite slow)
17:54:53 <geekosaur> hm. has anyone actually looked at the Spiral layout to see if it's doing something really stupid?
17:55:15 <geekosaur> since iirc that was the one cited as being slow with 20 windows
17:55:59 <geekosaur> (personally I consider Spiral a useless demo layout)
17:57:24 <geekosaur> also perhaps this should reuse Direction2D rather than define its own
17:57:46 <liskin> Solid: hm, but nub comes from base, it's not being interpreted, is it?
17:58:06 <geekosaur> mm, maybe not, UDLR is different from NSEW
17:58:27 <liskin> that being said, compiled with -O2 and :: Int, nub [1..1000] takes 2.3 ms, which is not an order of magnitude faster, but it's more than twice as fast
17:58:29 <liskin> strange
17:58:48 <geekosaur> I expect t's fusing
17:59:17 <geekosaur> nub (enumFromTo 1 1000)
17:59:55 <liskin> yeah, that might be it, without -O2 it's very close to the number I get in ghci
18:00:42 <Solid> well the first thing I can see in spiral is that it uses a fibonacci implementation that has a space leak :)
18:00:54 <Solid> but again the number are so small that it this will never matter
18:10:16 catman joins (~catman@user/catman)
18:32:48 × electr0n quits (~electr0n@about/security/founder/electr0n) (Quit: WeeChat 3.3)
18:33:10 × benin quits (~benin@183.82.25.86) (Ping timeout: 252 seconds)
18:45:09 × catman quits (~catman@user/catman) (Quit: WeeChat 3.4-dev)
18:55:26 catman joins (~catman@user/catman)
19:14:16 × catman quits (~catman@user/catman) (Quit: WeeChat 3.4-dev)
19:27:15 catman joins (~catman@user/catman)
19:46:17 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
19:59:31 × catman quits (~catman@user/catman) (Ping timeout: 252 seconds)
20:00:20 catman joins (~catman@user/catman)
20:06:55 <jakefromstatefar> <geekosaur> "since iirc that was the one..." <- No, it was accordion that was slow
20:11:12 <jakefromstatefar> I think (important preface) that it's the quick resizing of so many windows (in conjunction with modern picom's stupidity)
20:13:14 <jakefromstatefar> ---
20:13:14 <jakefromstatefar> Is there a way to completely remove specified windows, that are otherwise `ignored`?
20:19:14 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:39:55 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds)
21:31:35 <geekosaur> I don't understand the question. xmonad should unmap any window that's not visible, and xmonad core knows nothing whatsoever about markBoring.
21:32:11 <geekosaur> if you mean doIgnore-d, xmonad neither maps nor unmaps thoise, nor does anything else with them; it's up to their owning app to manage them
21:33:08 <geekosaur> hm, actually with my compton settings I bet 20 (mapped) windows would be slow as well
21:33:24 <geekosaur> mostly because of fading
21:43:25 cjb joins (~cjb@user/cjb)
21:46:35 <jakefromstatefar> It's unrelated to the prior discussion.
21:47:05 <jakefromstatefar> I'm just wondering if there's a way to override ignored windows, so that under certain criteria, they're never displayed at all.
21:48:50 <liskin> jakefromstatefar: https://xmonad.github.io/xmonad-docs/xmonad-contrib-0.16.999/XMonad-Hooks-ManageHelpers.html#v:doHideIgnore
21:57:34 <geekosaur> "under certain criteria" seems like a problem, since there'd be no way to get them back without the app's active involvement
21:59:40 <liskin> xdotool windowmap might help?
22:00:13 <geekosaur> mm, maybe
22:01:04 <geekosaur> as long as it's not override_redirect, where that might confuse the app since it expects to fully manage its own window
22:04:15 × humky quits (~humky@user/humky) (Quit: Leaving)
22:24:10 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
22:27:39 × seschwar quits (~seschwar@user/seschwar) (Quit: :wq)
22:43:33 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
22:50:40 mestre joins (~mestre@191.177.175.57)
23:05:27 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
23:07:33 humky joins (~humky@user/humky)
23:13:46 × humky quits (~humky@user/humky) (Quit: Leaving)
23:17:38 humky joins (~humky@user/humky)
23:22:08 × Nosrep quits (~archbox@user/nosrep) (Quit: WeeChat 3.3)
23:30:10 × alternateved quits (~user@194.177.28.171) (Ping timeout: 252 seconds)

All times are in UTC on 2021-10-17.