Home liberachat/#xmonad: Logs Calendar

Logs on 2022-04-08 (liberachat/#xmonad)

02:03:33 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 260 seconds)
02:24:54 banc joins (banc@gateway/vpn/airvpn/banc)
02:33:29 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
02:35:51 benin joins (~benin@183.82.204.110)
02:48:00 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
02:53:00 benin joins (~benin@183.82.204.110)
03:04:44 × akamar quits (~akamar@p5b0ca16a.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
03:20:34 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
03:51:24 × mvk quits (~mvk@2607:fea8:5ce3:8500::9d5a) (Ping timeout: 240 seconds)
04:03:09 benin joins (~benin@183.82.204.110)
05:03:29 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
05:07:23 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:07:49 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
05:08:14 benin joins (~benin@183.82.204.110)
05:10:37 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:10:59 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
05:11:43 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:12:05 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
05:13:43 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
05:15:26 geekosaur joins (~geekosaur@xmonad/geekosaur)
05:21:12 × twiclo quits (~twiclo@vpn.utahbroadband.com) (Quit: WeeChat 3.4)
05:34:39 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:37:07 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
05:37:59 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:38:23 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
05:39:05 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
05:39:25 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
05:43:15 <Ether[m]> Does someone know how to do something like && in bash in haskell?
05:43:46 <Ether[m]> Haskell cmd 1 >> Haskell cmd2
05:44:01 <Ether[m]> But it doesn't work :(
05:45:11 <abastro[m]> What does && do in bash?
05:45:34 <abastro[m]> Btw I think you can always code scripts in bash and call using `spawn`
05:46:07 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
05:52:58 <Ether[m]> && in bash allows you to use multiple commands at the same time
05:53:04 <Ether[m]> Its an bash argument..
05:53:16 <Ether[m]> a*
05:59:54 <abastro[m]> When cmd1 and cmd2 are IO actions, cmd1 >> cmd2 should work
06:01:32 <Ether[m]> I am using bindbylayout
06:01:47 <Ether[m]> Which is not an IO action?
06:05:58 <Solid> Ether[m]: you gotta be a little bit more specific than that
06:06:10 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
06:06:44 <abastro[m]> The ones which does not have `IO` in type
06:06:55 <abastro[m]> Well actually
06:07:07 <abastro[m]> In xmonad's case, sth like X is also IO action
07:22:33 cfricke joins (~cfricke@user/cfricke)
07:48:17 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:19:53 defc0n[m] joins (~defc0nmat@2001:470:69fc:105::1:f39b)
08:19:54 <defc0n[m]> hello people
08:20:49 <defc0n[m]> does anyone know why i cant change my theme, im using plasma/xmonad
08:36:55 <davve> plasma and xmonad? didnt know they worked together
09:00:09 × kwer[m] quits (~kwermatri@2001:470:69fc:105::1:4da1) (Quit: You have been kicked for being idle)
09:03:48 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
09:07:20 <Ether[m]> Is there way to do a cmd when spawning any new window > 1
09:12:05 <defc0n[m]> <davve> "plasma and xmonad? didnt know..." <- well no youtube video or any documentation exists on this, so how could i ever know?
09:12:41 <Ether[m]> defc0n[m]: https://wiki.haskell.org/Xmonad/Using_xmonad_in_KDE
09:13:32 <Ether[m]> https://youtu.be/-PO5gqexi8c
09:14:12 <Ether[m]> defc0n kde has something called "konkite" which is for tilling
09:14:25 <defc0n[m]> why none of these showed up when i searched for this
09:14:36 <Ether[m]> Why use xmonad just for running a DE?
09:14:43 <Ether[m]> defc0n[m]: What ?
09:15:08 <Ether[m]> Its the first thing you get when you search "kde with xmonad"
09:16:04 <defc0n[m]> im sooo blind, its literlly the frist page
09:17:33 <Ether[m]> defc0n[m]: Exactly... :)
09:20:48 <davve> i think its "krohnkite" and is what I used with plasma
09:21:14 <davve> its tiling in xmonad/dwm-esque
09:21:35 <davve> a plugin for kwin
09:21:56 <davve> might have still used it if there were some way to save plasma configuration
09:22:03 <davve> its just a dotfolder with a huge mess
09:26:30 <davve> now just using xmonad with DE installed and a key bound to open its settings
09:26:40 <davve> fits my case pretty well
09:27:19 <davve> and its easily replicable and editable :) (if one considers haskell easy, tsk)
09:27:57 <Ether[m]> But why plasma.desktop?
09:28:17 <Ether[m]> Its kinda getting slower and slower 😒
09:28:46 × jeeeun quits (~jeeeun@78.40.148.178) (Quit: The Lounge - https://thelounge.chat)
09:29:05 <Drishal[m]> btw one small question... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/a6f1602e351b6f938427c674683850e85d7c2680)
09:29:21 jeeeun joins (~jeeeun@78.40.148.178)
09:29:23 <Drishal[m]> s/floating/`simplestfloat`/
09:29:28 <Ether[m]> As in mouse focus?
09:29:46 <Drishal[m]> Ether[m]: yes I want click to focus so that windows do not go behind lol
09:29:56 <Drishal[m]> when in floating mod e
09:29:56 <Ether[m]> Yes thats possible
09:30:21 <Ether[m]> But it will apply for all layouts.
09:30:30 <Drishal[m]> I want clicktofocus only and only in `simplestfloat` not in tile
09:30:46 <Drishal[m]> instead of hover to focus
09:31:12 <Ether[m]> Ok hook with floating layout..
09:31:58 <Ether[m]> myConfig p = def { borderWidth = border , clickJustFocuses = myClickJustFocuses , focusFollowsMouse = myFocusFollowsMouse , normalBorderColor = myNormalBorderColor , focusedBorderColor = myFocusedBorderColor , manageHook = myManageHook , handleEventHook = myHandleEventHook , layoutHook = myLayoutHook , logHook = myLogHook p , modMask = myModMask , mouseBindings = myMouseBindings , startupHook = myStartupHook , terminal = myTerminal ,
09:31:58 <Ether[m]> workspaces = myWorkspaces }
09:36:20 <Drishal[m]> <Ether[m]> "Ok hook with floating layout.." <- how exactly?
09:37:01 <Ether[m]> Can share your config?
09:37:21 <Ether[m]> I could do a PR in github?
09:37:56 <Drishal[m]> https://gitlab.com/drishal/dotfiles/-/blob/master/xmonad/README.org
09:38:09 <Ether[m]> Do you have github?
09:38:22 <Ether[m]> Gotta create gitlab acc...
09:39:39 <Drishal[m]> Ether[m]: thank god my mirroring is working lol
09:39:39 <Drishal[m]> https://github.com/drishal/dotfiles/tree/master/xmonad
09:41:11 <Ether[m]> Where is your xmonad.hs?
09:41:53 <Ether[m]> Drishal
09:42:12 <Drishal[m]> Ether[m]: I actually do in emacs org mode 😅
09:42:17 <Ether[m]> Your using nix packages..
09:42:24 <Ether[m]> Drishal[m]: Whatttt?
09:43:02 <Drishal[m]> Ether[m]: wait, is it wrong to do it that way? 👀
09:43:06 <Drishal[m]> I love emacs kek
09:43:12 <Ether[m]> Ohh god, how do i modify?
09:43:28 <Drishal[m]> you dont use emacs?
09:43:30 <Drishal[m]> 👀
09:43:32 <Ether[m]> I dont use emacs or org mode.. neovim for life
09:43:45 <Drishal[m]> maybe just tell me where to modify stuff lol
09:43:51 <Ether[m]> Neovim is lighter and faster..
09:44:01 <Ether[m]> Drishal[m]: Suree.
09:44:09 <Ether[m]> I dont have irc on pc..
09:44:12 <Drishal[m]> ooh god I am not ready for another neovim vs emacs debate lol
09:44:33 <Ether[m]> How do I write code from phone?
09:44:43 <Drishal[m]> I can share the tangled xmonad.hs tho
09:44:51 <Ether[m]> Yeah do that
09:44:56 Drishal[m] posted a file: (3KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/XcFyDRYMtTwiWBFtGQZdnKdT/xmobar.hs >
09:44:56 <Ether[m]> Make a git commit
09:45:01 <Ether[m]> Ohh
09:45:14 <Ether[m]> Can u push this in github?
09:45:27 <Ether[m]> Call it temp.hs?
09:45:43 <Ether[m]> Drishal
09:45:44 <Drishal[m]> hmm
09:45:56 <Ether[m]> Thanks 😊
09:47:49 <Drishal[m]> Ether[m]: https://github.com/drishal/dotfiles/blob/master/xmonad/xmonad.hs
09:48:00 <Ether[m]> Done?
09:48:10 <Drishal[m]> pushed the temp to github
09:48:33 <Ether[m]> I see it
09:53:15 <Ether[m]> You already have it in your config 🤣🤣🤣
09:53:23 <Ether[m]> Drishal
09:53:38 <Ether[m]> U just need to set it to true..
09:53:46 <Ether[m]> Making a PR..
09:55:57 <Drishal[m]> Ether[m]: ``` myClickJustFocuses = False
09:55:57 <Drishal[m]> ```
09:55:57 <Drishal[m]> to true ?
09:56:15 <Drishal[m]> > <@etherror_code_404:matrix.org> U just need to set it to true..... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/042ad0262f2b0a018137667a89eedbf1183148cc)
09:56:16 <lambdabot> <hint>:1:1: error: parse error on input ‘<@’
09:58:16 <Ether[m]> Drishal: done...
10:01:24 <Drishal[m]> Ether[m]: but the thing is
10:01:24 <Drishal[m]> I want it only in the float layout
10:01:30 <Ether[m]> Ohh
10:01:44 <Ether[m]> Ok i can implement that too..
10:01:53 <Drishal[m]> like how dwm implements it
10:02:11 <Ether[m]> Making a PR...
10:02:12 <Drishal[m]> like new windows do not go behind in floating mode
10:02:47 <Drishal[m]> Ether: well the real exact behavour I really need is that the windows should not go behind till I do a proper mod+click
10:03:09 <Drishal[m]> thats why I wanted to disable hover to focus just for floating layout
10:03:26 <Ether[m]> Not sure i get what you mean
10:03:33 <Drishal[m]> so it behavs like how dwm does it
10:03:45 <Ether[m]> But i can implement click to focus for the floating..
10:03:50 <Drishal[m]> s/it/floating/, s/behavs/behaves/
10:04:01 <Drishal[m]> Ether[m]: that also will do 👍️
10:04:22 <Ether[m]> Ok 😀
10:04:57 <Ether[m]> Can you merge the first commit?
10:06:13 <Drishal[m]> Ether[m]: well I have copied to the xmoand.org
10:06:13 <Drishal[m]> will credit you when the commit is pushed lol
10:06:58 <abastro[m]> I wonder how hard it would be to make a status bar myself
10:07:27 <abastro[m]> ~~As it feels like I could make better one by myself~~
10:07:45 <pantsu> more tedious than hard
10:08:01 <abastro[m]> I see
10:08:13 <pantsu> x11 has a lot of iritating cornercases etc
10:08:30 <abastro[m]> Tedious in implementing widgets?
10:08:31 <abastro[m]> Or is there more to.. oh
10:08:45 <Drishal[m]> Ether[m]: soo uuh the real thing is I needed a dwm style floating layout
10:08:45 <Drishal[m]> i.e newly spawned windows do not get pushed behind if I accidentally hover my mouse over the previous window
10:08:47 <abastro[m]> Meh having to think about corner cases when just making a status bar is.. eh
10:08:53 <pantsu> using gtk or similar do take some of the worst out of it though
10:09:12 <Ether[m]> Drishal dm instead..
10:09:19 <Ether[m]> Getting crowded
10:09:26 <abastro[m]> Like I wanted to try out monomer-based task bars
10:09:38 <abastro[m]> Tho I guess it would take.. quite an efforts
10:10:57 <abastro[m]> Well you can use this chat here, my topic likely ended here
10:11:08 <abastro[m]> s/here/now/
10:18:21 a1eaiactaest joins (~a1eaiacta@user/a1eaiactaest)
10:18:48 a1eaiactaest parts (~a1eaiacta@user/a1eaiactaest) ()
10:21:37 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
10:42:42 benin joins (~benin@183.82.204.110)
10:48:07 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
11:47:58 <YusefAslam[m]> <Ether[m]> "Neovim is lighter and faster.." <- Emacs is better
11:47:59 <YusefAslam[m]> Emacs for life
11:49:03 <geekosaur> meh. I use both
11:49:28 <YusefAslam[m]> geekosaur: yeah same
11:50:39 <YusefAslam[m]> <Drishal[m]> "ooh god I am not ready for..." <- you are ready
11:53:02 <YusefAslam[m]> <Ether[m]> "I dont use emacs or org mode..." <- illegal
12:18:29 <Drishal[m]> <YusefAslam[m]> "you are ready" <- emacs bess hands down :P
12:18:46 <Drishal[m]> emacs+gold linker+pgtk+jit
12:19:09 <Drishal[m]> * emacs+gold linker+pgtk+jit/aot
12:20:00 <abastro[m]> What about notepad >.>
12:23:45 cfricke joins (~cfricke@user/cfricke)
12:26:23 <Solid> pgtk is only really needed when you're on wayland instead of xorg
12:27:03 <Drishal[m]> Solid: its stable even on xorg
12:27:21 <Solid> sure it's stable but it also doesn't buy you anything
12:27:47 <Drishal[m]> Solid: well
12:27:47 <Drishal[m]> it feels a bit more responsive lol
12:28:55 <Solid> placebo, I reckon :P
12:38:27 <YusefAslam[m]> <Drishal[m]> "emacs+gold linker+pgtk+jit" <- what is pgtk
12:38:30 <YusefAslam[m]> and what is aot
12:41:09 <Drishal[m]> YusefAslam[m]: pgtk means pure gtk
12:41:10 <YusefAslam[m]> <abastro[m]> "What about notepad >.>" <- notepad++ is good aswell much better than plain notepad on Windows
12:41:39 <abastro[m]> Well I meant plain notepad
12:41:40 <Drishal[m]> btw whats the xmoand equivalent of
12:41:40 <Drishal[m]> ```python
12:41:40 <Drishal[m]> auto_minimize = False
12:41:40 <Drishal[m]> ```
12:42:08 <Solid> YusefAslam[m]: PGTK is essentially Wayland support for Emacs
12:42:38 <YusefAslam[m]> Solid: I thought Emacs already supported Wayland?
12:42:53 <Solid> Only through xwayland
12:43:21 <YusefAslam[m]> ohk so like native Wayland support
12:43:37 <Solid> yes
12:43:48 <YusefAslam[m]> pretty decent
12:44:00 <YusefAslam[m]> although I still use Xorg
12:44:01 <Solid> by just going through GTK and side-stepping the whole "we need to do this ourselves" entirely
12:44:16 <Drishal[m]> Solid: and also pure gtk means that the client has full gtk support
12:44:16 <Drishal[m]> means that emacs should hang/stutter a little more less
12:44:26 <Drishal[m]> even on Xorg
12:45:03 <Solid> how would that follow?
12:45:35 <YusefAslam[m]> > <@drishal:matrix.org> and also pure gtk means that the client has full gtk support
12:45:35 <YusefAslam[m]> > means that emacs should hang/stutter a little more less
12:45:35 <YusefAslam[m]> nice
12:45:37 <lambdabot> <hint>:1:1: error: parse error on input ‘<@’
12:45:37 <lambdabot> error:
12:45:37 <lambdabot> Variable not in scope:
12:45:37 <lambdabot> means :: t0 -> t1 -> t2 -> (Doc -> Int -> Doc -> Doc) -> aerror: Varia...
12:45:41 <geekosaur> you haven't seen how emacs does things
12:45:45 <Solid> why would GTK be any more responsive than any of the other toolkits that Emacs ships with natively?
12:46:16 <geekosaur> because they're all abused so emacs still keeps full control of the event loop, refreshes, etc.
12:46:45 <geekosaur> "pure gtk" would mean they actually gave control to the toolkit instead of abusing it
12:46:51 <pantsu> Solid: it has good hw acceleration
12:46:56 <YusefAslam[m]> > <@drishal:matrix.org> btw whats the xmoand equivalent of... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/abab80d860ed1fc26a8531c6b8d931665610817b)
12:46:57 <lambdabot> <hint>:1:1: error: parse error on input ‘<@’
12:47:10 <pantsu> assuming >=gtk3
12:47:33 <geekosaur> I didn't understand that question either. minimizing what?
12:47:36 <pantsu> also have pretty efficient drawing
12:47:40 <Solid> geekosaur: yeah it hacks its own event-loop, but that doesn't make it less responsive really
12:47:58 <geekosaur> it's responsive most of the time
12:48:08 <Solid> plus, there has been pretty good progress to support XInput 2.4 in master
12:48:28 <Solid> allowing for things like pixel-scroll-precision-mode
12:48:42 <YusefAslam[m]> pantsu: PGTK has better hardware acceleration? How
12:48:53 <geekosaur> but if you go digging through emacs bug reports for the past two decades you'll find it causes lots of things from glitches to actual failures
12:50:51 <abastro[m]> Emacs hacks event-loop? Wh
12:51:10 <abastro[m]> I heard it is lightweight and editor-done-well, and now I am hearing this
12:51:22 <abastro[m]> But then, I am using VSCode IRL soo
12:51:55 <Solid> Emacs is older than X11 itself
12:51:59 <geekosaur> oh, emacs is done well if you stick to a tty
12:52:01 <Solid> so it's not really that surprising
12:52:10 <geekosaur> GUI support is hacked in on top
12:52:21 <abastro[m]> Oh.
12:52:44 <abastro[m]> Why did I think emacs is essentially gui application
12:52:44 <Solid> and yet it's still much superior to be able to embed pictures in org :P
12:53:00 <YusefAslam[m]> Solid: lol
12:53:00 <pantsu> YusefAslam[m]: gtk has better hw acceleration for drawing than using x11 primitives yes
12:53:05 <Solid> really, you should be using Emacs as a GUI application
12:53:39 <geekosaur> do remember that emacs started out as a set of macros for an older editor (hence its name: Editor MACroS)
12:53:42 <YusefAslam[m]> pantsu: ohk, so all the gui stuff in Emacs is now using GTK?
12:53:46 <abastro[m]> Well but emacs is done well for tty, not GUI
12:54:22 <Solid> abastro[m]: it's a perfectely reasonable GUI program if you don't look into the source too much ;)
12:54:38 <geekosaur> (I've actually used TECO, that older editor. it was … freaky. but powerful enough that Gosling & co. could build emacs on top of it)
12:54:39 <abastro[m]> XD
12:54:52 <Solid> the chances that you're going to hit an actual bug due to its behaviour are very minimal
12:54:54 <YusefAslam[m]> abastro[m]: I basically always use Emacs in GUI mode and Neovim for terminal editing
12:55:08 <pantsu> YusefAslam[m]: and old version of gtk, but yes it does support gtk as the backend now
12:55:11 <abastro[m]> Well tbh I feel GTK (and many other UI programs) are reasonable until source is looked into
12:55:23 <pantsu> (it has a few gui backends)
12:55:47 Solid still happily compiles Emacs with LUCID
12:55:52 <geekosaur> GTK's not bad as UI toolkits go
12:56:04 <abastro[m]> I guess emacs would be whope lot better than Eclipse at least, then
12:56:05 <pantsu> they did finally port to gtk3 too which helped a bit
12:56:21 <Solid> abastro[m]: of course, it's the best editor
12:56:38 <abastro[m]> s/whope/whole/
12:56:43 <YusefAslam[m]> pantsu: ohk
12:56:46 <YusefAslam[m]> nice I guess
12:56:51 <geekosaur> but they work very differently from tty-based frameworks, which means there's always been a noticeable impedance mismatch between GUI and emacs
12:57:13 <abastro[m]> Hmmm
12:57:27 <abastro[m]> Well it would still be better than VSCode tho
12:57:44 pantsu think that the emacs gui is generally not really implemented well in general
12:58:09 <abastro[m]> (The only reason I am using VSCode is basically since I don't know how to configure editors in general)
12:58:28 <pantsu> lots of legacy/"deprecated" element used etc
12:58:29 <abastro[m]> In the end, it is hard to be worse than Eclipse anyway
12:58:53 <pantsu> no out of the box support for light/darkmode etc
12:59:33 <Solid> the first step is to turn off all of the UI elements anyways :>
12:59:36 <abastro[m]> Well whenever I look into gtk, I want to puke. Perhaps it is just my distaste towards C++, but ehh
12:59:57 <pantsu> abastro[m]: funny since gtk is in C
13:00:07 <pantsu> and the gtkmm bindings are not fantastic :p
13:00:12 <abastro[m]> I should have said C
13:00:28 <abastro[m]> But it does seem like gtk is built on inheritance
13:00:36 <pantsu> it is
13:00:42 <abastro[m]> * said C I guess
13:00:55 <abastro[m]> I dislike whenever inheritance is actually used in C
13:00:58 <abastro[m]> Like wja
13:01:04 <abastro[m]> * Like wha
13:01:07 <pantsu> partly anyway, its how they can do the memory management without driving the users insane
13:01:13 <abastro[m]> Oh, that and gtk being singlethreaded
13:01:35 <abastro[m]> Oh, memory management
13:01:38 <pantsu> that isn't stricly true
13:01:44 <abastro[m]> I guess one written in rust could be wildly different then
13:01:54 <geekosaur> note that singlethreaded actually derives from X11
13:02:08 <abastro[m]> Ouch
13:02:23 <abastro[m]> So.. is Xmonad also singlethreaded?
13:02:27 <geekosaur> you have one socket connecting to the server. multiple threads cannot meaningfully listen on that socket for responses from the X server
13:02:30 <geekosaur> yes
13:02:35 <pantsu> the mainloop does support threading etc, it uses callbacks for communication
13:02:57 <geekosaur> well,there are parts that spawn temporary threads but they have to open their own distinct server connections
13:03:07 <abastro[m]> I see, tho I heard that threading with gtk main loop is quite cumbersome
13:03:08 <geekosaur> and can't share state
13:03:28 <abastro[m]> But I see that with x11 it is even more severe
13:03:59 <pantsu> its not that bad really
13:04:36 <abastro[m]> Can you receive and handle inputs in other threads than main?
13:04:55 <pantsu> but it is C after all :p (you can always use another language though, the introspection is pretty damn nice)
13:05:21 <geekosaur> not without some forwarding mechanism, which is why gtk implementations come with such (postAsync and similar)
13:05:44 <geekosaur> or openm your own connection, but again you can't share state in that case
13:05:48 <abastro[m]> So you need forwarding mechanisms..
13:06:02 <geekosaur> gtk comes with such mechanisms
13:06:11 <abastro[m]> Oh so this limitation again comes from X11
13:06:18 <abastro[m]> Meh
13:06:19 <geekosaur> it's one reason it's so popular
13:06:23 <abastro[m]> TIL X is bad
13:06:33 <geekosaur> most alternatives will be no better
13:06:40 <geekosaur> \multiplexed I/O is difficult at best
13:07:08 <abastro[m]> Hm why do I feel so bad when programming with gtk then
13:07:22 <geekosaur> and limits you to atomic transactions which often means size limitations, which makes e.g. uploading a pixmap to a server difficult
13:07:36 <geekosaur> C's a lousy language for such things
13:08:02 <abastro[m]> Eh it felt decent enough for making OS
13:08:04 <geekosaur> I don't feel any worseprogramming GTK than programming anything else in C, but I'm kinda inured to it since C was my first language
13:08:17 <geekosaur> but after something like Haskell, oh god does C feel klunky
13:08:25 <abastro[m]> My first language is C as well
13:08:54 <YusefAslam[m]> My first language is Bash LOL
13:08:59 <abastro[m]> And tbh while I feel C to be klunky, it doesn't go that bad when I avoid resorting to inheritance
13:09:14 <abastro[m]> Procedural programming has worked well for me
13:10:16 <geekosaur> well, inheritance in C is just as klunky as the rest of it. but gtk didn't invent that either
13:10:25 <geekosaur> go look at Xt/Xaw sometime
13:10:42 <abastro[m]> Oh I don't even know about Xt soo
13:11:04 <geekosaur> no, it's mostly well forgotten :)
13:11:09 <abastro[m]> Plus, I did feel simulating inheritance in C more problematic than typical C programming
13:11:19 <geekosaur> the poriginal X toolkit. ugly as sin
13:12:22 <geekosaur> come to think of it, Motif was implemented on top of Xt too
13:12:32 <geekosaur> so did the same kind of "inheritance"
13:13:48 <abastro[m]> Like that one toy OS task where there was page "class" with uninitialized page, memory-backed page and file-backed page inheriting it
13:13:49 <geekosaur> GTK's is actually cleaner and mostly safer than the original
13:14:41 <geekosaur> at least you get an assert if you inherit fromthe wrong thing, instead of a core dump
13:14:43 <abastro[m]> Many fields inside the page "class" which is used or not used depending on which "subclass" it resides on
13:14:47 <abastro[m]> It was a nightmare to me
13:15:15 <abastro[m]> Oh, so gtk's implementation of inheritance was at least slightly better
13:17:01 <geekosaur> re pages, that's true even without subclassing
13:17:28 <geekosaur> a zero page has very little associated state, but you still have to tell the MMU about it
13:17:30 <abastro[m]> Well yeah but it got even worse with subclassinf
13:17:51 <abastro[m]> s/subclassinf/subclassing/
13:18:33 <abastro[m]> I forgot to mention that the "methods" implemented are quite limited, and somehow, general functionality has to go in each of those methods.
13:19:24 <abastro[m]> I am fine with zero page, tho equating anonymous page and file page, then page cache was nightmare
13:19:56 <geekosaur> it is anyway. sounds good in theory, painful to implement in practice
13:21:51 <geekosaur> (was this minix btw? it's been a few years and my book is long gone, to say nothing of the disk that came with it)
13:22:08 <abastro[m]> What is minix?
13:23:16 <geekosaur> https://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation
13:24:38 <geekosaur> quite a few of us bought that book just toget our hands on minix, back in the day. reportedly it also inspired linux torvalds to develop linux
13:25:49 <abastro[m]> Oh, I was more talking about my uni assignment on toy OS dev
13:25:59 <geekosaur> minix was a message-passing microkernel, so while a little slow it was easy to modify and easy to see how all the pieces fit together
13:26:07 <geekosaur> right, minix was such a toy os
13:26:19 <geekosaur> and the book was intended for such courses
13:26:20 <abastro[m]> Took debugging of millions of multithreading bugs
13:26:35 <abastro[m]> What I worked with was pintos
13:28:28 <abastro[m]> I don't know how message-passing kernel would work, but it sounds like it would be easier to work with
13:29:05 <geekosaur> they're mostly slower than traditional kernels but a lot more secure and easier to understand and work with
13:29:28 <geekosaur> windows and macos are both based on message-passing systems
13:29:45 <abastro[m]> Hmm perhaps pintos is also message-passing then? Idk
13:29:48 <abastro[m]> https://pintos-os.org/
13:29:54 <abastro[m]> ^ what I was talking about
13:30:35 <abastro[m]> Could be smaller than minix, considering how I was able to implement some parts towards working OS in the end
13:31:57 <abastro[m]> Wait, its VM part seems to be largely left out for students to flesh details out
13:32:19 <geekosaur> from the slides it's a traditional architecture, not microkernel
13:32:44 <abastro[m]> What is microkernel?
13:33:08 <abastro[m]> Perhaps I simply read that as "kernel"
13:33:13 <abastro[m]> Traditional architecture?
13:33:29 <geekosaur> in essence you have a tiny fixed scheduler, then the kernel consists of independent processes that communicate with each other (typically via messages)
13:33:52 <geekosaur> a traditional architecture has the kernel as a single large chunk, like linux
13:34:02 <abastro[m]> Oh, I see
13:34:27 <abastro[m]> Microkernel sounds nicer to code in with separation of concerns (tho I have no experience in them)
13:34:44 <abastro[m]> Easier to hack stuff together randomly in traditional architecture
13:35:35 <abastro[m]> Anyway it seems like, instead of letting students to write the virtual memory managenent, the prof decided to write down sh*tty, hard-to-extend code with many limitations and meh inheritance schemes
13:36:07 <abastro[m]> The nicer parts of it seem to come from original pintos code
13:43:29 <abastro[m]> (Sorry for the rant)
13:55:59 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
13:57:35 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:17:58 × ^[ quits (~user@user//x-8473491) (Ping timeout: 260 seconds)
14:24:53 ^[ joins (~user@user//x-8473491)
14:32:47 × benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
15:03:23 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Ping timeout: 260 seconds)
15:22:47 × Czernobog quits (~Czernobog@user/czernobog) (Ping timeout: 268 seconds)
15:30:01 × jmct_ quits (sid160793@id-160793.tinside.irccloud.com) ()
15:30:20 jmct joins (sid160793@id-160793.tinside.irccloud.com)
15:39:49 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
16:05:57 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
16:36:55 cfricke joins (~cfricke@user/cfricke)
16:43:32 Czernobog joins (~Czernobog@user/czernobog)
16:58:59 × theproffesor quits (~theprofff@user/theproffesor) (Ping timeout: 268 seconds)
17:01:24 × Czernobog quits (~Czernobog@user/czernobog) (Quit: ZNC 1.8.2 - https://znc.in)
17:03:55 Czernobog joins (~Czernobog@user/czernobog)
17:20:56 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
17:40:42 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
18:42:18 theproffesor joins (~theprofff@user/theproffesor)
19:29:43 krrishg[m] joins (~krrishgma@2001:470:69fc:105::1:f40c)
19:57:35 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
20:02:21 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
20:02:43 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
20:51:56 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
20:53:41 geekosaur joins (~geekosaur@xmonad/geekosaur)
20:55:45 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Excess Flood)
20:55:47 allbery_b joins (~geekosaur@xmonad/geekosaur)
20:55:50 allbery_b is now known as geekosaur
21:03:51 <liskin> Saw a tweet of someone getting train tickets for ZuriHac. Shall I start worrying about that as well? :-)
21:20:53 <tdammers> depends where you're traveling from, and how hard you depend on those train tickets to be cheap
21:22:37 <tdammers> fwiw, I booked mine a couple weeks ago
22:13:09 <liskin> We intend to use the budget from donations for the travel, so being cheap is more of a PR thing than anything personal.
22:13:34 <liskin> And I have no idea where I'll be traveling from :-)
22:14:01 geekosaur wonders if he should get in his claim now, then
22:14:07 <liskin> But booking a place to stay might be a good idea anyway as the destination isn't going to change
22:14:14 <geekosaur> not that I'm capable of going to zurihac or much of anything else :(
22:15:46 <liskin> So where are people staying for ZuriHac? Random airbnbs/bookings nearby or some specific tips?
22:15:55 <liskin> geekosaur: :-(
22:19:03 <liskin> geekosaur: Speaking of the budget though, I don't think our European travels are going to make much of a dent in it, so you're probably not necessarily in a rush.
22:20:36 <liskin> And I'm getting a proper job soon meaning someone's going to be paying for my mental health shit and I'll have way less uncertainty in my life and I don't think I'll be spending less time on the xmonad project than now so I'm somewhat optimistic about the future :-)
22:38:23 × chomwitt quits (~chomwitt@2a02:587:dc0e:4f00:e2a4:4df9:d340:7660) (Ping timeout: 260 seconds)
23:54:49 mvk joins (~mvk@2607:fea8:5ce3:8500::9d5a)

All times are in UTC on 2022-04-08.