2021/11/19

2021-11-19 00:15:59 +0100catman(~catman@user/catman) (Ping timeout: 264 seconds)
2021-11-19 00:17:36 +0100catman(~catman@user/catman)
2021-11-19 00:22:33 +0100 <liskin> Yeah why&fix is a good outline. If you wanted to learn something from this you might install old Arch to a VM and then upgrade and capture the error messages but if you just want to make something useful and then move on to another important thing then you can just make a rough sketch of an explanation and ask someone who knows the details to fill those details.
2021-11-19 00:23:36 +0100 <liskin> I'd suggest creating a discussion topic in the Q&A section, and then submitting an answer, and iterating from there.
2021-11-19 00:25:02 +0100 <liskin> Kind of like stackoverflow, although here we don't have the option to let people suggest edits to the question, which is unfortunate but probably not a big deal at our scale
2021-11-19 00:27:43 +0100 <liskin> The more I think about this the more I wish we could have something like stackoverflow, where people collaborate on both the questions and the answers. With Github discussions we have neither, but at least people can submit refined answers. With reddit, we have that too but discoverability is shit.
2021-11-19 00:28:48 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-19 00:29:13 +0100 <liskin> Which results in the same questions being asked again and again
2021-11-19 00:37:35 +0100Vermoot(~vermoot@89-158-106-112.rev.numericable.fr) (Ping timeout: 264 seconds)
2021-11-19 00:37:51 +0100seschwar(~seschwar@user/seschwar) (Quit: :wq)
2021-11-19 01:13:09 +0100 <Ocelot> Yeah.
2021-11-19 01:13:47 +0100 <Ocelot> What exactly do you mean by discoverability being shit on Reddit?
2021-11-19 01:15:07 +0100 <Ocelot> Is it that people have a hard time finding the subreddit itself, or…?
2021-11-19 01:16:40 +0100 <Ocelot> I'll be the first to say that Reddit's built in search feature is an absolute travesty, if that's what you mean.
2021-11-19 01:19:24 +0100 <Ocelot> I swear: it omits the majority of exact matches for no obvious reason, constantly, and does so at random.
2021-11-19 01:19:58 +0100obimod(~obimod@gateway/vpn/pia/obimod)
2021-11-19 01:25:05 +0100 <liskin> I mean that people don't even think about looking for existing answers, they just ask new ones.
2021-11-19 01:25:41 +0100 <Ocelot> Yeah, I could see that.
2021-11-19 01:25:52 +0100 <liskin> And reddit actively discourages from participating in old discussions, they're locked and you can't comment any further.
2021-11-19 01:26:32 +0100 <liskin> That's the exact opposite of what you want from an FAQ.
2021-11-19 01:35:23 +0100 <Ocelot> I don't think it's like that anymore, at least from what I've seen. As of the last ~month, I've been able to vote on posts and comments which are several years old. I don't know why, but I don't run any browser extensions in order to allow that (plus, what I just said applies to both desktop and mobile; I also doubt that writing a browser extension for the purpose of bypassing Reddit in order to do that illegitimately,
2021-11-19 01:35:23 +0100 <Ocelot> would even be very easy, anyway—if possible at all). If I had to guess, Reddit deliberately removed that limitation themselves, for whatever reason.
2021-11-19 01:43:13 +0100 <liskin> Hm, interesting.
2021-11-19 02:30:28 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2021-11-19 02:49:25 +0100 <Ocelot> So—speaking of Reddit—somewhere between a few days and a week ago, I copied and pasted the first ten pages of r/xmonad, sorted by Hot, and just started searching through it to try to figure out which words came up most often in titles phrased as questions. I honestly don't remember the exact number, but the most questions by far were concerning the word "xmobar"… So what questions are asked most frequently
2021-11-19 02:49:25 +0100 <Ocelot> about xmobar, and what are the solutions to those problems?
2021-11-19 03:37:17 +0100SpiderPig(~matt@047-132-233-190.res.spectrum.com) (Quit: leaving)
2021-11-19 03:51:18 +0100 <jakeStateless-Fa> <liskin> "And reddit actively discourages..." <- I think that's a feature available to moderators.
2021-11-19 03:53:04 +0100 <jakeStateless-Fa> Is there any benefit to using `main = xmonad . otherStuff . docks . ewmh $ def` over `main = xmonad $ otherStuff $ docks $ ewmh def`?
2021-11-19 04:00:28 +0100 <jakeStateless-Fa> Also, not that it matters much, but I had `~?` defined as something slightly different than what's in `manageHooks`. Kind of annoying that I had to hide that in the import. Again, not a big deal.
2021-11-19 04:01:06 +0100 <jakeStateless-Fa> s/manageHooks/X.H.ManageHelpers/
2021-11-19 04:02:44 +0100banc(banc@gateway/vpn/airvpn/banc) (Ping timeout: 256 seconds)
2021-11-19 04:04:36 +0100steve_(~steve@ool-182c2b80.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-11-19 04:21:44 +0100banc(banc@gateway/vpn/airvpn/banc)
2021-11-19 04:36:20 +0100 <jakeStateless-Fa> Second question I'll likely have to wait until the morning to get an answer for: How tf does one use `shiftToSame`?
2021-11-19 04:36:38 +0100 <jakeStateless-Fa> In particular, I'd like for all web browsers to shift to the workspace they were opened on initially.
2021-11-19 04:36:54 +0100 <jakeStateless-Fa> e.g firefox, librewolf, and brave
2021-11-19 04:37:21 +0100 <jakeStateless-Fa> err, not opened on initially, just group all new ones to the same ws as the others.
2021-11-19 04:48:21 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net)
2021-11-19 04:53:49 +0100td_(~td@muedsl-82-207-238-143.citykom.de) (Ping timeout: 250 seconds)
2021-11-19 04:55:45 +0100td_(~td@muedsl-82-207-238-169.citykom.de)
2021-11-19 05:50:33 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513) (Quit: my dad's not a phone!)
2021-11-19 05:51:38 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513)
2021-11-19 06:21:34 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2021-11-19 06:41:02 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513) (Ping timeout: 240 seconds)
2021-11-19 06:44:43 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net)
2021-11-19 07:24:17 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-19 07:43:33 +0100qbt(~qbt@user/edun)
2021-11-19 08:16:35 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-11-19 08:26:42 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-19 08:28:46 +0100qbt(~qbt@user/edun) (Quit: Leaving.)
2021-11-19 08:35:00 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-19 08:36:56 +0100 <Solid> liskin: it's a good question
2021-11-19 08:37:57 +0100 <Solid> I was already only pseudonymous tbh (e.g., I used a library that I had written under gitlab/slotThe and that no one else uses in a project involving my real name); I reckon someone with enough motivation could've easily found out
2021-11-19 08:38:22 +0100 <Solid> plus, emacs told me to do it and I couldn't remember writing that agenda entry at all
2021-11-19 08:38:30 +0100 <Solid> must've been a long time coming, or something :P
2021-11-19 08:42:39 +0100 <Solid> jakeStateless-Fa | Is there any benefit to using ... << no, if you're not doing something point-free these are very much the same
2021-11-19 08:44:47 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-11-19 09:22:10 +0100cfricke(~cfricke@user/cfricke)
2021-11-19 09:33:16 +0100 <FOSSHuman[m]> Hello everyone, I have been having an issue where workspace 1 disappears when switching to a project workspace, I don't know why this is happening, could someone help?? It is a very strange issue...
2021-11-19 09:33:23 +0100mvk(~mvk@2607:fea8:5cc3:e900::df92) (Ping timeout: 264 seconds)
2021-11-19 09:33:39 +0100 <FOSSHuman[m]> On recompile workspace 1 is brought back though
2021-11-19 09:34:14 +0100banc(banc@gateway/vpn/airvpn/banc) (Ping timeout: 256 seconds)
2021-11-19 09:35:19 +0100Vermoot(~vermoot@89-158-106-112.rev.numericable.fr)
2021-11-19 09:45:54 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-19 10:01:57 +0100 <FOSSHuman[m]> It only happens occasionally though, but it is very annoying..
2021-11-19 10:17:33 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-11-19 10:17:33 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-11-19 10:17:36 +0100allbery_bgeekosaur
2021-11-19 10:21:39 +0100steve_(~steve@ool-182c2b80.dyn.optonline.net)
2021-11-19 11:01:14 +0100qbt(~qbt@user/edun)
2021-11-19 12:17:18 +0100dschrempf(~dominik@62.240.134.78)
2021-11-19 12:31:14 +0100 <lb9di> using one of the dynamic workspaces modules?
2021-11-19 12:33:46 +0100 <geekosaur> jakeStateless-Fa, browsers actively make it difficult to do that :( (although it's not really their fault, they're doing something entirely sensible but difficult to reconcile with how X11 works)
2021-11-19 12:34:46 +0100 <geekosaur> it'd be not so different from how SpawnOn works except we'd have to save the _NET_WM_PID and reuse it the next time a matching window opened
2021-11-19 12:35:24 +0100 <geekosaur> and with the possibility for false matches because we'd never know if the background process closed
2021-11-19 12:40:38 +0100 <FOSSHuman[m]> <lb9di> "using one of the dynamic..." <- dynamicProjects
2021-11-19 12:41:06 +0100 <FOSSHuman[m]> It is like workspaces, but you can spawn applications when you switch to them
2021-11-19 12:45:19 +0100 <geekosaur> that one shouldn't matter, it's not capable of deleting workspaces on the fly, just spawning stuff on them
2021-11-19 12:48:19 +0100banc(banc@gateway/vpn/airvpn/banc)
2021-11-19 12:49:13 +0100 <geekosaur> although it can rename workspaces, hm. and then the original set of workspaces would be recreated on mod-q
2021-11-19 13:13:34 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513)
2021-11-19 13:17:39 +0100lb9di(~Urist@archlinux/op/MrElendig) (Quit: 404 human not found)
2021-11-19 13:18:42 +0100MrElendig(~Urist@archlinux/op/MrElendig)
2021-11-19 13:28:12 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-19 13:30:04 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-19 13:58:28 +0100PyerineVanbolineMexicanCatboy[m]
2021-11-19 14:10:50 +0100qbt(~qbt@user/edun) (Quit: Leaving.)
2021-11-19 14:16:04 +0100 <jakeStateless-Fa> <geekosaur> "jake :: Stateless -> Farm..." <- I know, but, what of using shiftToSame? That one doesn't have an example, and I was unable to get anything working.
2021-11-19 14:17:35 +0100 <jakeStateless-Fa> With that, I could at least try to keep them together. Also: I was looking to use matching class so long as they were in a list of browsers names not NET_WM_PID.
2021-11-19 14:22:22 +0100 <geekosaur> the sad thing about browser windows is they don't have reliable className or appName
2021-11-19 14:26:11 +0100 <geekosaur> in particular, appName has an annoying tendency to be a uuid, specifically of whatever browser app (possibly a built-in one) runs on a new tab/window
2021-11-19 14:28:35 +0100 <jakeStateless-Fa> ok, but - how do I use shiftToSame? My browser window spawning works ok, do maybe I could get something running with that...
2021-11-19 14:29:56 +0100 <geekosaur> mm, I wonder what happens with shiftToSame' when no browser windows are open yet
2021-11-19 14:30:10 +0100 <geekosaur> what happens when you try to use shiftToSame? is it a type error?
2021-11-19 14:33:53 +0100 <jakeStateless-Fa> Yes, I was trying `shiftToSame className`. I didn't try PID, though. I'm on my phone RN, I'll be able to try some more things in a bit.
2021-11-19 14:33:58 +0100dschrempf(~dominik@62.240.134.78) (Ping timeout: 260 seconds)
2021-11-19 14:38:22 +0100dschrempf(~dominik@62.240.134.78)
2021-11-19 14:39:32 +0100 <geekosaur> so part of the problem is you need to be using composeOne, not compose All, with shiftToSame. they also provide shiftToSame' for normal manageHooks
2021-11-19 14:40:20 +0100 <geekosaur> the other part is it's looking for a query which produces a Maybe (which the composeOne queries do, but the standard ones don't; those produce Bool)
2021-11-19 14:48:44 +0100dschrempf(~dominik@62.240.134.78) (Ping timeout: 256 seconds)
2021-11-19 14:48:46 +0100 <geekosaur> hm, I'm wondering how best to deal with this. the problem is you can't just wrap the query in something like -?>> because it doesn't just want a Maybe of some kind, it wants a Maybe String containing the matched className. this means a custom (not difficult, but custom) query
2021-11-19 14:49:57 +0100 <jakeStateless-Fa> Yeah, I put it in a composeOne, and I also tried -?>
2021-11-19 14:50:03 +0100 <jakeStateless-Fa> to no avail
2021-11-19 14:53:14 +0100 <geekosaur> oh right, className does produce the String. but it needs to be a Maybe String
2021-11-19 14:53:32 +0100 <geekosaur> (fmap Just className)
2021-11-19 15:00:12 +0100 <jakeStateless-Fa> so... `composeOne [ (fmap Just className) -?> shiftToSame {- ... -} ]`?
2021-11-19 15:04:57 +0100 <geekosaur> I don't think you want to use composeOne here, unless you're already using it for other reasons
2021-11-19 15:05:12 +0100 <geekosaur> but the fmap thing is for the parameter to shiftToSame
2021-11-19 15:05:24 +0100 <geekosaur> shiftToSame (fmap Just className)
2021-11-19 15:06:25 +0100 <geekosaur> in fact what I think you want is something along the lines of: className =? "Firefox" --> shiftToSame (fmap Just className)
2021-11-19 15:06:44 +0100 <geekosaur> (also I think I just ran across a documentation bug…)
2021-11-19 15:29:13 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513) (Quit: my dad's not a phone!)
2021-11-19 15:50:02 +0100 <jakeStateless-Fa> Elaborate...
2021-11-19 15:50:50 +0100 <jakeStateless-Fa> Oh, and I noticed a typo in the documentation - `~?` is `isInfixOf` - not `isSuffixOf`.
2021-11-19 15:52:09 +0100MexicanCatboy[m]Catboy[m]
2021-11-19 16:04:46 +0100 <jakeStateless-Fa> geekosaur: `(className =? "Alacritty") --> shiftToSame (fmap Just className)` isn't working, nor was the firefox variant
2021-11-19 16:07:44 +0100 <geekosaur> sorry that needs to be shiftToSame'
2021-11-19 16:08:06 +0100 <geekosaur> (the ' in that position is pronounced "prime". haskell being mathy)
2021-11-19 16:08:36 +0100 <jakeStateless-Fa> ^ knew that - I thought it pretty nifty first time I saw that.
2021-11-19 16:08:38 +0100 <geekosaur> and yeh, I noticed that doc bug too. probably I'll just patch it in place because it's too small to warrant a PR
2021-11-19 16:10:13 +0100 <jakeStateless-Fa> Using `...'` returned this error: `Expected type: Query (Maybe (Endo WindowSet)) Actual type: Query (Endo WindowSet)`
2021-11-19 16:10:24 +0100 <jakeStateless-Fa> It's in a composeOne hook, should it not be?
2021-11-19 16:10:50 +0100 <jakeStateless-Fa> I checked the other predicates, none of the other conditions should interfere.
2021-11-19 16:11:01 +0100 <geekosaur> doc bug already fixed in mater. maybe I noticed it before
2021-11-19 16:11:31 +0100 <geekosaur> did you want to be using composeOne?
2021-11-19 16:11:53 +0100 <geekosaur> if you did then it has to be with composeOne's combinators instead of composeAll's
2021-11-19 16:12:04 +0100 <jakeStateless-Fa> Yes, I'm using a composeOne, and a composeAll, so I just placed this condition into my composeOne.
2021-11-19 16:12:44 +0100 <jakeStateless-Fa> I mean, the thing you gave initially compiled fine.
2021-11-19 16:12:49 +0100 <jakeStateless-Fa> But it didn't seem to work
2021-11-19 16:14:37 +0100 <geekosaur> className hrm. code looked like it should work as long as everything is setting the right className
2021-11-19 16:17:58 +0100 <jakeStateless-Fa> Hmm... `className =? "Alacritty" -?> doCenterFloat` isn't working either... weird, I'll investigate
2021-11-19 16:19:36 +0100 <geekosaur> is some earlier maybeManageHook matching instead?
2021-11-19 16:19:47 +0100seschwar(~seschwar@user/seschwar)
2021-11-19 16:20:06 +0100 <geekosaur> I mean, that's kinda what you intend with composeOne, but if you don't have things ordered right and something else matches, you may have a problem
2021-11-19 16:21:22 +0100jakeStateless-Fauploaded an image: (46KiB) < https://libera.ems.host/_matrix/media/r0/download/jupiterbroadcasting.com/oZTtwrYSDeqCqgErZyqrwMWT… >
2021-11-19 16:21:48 +0100 <jakeStateless-Fa> Adding it to `composeAll` worked... (with the prime variant)
2021-11-19 16:21:51 +0100 <jakeStateless-Fa> Very weird
2021-11-19 16:22:27 +0100 <jakeStateless-Fa> There's a bit of jargon in that screenshot, but it's fairly straightforward, and looks for the most part, as it seems.
2021-11-19 16:24:03 +0100 <geekosaur> yeh, didn't look to me like something else should have been matching, but the symptoms do
2021-11-19 16:25:59 +0100geekosauris now thinking about finer grained managteHook debugging, but that would probably require custom versions of composeOne and composeAll
2021-11-19 16:26:47 +0100 <jakeStateless-Fa> The weird part is, none of my windows (that shouldn't be) are being fullscreen-ed, nor lowered&ignored, nor centerfloat-ed.
2021-11-19 16:26:56 +0100 <jakeStateless-Fa> So, it's behaving as intended, aside from that weird quirk
2021-11-19 16:30:49 +0100 <jakeStateless-Fa> https://gitlab.com/mikenrafter/config - see my xmonad.hs file, is there anything weird with the `act` fn?
2021-11-19 16:37:09 +0100 <jakeStateless-Fa> liskin: reminder - https://gitlab.com/mikenrafter/config/-/blob/master/.xmonad/treeRewrite.hs
2021-11-19 16:40:40 +0100 <geekosaur> hm. as far as I see, act always succeeds from the standpoint of a MaybeManageHook
2021-11-19 16:40:55 +0100 <geekosaur> so the first one will always run even if it does nothing, and the later ones won't
2021-11-19 16:41:26 +0100 <geekosaur> ss/always run/always succeed/
2021-11-19 16:42:15 +0100 <geekosaur> you might see if moving the MaybeManageHook version of your hook succeeds as the very first item in the composeOne
2021-11-19 16:46:23 +0100 <jakeStateless-Fa> It does.
2021-11-19 16:53:08 +0100 <geekosaur> so the problem, if I'm reading it right, is that `never` fails from the standpoint of a ManageHook (returns False) but not from the standpoint of a MaybeManageHook (returns Just False)
2021-11-19 16:53:23 +0100 <geekosaur> s/returns/produces/g
2021-11-19 16:55:31 +0100 <geekosaur> I may be misunderstanding it though
2021-11-19 16:56:00 +0100 <jakeStateless-Fa> I think that's the problem too...
2021-11-19 16:56:21 +0100 <geekosaur> but I'm pretty sure `never` is related to why it's failing. it may instead be that `never` in the context of a MaybeManageHook causes a Just result instead of Nothing
2021-11-19 16:58:16 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-11-19 16:58:30 +0100 <jakeStateless-Fa> Yeah, removing that causes it to function.
2021-11-19 16:58:54 +0100 <jakeStateless-Fa> I don't know why I ever added that...
2021-11-19 17:01:01 +0100 <jakeStateless-Fa> Another problem: How do I make it ignore windows in my scratchpad workspace?
2021-11-19 17:01:06 +0100 <jakeStateless-Fa> NSP*
2021-11-19 17:01:47 +0100 <jakeStateless-Fa> Because, it always pulls to that ws, when it's targeting alacritty.
2021-11-19 17:02:51 +0100qbt(~qbt@user/edun)
2021-11-19 17:03:50 +0100 <geekosaur> I think you change the condition to something like (fmap Just (currentWs /=? "NSP" --> className)
2021-11-19 17:03:56 +0100 <geekosaur> would have to doublecheck
2021-11-19 17:04:35 +0100 <geekosaur> no, that won't fly
2021-11-19 17:04:58 +0100qbt(~qbt@user/edun) (Client Quit)
2021-11-19 17:05:48 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: restarting)
2021-11-19 17:06:04 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-11-19 17:06:45 +0100 <geekosaur> (currentWs /=? "NSP" -?> className)
2021-11-19 17:06:57 +0100 <geekosaur> in place of (fmap Just className)
2021-11-19 17:14:19 +0100 <geekosaur> although, hm, bet that doesn't work either because it looks at the ws you're on, not the one the window's on
2021-11-19 17:14:33 +0100 <geekosaur> I don't know if there's a clean way to get the latter
2021-11-19 17:14:42 +0100 <jakeStateless-Fa> Yeah...
2021-11-19 17:14:43 +0100 <jakeStateless-Fa> It doesn't
2021-11-19 17:15:01 +0100 <jakeStateless-Fa> We need to use similar functionality to how it's identifying what ws the window is on initially
2021-11-19 17:17:37 +0100 <geekosaur> the problem is that doesn't even show up until later. sameByproduces a list of windows and doesn't even know what workspaces they're on. doShiftTo figures that out after the final window is picked
2021-11-19 17:19:36 +0100 <geekosaur> and shiftTo (local to doShiftTo so we can't even use it) just tries to find the window on all workspaces
2021-11-19 17:20:28 +0100 <jakeStateless-Fa> hm...
2021-11-19 17:20:46 +0100 <jakeStateless-Fa> Perhaps we could tag windows that are on NSP?
2021-11-19 17:20:56 +0100 <jakeStateless-Fa> Then filter against that in the window deciding process?
2021-11-19 17:21:14 +0100 <geekosaur> at least once I've proposed that we put a property on windows indicating their workspace, for things like this
2021-11-19 17:22:19 +0100 <jakeStateless-Fa> Do you know how I'd go about that? Even if others don't use it, I evidently wish to 🤔
2021-11-19 17:22:39 +0100 <geekosaur> isOn t = ask >>= \w -> pure (maybe False (W.findTag w t))
2021-11-19 17:22:47 +0100 <geekosaur> …maybe
2021-11-19 17:23:02 +0100 <geekosaur> hm, no, that's a type error
2021-11-19 17:23:08 +0100 <jakeStateless-Fa> Where'd I place that?
2021-11-19 17:23:13 +0100 <jakeStateless-Fa> hmm
2021-11-19 17:23:30 +0100 <geekosaur> isOn t = ask >>= \w -> pure (maybe False (const True) (W.findTag w t))
2021-11-19 17:24:06 +0100 <geekosaur> mm, but you need isNotOn :)
2021-11-19 17:24:39 +0100 <jakeStateless-Fa> easy flip
2021-11-19 17:24:40 +0100 <geekosaur> isNotOn t = ask >>= \w -> pure (maybe True (const False) (W.findTag w t))
2021-11-19 17:25:08 +0100 <geekosaur> (isNotOn "NSP" -?> className)
2021-11-19 17:25:11 +0100qbt(~qbt@user/edun)
2021-11-19 17:25:18 +0100 <jakeStateless-Fa> Would I use that in `shiftToSame (right_here)`?
2021-11-19 17:25:22 +0100 <jakeStateless-Fa> ah
2021-11-19 17:25:26 +0100 <jakeStateless-Fa> yeah
2021-11-19 17:26:17 +0100 <geekosaur> cleaner would be to make it a proper query but then I'd have to loop through all workspaces looking for the window
2021-11-19 17:26:33 +0100 <geekosaur> when here I already know which ws I don't want it to be on
2021-11-19 17:26:47 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-11-19 17:27:25 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2021-11-19 17:27:49 +0100 <geekosaur> of course this whole idea blows up if you use copyWindow, but you're on your own if you do that anyway :)
2021-11-19 17:30:15 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2021-11-19 17:31:26 +0100tomjaguarpaw(~tom@li367-225.members.linode.com)
2021-11-19 17:31:54 +0100 <tomjaguarpaw> I can make a Logger with logCmd, but if I try, say pure (pure "Hello") then nothing at all appears on my xmobar, not even the other loggers. Does anyone know why?
2021-11-19 17:31:57 +0100 <tomjaguarpaw> https://www.stackage.org/haddock/lts-18.17/xmonad-contrib-0.16/XMonad-Util-Loggers.html#v:logCmd
2021-11-19 17:35:27 +0100 <jakeStateless-Fa> <geekosaur> "of course this whole idea..." <- Yeah, I don't use that often.
2021-11-19 17:36:13 +0100 <geekosaur> tomjaguarpaw, it wants a shell command. probably you now have a bunch of messages in your session log sayinjg "Hello: command not found" or similar
2021-11-19 17:38:07 +0100 <geekosaur> actually I also have no idea what the second `pure` would be doing there
2021-11-19 17:39:14 +0100 <tomjaguarpaw> Perhaps I explained badly
2021-11-19 17:39:17 +0100 <tomjaguarpaw> I'll give an example
2021-11-19 17:39:21 +0100 <geekosaur> it's probably causing the PP code to throw an exception
2021-11-19 17:40:01 +0100 <tomjaguarpaw> If I have ppExtras = [loadAvg, battery, logCmd "echo Hello"] then everything works. If I have ppExtras = [ pure (pure "Hello") ] then nothing gets displayed on the xmobar
2021-11-19 17:40:47 +0100 <jakeStateless-Fa> <geekosaur> "(isNotOn "NSP" -?> className)" <- `• Couldn't match expected type 'W.StackSet b0 l0 Window s0 sd0' with actual type '[Char]' • In the first argument of 'isNotOn', namely '"NSP"'`
2021-11-19 17:41:34 +0100 <geekosaur> right, one of those `pure`s is coming out as Just, the other … may be trying to create a new X11 server context out of nothing
2021-11-19 17:41:49 +0100 <tomjaguarpaw> Oh, interesting
2021-11-19 17:42:02 +0100 <geekosaur> the server context comes in, you don't just roll one up with `pure`
2021-11-19 17:42:17 +0100 <jakeStateless-Fa> You could
2021-11-19 17:42:25 +0100 <jakeStateless-Fa> `pure Just "Hello"`
2021-11-19 17:42:37 +0100 <jakeStateless-Fa> s/pure/pure $/
2021-11-19 17:43:01 +0100 <geekosaur> that's still trying to produce a server context out of nothing instead of using the one passed in
2021-11-19 17:43:20 +0100 <geekosaur> again,, this almost certainly throws an exception you could probably find in the session log
2021-11-19 17:43:30 +0100 <jakeStateless-Fa> I mean, really you should be doing that from within xmobar's config, but, what I stated above works... technically.
2021-11-19 17:43:55 +0100 <tomjaguarpaw> Well, I think things like "user error (Error in function getWindowAttributes)" and "xmobar: eof at an early stage"
2021-11-19 17:44:00 +0100 <tomjaguarpaw> but I've no idea if they're due to that
2021-11-19 17:46:09 +0100 <tomjaguarpaw> Hmm, well now pure (pure "Hello") does work, so I'm completely baffled
2021-11-19 17:46:12 +0100 <geekosaur> mm, Error in function getWindowAttributes looks like a bug that should be fixed in 0.17.0. the second one resembles an xmobar bug that has been fixed
2021-11-19 17:47:26 +0100 <geekosaur> jakeStateless-Fa, sorry, I misread and it wants a StackSet there. hm
2021-11-19 17:47:38 +0100 <tomjaguarpaw> Oh, this is silly. It's because it wasn't "Hello", it was "Hello\n". That ended up pushing everything else off the xmobar.
2021-11-19 17:49:17 +0100 <jakeStateless-Fa> ... LOL
2021-11-19 17:49:22 +0100 <tomjaguarpaw> How grim
2021-11-19 17:49:38 +0100 <tomjaguarpaw> Well thanks for your help geekosaur and jakeStateless-Fa
2021-11-19 17:50:02 +0100 <jakeStateless-Fa> 👍️
2021-11-19 17:51:12 +0100 <geekosaur> jakeStateless-Fa, and findTag is the wrong function entirely :(
2021-11-19 17:51:58 +0100 <geekosaur> looks like there's no way around grabbing the whole StackSet and duplicating the functionality of the hidden function shiftTo
2021-11-19 17:52:31 +0100 <tomjaguarpaw> Well, my xmobar looks a lot nicer now, so that's great!
2021-11-19 17:56:24 +0100 <geekosaur> amusing. I just no9ticed we're still defining our own `equating` in StackSet.hs
2021-11-19 17:56:33 +0100 <geekosaur> @index equating
2021-11-19 17:56:33 +0100 <lambdabot> Distribution.Simple.Utils
2021-11-19 17:56:36 +0100 <geekosaur> bah
2021-11-19 17:56:48 +0100 <geekosaur> @hoogle equating
2021-11-19 17:56:49 +0100 <lambdabot> Distribution.Simple.Utils equating :: Eq a => (b -> a) -> b -> b -> Bool
2021-11-19 17:56:49 +0100 <lambdabot> Distribution.Utils.Generic equating :: Eq a => (b -> a) -> b -> b -> Bool
2021-11-19 17:56:49 +0100 <lambdabot> Data.Eq.HT equating :: Eq b => (a -> b) -> a -> a -> Bool
2021-11-19 17:56:57 +0100 <geekosaur> oh please
2021-11-19 17:58:27 +0100 <geekosaur> oh, I guess we never defined that, just comparing and on
2021-11-19 17:58:31 +0100 <geekosaur> oh well
2021-11-19 17:59:35 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net)
2021-11-19 18:00:01 +0100 <geekosaur> well, this is looking annoying
2021-11-19 18:03:05 +0100 <geekosaur> yeh, it's going to be easier to stick a property on the window, but that really wants to be a core patch, not something in a hook
2021-11-19 18:03:27 +0100 <jakeStateless-Fa> Yeah, I figured.
2021-11-19 18:03:41 +0100 <jakeStateless-Fa> I already build my own version locally, so I'm fine with that.
2021-11-19 18:04:28 +0100 <geekosaur> well, it could be in the logHook but then you'd really want it to be integrated with the EWMH hook rather than iterating windows multiple times
2021-11-19 18:20:38 +0100thonoht[m](~thonohtma@2001:470:69fc:105::d7be)
2021-11-19 18:24:40 +0100 <thonoht[m]> I am trying to upgrade to xmonad 0.17, I just upgraded the dependencies in my stack project and fixed the breaking changes. So far everything seems to work except that xmobar is no longer launching, while it will still launch fine from the terminal. I don't get any errors or know where to look for any logs explaining why it won't launch or crashes. Where do I look for debugging this?
2021-11-19 18:37:17 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702)
2021-11-19 18:41:30 +0100 <Solid> thonoht[m]: check ~/.xsession-errors (or similar)
2021-11-19 18:44:56 +0100 <thonoht[m]> Ah thanks. I'm gonna check right after dinner
2021-11-19 19:01:09 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513)
2021-11-19 19:34:34 +0100 <thonoht[m]> I see no mention of xmobar in that file. (I managed to generate it by doing `startx 2> ~/.xsession-errors`)
2021-11-19 19:37:45 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513) (Quit: my dad's not a phone!)
2021-11-19 20:08:17 +0100 <thonoht[m]> I neglected to change `Run StdInReader` to `Run XMonadLog` for xmobar. Now it starts, it just keeps the Xmonad input on Updating... so far. But this is progress at least.
2021-11-19 20:09:39 +0100 <thonoht[m]> Ok, change it in all places 🙃 got it
2021-11-19 20:13:26 +0100 <Solid> \o/
2021-11-19 20:16:02 +0100 <thonoht[m]> Now I'm trying to move ~/.xmonad to ~/.config/xmonad. Should that just be a simple move and done?
2021-11-19 20:16:16 +0100 <thonoht[m]> The documentation mentions that second folder as far as I can read
2021-11-19 20:16:40 +0100 <Solid> yeah, just moving everything to ~/.config/xmonad should do the trick
2021-11-19 20:19:23 +0100 <thonoht[m]> It kept looking in ~/.xmonad. But I think that was because the move had left some files there. It seems okay now. Let me just try logging in again.
2021-11-19 20:20:34 +0100 <thonoht[m]> Seems fine, rebuilding too. I guess that's done then, for now. Thanks for the help!
2021-11-19 20:29:17 +0100 <Solid> It's looking for xmonad.hs in ~/.xmonad first
2021-11-19 20:29:23 +0100 <Solid> so if that's still there then it'll use that instead
2021-11-19 20:29:56 +0100 <thonoht[m]> Yeah xmonad.hs wasn't where, but the binary was, and perhaps if just the directory exists it'll fail trying to read xmonad.hs there?
2021-11-19 20:33:31 +0100dingo(~csi@68.169.216.216)
2021-11-19 20:33:36 +0100dingo(~csi@68.169.216.216) (Client Quit)
2021-11-19 20:35:17 +0100 <Solid> nono it's specifically trying to find xmonad.hs
2021-11-19 20:38:09 +0100 <thonoht[m]> Yeah, but if it can't find xmonad.hs in ~/.xmonad, even if the directory exists. It could also try ~/.config/xmonad/xmonad.hs afterwards. But it doesn't do that apparently.
2021-11-19 20:38:29 +0100 <Solid> it does
2021-11-19 20:38:45 +0100 <Solid> if it can't find ~/.xmonad/xmonad.hs then it tries the XDG stuff
2021-11-19 20:38:55 +0100 <thonoht[m]> Hmm, it didn't for me. It specificly told me cannot find ~/.xmonad/xmonad.hs
2021-11-19 20:38:57 +0100 <Solid> and if it can't find anything it just creates the necessary XDG directories
2021-11-19 20:39:44 +0100 <Solid> can you reproduce that? would be good to open an issue in that case
2021-11-19 20:39:56 +0100 <thonoht[m]> Hmm
2021-11-19 20:39:57 +0100 <thonoht[m]> Let's try
2021-11-19 20:40:33 +0100 <thonoht[m]> Yeah, I just make ~/.xmonad, rebuild and it fails.
2021-11-19 20:41:45 +0100 <Solid> I can't reproduce this; could you post your exact setup?
2021-11-19 20:42:47 +0100 <thonoht[m]> All my hotkeys failed once I tried this so I had to restart xmonad.
2021-11-19 20:43:26 +0100 <thonoht[m]> It does generate the default failes in ~/.xmonad indeed, but fails on not finding xmonad.hs
2021-11-19 20:43:29 +0100 <thonoht[m]> Which info do you need?
2021-11-19 20:45:08 +0100 <Solid> how are you building xmonad?
2021-11-19 20:48:29 +0100 <thonoht[m]> https://github.com/ThoNohT/xmonad
2021-11-19 20:48:54 +0100 <thonoht[m]> I normally have this on a private git server. But this should be the easiest way to get all info across
2021-11-19 20:49:28 +0100 <Solid> oh right, it's also looking for a build file if it can't find xmonad.hs
2021-11-19 20:49:34 +0100 <Solid> perhaps that as still in ~/.xmonad?
2021-11-19 20:49:39 +0100 <Solid> s/as/was/
2021-11-19 20:50:01 +0100 <thonoht[m]> Hmm, it shouldn't be if I just did mkdir .xmonad and had it fail after that
2021-11-19 20:50:30 +0100 <Solid> mh indeed
2021-11-19 20:51:03 +0100 <thonoht[m]> I'm on 5.15.2-arch1-1
2021-11-19 20:51:20 +0100obimod(~obimod@gateway/vpn/pia/obimod) (Quit: every day brings new choices)
2021-11-19 20:52:18 +0100 <Solid> how are you building the "bootstrap" xmonad executable (the one that's in path, basically, not xmonad-ARCH)?
2021-11-19 20:53:42 +0100 <thonoht[m]> Hmm. Stack install in that folder. But I haven't done that yet since the move
2021-11-19 20:54:02 +0100 <Solid> aaaah that would explain it
2021-11-19 20:54:19 +0100 <Solid> ~/.local/bin/xmonad (or wherever it is) is still on 0.15/0.16, basically
2021-11-19 20:54:25 +0100 <Solid> and back then we didn't have this behaviour
2021-11-19 20:54:32 +0100 <Solid> and just looked for directories
2021-11-19 20:54:43 +0100 <thonoht[m]> Ah
2021-11-19 20:54:43 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-11-19 20:54:43 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-11-19 20:54:46 +0100allbery_bgeekosaur
2021-11-19 20:55:00 +0100 <thonoht[m]> So what should I do about that?
2021-11-19 20:55:18 +0100 <Solid> well, I suppose just `stack install` in that dir :D
2021-11-19 20:55:28 +0100 <thonoht[m]> Hm
2021-11-19 20:55:50 +0100 <thonoht[m]> But I did stack install since the upgrade🤔
2021-11-19 20:56:12 +0100 <thonoht[m]> Just not after the move
2021-11-19 20:57:50 +0100 <Solid> so `xmonad --version` does return 0.17.x?
2021-11-19 21:00:31 +0100 <thonoht[m]> Nope, 0.15. so that is it indeed
2021-11-19 21:01:20 +0100 <thonoht[m]> Stack install doesn't change that
2021-11-19 21:02:00 +0100 <geekosaur> I was just about to check if your setup includes pointing specificallly to xmonad 0.17.0, because if you get it from an LTS resolver it'll still be 0.15
2021-11-19 21:02:04 +0100 <Solid> probably some stray executable (try `which xmonad`)
2021-11-19 21:03:21 +0100 <thonoht[m]> Usr/bin
2021-11-19 21:03:29 +0100 <thonoht[m]> So the arch package I guess
2021-11-19 21:03:38 +0100 <Solid> I would imagine
2021-11-19 21:07:29 +0100 <thonoht[m]> Ok uninstalling fixed that. Just needed to change xmonad to my-xmonad in xinitrc
2021-11-19 21:18:43 +0100 <jakeStateless-Fa> geekosaur: Where should I look for adding another property to a window?
2021-11-19 21:19:25 +0100 <jakeStateless-Fa> You said something about EWMH, would it meld well with liskin's rewrite?
2021-11-19 21:22:49 +0100 <geekosaur> probably not unless that's going to include arbitrary hooks into the window iteration
2021-11-19 21:23:57 +0100 <geekosaur> mm, was thinking it'd be better to put it in X.O.windows but that won't know about doShift and friends
2021-11-19 21:24:18 +0100 <geekosaur> at least, not to the point of being able to optimize it; you'd still end up iterating over all windows.
2021-11-19 21:25:35 +0100 <geekosaur> and it'd be ugly to stick it in doShift / shiftWin itself
2021-11-19 21:25:50 +0100 <geekosaur> even though that would probably be optimal
2021-11-19 21:26:09 +0100 <jakeStateless-Fa> What of adding the tags in a manageHook?
2021-11-19 21:26:20 +0100 <jakeStateless-Fa> It doesn't need to have them until after the window has been created.
2021-11-19 21:26:41 +0100 <jakeStateless-Fa> Then, a wrapper for doShift could be implemented.
2021-11-19 21:26:43 +0100 <geekosaur> that's more or less what I meant by doShift / shiftWin
2021-11-19 21:27:26 +0100 <geekosaur> in some sense it's the "right" place for it, but having that do something more involved than the other manageHook operations just seems wrong somehow
2021-11-19 21:27:57 +0100 <jakeStateless-Fa> Doesn't a window tagging system already exist?
2021-11-19 21:28:16 +0100 <geekosaur> as is doing "destructive" operations there, I'm not sure those even have an X context to operate on since the StackSet is at least conceptually pure
2021-11-19 21:28:49 +0100 <geekosaur> it's an Endo WindowSet, the X context lives in the Query
2021-11-19 21:29:10 +0100 <geekosaur> hm, there's a notion of tags but it's not related
2021-11-19 21:30:09 +0100 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.17.0/docs/XMonad-Actions-TagWindows.html
2021-11-19 21:30:34 +0100 <geekosaur> which uses _XMONAD_TAG but then you wouldn't be able to use that module for anything else
2021-11-19 21:31:12 +0100 <jakeStateless-Fa> What of https://hackage.haskell.org/package/xmonad-contrib-0.17.0/docs/XMonad-Hooks-ManageHelpers.html#v:w… ?
2021-11-19 21:31:29 +0100 <jakeStateless-Fa> Or, do you not have the right context for that?
2021-11-19 21:32:08 +0100 <jakeStateless-Fa> s/you/it/g
2021-11-19 21:32:39 +0100 <geekosaur> you'll need to grab and search the entire StackSet
2021-11-19 21:33:26 +0100 <geekosaur> withWindowSet workspaceTag -- looks short but may do a lot of work, which you're then repeating for every window in the StackSet (which is to say, this is O(n^2))
2021-11-19 21:33:35 +0100 <jakeStateless-Fa> That's inoptimal, but... It's something...
2021-11-19 21:33:50 +0100 <geekosaur> I'm trying very hard to avoid that square
2021-11-19 21:34:02 +0100 <jakeStateless-Fa> s/inoptimal/suboptimal/g
2021-11-19 21:34:26 +0100 <jakeStateless-Fa> Yeah, that's an integral square that could quickly get out of hand.
2021-11-19 21:34:37 +0100 <geekosaur> sadly the StackSet is available in two different places in this whole sequence, neither of which we can piggyback on :(
2021-11-19 21:35:54 +0100 <geekosaur> ideally sameBy would be modified to produce the tag at the same time as the window, but it's exported so that would be a breaking change
2021-11-19 21:38:08 +0100 <jakeStateless-Fa> It could be modified, again, lets focus on getting it to work, and if renaming of things is needed to prevent breaking, then so be it.
2021-11-19 21:52:18 +0100qbt(~qbt@user/edun) (Quit: Leaving.)
2021-11-19 22:24:22 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2021-11-19 22:27:48 +0100noex(~noex@2600:8804:1280:aa0:5857:94a:25de:c513)
2021-11-19 22:29:02 +0100SenranKaguya(~weechat@c-73-15-19-170.hsd1.ca.comcast.net)
2021-11-19 22:30:27 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-19 22:34:02 +0100obimod(~obimod@gateway/vpn/pia/obimod)
2021-11-19 22:39:32 +0100catman(~catman@user/catman) (Ping timeout: 240 seconds)
2021-11-19 22:43:31 +0100catman(~catman@user/catman)
2021-11-19 22:54:13 +0100ex(~exordiri@user/exordiri)
2021-11-19 23:14:10 +0100catman_(~catman@user/catman)
2021-11-19 23:14:14 +0100catman(~catman@user/catman) (Ping timeout: 260 seconds)
2021-11-19 23:14:27 +0100catman_catman
2021-11-19 23:20:02 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-11-19 23:29:23 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-11-19 23:29:23 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-11-19 23:29:26 +0100allbery_bgeekosaur
2021-11-19 23:38:07 +0100 <FOSSHuman[m]> xmonad + kmonad is a holy combination
2021-11-19 23:38:09 +0100 <FOSSHuman[m]> lol
2021-11-19 23:38:47 +0100catman(~catman@user/catman) (Ping timeout: 264 seconds)
2021-11-19 23:39:40 +0100 <FOSSHuman[m]> But seriously, I tried out KMonad and I didn't even know you could do this on Linux, maybe bcs I'm still pretty new to Linux in general and I didn't know key remapping was possible but.. wow
2021-11-19 23:46:33 +0100catman(~catman@user/catman)