Home liberachat/#xmonad: Logs Calendar

Logs on 2022-10-21 (liberachat/#xmonad)

00:20:38 × wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 252 seconds)
01:30:42 × ft quits (~ft@p3e9bc845.dip0.t-ipconnect.de) (*.net *.split)
01:35:52 ft joins (~ft@p200300cf3f1ff40011146ed23837b600.dip0.t-ipconnect.de)
02:03:40 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 252 seconds)
02:16:25 × td_ quits (~td@83.135.9.19) (Ping timeout: 246 seconds)
02:18:23 td_ joins (~td@83.135.9.6)
02:23:48 banc joins (banc@gateway/vpn/airvpn/banc)
02:34:32 × devhashtag[m] quits (~devhashta@2001:470:69fc:105::2:85a2) (Quit: You have been kicked for being idle)
02:56:21 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Quit: You have been kicked for being idle)
02:57:29 mvk joins (~mvk@2607:fea8:5ce3:8500::a80f)
03:00:01 × haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
03:01:23 haasn joins (~nand@haasn.dev)
03:17:48 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
03:28:12 × rekahsoft quits (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-156.dsl.bell.ca) (Ping timeout: 260 seconds)
05:05:29 × mvk quits (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 272 seconds)
05:25:16 chomwitt joins (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
06:28:10 mncheck joins (~mncheck@193.224.205.254)
06:59:42 × ft quits (~ft@p200300cf3f1ff40011146ed23837b600.dip0.t-ipconnect.de) (Quit: leaving)
07:07:39 cfricke joins (~cfricke@user/cfricke)
07:26:00 <xmonadtrack> xmonad-contrib Tony Zorman * v0.17.1-42-g3d65a6bf: Refer to the tutorial instead of X.D.Extending more often (5 days ago, 126 files, 274+ 265-) https://github.com/xmonad/xmonad-contrib/commit/3d65a6bf7223
07:26:00 <xmonadtrack> xmonad-contrib Tony Zorman * v0.17.1-43-g4c8edd3b: X.A.FloatKeys: Add direction{Move,Resize}Window (5 days ago, 2 files, 37+ 0-) https://github.com/xmonad/xmonad-contrib/commit/4c8edd3bfbd9
07:26:06 <xmonadtrack> xmonad-contrib Tony Zorman * v0.17.1-44-g41d6ac96: X.H.InsertPosition: Add combinator (5 days ago, 2 files, 23+ 4-) https://github.com/xmonad/xmonad-contrib/commit/41d6ac96d5bf
07:26:13 <xmonadtrack> ... and 3 more commits
07:26:22 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
07:29:50 <Solid> Sticker samples are supposed to arrive today \o/
08:37:55 × andi_ quits (~andi@user/andi/x-3467420) (Ping timeout: 248 seconds)
08:38:12 Solid_ joins (~slot@xmonad/slotThe)
08:38:27 × Solid quits (~slot@xmonad/slotThe) (Ping timeout: 248 seconds)
08:43:13 × qbit_m quits (~qbittapen@2001:470:69fc:105::194) (Quit: Bridge terminating on SIGTERM)
08:43:13 × RosarioPulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Quit: Bridge terminating on SIGTERM)
08:43:13 × mekeor[m] quits (~mekeormat@2001:470:69fc:105::17e4) (Quit: Bridge terminating on SIGTERM)
08:43:14 × Tisoxin quits (~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM)
08:43:14 × yuu[m] quits (~yuum]@2001:470:69fc:105::8a6) (Quit: Bridge terminating on SIGTERM)
08:43:15 × vincenzopalazzo quits (~vincenzop@2001:470:69fc:105::a67) (Quit: Bridge terminating on SIGTERM)
08:43:15 × sibi quits (~sibi@2001:470:69fc:105::8ab) (Quit: Bridge terminating on SIGTERM)
08:43:15 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM)
08:43:15 × VarikValefor[m] quits (~varikvale@2001:470:69fc:105::a5d) (Quit: Bridge terminating on SIGTERM)
08:43:16 × geekosaur[m] quits (~geekosaur@xmonad/geekosaur) (Quit: Bridge terminating on SIGTERM)
08:43:18 × uhoreg quits (~uhoreg@2001:470:69fc:105::35f) (Quit: Bridge terminating on SIGTERM)
08:43:19 × SridharRatnakuma quits (~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM)
08:43:19 × Balrog[m] quits (~M0x62616c@2001:470:69fc:105::2:9152) (Quit: Bridge terminating on SIGTERM)
08:43:19 × aaronv quits (~aaronv@user/aaronv) (Quit: Bridge terminating on SIGTERM)
08:43:25 × alternateved[m] quits (~alternate@2001:470:69fc:105::2:894a) (Quit: Bridge terminating on SIGTERM)
08:43:29 × arslonga[m] quits (~uuuuuuuum@2001:470:69fc:105::1589) (Quit: Bridge terminating on SIGTERM)
08:43:29 × quarkQuark[m] quits (~quarkquar@2001:470:69fc:105::2:46e2) (Quit: Bridge terminating on SIGTERM)
08:43:29 × mikevan[m] quits (~mikevanto@2001:470:69fc:105::2:7ef5) (Quit: Bridge terminating on SIGTERM)
08:43:29 × ChaoticMist[m] quits (~gilganixm@2001:470:69fc:105::3d09) (Quit: Bridge terminating on SIGTERM)
08:43:29 × zim0369[m] quits (~zim0369ma@2001:470:69fc:105::2:5d43) (Quit: Bridge terminating on SIGTERM)
08:43:29 × Alok[m] quits (~alok8bbma@2001:470:69fc:105::2:620f) (Quit: Bridge terminating on SIGTERM)
08:43:29 × valarMorghulis[m quits (~lladeebll@2001:470:69fc:105::2:72) (Quit: Bridge terminating on SIGTERM)
08:43:29 × AskYourself[m] quits (~ask-yours@2001:470:69fc:105::2:9793) (Quit: Bridge terminating on SIGTERM)
08:43:29 × lions[m] quits (~lionsmatr@2001:470:69fc:105::d1fe) (Quit: Bridge terminating on SIGTERM)
08:43:29 × Industrial[m] quits (~industria@2001:470:69fc:105::eb9) (Quit: Bridge terminating on SIGTERM)
08:43:29 × imanebrahimi77[m quits (~imanebrah@2001:470:69fc:105::2:9a72) (Quit: Bridge terminating on SIGTERM)
08:43:29 × floweynt[m] quits (~floweyyag@2001:470:69fc:105::2:86b7) (Quit: Bridge terminating on SIGTERM)
08:43:31 × andrejsh[m] quits (~andrejshm@2001:470:69fc:105::2:a171) (Quit: Bridge terminating on SIGTERM)
08:43:32 × iamtheonewiththi quits (~iamtheone@2001:470:69fc:105::2:8a9b) (Quit: Bridge terminating on SIGTERM)
08:43:32 × MangoIV[m] quits (~mangoivma@2001:470:69fc:105::2:8417) (Quit: Bridge terminating on SIGTERM)
08:43:32 × ChristianGrey[m] quits (~jacques16@2001:470:69fc:105::2:a40c) (Quit: Bridge terminating on SIGTERM)
08:43:33 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Quit: Bridge terminating on SIGTERM)
08:43:34 × uj[m] quits (~ujmatrixo@2001:470:69fc:105::2:888f) (Quit: Bridge terminating on SIGTERM)
08:43:34 × Solid[m] quits (~slot-matr@2001:470:69fc:105::1:a84) (Quit: Bridge terminating on SIGTERM)
08:43:35 × NONstope[m] quits (~nonstopem@2001:470:69fc:105::2:8d1c) (Quit: Bridge terminating on SIGTERM)
08:48:04 sibi joins (~sibi@2001:470:69fc:105::8ab)
08:50:18 mekeor[m] joins (~mekeormat@2001:470:69fc:105::17e4)
08:51:15 andi_ joins (~andi@2a01:4f8:c0c:a014::2)
08:51:15 × andi_ quits (~andi@2a01:4f8:c0c:a014::2) (Changing host)
08:51:15 andi_ joins (~andi@user/andi/x-3467420)
09:08:54 unclechu joins (~unclechu@2001:470:69fc:105::354)
09:08:54 yuu[m] joins (~yuum]@2001:470:69fc:105::8a6)
09:08:54 qbit_m joins (~qbittapen@2001:470:69fc:105::194)
09:08:54 Balrog[m] joins (~M0x62616c@2001:470:69fc:105::2:9152)
09:08:54 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
09:08:54 VarikValefor[m] joins (~varikvale@2001:470:69fc:105::a5d)
09:08:54 geekosaur[m] joins (~geekosaur@xmonad/geekosaur)
09:08:54 vincenzopalazzo joins (~vincenzop@2001:470:69fc:105::a67)
09:08:54 uhoreg joins (~uhoreg@2001:470:69fc:105::35f)
09:08:55 aaronv joins (~aaronv@user/aaronv)
09:08:56 MangoIV[m] joins (~mangoivma@2001:470:69fc:105::2:8417)
09:08:58 SridharRatnakuma joins (~sridmatri@2001:470:69fc:105::1c2)
09:08:58 alternateved[m] joins (~alternate@2001:470:69fc:105::2:894a)
09:09:06 valarMorghulis[m joins (~lladeebll@2001:470:69fc:105::2:72)
09:09:06 lions[m] joins (~lionsmatr@2001:470:69fc:105::d1fe)
09:09:06 ChaoticMist[m] joins (~gilganixm@2001:470:69fc:105::3d09)
09:09:06 Alok[m] joins (~alok8bbma@2001:470:69fc:105::2:620f)
09:09:06 imanebrahimi77[m joins (~imanebrah@2001:470:69fc:105::2:9a72)
09:09:06 mikevan[m] joins (~mikevanto@2001:470:69fc:105::2:7ef5)
09:09:06 arslonga[m] joins (~uuuuuuuum@2001:470:69fc:105::1589)
09:09:06 quarkQuark[m] joins (~quarkquar@2001:470:69fc:105::2:46e2)
09:09:08 zim0369[m] joins (~zim0369ma@2001:470:69fc:105::2:5d43)
09:09:08 NONstope[m] joins (~nonstopem@2001:470:69fc:105::2:8d1c)
09:09:08 AskYourself[m] joins (~ask-yours@2001:470:69fc:105::2:9793)
09:09:08 Industrial[m] joins (~industria@2001:470:69fc:105::eb9)
09:09:09 andrejsh[m] joins (~andrejshm@2001:470:69fc:105::2:a171)
09:09:10 iamtheonewiththi joins (~iamtheone@2001:470:69fc:105::2:8a9b)
09:09:11 floweynt[m] joins (~floweyyag@2001:470:69fc:105::2:86b7)
09:09:12 ChristianGrey[m] joins (~jacques16@2001:470:69fc:105::2:a40c)
09:09:33 uj[m] joins (~ujmatrixo@2001:470:69fc:105::2:888f)
09:30:48 wonko joins (~wjc@2a0e:1c80:2:0:45:15:19:130)
09:42:35 Tisoxin joins (~ikosit@user/ikosit)
09:42:35 Solid[m] joins (~slot-matr@2001:470:69fc:105::1:a84)
10:44:05 × darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection)
10:44:36 mudri joins (uid317655@id-317655.helmsley.irccloud.com)
10:46:20 darkstardevx joins (~darkstard@50.126.124.156)
12:36:09 × ^[ quits (~user@user//x-8473491) (Ping timeout: 268 seconds)
12:42:13 thyriaen joins (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
12:42:20 <thyriaen> Howdy friends
12:42:33 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
12:42:44 <thyriaen> I would like to use XMonad.Layout.IndependentScreens -- when I enable them the workspaces in my polybar are no longer "found"
12:44:11 <thyriaen> in my polybar config i define the desktop-names as 1,2,3,4,5...
12:50:52 <geekosaur> IndependentScreens changes the workspace names; the physical workspaces are named <screenid>_<workspacename>
12:51:13 <geekosaur> so 0_1, 0_2, etc.
12:52:41 <thyriaen> ah, excellent thanks
12:52:46 <thyriaen> i will try that
12:54:57 <thyriaen> geekosaur, works ! thanks
12:55:52 <thyriaen> geekosaur, if i may ask - maybe you know - when I also want another polybar on my 2nd monitor i just create a 2nd polybar and put it there ?
12:57:45 <geekosaur> I don't know much about polybar, sorry. probably just starting a second polybar will work but I don't know how you would e.g. limit it to the workspace(s) on that monitor
12:58:15 <thyriaen> geekosaur, i know that - i can give polybar just the names 1_1, 1_2, ...
13:39:37 <thyriaen> geekosaur, I have several applications in my manage hook which, when discovered gets shifted to a specific workspace
13:39:57 <thyriaen> geekosaur, i do a :: doShift "2" for example
13:40:38 <geekosaur> you would need to do the same workspace translation there (I think there's some helpers in IndependentScreens for that)
13:40:42 <thyriaen> now with my new config, it - understandably - does not work anymore - how do i correctly need to shift it ?
13:40:52 <thyriaen> geekosaur, i don't want to hardcode it
13:41:07 <thyriaen> if i start my terminal
13:41:12 <thyriaen> it should go to workspace 1
13:41:16 <thyriaen> not always to 0_1
13:41:25 <thyriaen> it should depend which screen has focus
13:41:40 <thyriaen> so i want kinda a doShift currentscreen+"1" or something
13:42:59 <thyriaen> onCurrentScreen :: (PhysicalWorkspace -> WindowSet -> a) -> VirtualWorkspace -> WindowSet -> a
13:43:51 <geekosaur> was just about to point to that.; not real convenient though
13:44:04 <thyriaen> how do i use it ?
13:44:24 <geekosaur> onCurrentScreen (doShift "2"), I think
13:44:26 <thyriaen> doShift onCurrentScreen "1" is probably not the way
13:44:41 <thyriaen> ok let me try if the compiler will yell at me
13:45:33 <thyriaen> onCurrentScreen :: (PhysicalWorkspace -> WindowSet -> a) -> VirtualWorkspace -> WindowSet -> a
13:45:36 <thyriaen> doesnt work
13:45:52 <geekosaur> argh, my cabal repl is doing a rebuild so I can't test it yet here
13:46:25 <geekosaur> oh, missing parameter
13:46:34 <thyriaen> , className =? "superhuman" --> onCurrentScreen ( doShift "2" )
13:46:37 <thyriaen> https://termbin.com/mbk4
13:46:53 <geekosaur> onCurrentScreen (doShift "2") is missing the VirtualWorkspace
13:47:32 <thyriaen> 2 is the physical workspace ?
13:47:38 ft joins (~ft@p3e9bc845.dip0.t-ipconnect.de)
13:48:32 <geekosaur> doShift takes a PhysicalWorkspace but doesn't know it's not the actual workspace. that's why it's "2"
13:48:42 <geekosaur> and not "1_2" or similar
13:49:04 <thyriaen> geekosaur, ok
13:49:08 <geekosaur> the type system doesn't handle this "type bending" well
13:49:24 <thyriaen> i don't really know how to proceed now, tho
13:49:26 <geekosaur> lemme get my cabal repl up, I think it has to be more complex and not just because of this
13:49:47 <geekosaur> need a doF and use shift directly, among other things. I'll play with it
13:50:20 <geekosaur> oh wait. I think that might be: doF (onCurrentScreen shift "2")
13:50:26 <geekosaur> but I can't test yet
13:50:46 <thyriaen> what is doF ?
13:51:05 <thyriaen> doShift instead of shift ?
13:51:41 <geekosaur> ghci> :t doF (onCurrentScreen W.shift "2")
13:51:41 <geekosaur> doF (onCurrentScreen W.shift "2") :: Query (Endo WindowSet)
13:52:21 <thyriaen> do i mean W.shift importerd from Xmonad.StackSet ?
13:52:31 <geekosaur> a manageHook is a wrapped operation. doF unwraps it. doShift is a version of W.shift with the doF already included, but for onCurrentScreen we have to separate it out
13:52:50 <thyriaen> doF ( onCurrentScreen W.shift "2" ) compiles
13:53:36 <thyriaen> and it works
13:53:56 <thyriaen> thanks
13:54:36 <thyriaen> i am not quite sure if everything with the workspaces work jet completely but i will test around today and if i find an issue report back :p
13:56:48 <thyriaen> geekosaur, is there a cooler, more haskelli way to write doShiftWithScreens x = doF $ onCurrentScreen W.shift x
13:57:13 <thyriaen> I am thinking about the x, i remember very vaguely you can somehow remove this x with some other syntax
13:57:51 <geekosaur> you can just omit it entirely ("eta reduction") if it's the last thing on both sides of the `=`
13:58:07 <thyriaen> okay
13:58:22 <geekosaur> hm, except not in this casem I missed the $
13:58:33 <thyriaen> yea it doesn't compile without
13:58:35 dminuoso would just use parens instead of ($)
13:58:37 <thyriaen> because of the () i guess
13:58:58 <dminuoso> thyriaen: Well, if you leave x away on both sides, replace ($) with .
13:59:06 <dminuoso> That's definitely idiomatic for some.
13:59:10 <dminuoso> Myself included.
13:59:13 <geekosaur> doF . onCurrentWorkspace W.shift
13:59:35 <thyriaen> works for me thanks
14:00:09 <thyriaen> i don't know why but haskell is just pure beauty
14:00:29 <dminuoso> What I find quite strange, is that this type of eta reduction (replacing ($) with (.)) is glued so deep into my mind, I dont even do it consciously.
14:00:46 <thyriaen> i have one question though
14:01:41 <thyriaen> when playing an fullscreen game on a dual monitor settup and it only runs on my primary - how can i restrict the mouse to that monitor, because if i leave the monitor with my mouse all hell breaks lose and monitors start to change resolution and flicker
14:03:28 <geekosaur> sounds like what happens on my setup if I hotplug/unplug a monitor 😞
14:04:08 <thyriaen> geekosaur, but can i restrict my mouse to one monitor somehow ?
14:04:19 <thyriaen> or make it behave like that in fullscreen mode ?
14:05:30 <thyriaen> that would be ideal actually i have a layout Full -- and in this restricting the mouse to that monitor would be sufficient for what i need
14:06:20 <thyriaen> but what i want most of all - i want window focus not being controlled by mouse movement but eye-movement - whereever i look that monitor or window gets focus
14:06:30 <geekosaur> sadly no. that wou;ld have to be built into the X server somehow, because by the time xmonad found out about it it would be too late
14:06:57 <thyriaen> geekosaur, ok - do you know of an xorg solution ?
14:07:06 <geekosaur> focus-follows-gaze has been wanted for several decades, I think the closest anyone has gotten is some hacks for kinect 🙂
14:07:36 <thyriaen> :)
14:08:28 <geekosaur> sadly no, it's not provide3d by current X servers nor do I expect it to be added because they really want X11 to go away (but don't seem to be fixing wayland to work well enough to replace it reliably…)
14:09:56 <thyriaen> geekosaur, i really want to move to wayland but fell in love with xmonad + i am so glad that none of my windows have any form of decoration and i know it will be a nightmare to have clientsidedecorations because i would have to tell every new application to hide the decoration
14:10:48 <geekosaur> supposedly they're working on a way for window managers in XWayland to manage Wayland windows, that would let you run xmonad under wayland directly
14:11:23 <thyriaen> :O
14:20:09 <xmonadtrack> New xmonad-contrib branch created: pull/766 (4 commits) https://github.com/xmonad/xmonad-contrib/pull/766
14:20:09 <xmonadtrack> xmonad-contrib L. S. Leary https://github.com/xmonad/xmonad-contrib/pull/766 * v0.17.1-47-gc3e2ecb2: Factor shared logic out of X.A.Cycle* modules (6 hours ago, 6 files, 126+ 60-) https://github.com/xmonad/xmonad-contrib/commit/c3e2ecb21a2c
14:20:13 <xmonadtrack> xmonad-contrib L. S. Leary https://github.com/xmonad/xmonad-contrib/pull/766 * v0.17.1-48-gfb721375: Write new module: X.U.History (69 minutes ago, 3 files, 77+ 0-) https://github.com/xmonad/xmonad-contrib/commit/fb72137537ce
14:20:22 <xmonadtrack> xmonad-contrib L. S. Leary https://github.com/xmonad/xmonad-contrib/pull/766 * v0.17.1-49-g64af74b0: Write new module: X.A.MostRecentlyUsed (49 minutes ago, 3 files, 170+ 0-) https://github.com/xmonad/xmonad-contrib/commit/64af74b0acaa
14:20:31 <xmonadtrack> xmonad-contrib L. S. Leary https://github.com/xmonad/xmonad-contrib/pull/766 * v0.17.1-50-gc8be1737: Adjust X.A.Repeatable docs to mention X.A.MRU (46 minutes ago, 1 file, 2+ 1-) https://github.com/xmonad/xmonad-contrib/commit/c8be1737f94b
14:34:01 <[Leary]> "Unsupported extension: GeneralisedNewtypeDeriving; Perhaps you meant 'GeneralizedNewtypeDeriving' or [...]"
14:34:10 <[Leary]> I forgot ancient GHC was american
14:36:07 <geekosaur> https://github.com/xmonad/xmonad-contrib/issues/767
14:36:23 <geekosaur> `onCurrentScreen` really needs docs
14:57:54 ^[ joins (~user@user//x-8473491)
15:04:05 <thyriaen> geekosaur, i found an issue with my configs
15:04:38 <thyriaen> when i move to my 2nd screen and what to give that screen focus but there is no window on it it does not receive focus - is there a way to do it ?
15:04:47 <thyriaen> ( i am using focus follows mouse )
15:06:56 <geekosaur[m]> I have no idea. Focus follows. Mouse has a number of problems which are basically caused. By the way, x11 manages screens and it can't always tell that you've actually switched focus to a different screen
15:07:21 <thyriaen> i had to click on the background
15:07:24 <geekosaur[m]> Wow voice typing mangled that a bit
15:07:24 <thyriaen> that gave me focus
15:10:37 <thyriaen> could someone explain me this: https://hastebin.com/ewimawiwic.yaml
15:11:28 <thyriaen> i want to unbind mod-shift-w and mod-shift-r and just use mod-w and mod-r instead
15:12:41 <thyriaen> but i don't really understand most of it, for example .|. or this whole (f,m) i do know what the zip does but what is >>== or <-
15:17:09 <geekosaur> that's a list comprehension
15:18:10 <geekosaur> .|. is logical OR, combining your modMask with a separate modifier mask generated by the list comprehension. <- here can be read as `for` (Python-style) or as `taken from`
15:19:16 <thyriaen> .|. like || in other programming languages ?
15:19:50 <geekosaur> not quite. it'd be | in C or Java, as opposed to || which is Boolean OR
15:20:03 <geekosaur> maybe I should say bitwise OR instead of logical OR
15:20:03 <thyriaen> ah ok
15:20:20 <thyriaen> ( what is boolean or in haskell ? )
15:20:36 <geekosaur> || and && do what you would expect for Boolean OR
15:20:42 <thyriaen> ok
15:20:53 <geekosaur> .&. and .|. are the bitwise versions, becausse | is taken
15:21:03 <thyriaen> what does | do in haskell ?
15:21:15 <thyriaen> because 2nd line in that expression it is needed for example
15:21:26 <geekosaur> you can read it as "where" or "such that". you can see it in the list comprehensions
15:22:01 <thyriaen> ah i use where sometimes
15:22:07 <geekosaur> a list comprehension in Haskell is [ expression | pattern <- list [, pattern <- list ...] [, condition] ]
15:22:11 <thyriaen> is it interchangable with where ?
15:22:17 <geekosaur> this is not the same as the keyword "where" though
15:22:21 <thyriaen> it is kinda like a mathematical | ?
15:22:28 <geekosaur> which is why I use "such that" instead
15:22:59 <thyriaen> { a ∈ R | a > 3 }
15:23:16 <geekosaur> actually I misspoke earlier,m "<-" is pythion "in", "|" is python "for"
15:23:19 <geekosaur> yes
15:23:25 <thyriaen> nice !
15:23:40 <[Leary]> Isn't it more like "given"? "Such that" is kinda the wrong direction.
15:24:20 <[Leary]> Though I guess we write most of our programs backwards anyway.
15:24:24 <thyriaen> so (key, sc) <- zip [xK_w, xK_r] [0..] just takes a tuple and assigns stuff to it so it will be a list of tupples
15:25:13 <geekosaur> and >>= , hm, in this case you can think of it as something like a unix pipe. it runs the IO expression "screenWorkspace sc" and sends the result to "flip whenJust (windows . f)" which might be better understood as "\x -> whenJust x (windows . f)"
15:25:17 <thyriaen> [ (xK_w, 0), (xK_r,1) ] will be the result i guess ?
15:25:20 <geekosaur> @src flip
15:25:20 <lambdabot> flip f x y = f y x
15:25:55 <geekosaur> right, that just maps keys to screen numbers
15:26:43 <thyriaen> ok i guess i also understand the last line then
15:27:01 <geekosaur> then the other one actually does something with the screen number: looks up what workspace is on that screen, if it exists then perform a window transformation (windows . f)
15:27:23 <geekosaur> X.O.windows is what manipulates the window set and updates the screen
15:27:45 <thyriaen> i am sorry but i don't get it :.
15:27:48 <thyriaen> :/
15:28:51 <thyriaen> where is the button defined ?
15:29:12 <thyriaen> ahhhhh
15:29:13 <geekosaur> f here comes from the second line. `W.view` (show workspace) is paired with a modifier of 0 (no modifier), `W.shift` (move window to workspace) is paired with `shiftMask`
15:29:17 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7)
15:29:42 <geekosaur> and the button comes from the mapping of buttons to workspaces on the first line of the list comprehension
15:29:58 <geekosaur> this is somewhat tricky the way they interact
15:30:02 <thyriaen> i understand - we are creating 2-tuples with the first element of it being a tuple of buttons
15:30:14 <thyriaen> and the 2nd element is what should be done
15:30:16 <geekosaur> we are creating multiple 2-tuples
15:30:22 <thyriaen> yea
15:30:29 <thyriaen> but each element is a 2-tuple
15:30:52 <thyriaen> with the format ((button),todo)
15:31:03 <geekosaur> first 2-tuple is button and workspace, second is operation and modifier mask, then the list comprehension makes a Cartesian product of them
15:31:06 <thyriaen> and with ++ we append that list to all my other keys
15:31:25 <geekosaur> so every possible combination of 2-tuples is created
15:31:42 <thyriaen> ah
15:32:02 <thyriaen> i think i need to understand where the list comprehension is made
15:32:05 <thyriaen> and what it does
15:32:10 <geekosaur> and the expression at the start of the list comprehension combines them all together into an opreration
15:33:04 <geekosaur> the first (outdented) line of the list comp is the operation. it uses variables bound by each of the 2-tuples (i, k, f, m)
15:33:27 <geekosaur> second line gives you a tuple (i, k), third line gives you a tuple (f, m)
15:33:42 <thyriaen> that makes sense
15:33:51 <thyriaen> so
15:34:02 <thyriaen> i could also give a 4-tuple
15:34:06 <thyriaen> and it would do the same ?
15:34:16 <geekosaur> which is deconstructed because the tuple is a pattern "assigned to" by <-
15:34:20 <thyriaen> the last 2 lines just define key, sc, f andm
15:34:40 <geekosaur> you could but it'd not do what you want; they're done this way because they're related values
15:34:54 <thyriaen> i think i get it
15:35:10 <geekosaur> so i and k come from associating a key with a workspace, and f and m come from associating a modifier mask with a function
15:35:25 <geekosaur> that "associating" is why we use tuples
15:35:50 <thyriaen> what does worksapces' conf do ?
15:36:37 <geekosaur> `workspaces conf` looks up the list of workspaces from your config. `workspaces'` is similar but using virtual workspace names
15:36:58 <thyriaen> okay
15:37:03 <geekosaur> instead of the physical workspace names (0_1 etc.) that are in your config
15:37:11 <thyriaen> so one element would be
15:38:14 <thyriaen> ( shiftMask .|. modm, xK_1 ), windows $ onCurrentScreen W.greedyView "1"
15:38:48 <geekosaur> actually it'll be 0 instead of shiftMask
15:39:03 <geekosaur> shiftMask goes with W.shift, not W.greedyView
15:39:42 <thyriaen> ahhhh cartesian product
15:39:43 <thyriaen> ok
15:40:14 <geekosaur> that's not producted, that;s why those are tupled together so they'll be fixed.
15:40:27 <thyriaen> yea but later they are going to be
15:40:29 <thyriaen> it is what i ment
15:40:35 <thyriaen> so you will have all combinations
15:40:57 <thyriaen> the last has just two elemnts namely W.greedyView,0 and W.shift shiftmask
15:41:00 <geekosaur> [(0,W.view),(shiftMask,W.shift)] is producted with [(xK_1,"1"),...]
15:41:12 <thyriaen> exactly
15:41:14 <thyriaen> that is what i ment
15:41:34 <thyriaen> i don't know why ( what syntax does it ) but i understand why ( for what purpose ) it is done
15:41:35 <thyriaen> ok
15:41:48 <thyriaen> that means
15:41:51 <thyriaen> quite frankly
15:42:03 <thyriaen> if i don't want shift operations for my screens
15:42:06 <geekosaur> study list comprehensions. preferably with a simpler one than these; they're tricky 🙂
15:42:31 <thyriaen> i just use (f, m) <- [(W.view, 0)] instead of (f, m) <- [(W.view, 0), (W.shift, shiftMask)]
15:42:38 <geekosaur> yes
15:42:45 <thyriaen> ok
15:42:47 <thyriaen> awesome
15:42:56 <thyriaen> but no
15:42:58 <thyriaen> its not what i want
15:43:04 <thyriaen> i want
15:43:06 <geekosaur> you could also factor the f,m part out but I imagine this is simpler for now
15:43:16 <thyriaen> (f, m) <- [(W.shift, 0)]
15:43:25 <thyriaen> thats what i want
15:43:35 <thyriaen> then the usual shift operation is done without pressing shift
15:44:19 <thyriaen> ok that's nice
15:44:46 <thyriaen> geekosaur, if you would be willing i would like to make it simpler for me
15:44:53 <thyriaen> so i understand the whole thing that is written
15:45:34 <thyriaen> first let me get rid of the zip and use [(xK_w, 0), (xK_r, 1)] instead
15:46:16 <geekosaur> https://paste.tomsmeding.com/OevjiaOl
15:46:25 <geekosaur> compare to yours
15:47:02 <thyriaen> sure because m is always 0 now with my change
15:47:04 <thyriaen> so no need for it
15:47:19 <geekosaur> and similarly no need for f because it's alkways W.shift
15:47:50 <thyriaen> yea it is always the same
15:47:54 <thyriaen> so you can hard code it
15:47:56 <thyriaen> makes sense
15:49:00 <thyriaen> you change the "wrong" one xD
15:49:09 <geekosaur> ?
15:49:11 <thyriaen> i don't want to change that
15:49:27 <geekosaur> I removed shiftMask entirely, it just uses modm
15:49:32 <thyriaen> https://paste.tomsmeding.com/QbP2EqRE
15:50:07 <geekosaur> oh, yes, didn't edit the list comp you wanted, sorry
15:50:15 <thyriaen> no problem :p i did
15:50:36 <thyriaen> now - all i need to understand is :: screenWorkspace sc >>= flip whenJust (windows . W.shift)
15:50:54 <thyriaen> because the rest i do understand now
15:52:08 <thyriaen> and i need to read up on list comprehensions and i am golden
15:52:36 <geekosaur> [21 15:25:12] <geekosaur> and >>= , hm, in this case you can think of it as something like a unix pipe. it runs the IO expression "screenWorkspace sc" and sends the result to "flip whenJust (windows . f)" which might be better understood as "\x -> whenJust x (windows . f)"
15:53:37 <geekosaur> whenJust does something when the value it's passed is (Just x) as opposed to Nothing
15:53:59 <thyriaen> okay why can it be nothing sometimes ?
15:54:41 <thyriaen> and what is windows. W.shift
15:54:42 <geekosaur> screenWorkspace can be invoked on a nonexistent screen; (say you press mod-r but you have only 2 screens)
15:54:58 <thyriaen> ok
15:55:04 <geekosaur> \x -> windows (W.shift x)
15:55:24 <geekosaur> `windows` is the xmonad function that performs window and workspace updates
15:55:35 <thyriaen> so it shifts the window to sc ?
15:55:43 <geekosaur> W.shift moves a window to a different workspace
15:56:00 <geekosaur> it shifts the window to the workspace currently focused on screen sc
15:56:01 <thyriaen> ok
15:56:12 <thyriaen> ah
15:56:14 <thyriaen> perfect
15:56:17 <thyriaen> thats even what i want !
15:56:28 <geekosaur> and screenWorkspace is what takes a screen and produces a workspace
15:57:11 <thyriaen> ah (!)
15:57:12 <thyriaen> ok
15:57:19 <thyriaen> and now i also understand list comprehensions
15:57:38 <thyriaen> iLike
15:57:40 <thyriaen> thanks so much
15:59:24 <thyriaen> geekosaur, can i use spawnOn "1_3" ?
15:59:58 <thyriaen> or is there some way of saying spawnOn screenNumber 2 "3" ?
16:00:29 <thyriaen> because 1_3 doesn't seem to work
16:00:51 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Quit: You have been kicked for being idle)
16:02:28 <geekosaur> `spawnOn (marshal (S 1) "3") …` is technically how you do it, but I would have expected the first one to work too
16:02:40 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
16:02:44 <geekosaur> it may be possible to say just `1` instead of `(S 1)`
16:03:18 <thyriaen> hmm calling the marshal for this might be a bit overkill - sheriff should be enough
16:04:04 <thyriaen> what is there is no S 1 - does it then get put into "0_3" ?
16:04:12 <geekosaur> actually it should be `marshall` because it's misspelled, which always gives me an annoying itch
16:04:33 <geekosaur> it doesn't know, I think
16:04:56 <geekosaur> if you wanted to watch out for that you'd have to use `countScreens` and verify it's in range yourself
16:05:22 <geekosaur> this is one reason I've never used IndependentScreens, you kinda lose if you don't actually have multiple screens
16:06:21 <thyriaen> sigh
16:08:43 <thyriaen> the marshall thing doesn't work
16:10:26 <geekosaur> doesn't work how? did you add manageSpawn to your manageHook?
16:10:49 <thyriaen> je
16:11:03 <geekosaur> is the program you're spawning something like a terminal or browser that plays games with _NET_WM_PID?
16:11:28 <thyriaen> https://paste.tomsmeding.com/lOT3FUM6
16:12:01 <thyriaen> i want to change line 130 to spawn on my second screen on 6 instead of first screen on 6
16:12:48 <geekosaur> flatpak processes run in their own process space, spawnOn won't work
16:13:01 <geekosaur> s/process space/pid space/
16:13:03 <geekosaur> iirc
16:13:39 <geekosaur> spawnOn relies on _NET_WM_PID being useful, which it too often isn't
16:13:53 <thyriaen> spawnon 6 works fine
16:13:59 <thyriaen> with both 1 monitor or 2
16:14:06 <geekosaur> interesting
16:14:07 <thyriaen> just not with spawning on the 2nd
16:14:17 <geekosaur> then the other should work as well
16:14:39 <thyriaen> "1_6" you mean ?
16:14:41 <geekosaur> either "1_6" or (marshall (S 1) "6")
16:15:57 <thyriaen> but for some reason it just ignores what i do
16:16:03 <thyriaen> i changed it to 1_2
16:16:10 <geekosaur> the advantage of using marshall is that you can override how the virtual to physical mapping works (for example, you might want to use _ in a workspace name) and marshall will keep working
16:16:11 <thyriaen> and it gets started into 0_6
16:16:30 <geekosaur> uh
16:16:43 <geekosaur> I just noticed line 90
16:16:50 <geekosaur> oops?
16:16:58 <thyriaen> yea
16:17:00 <thyriaen> ooops
16:17:30 <thyriaen> wait
16:17:31 <thyriaen> no
16:17:34 <thyriaen> i still want that
16:18:17 <geekosaur> you need to think about how those combine, then, because right now it's overriding your manageSpawn
16:18:35 <thyriaen> still doesn't work
16:18:37 <thyriaen> removing it
16:18:45 <thyriaen> it will still put it on screen 0
16:19:49 <thyriaen> ok now
16:19:56 <thyriaen> it makes more sense "how" it doesn't work
16:20:22 <thyriaen> i set it to spawnOn 0_4 and it spawns into the workspace where i am currently am
16:20:32 <thyriaen> ( 0_1 ) in my case
16:20:40 <thyriaen> and doesn't move it anywhere
16:21:05 <thyriaen> ah ok
16:21:15 <thyriaen> spawnOn "4" also doesn't work
16:21:33 <thyriaen> so i guess you where right that spawnOn doesn't do anything
16:21:39 <thyriaen> but the move did so i never noticed
16:22:45 <thyriaen> i now hardcoded a doShift on className =? to 1_6 which is okay for now
16:23:45 <thyriaen> geekosaur, ok thanks a lot - if you find something in my config which i could handle better just let me know -- always open to suggestions
16:52:12 username9431 joins (~Thunderbi@2a00:23c5:4202:9c01:4d47:1a1f:d871:dac1)
17:31:36 Solid_ is now known as Solid
17:32:41 <Solid> liskin geekosaur mc47: https://i.imgur.com/kadZziJ.jpg look what came in the mail today :)
17:33:00 <Solid> (one X is with a white background and one is transparent)
17:36:09 <geekosaur> yay!
17:36:54 <geekosaur> thyriaen, if you're trying to distinguish between windows for shifting, you might want to see if the WM_WINDOW_ROLE property is useful
17:39:09 <geekosaur> you can use <&&> to combine conditions (e.g. `className =? "Signal" <&&> stringProperty "WM_WINDOW_ROLE" =? "whatever"`)
17:41:37 <thyriaen> Solid, awesome
17:46:43 × username9431 quits (~Thunderbi@2a00:23c5:4202:9c01:4d47:1a1f:d871:dac1) (Ping timeout: 246 seconds)
18:40:07 × mudri quits (uid317655@id-317655.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
18:56:51 username9431 joins (~Thunderbi@2a00:23c5:4202:9c01:4d47:1a1f:d871:dac1)
19:12:24 × username9431 quits (~Thunderbi@2a00:23c5:4202:9c01:4d47:1a1f:d871:dac1) (Remote host closed the connection)
19:36:20 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
21:20:51 × jludwig quits (~justin@user/jludwig) (Quit: ZNC - https://znc.in)
21:21:53 jludwig joins (~justin@li657-110.members.linode.com)
21:23:06 × jludwig quits (~justin@li657-110.members.linode.com) (Read error: Connection reset by peer)
21:26:05 jludwig joins (~justin@li657-110.members.linode.com)
21:43:35 × jludwig quits (~justin@li657-110.members.linode.com) (Read error: Connection reset by peer)
21:46:24 jludwig joins (~justin@li657-110.members.linode.com)
21:50:37 × jludwig quits (~justin@li657-110.members.linode.com) (Client Quit)
21:53:07 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 255 seconds)
21:57:51 <liskin> Solid: ♥️
21:59:07 <liskin> Reminds me that we had a party at our apartment block and apparently one of our neighbors is a kernel dev who misses xmonad in his day job
21:59:33 <liskin> Could be a boost to my mental health :-)
21:59:53 <liskin> (still going to be really busy though)
22:05:09 × thyriaen quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
22:18:09 jludwig joins (~justin@li657-110.members.linode.com)
22:45:09 × chomwitt quits (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
23:56:20 × wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 252 seconds)

All times are in UTC on 2022-10-21.