Home liberachat/#xmonad: Logs Calendar

Logs on 2021-08-12 (liberachat/#xmonad)

00:36:01 × ectospasm quits (~ectospasm@user/ectospasm) (Quit: WeeChat 3.2)
00:39:04 ectospasm joins (~ectospasm@user/ectospasm)
01:42:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
01:42:32 allbery_b joins (~geekosaur@xmonad/geekosaur)
01:42:35 allbery_b is now known as geekosaur
02:05:09 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 268 seconds)
02:18:07 × td_ quits (~td@muedsl-82-207-238-098.citykom.de) (Ping timeout: 268 seconds)
02:19:52 td_ joins (~td@94.134.91.94)
02:22:22 banc joins (banc@gateway/vpn/airvpn/banc)
03:40:04 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
03:41:05 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
05:27:14 <unrooted> geekosaur: haha, I had sudo and wheel access
05:28:12 <unrooted> liskin: as electr0n said, basically I want to make Haskell hell, I mean, Haskell paradise haha, so it would be xmonad+xmobar+termonad+yi-editor+aura
05:39:58 <Solid> isn't yi long dead?
05:47:15 <unrooted> I think the latest commit is frøm Nov 2020
05:48:06 <unrooted> anyway, I'll do it just for the sake of the project
05:48:41 <unrooted> I think that Yi itself is recommended to be used as a Library
06:00:32 <Solid> mh seems like someone took it up, merged a few PRs and then abandoned it again
06:01:59 <Solid> but fair enough concerning your reasons---how could I have ever imagined a unixporn post with an actually usable setup :P
06:04:58 <unrooted> this
06:30:57 × thunderrd quits (~thunderrd@183.182.111.78) (Ping timeout: 248 seconds)
07:09:28 <grvxs[m]> I have 2 sets of keybinds stored in different constants how do i toggle between them on a specific keybind?
07:12:54 <elonsroadster[m]> grvxs[m]: This is not a very nice solution, but the only thing I can think of to do is to essentially use a piece of extensible state to track which set of keybinds should be active, and then write a function to merge the actions at each keybind and add a small piece of wrapping code to choose which action should be performed by looking at the extensible state
07:13:23 <Solid> eh before touching extensible state I'd rather just introduce an IORef
07:13:30 <Solid> sounds like the simpler solution
07:14:13 <grvxs[m]> this is how I handle it for now
07:14:13 <grvxs[m]> https://github.com/grvxs/dots/blob/main/xmonad/.xmonad/xmonad.hs
07:14:44 <grvxs[m]> i have a constant which is a string and based on it, it switches the layouts
07:28:59 <elonsroadster[m]> doesnt that require recompilation every time though
07:29:15 <elonsroadster[m]> <Solid> "eh before touching extensible..." <- sure IORef works as well
07:30:38 thunderrd joins (~thunderrd@183.182.111.78)
07:32:14 <grvxs[m]> I don't know much about XMonad can you tell me how to achieve this?
07:45:29 <elonsroadster[m]> grvxs[m]: I described it above
07:46:14 <elonsroadster[m]> basically you need to write some function that "combines" X actions
07:50:40 elonsroadster[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/aa94db0a972d3d5334621d28f7a2bab31d3fc3a8/message.txt >
07:50:50 <elonsroadster[m]> grvxs[m]: something like that ^
07:55:00 <elonsroadster[m]> Then you need to write this function:
07:55:00 <elonsroadster[m]> ```
07:55:00 <elonsroadster[m]> combineKeyMaps ::
07:55:00 <elonsroadster[m]> IORef String -> [(String, M.Map (KeyMask, KeySym) (X ()))] -> M.Map (KeyMask, KeySym) (X ())
07:58:48 wonko joins (~wjc@62.115.229.50)
08:06:28 <elonsroadster[m]> grvxs[m]: you still there
08:06:31 <elonsroadster[m]> I'm writing this thing foryou
08:06:35 <grvxs[m]> yea
08:06:50 <grvxs[m]> oh thanks lol, I was confused when you sent me that
08:17:27 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:27 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:30 allbery_b is now known as geekosaur
08:23:16 <elonsroadster[m]> lol okay
08:23:19 elonsroadster[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/6b5a2d24a4bd63a7cd4ceb9cf6f77646fe778fa2/message.txt >
08:23:24 <elonsroadster[m]> okay that should work
08:23:39 <elonsroadster[m]> Maybe I should contribute this to Xmonad.contrib
08:23:47 <elonsroadster[m]> grvxs[m]: do you understand how to use it?
08:23:59 <grvxs[m]> lemme try
08:24:13 <elonsroadster[m]> so you need to have some key that flips the value of the ioref
08:24:14 <elonsroadster[m]> in each map
08:25:44 <elonsroadster[m]> hmm you may need to change the type of KeyMask to ButtonMaks
08:25:55 <elonsroadster[m]> im not sure what the difference between those 2 are
08:28:17 <grvxs[m]> so `combineKeyMaps` takes a String and a keymap and then returns a keymap
08:28:45 <grvxs[m]> how do I use it though?
08:30:02 <elonsroadster[m]> no it takes a LIST of [(String, Keymap)] airs
08:30:04 <elonsroadster[m]> pairs
08:30:10 <elonsroadster[m]> and returns a single keymap
08:30:14 <elonsroadster[m]> you also need an ioref
08:30:31 <elonsroadster[m]> so like you have a two keymaps right?
08:30:32 <elonsroadster[m]> so you would go like
08:31:21 <elonsroadster[m]> ```
08:31:21 <elonsroadster[m]> combineKeyMaps ref [("first keymap name", firstKeymap), ("second keymap name", secondKeymap)]
08:31:37 <elonsroadster[m]> and you need to make the ref in your main function
08:31:38 <elonsroadster[m]> like
08:32:38 <elonsroadster[m]> ```
08:32:38 <elonsroadster[m]> main = do
08:32:38 <elonsroadster[m]> ref <- newIORef "first keymap name"
08:35:48 <grvxs[m]> how do i make a keybind that toggles between these
08:36:32 <elonsroadster[m]> ugh you're using easy keys
08:36:40 <elonsroadster[m]> oh thats easy
08:36:52 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/591884f9b383493a0e2ebbc54ee2a14b8cf6dbba/message.txt >
08:37:03 <grvxs[m]> i want to toggle between these
08:37:09 <elonsroadster[m]> yeah so
08:38:25 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/cbbe457395e5f117d0179813b2a92d6d4a094882/message.txt >
08:38:58 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/d4e68be204cd5877638f64e71eedbb0cad957af9/message.txt >
08:39:43 <elonsroadster[m]> the toggle function would be
08:39:43 <elonsroadster[m]> ```
08:39:43 <elonsroadster[m]> useDvorak :: IORef String -> X ()
08:39:43 <elonsroadster[m]> useDvorak ref = liftIO $ writeIORef ref "dvorak"
08:39:55 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/a5db375f94cda88ff9cbe1088d416f99ca39e7c0/message.txt >
08:40:31 <elonsroadster[m]> okay i mean why is that relevant
08:40:33 <elonsroadster[m]> like
08:40:44 <elonsroadster[m]> what you would do is just make 1 keymap that you want when qwerty is active
08:40:49 <elonsroadster[m]> and 1 you want when dvorak is active
08:40:59 <grvxs[m]> ok i'll combine them
08:41:03 <elonsroadster[m]> ```
08:41:03 <elonsroadster[m]> useQwerty :: IORef String -> X ()
08:41:03 <elonsroadster[m]> useQwerty ref = liftIO $ writeIORef ref "qwerty"
08:41:24 <grvxs[m]> > <@elonsroadster[m]:libera.chat> ```
08:41:24 <grvxs[m]> > combineKeyMaps ref [("first keymap name", firstKeymap), ("second keymap name", secondKeymap)]
08:41:24 <grvxs[m]> where and how do I use this
08:41:26 <lambdabot> <hint>:1:1: error: parse error on input ‘<@’
08:41:26 <lambdabot> error:
08:41:26 <lambdabot> Variable not in scope: combineKeyMaps :: t0 -> [([Char], b0)] -> terror:
08:41:26 <lambdabot> • Variable not in scope: ref
08:41:42 <elonsroadster[m]> right i told you
08:41:56 <elonsroadster[m]> ```
08:41:56 <elonsroadster[m]> main = do
08:41:56 <elonsroadster[m]> ref <- newIORef "first keymap name"
08:42:03 <elonsroadster[m]> thats where you get ref from
08:42:13 <elonsroadster[m]> * ```
08:42:13 <elonsroadster[m]> main = do
08:42:13 <elonsroadster[m]> ref <- newIORef "dvorak"
08:42:13 <elonsroadster[m]> ```
08:46:52 <elonsroadster[m]> here ill make a pr for you
08:47:57 <grvxs[m]> thanks
08:51:07 <elonsroadster[m]> https://github.com/grvxs/dots/pull/2
08:51:15 <elonsroadster[m]> youll need to add a binding to toggle between them
08:51:17 <elonsroadster[m]> also
08:51:22 <elonsroadster[m]> lol I did not test this at all
08:51:28 <elonsroadster[m]> but it compiles
08:51:40 <grvxs[m]> lol it's ok
08:52:29 <elonsroadster[m]> grvxs[m]: does it kind of make sense to you
08:52:31 <elonsroadster[m]> what is going on?
08:53:01 <grvxs[m]> yea kind of
08:53:22 <elonsroadster[m]> do you know hwo to add the bindings for useQwerty?
08:53:26 <elonsroadster[m]> its a little tricky
08:53:35 <elonsroadster[m]> well no its not that bad
08:53:42 <elonsroadster[m]> you have to do it in the function defaults
08:53:44 <elonsroadster[m]> where you have the ref
08:54:01 <grvxs[m]> not in EZConfig?
08:54:05 <grvxs[m]> lol
08:54:16 <elonsroadster[m]> no
08:54:24 <elonsroadster[m]> you need access to the ref
08:54:30 <elonsroadster[m]> god ezconfig is the dumbest thing ever
08:55:03 <grvxs[m]> how do i set a keybind?
08:55:47 <elonsroadster[m]> so okay im guessing you must have cargo culted like all of this right?
08:55:56 <elonsroadster[m]> because you're setting keybinds all over the place
08:56:32 <grvxs[m]> yea, I took someone else's config and changed it according to me
08:56:57 <elonsroadster[m]> you can just add
08:56:57 <grvxs[m]> i only know a little bit of haskell, like I used to solve project euler with it
08:58:12 <elonsroadster[m]> ```
08:58:12 <elonsroadster[m]> (myKeys ++ [("binding", useDvorak ref), ("binding", useQwerty ref)])
08:58:22 AndrewYu joins (~andrew@user/andrewyu)
08:58:24 <elonsroadster[m]> you see where that is
08:58:38 <elonsroadster[m]> and just replace binding with whatever you want using your stupid ezconfig
08:59:14 <elonsroadster[m]> does that work?
09:09:23 <Solid> can you perhaps stop with the insecurities regarding ezconfig? :)
09:09:34 <grvxs[m]> i'm sorry xorg crashed rip
09:09:49 <grvxs[m]> it's not necessary that i set it with ezconfig
09:10:10 <elonsroadster[m]> Solid: Insecurities? Not sure where you're getting that from
09:10:51 <elonsroadster[m]> grvxs[m]: nah im just kidding around, use whateve ryou like
09:12:02 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/898255df28a3fbb19e79426896bbead29167523c/message.txt >
09:12:12 <grvxs[m]> you mean something like this right?
09:12:33 <grvxs[m]> last time xorg crashed because i did something like this lol
09:13:19 <elonsroadster[m]> what no
09:13:32 <elonsroadster[m]> oh well yes wait sorry that should work
09:13:47 <grvxs[m]> cy ,rpt.e
09:14:05 <grvxs[m]> it worked
09:14:09 <grvxs[m]> thanks a lot guys
09:14:15 <elonsroadster[m]> hah really
09:14:21 <grvxs[m]> yea
09:14:28 <elonsroadster[m]> gotta love haskell. Code works the first time so much more than with any other language
09:15:10 <grvxs[m]> i'm not sure why xorg crashed last time lol
09:15:16 <elonsroadster[m]> grvxs[m]: You should consider cleaning it up and submitting it xmonad-contrib
09:15:29 <elonsroadster[m]> seems like something that might be generally useful to people
09:15:41 <elonsroadster[m]> grvxs[m]: probably just unrelated
09:15:47 <grvxs[m]> yea, i'll clean up this code. But you made this xD you could submit it
09:15:55 <grvxs[m]> i have a lot to leanr about XMonad
09:16:04 <grvxs[m]> * i have a lot to learn about XMonad
09:16:47 <elonsroadster[m]> you should really switch away from using strings for this
09:16:54 <elonsroadster[m]> would be way better to use an ADT
09:17:01 <elonsroadster[m]> like:
09:17:05 <grvxs[m]> i'm refactoring my whole config
09:17:22 <grvxs[m]> make it as minimal and functional as possible
09:17:27 seschwar joins (~seschwar@user/seschwar)
09:17:33 <elonsroadster[m]> data MyLayout = Qwerty | Dvorak
09:17:51 <elonsroadster[m]> and then you wont have to handle the case where the string does not match one of the expected values
09:18:10 <elonsroadster[m]> all you have to do is replace String with a type variable
09:18:31 <grvxs[m]> yea
09:18:59 <grvxs[m]> thanks a lot for your help
09:19:20 elonsroadster[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/9d9fb89d1ff8a7944005fb59957ad6ffa70ee911/message.txt >
09:19:30 <elonsroadster[m]> grvxs[m]: yeah glad it worked for you
09:26:02 <Solid> \o/
09:47:17 <unrooted> god damn, how long can it take to install GHC
09:51:47 × thunderrd quits (~thunderrd@183.182.111.78) (Ping timeout: 245 seconds)
09:53:35 a6a45081-2b83 joins (~aditya@223.226.228.68)
09:55:03 <liskin> 20 seconds in GitHub Actions :-)
09:55:58 <unrooted> already like an hour Or even more on my laptop ;_;
09:58:34 <liskin> what
09:58:41 <liskin> are you compiling from source?
09:58:59 <Solid> sounds like it
10:02:15 thunderrd joins (~thunderrd@183.182.111.78)
10:03:04 <unrooted> I'm using the Installation guide from the xmonad Website, with usage of stack
10:03:27 <unrooted> And it seems like it's Stück on 'Installing GHC...' for å while, can I make it use system's GHC?
10:05:00 <Solid> you can add `system-ghc: true` to ~/.stack/config.yaml
10:05:06 <Solid> there's probably also a command line flag for it
10:05:17 <unrooted> thanks å lot
10:05:34 <unrooted> also, a note for every Arch-based User in here, try Parallel Downloads, it's great
11:01:22 <unrooted> can the fact that I'm doing this on USB stick be my issue?
11:13:55 <liskin> if said stick is mounted "sync", then yes, indeed
11:14:30 <liskin> if not and you have 10+ gigs of ram, then it's a bit weird, but understandable if something calls sync/fsync more often than it should
11:14:47 <liskin> if you have less ram, then usb sticks can't be expected to be usable
11:45:44 × a6a45081-2b83 quits (~aditya@223.226.228.68) (Remote host closed the connection)
11:51:06 <unrooted> 16gb of ram, but Yeah, sync might be an issue
11:51:26 <unrooted> also I'm doing this on the mønster called Bedrock Linux 😅
12:32:55 unrooted uploaded an image: (87KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/wpKEJdENHcGYLaymmxWzzpyp/2021-08-12_14-19.png >
12:32:56 <unrooted> any ideas?
12:37:17 <geekosaur> elonsroadster[m], https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Actions/KeyRemap.hs
12:41:54 <unrooted> λ ~/ xmobar
12:41:54 <unrooted> xmobar: SocketError {socketErrorMessage = "Network.Socket.connect: <socket: 12>: does not exist (No such file or directory)", socketErrorFatal = True, socketErrorAddress = Just (Address "unix:path=/run/user/1000/bus")}
12:41:55 <unrooted> kek?
13:29:40 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds)
14:01:34 × seschwar quits (~seschwar@user/seschwar) (Quit: :wq)
14:02:11 <liskin> session dbus not running, apparently
14:02:19 <liskin> this wouldn't happen on a proper linux distro
14:08:34 <geekosaur> I didn't know xmobar used dbus
14:09:41 <liskin> optionally
14:14:41 <byorgey> liskin: just logged into IRC for first time in a while and noticed "#xmonad < liskin> I wonder how much longer shall we wait for byorgey, dmwit_ and sibi to reply". Reply to what?
14:15:05 <liskin> byorgey: e-mails, we sent you a lot of e-mails :-)
14:15:44 <byorgey> I don't recall getting any emails. Unless you mean emails sent to the xmonad mailing list, which I don't really read these days
14:16:00 <geekosaur> these were sent directly
14:16:23 mc47 joins (~mc47@xmonad/TheMC47)
14:16:43 <liskin> have we got the right address? I used byorgey@gmail.com as that's what I found in the git repo
14:17:04 byorgey goes to look
14:17:11 <byorgey> that's the right address
14:18:29 <geekosaur> "xmonad: future, funding, etc."
14:19:20 <byorgey> oh, I see now. Sorry, I honestly didn't notice those were sent directly to me rather than to the mailing list.
14:19:39 <byorgey> Mailing list messages still show up in my inbox and I mostly archive them without reading, which I guess has created a sort of "crying wolf" effect
14:23:25 <liskin> oh well, mailing list messages are prefixed by "[xmonad]" whereas this one was prefixed by "xmonad:", and my e-mail client does clearly distinguish e-mails sent to me, e-mails ccd to me and other e-mails, so I'm a bit out of ideas about what I could've done to prevent this :-/
14:24:06 <liskin> I'm almost tempted to suggest that you turn off the reception of e-mails/notifications you don't intend to read anyway :-)
14:24:09 <byorgey> no worries, not your fault.
14:25:18 <byorgey> liskin: that's a good suggestion. I think the only reason I haven't is a vague sense of FOMO / maybe there will be something I can help out with. But clearly this was ineffective.
14:26:12 <byorgey> and actually, I am pretty aggressive about unsubscribing/hiding things in general. xmonad is one of the few mailing lists that still comes to my inbox.
14:26:24 <liskin> understandable
14:27:03 <byorgey> Anyway, I am on board with the things that were suggested in that thread. I will write an email response as well.
14:27:50 <liskin> but we do highlight you and/or cc you whenever we feel you might help, so tuning the noise down might be more effective indeed
14:28:03 <liskin> okay, cool!
14:29:09 <byorgey> aha, the original message and the one you resent from gmail both went into my spam, which also helps explain how I missed it. I did get some of the replies though.
14:39:56 seschwar joins (~seschwar@user/seschwar)
14:41:50 <unrooted> <liskin> "session dbus not running..." <- liskin: but it has to be running because then I guess xmonad and lightdm won't work 🤔
14:42:46 wonko joins (~wjc@62.115.229.50)
14:43:40 <geekosaur> xmonad doesn't care about dbus
14:44:05 <geekosaur> and lightdm only cares to the extent that it can be configured to s\autostart dbus with a session
15:03:30 <elonsroadster[m]> <geekosaur> "elonsroadster, https://github...." <- I looked at that and it's not at all the same as what was being asked for
15:05:04 <elonsroadster[m]> geekosaur unless I'm totally missing something, that allows you to remap particular keys. What was being asked for was to have two different keymaps and to be able to toggle between them.
15:06:34 × theproffesor quits (~theproffe@user/theproffesor) (Ping timeout: 240 seconds)
15:06:48 <elonsroadster[m]> And when I say keymaps in this case what I mean is set of key bindings
15:11:48 <geekosaur> the example is toggling between qwerty and dvorak
15:21:21 <Solid> huh, that's a really neat module
15:30:56 By_JumperX4[m] parts (~byjumperx@2001:470:69fc:105::a2e) ()
15:34:30 × seschwar quits (~seschwar@user/seschwar) (Quit: :wq)
15:35:16 × mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
15:57:57 <unrooted> geekosaur: what to do then?
15:59:40 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 272 seconds)
16:02:56 <geekosaur> unrooted, you can look into how to have lightdm autostart dbus with the session, or you can have the xmonad session run under dbus-launch
16:03:23 <unrooted> okie
16:09:05 seschwar joins (~seschwar@user/seschwar)
16:29:54 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
16:29:54 allbery_b joins (~geekosaur@xmonad/geekosaur)
16:29:57 allbery_b is now known as geekosaur
17:23:53 mc47 joins (~mc47@xmonad/TheMC47)
17:23:54 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
17:29:51 denbrahe[m] joins (~denbrahem@2001:470:69fc:105::19c0)
17:35:01 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
17:35:26 geekosaur joins (~geekosaur@xmonad/geekosaur)
17:50:17 wonko joins (~wjc@62.115.229.50)
18:02:10 <elonsroadster[m]> <geekosaur> "the example is toggling between..." <- geekosaur I think you're still misunderstanding. He was not asking to toggle between qwerty and Dvorak, he was asking to activate a different set of key bindings that just so happened to have the names qwerty and Dvorak.
18:02:47 <elonsroadster[m]> I.e. he wanted to have his xmonad keyboards be different when he was using each of the layouts
18:09:34 <fizzie> But it was still exactly the same set of *actions* they wanted, I think, just on different keys. So what's the practical difference between remapping keys (for the purposes of key bindings only, which is what XMonad.Actions.KeyRemap does) vs. switching to a different set of bindings? As long as you need the same actions (just on different keys), you can accomplish that with either.
18:17:01 <elonsroadster[m]> <fizzie> "But it was still exactly the..." <- A few points:
18:17:01 <elonsroadster[m]> - I didn't look closely at the set of keybinds grvxs[m] was requesting, so I'm not sure whether or not this was true
18:17:01 <elonsroadster[m]> - Even if it were true, it would have been much more work for him to translate exactly what he wanted into a format compatible with KeyRemap. He had two sets of keymaps defined as keybindings already, my code ended up just being plug and play
18:17:01 <elonsroadster[m]> - Obviously biased, but the code I gave him was also simpler and easier to understand
18:30:09 <fizzie> Well, depending. You can argue remapping would be a net simplification, because you don't need to keep maintaining two nominally independent sets of keybindings when really the intent you want to express is "this single set of bindings should stay on the same physical keys". Sure, the delta from their current config would have been larger.
18:30:15 <fizzie> (I agree just swapping the bindings on the fly is *conceptually* simpler. And KeyRemap is kind of clunky.)
18:31:41 <unrooted> okay I fixed that xmobar issue from before, thanks guys
18:31:48 unrooted uploaded an image: (352KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/GJyTtHTmMbagPZiFsoMlQEIr/unixpornProgress2.png >
18:32:02 <unrooted> I think I can share progress (screenshot from before fixing xmobar)
18:32:24 <Solid> you may also argue that not having to understand the code is exactly what the top level docs of KeyRemap are for ;)
18:32:42 <Solid> though I agree that what elonsroadster[m] wrote is probably more extensible overall
18:33:07 <Solid> (and it would probably make a great module)
18:37:53 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 248 seconds)
18:44:24 <unrooted> god damn it, does it take always so long to use custom shell command in xmobar?
18:45:17 unrooted uploaded an image: (10KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/hEazivBKknwCGTZdgsgfxOxi/image.png >
18:46:22 <unrooted> even using built-in weather module doesn't work 😩
18:56:23 <geekosaur> that looks like it's not getting output
18:59:41 <unrooted> fixed that using nix version of xmobar
18:59:43 unrooted uploaded an image: (8KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/fYuWGHuPzxNDCXDFuXjRGiIT/image.png >
19:05:58 nova joins (novasenco@user/nova)
20:12:16 berberman_ joins (~berberman@user/berberman)
20:13:47 × berberman quits (~berberman@user/berberman) (Ping timeout: 268 seconds)
20:19:31 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/717fe81b2b6e3b02f68afdec6b20f43ded3d87ce/message.txt >
20:20:08 grvxs[m] uploaded an image: (42KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/qHSjrPJNJWxEyhdLGdqJaFDc/image.png >
20:27:23 <grvxs[m]> https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Actions/KeyRemap.hs
20:27:23 <grvxs[m]> wait this does exactly what I want, it even has the same layout I use
20:30:14 <elonsroadster[m]> grvxs[m]: Great! Use that if that feels more comfortable to you.
20:30:32 <elonsroadster[m]> It's not clear to me that it allows toggling back and forth though, so I'm not sure how you would accomplsih that
20:30:53 <grvxs[m]> yea, i was trying to find that lol
20:31:56 <grvxs[m]> the current config works just fine but it has an issue (toggling workspaces don't work)
20:31:56 <grvxs[m]> https://www.reddit.com/r/xmonad/comments/n5dop6/is_there_a_xmonad_equivalent_for_i3s_workspace/
20:32:24 <elonsroadster[m]> I think you can use `setKeyRamp dvorakProgrammerKeyRemap`
20:32:42 <elonsroadster[m]> grvxs[m]: wdym by toggling in this case?
20:32:43 <grvxs[m]> I noticed it when I added the shiftWorkspaceBinds to the normal binds
20:33:10 <elonsroadster[m]> I still dont quite understand what you mean by "toggling" in this case
20:33:18 <elonsroadster[m]> I'm assuming that you can switch workspaces right?
20:33:19 <grvxs[m]> if I am on workspace 1 and then I go to workspace 3, pressing the keymap for workspace 3 should take me back to 1
20:33:37 wonko joins (~wjc@62.115.229.50)
20:33:56 <elonsroadster[m]> grvxs[m]: that's certainly not xmonad default behavior
20:34:03 <grvxs[m]> yea it's not
20:34:13 <grvxs[m]> I have that in my keybinds
20:34:21 <elonsroadster[m]> so unless you added some config to do that it wont do that
20:35:22 <grvxs[m]> It was working, but it didn't work when I added the 2 sets of layouts I had
20:35:47 <grvxs[m]> lemme send the commit wait
20:36:16 <grvxs[m]> https://github.com/grvxs/dots/commit/cea93ca819bf46570bc8e66b514507bbc5d3c45d
20:37:34 <elonsroadster[m]> it should work in qwerty mode
20:37:38 <elonsroadster[m]> but maybe not in dvorak mode
20:37:47 <elonsroadster[m]> is that right?
20:37:54 <grvxs[m]> it doesn't work in qwerty nor in dvorak
20:38:19 <grvxs[m]> the concatenation of lists did something wrong ig
20:39:15 <elonsroadster[m]> I actually don't understand why you'd want this binding at all though
20:39:27 <grvxs[m]> btw both sets of keybinds work when they're not concatenated to the normal ones
20:39:29 <elonsroadster[m]> why not just have a binding for cycle workspace that always takes you to the last workspace
20:39:52 <grvxs[m]> yea, I have that
20:39:52 <grvxs[m]> M-U
20:40:05 <grvxs[m]> i got kinda used to the "toggling" workspaces when I used i3
20:41:07 <elonsroadster[m]> wait you're saying that if you only bind the "switchable" keys
20:41:21 <elonsroadster[m]> things work, but if you add in the rest of your normal keys it doesn't?
20:41:51 <grvxs[m]> umm
20:42:04 <grvxs[m]> <grvxs[m]> "https://github.com/grvxs/dots/co" <- after this commit it doesn't work
20:42:45 grvxs[m] uploaded an image: (71KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/swgspaGYbfPDXUzLdbPvkBFx/image.png >
20:42:52 <elonsroadster[m]> wait are you sure they work, to me it seems like you got the order wrong
20:43:08 <grvxs[m]> i got rid of the above and added them to the workspaceBinds function
20:43:57 <grvxs[m]> they work before that commit
20:44:10 <elonsroadster[m]> This part: `bindOn [("", windows $ W.greedyView n), (n, toggleWS)])` seems wrong to me
20:44:19 <grvxs[m]> and I add this in the
20:44:19 <grvxs[m]> ``` , keys = workspaceShiftBinds myLayout
20:44:19 <grvxs[m]> ```
20:44:20 <grvxs[m]> * and I add this in the
20:44:21 <grvxs[m]> ```
20:44:21 <grvxs[m]> ```
20:44:31 <grvxs[m]> * and I add this in the
20:44:31 <grvxs[m]> ```
20:44:31 <grvxs[m]> , keys = workspaceShiftBinds myLayout
20:44:31 <grvxs[m]> ```
20:44:44 <elonsroadster[m]> ah nvm
20:44:48 <grvxs[m]> * and I add this in the defaults
20:44:48 <grvxs[m]> ```
20:44:48 <grvxs[m]> , keys = workspaceShiftBinds myLayout
20:44:48 <grvxs[m]> ```
20:47:18 <elonsroadster[m]> wait what isn't this part: `(f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]` going to clobber what came before?
20:47:49 <elonsroadster[m]> specifically: `(W.greedyView, 0),`
20:48:04 <elonsroadster[m]> so it makes perfect sense that it stopped working
20:48:36 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/dfec83630afc3c5df81f3f6565342d213fd775e4/message.txt >
20:48:59 <elonsroadster[m]> no listen to what im saying
20:49:12 <elonsroadster[m]> this part `(W.greedyView, 0),`
20:49:12 <grvxs[m]> ok
20:49:15 <elonsroadster[m]> is clobbering the key definitions that came before it
20:49:31 <elonsroadster[m]> you're re-binding the definitions you set earlier
20:49:41 <elonsroadster[m]> I think you shuold just delete that part
20:49:43 <elonsroadster[m]> or alternatively
20:49:49 <elonsroadster[m]> if you wanted to combine everythinng
20:50:14 <elonsroadster[m]> `W.greedyView` should be the `bindOn [("", windows $ W.greedyView n), (n, toggleWS)]` from above
20:50:23 <elonsroadster[m]> and then you can just delete the whole thing above
20:51:11 <elonsroadster[m]> also you're doing the same thing in the qwerty layout: `[(W.greedyView, 0), (W.shift, shiftMask)]`
20:51:28 <elonsroadster[m]> this is binding both `mod + number` to greedyView
20:51:43 <elonsroadster[m]> AND mod + shift + number
20:52:03 elonsroadster[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/778d8a26ce50b44adbaf451cb2d027095eef68d0/message.txt >
20:52:26 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds)
20:52:26 <grvxs[m]> ok it worked
20:52:27 <grvxs[m]> thanks
20:54:13 <grvxs[m]> One last question can I have only 1 keybind for example "M-S-l" which does the following for me
20:54:13 <grvxs[m]> run a bash script(setxbmap) using spawn
20:54:13 <grvxs[m]> if the layout is qwerty then switch to dvorak and vice versa
20:54:23 <grvxs[m]> * One last question can I have only 1 keybind for example "M-S-l" which does the following for me
20:54:23 <grvxs[m]> run a bash script(setxkbmap) using spawn
20:54:23 <grvxs[m]> if the layout is qwerty then switch to dvorak and vice versa
20:55:07 <grvxs[m]> I'm sorry if I'm annoying
20:55:45 <elonsroadster[m]> grvxs[m]: yes i was actually going to suggest something like this
20:56:03 <grvxs[m]> yea it seems more reasonable
20:56:05 <elonsroadster[m]> I dont know too much about keyboard layouts
20:56:18 <elonsroadster[m]> but is there a command you can run that will tell you what the current layout is?
20:56:28 <grvxs[m]> yes there is
20:56:36 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/71fecf2f27dcd0487e0e80caea94182385db9d27/message.txt >
20:56:41 <grvxs[m]> this script might be helpful
20:56:55 <grvxs[m]> us is qwerty and dvp is programmer dvorak
20:57:25 <elonsroadster[m]> right so then instead of using an IORef, what you could do is just run a shell command to decide which map to use
20:57:58 <grvxs[m]> hmmm
20:58:26 <grvxs[m]> `LAYOUT=$(setxkbmap -query | grep layout | awk '{print $2}')` this will give the current layout
20:58:44 <elonsroadster[m]> so you'd replace this line: `currentLayout <- liftIO $ readIORef ref`
21:01:10 <grvxs[m]> how do we get the output of a shell script to a variable?
21:03:00 <elonsroadster[m]> `runProcessWithInput`
21:03:04 <elonsroadster[m]> https://github.com/xmonad/xmonad-contrib/blob/d5522d69db9ae2a57b3a10056ea7e80aaddf123d/XMonad/Util/Run.hs#L57
21:03:32 <elonsroadster[m]> the only thing I might worry about is that this could have an effect on how quickly your bindings run
21:03:42 <elonsroadster[m]> but it probably would not be noticeable
21:03:52 <grvxs[m]> wdym?
21:03:53 <grvxs[m]> oh, delay?
21:04:09 <grvxs[m]> yea it might not be noticable
21:04:17 <elonsroadster[m]> yeah because it means it would be shelling out before running each command every time
21:04:18 <elonsroadster[m]> yeah it probably will not be noticeable
21:04:46 <elonsroadster[m]> but if it were, you could cache the result using some type of extensible state and then update it every so often or something
21:05:13 <elonsroadster[m]> so yeah just use `runProcessWithInput`
21:06:03 grvxs[m] < https://libera.ems.host/_matrix/media/r0/download/libera.chat/056576783e34e438aae13a2ea5d1ab7540ce8de0/message.txt >
21:07:45 <elonsroadster[m]> great then no issue
21:07:55 <elonsroadster[m]> do you know how to use runProcessWithInput properly?
21:08:22 <grvxs[m]> no i think it works like System.Process (readProcess)
21:08:43 <grvxs[m]> i saw it on stackoverflow but I don't know how to pipe
21:12:48 <elonsroadster[m]> just read the doc here: https://github.com/xmonad/xmonad-contrib/blob/a03d58cf6a071f9bacb3543e70e94c0c5603434c/XMonad/Util/Run.hs#L57
21:12:51 <elonsroadster[m]> its very straightforward
21:13:54 <grvxs[m]> thanks I'll try this tomorrow 2:41 am oof
21:14:04 <grvxs[m]> thanks for your help
22:37:06 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:38:57 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:54:13 × seschwar quits (~seschwar@user/seschwar) (Quit: :wq)
23:18:51 <yuu[m]> omg is there a way to position the mouse cursor in into the window (like in the center) when resizing?
23:20:34 <yuu[m]> for some reason by default it always put the cursor in the lower right, which leads to many inconveniences
23:37:41 × srk quits (~sorki@user/srk) (Ping timeout: 268 seconds)
23:46:35 srk joins (~sorki@user/srk)
23:54:36 × jakub[m]1 quits (~jakubfami@2001:470:69fc:105::a43) (Ping timeout: 240 seconds)
23:54:42 × diaspora[m] quits (~diasporae@2001:470:69fc:105::93e) (Ping timeout: 245 seconds)
23:54:42 × craige[m] quits (~craigemcw@2001:470:69fc:105::35f1) (Ping timeout: 245 seconds)
23:54:42 × yuu[m] quits (~yuumatrix@2001:470:69fc:105::8a6) (Ping timeout: 245 seconds)
23:54:50 × M-elo-[m] quits (~gilganixm@2001:470:69fc:105::3d09) (Ping timeout: 256 seconds)
23:54:58 × gate32[m] quits (~gate32mat@2001:470:69fc:105::9e3) (Ping timeout: 240 seconds)
23:54:59 × dkasak[m] quits (~dkasakter@2001:470:69fc:105::a34) (Ping timeout: 240 seconds)
23:54:59 × josiah_sama[m] quits (~josiahsam@2001:470:69fc:105::a46) (Ping timeout: 240 seconds)
23:54:59 × oggythebilla[m] quits (~oggythebi@2001:470:69fc:105::17ed) (Ping timeout: 240 seconds)
23:54:59 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Ping timeout: 252 seconds)
23:55:00 × cjbaylisstheythe quits (~cjbayliss@2001:470:69fc:105::bade) (Ping timeout: 252 seconds)
23:55:00 × sagaracharya[m] quits (~sagaracha@2001:470:69fc:105::690d) (Ping timeout: 252 seconds)
23:55:00 × antilambda[m] quits (~antilambd@2001:470:69fc:105::a2b) (Ping timeout: 252 seconds)
23:55:00 × vojjvoda[m] quits (~vojjvodam@2001:470:69fc:105::cefe) (Ping timeout: 252 seconds)
23:55:00 × Youssef[m] quits (~youssefbm@2001:470:69fc:105::d1e1) (Ping timeout: 252 seconds)
23:55:00 × DrRoot[m] quits (~drroot85m@2001:470:69fc:105::c35e) (Ping timeout: 252 seconds)
23:55:06 × jgart[m] quits (~jgartemat@2001:470:69fc:105::5c9) (Ping timeout: 252 seconds)
23:55:06 × ClassifiedLegend quits (~classifie@2001:470:69fc:105::cee4) (Ping timeout: 252 seconds)
23:55:07 × TheWizardTower[m quits (~thewizard@2001:470:69fc:105::a5b) (Ping timeout: 252 seconds)
23:55:07 × ci[m] quits (~cimatrixo@2001:470:69fc:105::d59e) (Ping timeout: 252 seconds)
23:55:07 × iffsid quits (~iffsid@2001:470:69fc:105::a3e) (Ping timeout: 252 seconds)
23:55:08 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 245 seconds)
23:55:13 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Ping timeout: 268 seconds)
23:55:13 × Mellow[m] quits (~mellow210@2001:470:69fc:105::8c62) (Ping timeout: 268 seconds)
23:55:13 × amirography[m] quits (~amirograp@2001:470:69fc:105::c365) (Ping timeout: 268 seconds)
23:55:13 × jidra[m] quits (~jidramatr@2001:470:69fc:105::ceaa) (Ping timeout: 268 seconds)
23:55:13 × mc47[m] quits (~mc47matri@2001:470:69fc:105::733) (Ping timeout: 268 seconds)
23:55:13 × syntactic_sugar[ quits (~syntactic@2001:470:69fc:105::b4af) (Ping timeout: 268 seconds)
23:55:16 × fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Ping timeout: 276 seconds)
23:55:16 × telefza[m] quits (~telefzama@2001:470:69fc:105::3c37) (Ping timeout: 276 seconds)
23:55:22 × sibi quits (~sibi@2001:470:69fc:105::8ab) (Ping timeout: 240 seconds)
23:55:22 × MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Ping timeout: 272 seconds)
23:55:23 × Drishal[m] quits (~drishalma@2001:470:69fc:105::a36) (Ping timeout: 272 seconds)
23:55:23 × marsupilami1[m] quits (~marsupila@2001:470:69fc:105::d284) (Ping timeout: 272 seconds)
23:55:23 × Industrial[m] quits (~industria@2001:470:69fc:105::eb9) (Ping timeout: 272 seconds)
23:55:23 × moyamo[m] quits (~moyamomat@2001:470:69fc:105::a51) (Ping timeout: 272 seconds)
23:55:24 × sav3d[m] quits (~sav3dmatr@2001:470:69fc:105::cebe) (Ping timeout: 272 seconds)
23:55:24 × rednaZ[m] quits (~r3dnazmat@2001:470:69fc:105::ba70) (Ping timeout: 272 seconds)
23:55:24 × triumphofdeath[m quits (~triumphof@2001:470:69fc:105::a5c) (Ping timeout: 256 seconds)
23:55:24 × Sam[m]12 quits (~mmarvidfr@2001:470:69fc:105::3bf) (Ping timeout: 256 seconds)
23:55:24 × Tisoxin quits (~ikosit@user/ikosit) (Ping timeout: 256 seconds)
23:55:32 × hackeryarn[m] quits (~achernyak@2001:470:69fc:105::68f9) (Ping timeout: 252 seconds)
23:55:32 × HAL[m] quits (~evadk8mat@2001:470:69fc:105::3ed0) (Ping timeout: 252 seconds)
23:55:38 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Ping timeout: 252 seconds)
23:55:39 × KittyOwO[m] quits (~wrinklehu@2001:470:69fc:105::84e) (Ping timeout: 252 seconds)
23:55:39 × irishlucklinux[m quits (~irishluck@2001:470:69fc:105::3818) (Ping timeout: 252 seconds)
23:55:39 × benjamineldridge quits (~benjamine@2001:470:69fc:105::ce85) (Ping timeout: 252 seconds)
23:55:48 × fuzzygrim[m] quits (~fuzzygrim@2001:470:69fc:105::ce8b) (Ping timeout: 268 seconds)
23:55:48 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Ping timeout: 268 seconds)
23:55:49 × elonsroadster[m] quits (~elonsroad@2001:470:69fc:105::d121) (Ping timeout: 268 seconds)
23:55:49 × jakefromstatefar quits (~jakefroms@2001:470:69fc:105::15ef) (Ping timeout: 268 seconds)
23:55:54 × mewfree[m] quits (~mewfreema@2001:470:69fc:105::c904) (Ping timeout: 276 seconds)
23:55:54 × ms[m] quits (~msmatrixp@2001:470:69fc:105::2b48) (Ping timeout: 276 seconds)
23:55:54 × TomasJakl[m] quits (~jaklttchn@2001:470:69fc:105::a42) (Ping timeout: 276 seconds)
23:55:54 × VarikValefor[m] quits (~varikvale@2001:470:69fc:105::a5d) (Ping timeout: 276 seconds)
23:55:54 × TAydner[m] quits (~taydinerm@2001:470:69fc:105::3e55) (Ping timeout: 276 seconds)
23:55:56 × grvxs[m] quits (~grvxsmatr@2001:470:69fc:105::cf13) (Ping timeout: 272 seconds)
23:56:00 × denbrahe[m] quits (~denbrahem@2001:470:69fc:105::19c0) (Ping timeout: 272 seconds)
23:56:00 × Endermen1094[m] quits (~matrixend@2001:470:69fc:105::312b) (Ping timeout: 272 seconds)

All times are in UTC on 2021-08-12.