Home liberachat/#xmonad: Logs Calendar

Logs on 2022-05-02 (liberachat/#xmonad)

01:08:13 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
01:08:40 stackdroid18 joins (14094@user/stackdroid)
01:08:49 × stackdroid18 quits (14094@user/stackdroid) (Client Quit)
01:11:11 stackdroid18 joins (14094@user/stackdroid)
01:11:13 × stackdroid18 quits (14094@user/stackdroid) (Client Quit)
01:22:39 steve__ joins (~steve@ool-182c2b80.dyn.optonline.net)
02:04:56 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 272 seconds)
02:23:07 banc joins (banc@gateway/vpn/airvpn/banc)
02:58:47 × td_ quits (~td@94.134.91.69) (Ping timeout: 240 seconds)
03:00:46 td_ joins (~td@94.134.91.43)
04:04:00 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
04:09:59 × [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
04:25:00 × jakeStateless-Fa quits (~jakefroms@2001:470:69fc:105::15ef) (*.net *.split)
04:25:00 × Zarak[m] quits (~zarakmatr@2001:470:69fc:105::1:f67f) (*.net *.split)
04:25:00 × mekeor[m] quits (~mekeormat@2001:470:69fc:105::17e4) (*.net *.split)
04:25:00 × Tisoxin quits (~ikosit@user/ikosit) (*.net *.split)
04:25:00 × piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split)
04:25:00 × bsima quits (~bsima@2604:a880:400:d0::19f1:7001) (*.net *.split)
04:25:12 piele joins (~piele@tbonesteak.creativeserver.net)
04:25:34 Zarak[m] joins (~zarakmatr@2001:470:69fc:105::1:f67f)
04:25:34 jakeStateless-Fa joins (~jakefroms@2001:470:69fc:105::15ef)
04:25:35 bsima joins (~bsima@2604:a880:400:d0::19f1:7001)
04:26:12 Tisoxin joins (~ikosit@user/ikosit)
04:26:30 mekeor[m] joins (~mekeormat@2001:470:69fc:105::17e4)
04:28:28 × hypoesoteric[m] quits (~hypoesote@2001:470:69fc:105::1:f849) (*.net *.split)
04:28:29 × superusercode quits (~sudousrco@2001:470:69fc:105::1:ee77) (*.net *.split)
04:31:12 superusercode joins (~sudousrco@2001:470:69fc:105::1:ee77)
04:33:02 [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
04:33:57 hypoesoteric[m] joins (~hypoesote@2001:470:69fc:105::1:f849)
04:39:16 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
04:45:02 × pthrr quits (~admin@h2776122.stratoserver.net) (Remote host closed the connection)
04:45:26 benin joins (~benin@183.82.204.110)
04:50:42 × mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds)
05:06:12 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds)
06:05:05 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
06:13:20 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds)
06:29:42 Solid wrote down the fruits of rather intense procrastination https://tony-zorman.com/posts/phd-workflow/2022-05-01-my-phd-workflow.html
06:29:58 <Solid> it's more Emacs than XMonad content, but perhaps someone here will find it interesting as well
06:57:33 × thaumavorio quits (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
06:58:22 thaumavorio joins (~thaumavor@thaumavor.io)
07:02:37 abastro joins (~abab9579@192.249.26.201)
07:33:56 × abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection)
07:40:28 <sibi> SolidThanks for sharing, pretty interesting. I use org-roam but never used it's visualization feature, that looks cool.
07:40:39 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:11:18 abastro joins (~abab9579@192.249.26.201)
08:14:13 <abastro> How is xmonad treeselect implemented?
08:15:12 <abastro> I'd like color customization but it does not provide the functionality
08:21:40 × abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection)
08:23:53 × [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
08:24:45 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
08:27:17 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:31:28 [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
08:35:01 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
08:35:12 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:42:45 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
08:43:13 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:52:00 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds)
09:00:06 × thurm[m] quits (~thurmmatr@2001:470:69fc:105::c8c) (Quit: You have been kicked for being idle)
09:00:06 × ilmu[m] quits (~ilmumatri@2001:470:69fc:105::1:ce46) (Quit: You have been kicked for being idle)
09:00:14 × archnola[m] quits (~archnolam@2001:470:69fc:105::1:ec0b) (Quit: You have been kicked for being idle)
09:00:39 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Quit: You have been kicked for being idle)
09:15:03 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:19:08 cfricke joins (~cfricke@user/cfricke)
09:46:00 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
10:05:24 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 248 seconds)
10:27:32 abastro joins (~abab9579@192.249.26.201)
10:47:31 × Xioulious quits (~yourname@193.32.249.137) (Quit: leaving)
11:01:35 × abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection)
11:36:17 arjun joins (~arjun@user/arjun)
11:41:34 <yuu[m]> This is pretty intereting. The topics and some latex stuff i'll try to adopt. And when someone like you argue about handwriting in paper, it is pretty convincing 😄 if you want more exposure, I'd recommend posting some screenshots on r/unixporn and the like and a link to the post on the comments
11:49:31 abastro joins (~abab9579@192.249.26.201)
11:59:18 <Solid> Thanks! :) I have submitted it to the Emacs subreddit, but don't think it's a good fit for unixporn really; I reckon they would laugh at me for my font choices or something :P
11:59:30 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
12:00:57 <arjun> Solid, its not like its Comic San MS : P
12:01:49 <Solid> hah, I suppose not
12:12:22 <geekosaur> comic sans is good enough for SPJ…
12:14:43 <arjun> he worked for MS
12:14:54 <arjun> they also have to use bing internally
12:36:56 × abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection)
12:37:42 abastro joins (~abab9579@192.249.26.201)
12:42:39 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
12:45:11 × abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection)
12:45:47 abastro joins (~abab9579@192.249.26.201)
13:05:42 × abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection)
13:16:12 Guest89 joins (~Guest89@38.100.128.53)
13:16:33 × Guest89 quits (~Guest89@38.100.128.53) (Client Quit)
13:47:45 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds)
13:47:58 <liskin> Solid: do you have fuzzy search in pdf contents, and if not, try ripgrep_all and its rga-fzf script
13:48:08 <liskin> It's crazy fast.
13:53:47 <liskin> Oh and I should probably also try emacs one day, it looks really powerful. :-/
13:54:31 <geekosaur> it is, but it's also rather a lot of culture shock if you're not used to it like us ancient folks :)
13:54:56 <geekosaur> you can get most of that power from neovim if you prefer
13:55:02 <liskin> Yeah that's why I never tried - I'm very invested in the vim ecosystem
13:55:15 <liskin> But those visual goodies look tempting
13:55:35 <liskin> Can neovim do those latex equations?
13:56:32 <liskin> (Frankly I'm even terrified of switching to neovim because I'm sure half of my stuff will break and I'll spend a week full time fixing it.)
13:56:40 <geekosaur> I suspect if you run it in gui mode someone will have something
13:57:05 <geekosaur> neovim feels to me like someone said "vi really needs all those emacs goodies, let's do it"
13:58:47 abastro joins (~abab9579@192.249.26.201)
13:59:19 <geekosaur> hm, for thsta matter they might have put in the effort to make it work in text mode, terminals export $WINDOWID for a reason :)
13:59:28 <abastro[m]> Me doing VSCode...
13:59:45 <abastro[m]> sad that I am not smart enough for these advanced ones
14:01:48 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
14:11:33 × twiclo quits (~twiclo@mail.twil.cx) (Quit: WeeChat 3.4)
14:26:23 <[Leary]> One of my friends half-sold me on emacs, so I tried it for a few months. What I learned was that---more so than any emacs bell or whistle---not having to write lisp is the real luxury. <.<
14:30:07 <geekosaur> I haven't had to write elisp in a long while, just the occasional cut and paste into my .emacs
14:46:28 × abastro quits (~abab9579@192.249.26.201) (Ping timeout: 248 seconds)
14:48:57 <abastro[m]> Well, for e.g. c++ programmers, writing lisp could be luxury
14:51:23 abiss27 joins (~abiss27@user/abiss)
14:52:07 <Solid> liskin: oh indeed I've never heard of that :o looks fantastic, thanks :)
14:52:37 <Solid> You should definitely try Emacs; one of the great joys in life is having an excuse to write lisp!
14:54:01 <liskin> :-)
14:54:05 <abastro[m]> Excuse to write lisp.mm
14:54:08 <abastro[m]> ...
14:54:28 stackdroid18 joins (~stackdroi@user/stackdroid)
14:55:28 <abastro[m]> I mean I personally dislike parens e.g. in haskell
14:55:36 <abastro[m]> Where FP mandates usage of parens
14:56:19 <Solid> elisp is not especially functional
14:56:30 <Solid> though there are libraries (like dash.el) which make it a little more so
14:57:18 <Solid> there is a real zen to be found in directly manipulting the AST of your language, especially with structural editing support like lispy or paredit
14:57:19 <geekosaur> elisp is a lousy lisp
14:57:31 <geekosaur> but attempts to redo it using guile are stalled
14:57:44 <Solid> quite possibly forever, yes
14:57:58 <abastro[m]> Wdym, FP is defined by lisp /s
14:58:23 <abastro[m]> (Local expert said so)
14:59:26 <geekosaur> lisp is a notation for lambda calculus that escaped its cage :þ
15:01:58 <abastro[m]> Indeed
15:03:44 × abiss27 quits (~abiss27@user/abiss) (Quit: hasta la vista... tchau!)
15:27:58 <abastro[m]> I legit heard of so-called "expert" saying that lisp's manipulating AST is the core of FP. (Thus giving conclusion that FP is old)
15:28:13 <abastro[m]> I guess FP has several competing definitions :P
15:28:47 <geekosaur> yes it does
15:29:08 <geekosaur> some of them exclude lisp entirely
15:31:23 <abastro[m]> I guess some would exclude haskell for its lousy metaprogramming support
15:32:44 <geekosaur> but some of those include it because laziness means you don't need metaprogramming for some things
15:35:26 <abastro[m]> I mean, some define FP by metaprogramming/homoiconicity
15:35:32 <abastro[m]> Soo
15:38:49 <abastro[m]> In this perspective haskell might not exist as valid language
15:44:37 <geekosaur> nobody goes that far
15:46:55 <abastro[m]> Local "expert" I mentioned earlier has gone there
15:49:59 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
16:00:32 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Quit: You have been kicked for being idle)
16:07:00 twiclo joins (~twiclo@vpn.utahbroadband.com)
16:11:26 mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d)
16:17:32 arjun joins (~arjun@user/arjun)
16:56:21 <M-elo-[m]> Is there such thing in xmonad that can allow me to replace tmux's tab functionality? I only use tmux to keep terminal tabs nowadays and using tab layout will not work for my current workflow. Want something that can allow me to keep tabbed terminals while existing alongside other applications in the same workplace
16:56:24 <M-elo-[m]> Does that make sense?
16:57:16 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
17:00:18 × mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 260 seconds)
17:03:24 <geekosaur> layouts have no clue what they are displaying
17:03:37 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
17:04:15 <geekosaur> (not entirely true, but making tabs only appear for terminals more or less requires banishing all terminals to a tabbed sublayout)
17:05:34 werneta joins (~werneta@137.79.197.49)
17:21:20 × x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection)
17:27:38 x88x88x joins (~x88x88x@149.28.53.172)
17:45:36 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 276 seconds)
18:00:42 <M-elo-[m]> <geekosaur> "(not entirely true, but making..." <- Not entirely disabling it for anything else, but a way to group terminals into a tabbed layout of some sort that could allow it to co-exist with other applications with disrupting the workflow
18:00:44 <M-elo-[m]> I guess it's time to look for a terminal alternative to alacritty
18:02:41 <arjun> M-elo-[m], i just made the switch to kitty, because it had tabs
18:02:45 <arjun> apart from other things
18:03:17 <M-elo-[m]> I used to be a kitty user until victor mono semibold wouldn't work
18:03:25 <geekosaur> ComboP should let you group terminals together into a sublayout in which you could use subTabbed
18:03:36 <M-elo-[m]> Forced me to use alacritty instead, will try it out once again and figure out why it did not work
18:03:53 <M-elo-[m]> geekosaur: Will have a look at it, thanks for the suggestion!
18:31:27 × noex quits (~null@user/noex) (Ping timeout: 260 seconds)
18:33:14 mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d)
18:33:16 noex joins (~null@user/noex)
18:34:50 Xioulious joins (~yourname@193.32.249.137)
18:36:53 <Xioulious> learning haskell when used to C/C++, python and javascript is pretty hard to get a start in it feels like even with some guides
18:41:23 <geekosaur> it will be, yes
18:41:31 <geekosaur> @where cis194
18:41:31 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
18:41:36 <geekosaur> might be helpful
18:42:09 <geekosaur> it's not what I used to learn, but I had some SML/NJ experience so I used a tutorial aimed at SML/NJ programmers
18:45:29 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
18:45:53 <Xioulious> feels like i first need to learn how the different symbols are used and what they do, like im used to just using | for "or" and == for "equal" but in haskell it seems to be || and ===, the differences between -> and =>, etc
18:47:11 pthrr joins (~pthrr@h2776122.stratoserver.net)
18:47:12 <geekosaur> == is equal. = is not quite what you think, though
18:47:31 <geekosaur> single vertical bar can be read as "such that" (think math notation)
18:50:17 <Xioulious> am i right in thinking that -> in haskell is where normally in C = is used?
18:58:50 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
19:00:31 <geekosaur> -> has multiple meanings
19:00:58 <geekosaur> in a lambda or case-of it's roughly equivalent to =
19:01:19 <geekosaur> in a type signature it separates the types of parameters, and parameters from the result
19:01:41 <geekosaur> => separates constraints from parameters/result
19:02:17 <geekosaur> a constraint is something which some type must abide by
19:02:20 <geekosaur> :t (+)
19:02:21 <lambdabot> Num a => a -> a -> a
19:03:01 <geekosaur> any type `a` may be used as long as it has a Num instance. (if you've worked with Rust, they're called "traits" there)
19:09:27 <Xioulious> not used to certain namings of stuff in programming as im just learning on my own :P but think i somewhat get it, im mostly trying to translate the haskell code into some other form of code that i know the layout/style of to learn the meaning of it all
19:10:59 <Xioulious> like in C you would do Int value(Int number1, Int Number2) while in haskell you do Num value -> number1 -> number2, or something like that?
19:16:04 <geekosaur> if you just want Int, you say Int
19:16:42 <geekosaur> typeclasses allow functions to operate on any type which is a member of the typeclass. something like (+) is a typeclass method, where each type has to provide its own implementation
19:17:06 <geekosaur> so we don't have to have a separate + operator for Double (which is what SML/NJ used to do), etc.
19:20:39 <Xioulious> not sure why i cant find a guide/tutorial that mentions the basic stuff like that, they all seem to want to start with just calculating stuff
19:23:29 <geekosaur> you have more important things to get used to before you reach typeclasses :) like laziness and IO
19:27:07 <Xioulious> i usually kinda dive in, try to get some code to work and then figure out how/why it works, puts context to what gets explained then, but that can easily also be a bad idea
19:28:37 <geekosaur> it works better when the language is just a fresh face on what you already know. haskell is different enough that it can get you into trouble quickly
19:32:15 <Xioulious> true, ill just start at the first step in that link you gave, though first i need to get either emacs or vs code setup properly for it
19:36:50 <liskin> M-elo-[m], geekosaur: subTabbed works by itself, there's no need for ComboP (it least that's how I use it)
19:37:13 <geekosaur> they want terminals (only) to be in a tabbed layout
19:37:24 <liskin> I still end up using tmux instead of that fairly often because… dunno, just like it more
19:37:33 <geekosaur> so I figured ComboP to match the terminals by className and route them to a subTabbed layout
19:38:10 <liskin> oh, I thought the usecase is just the ability to tab windows together in the WM
19:50:29 <geekosaur> wee, gradually getting everything paired to new phone (went on sister's family plan yesterday, they also replaced 6yo phone with a middle-of-the-line phone with a working mike!)
19:50:49 <geekosaur> getting more and more stuff out of my dwindling bank account
19:53:07 <geekosaur> sadly all the headsets and such are as old as the phone is or older, so my main headset is looking to no longer be my main headset (it locked up hard when I accepted a call from the pharmacy)
20:33:42 × x88x88x quits (~x88x88x@149.28.53.172) (Remote host closed the connection)
20:42:35 x88x88x joins (~x88x88x@149.28.53.172)
21:45:58 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
21:56:54 × stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
22:24:55 <abastro[m]> How does "rendering" in xmonad work?
22:25:53 <liskin> abastro[m]: what do you mean by rendering?
22:26:31 <geekosaur> we don't do rendering, that's up to the client (and the compositor if any). window managers are about window placement and focus policy
22:26:38 <abastro[m]> E.g. treeselect, gridselect
22:26:53 <abastro[m]> (E.g. calling GL is called rendering)
22:27:16 <abastro[m]> Also tabbed layout does some rendering for the tabs
22:27:37 <geekosaur> gridselect does do rendering but it uses X11 primitives. it's all pretty low level. see XMonad.Util.XUtils
22:27:58 <abastro[m]> Oh, X11 primitives
22:28:19 <abastro[m]> No way to render an icon then? :P
22:28:25 <liskin> yep, treeselect as well, XFillRectangle and XDrawString and stuff :-)
22:29:09 <geekosaur> mm, tabs can draw 2-color icons if given a list of lists of bools (ick)
22:30:17 <abastro[m]> Oh, there are icons
22:30:30 <abastro[m]> List of list of bools?
22:30:32 <abastro[m]> Ouch
22:30:44 <abastro[m]> So.. no one even bothered to depend on Array
22:32:38 <abastro[m]> Eek, so it just... draws it
22:32:57 <geekosaur> https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Util/Image.hs
22:33:08 <geekosaur> yeh, just blasts bits
22:33:26 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
22:35:08 <abastro[m]> Guess I'd make a GTK application if I wanted tabs with proper icons
22:36:55 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
22:40:27 <abastro[m]> Can I fork a OS thread as GTK application? XD
22:42:53 <geekosaur> built into xmonad? technically yes, but you'd have to find a way for it to have its own event loop independent of the main one
22:43:29 <geekosaur> the only way they could communicate is by client messages
22:43:59 <abastro[m]> Does the GTK thread have to be main one?
22:44:21 <geekosaur> I don't know gtk well enough to say
22:44:38 <abastro[m]> Oh
22:44:54 <abastro[m]> What do you mean by "own event loop independent of the main one" then?
22:44:57 <geekosaur> I suspect not, as long as all work is done by one thread (you have onbe server connection, it cannot be multiplexed across threads)
22:45:49 <geekosaur> xmonad has its own event loop. you cannot make use of it, you must open an independent server connection with its own event loop. they cannot communicate between each other except via client messages.
22:46:13 <abastro[m]> Indeed
22:46:15 <abastro[m]> Uhm wait
22:46:24 × zawaken quits (~zawaken@user/zawaken) (Read error: Connection reset by peer)
22:46:26 <abastro[m]> They cannot communicate with each other?
22:46:58 <abastro[m]> Does MVars not work btwn the xmonad event loop and gtk event loop then?
22:47:08 <geekosaur> if a gtk app is multithreaded then the other threads must post events back to the main gtk thread (whether this has to be the main app thread I don't know, but it certainly has to be the thread that owns gtk's server connection)
22:47:10 zawaken joins (~zawaken@user/zawaken)
22:47:34 <geekosaur> do you plan to rewrite the core to handle MVars?
22:47:52 <geekosaur> it only processes X events currently
22:48:48 <abastro[m]> Ehhh
22:49:19 <abastro[m]> I was planning to let the local GTK app communicate with Xmonad through MVars.
22:49:59 <abastro[m]> Idk about the X events handling and all, separate threads deserve treatment as separate threads
22:50:02 <geekosaur> you cannot block the main loop on an MVar unless you can guarantee it will unblock in a timely manner
22:50:50 <geekosaur> else you can block the entire UI because a window is not being placed while it's waiting on your MVar. and that much worse if the window in question was created by your GTk app
22:51:44 <abastro[m]> Oh wait, right. Duh, I missed that part
22:55:31 <abastro[m]> Can I periodically run a job in xmonad? geekosaur
22:56:46 <geekosaur> not reliably
22:57:14 <abastro[m]> Oh. :<
22:57:24 <abastro[m]> How unreliable is it
22:57:33 <geekosaur> xmonad only wakes up when it receives an X event, and since it only does window management that only happens when you open a new window, change focus, change workspaces, or similar
22:58:33 <geekosaur> various things in contrib work around this by spawning a thread which sleeps a bit and sends a client message to the main loop, but this is somewhat unstable across restarts
22:58:56 <abastro[m]> How about, close a new window
22:59:17 <geekosaur> that also creates an event, yes
23:04:27 <abastro[m]> geekosaur: How does treeselect works then?
23:05:20 <abastro[m]> It at least needs to redraw couple of times
23:06:44 × werneta quits (~werneta@137.79.197.49) (Ping timeout: 248 seconds)
23:13:02 <geekosaur> most of those run their own private event loops on the hopeful assumption that nothing will require the main loop
23:13:17 <geekosaur> most of them *should* hook handleEventHook instead
23:20:13 <abastro[m]> I cannot find private event loop running on them
23:20:17 <abastro[m]> For treeselect
23:27:07 <abastro[m]> Actually I might be able to interrupt main loop for a dialog to ask for quitting!
23:30:16 <abastro[m]> Yea it must be, since keys stopped being passed to xmonsd
23:31:48 <geekosaur> https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Actions/TreeSelect.hs#L529-L545
23:32:09 werneta joins (~werneta@137.79.197.49)
23:33:11 <geekosaur> with the loop being at https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Actions/TreeSelect.hs#L348-L358
23:37:09 × werneta quits (~werneta@137.79.197.49) (Ping timeout: 246 seconds)
23:37:12 <abastro[m]> Oh, that's it
23:40:03 <abastro[m]> Uhm
23:40:35 <abastro[m]> `treeselectAt` doesn't seem to fork tho
23:40:57 <geekosaur> it doesn't
23:41:09 <geekosaur> [02 23:13:02] <geekosaur> most of those run their own private event loops on the hopeful assumption that nothing will require the main loop
23:41:12 <abastro[m]> It does seem like it would put xmonad event loop into halt...
23:41:41 <geekosaur> at least it uses maskEvent so any wm events that come in will be held until the main loop next runs
23:41:50 <abastro[m]> It immediately returns with the Maybe result
23:41:56 <abastro[m]> Oh
23:41:57 <geekosaur> instead of just discarding them
23:42:04 <abastro[m]> So it does stop the main loop.
23:42:27 stackdroid18 joins (14094@user/stackdroid)
23:42:49 <abastro[m]> I guessthe right way to do it would be using `handleEventHook`
23:50:18 <abastro[m]> Actually I could use X event to specify time, and send the actual payload through STM or sth
23:52:38 <abastro[m]> Yea that might work
23:54:07 werneta joins (~werneta@137.79.215.173)
23:54:16 × mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds)
23:55:38 <abastro[m]> geekosaur: How do I send X message from a client?
23:58:15 <abastro[m]> s/X message/X event

All times are in UTC on 2022-05-02.