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.