2022/10/15

2022-10-15 00:45:01 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-15 01:47:00 +0200Henson(~kvirc@207.136.101.195)
2022-10-15 01:52:36 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds)
2022-10-15 01:55:40 +0200 <Henson> I use DynamicWorkspaces, and sometimes accumulate a lot of windows. I also use windowPrompt with FuzzyMatch to help me find windows when they get lost. But sometimes I would like to take a closer look at the windows that are matched by FuzzyMatch. Is there some existing module or way to create a new DynamicWorkspace that contains all of the windows that match?
2022-10-15 02:12:03 +0200chomwitt(~chomwitt@80.106.160.196) (Ping timeout: 252 seconds)
2022-10-15 02:47:16 +0200xtayex1(~xtayex@180.160.67.85)
2022-10-15 02:52:06 +0200logzet_(~quassel@2001:9e8:e51d:8e00:dabb:c1ff:fed3:a1b9)
2022-10-15 02:52:18 +0200logzet(~quassel@2001:9e8:e50c:ca00:dabb:c1ff:fed3:a1b9) (Ping timeout: 264 seconds)
2022-10-15 03:05:35 +0200xtayex1(~xtayex@180.160.67.85) (Ping timeout: 252 seconds)
2022-10-15 04:04:37 +0200banc(banc@gateway/vpn/airvpn/banc) (Ping timeout: 252 seconds)
2022-10-15 04:23:39 +0200banc(banc@gateway/vpn/airvpn/banc)
2022-10-15 04:26:37 +0200td_(~td@83.135.9.35) (Ping timeout: 268 seconds)
2022-10-15 04:28:18 +0200td_(~td@83.135.9.18)
2022-10-15 04:45:49 +0200berberman(~berberman@user/berberman)
2022-10-15 05:47:00 +0200xtayex1(~xtayex@180.160.67.85)
2022-10-15 07:49:36 +0200xtayex1(~xtayex@180.160.67.85) (Ping timeout: 264 seconds)
2022-10-15 08:27:09 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-10-15 08:45:01 +0200logzet_(~quassel@2001:9e8:e51d:8e00:dabb:c1ff:fed3:a1b9) (Ping timeout: 260 seconds)
2022-10-15 09:26:49 +0200Phaseditto(~Phaseditt@p200300f03f3bd9008d7902a993fd5916.dip0.t-ipconnect.de)
2022-10-15 09:29:44 +0200 <Phaseditto> Heyho. Not sure if i am in the correct place to ask about this but here goes: Xmonad on Void, anyone ever had the pleasure? It does not quite work due to the fact that it cannot re-compile itself (though i don't exactly know why). If anyone has some deeper knowledge about this case, sharing the info on it would be appreciated
2022-10-15 09:30:07 +0200 <Phaseditto> (And yes i already asked around with the Void Linux people, they don't know either)
2022-10-15 10:06:32 +0200 <[Leary]> Phaseditto: A brief look around google suggests that xmonad recompilation is known to be broken on Void, and that no one is fixing it. I suggest you remove the version from the repos and install xmonad via cabal or stack; whichever one can be made to behave on Void. See: https://xmonad.org/INSTALL.html
2022-10-15 10:09:39 +0200Kaladin(~Kaladin@157-131-169-214.fiber.dynamic.sonic.net)
2022-10-15 10:23:22 +0200Kaladin(~Kaladin@157-131-169-214.fiber.dynamic.sonic.net) (Quit: Leaving)
2022-10-15 11:00:10 +0200 <Phaseditto> [Leary] Been that far myself. The issue is that if you install xmonad via cabal for instance, the self recompilation does not work aswell, i haven't tried stack yet and i also do not know why the recompilation does not work to begin with.
2022-10-15 11:05:01 +0200 <Phaseditto> I may just try to install via stack. If that works i will just use that.
2022-10-15 11:33:42 +0200xtayex1(~xtayex@180.160.67.85)
2022-10-15 12:25:58 +0200arslonga[m](~uuuuuuuum@2001:470:69fc:105::1589) (Remote host closed the connection)
2022-10-15 12:25:58 +0200ChaoticMist[m](~gilganixm@2001:470:69fc:105::3d09) (Remote host closed the connection)
2022-10-15 12:25:58 +0200lions[m](~lionsmatr@2001:470:69fc:105::d1fe) (Remote host closed the connection)
2022-10-15 12:25:58 +0200Balrog[m](~M0x62616c@2001:470:69fc:105::2:9152) (Remote host closed the connection)
2022-10-15 12:25:58 +0200Tisoxin(~ikosit@user/ikosit) (Read error: Connection reset by peer)
2022-10-15 12:25:58 +0200qbit_m(~qbittapen@2001:470:69fc:105::194) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200yuu[m](~yuum]@2001:470:69fc:105::8a6) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200valarMorghulis[m(~lladeebll@2001:470:69fc:105::2:72) (Remote host closed the connection)
2022-10-15 12:25:59 +0200MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417) (Read error: Connection reset by peer)
2022-10-15 12:25:59 +0200NONstope[m](~nonstopem@2001:470:69fc:105::2:8d1c) (Remote host closed the connection)
2022-10-15 12:25:59 +0200uhoreg(~uhoreg@2001:470:69fc:105::35f) (Remote host closed the connection)
2022-10-15 12:25:59 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (Write error: Connection reset by peer)
2022-10-15 12:25:59 +0200Neo[Envs][m](~neovoiden@2001:470:69fc:105::2:b07) (Remote host closed the connection)
2022-10-15 12:25:59 +0200liskin[m](~liskinmat@2001:470:69fc:105::768) (Remote host closed the connection)
2022-10-15 12:25:59 +0200sogens[m](~sogensmat@2001:470:69fc:105::1:20a1) (Remote host closed the connection)
2022-10-15 12:26:00 +0200sibi(~sibi@2001:470:69fc:105::8ab) (Remote host closed the connection)
2022-10-15 12:26:00 +0200geekosaur[m](~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200mikevan[m](~mikevanto@2001:470:69fc:105::2:7ef5) (Remote host closed the connection)
2022-10-15 12:26:00 +0200zim0369[m](~zim0369ma@2001:470:69fc:105::2:5d43) (Remote host closed the connection)
2022-10-15 12:26:00 +0200devhashtag[m](~devhashta@2001:470:69fc:105::2:85a2) (Remote host closed the connection)
2022-10-15 12:26:00 +0200aaronv(~aaronv@user/aaronv) (Read error: Connection reset by peer)
2022-10-15 12:26:00 +0200Spiker01[m](~s98742598@2001:470:69fc:105::2:8415) (Remote host closed the connection)
2022-10-15 12:26:00 +0200iamtheonewiththi(~iamtheone@2001:470:69fc:105::2:8a9b) (Remote host closed the connection)
2022-10-15 12:26:00 +0200AskYourself[m](~ask-yours@2001:470:69fc:105::2:9793) (Remote host closed the connection)
2022-10-15 12:26:00 +0200Solid[m](~slot-matr@2001:470:69fc:105::1:a84) (Remote host closed the connection)
2022-10-15 12:26:00 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d) (Read error: Connection reset by peer)
2022-10-15 12:26:03 +0200mekeor[m](~mekeormat@2001:470:69fc:105::17e4) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200unclechu(~unclechu@2001:470:69fc:105::354) (Write error: Connection reset by peer)
2022-10-15 12:26:03 +0200floweynt[m](~floweyyag@2001:470:69fc:105::2:86b7) (Remote host closed the connection)
2022-10-15 12:26:05 +0200Alok[m](~alok8bbma@2001:470:69fc:105::2:620f) (Remote host closed the connection)
2022-10-15 12:26:05 +0200imanebrahimi77[m(~imanebrah@2001:470:69fc:105::2:9a72) (Remote host closed the connection)
2022-10-15 12:26:05 +0200alternateved[m](~alternate@2001:470:69fc:105::2:894a) (Remote host closed the connection)
2022-10-15 12:26:05 +0200Industrial[m](~industria@2001:470:69fc:105::eb9) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200quarkQuark[m](~quarkquar@2001:470:69fc:105::2:46e2) (Remote host closed the connection)
2022-10-15 12:26:05 +0200RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57) (Read error: Connection reset by peer)
2022-10-15 12:26:05 +0200uj[m](~ujmatrixo@2001:470:69fc:105::2:888f) (Read error: Connection reset by peer)
2022-10-15 12:26:25 +0200vanvik(~vanvik@188.113.111.129) (Ping timeout: 250 seconds)
2022-10-15 12:28:59 +0200sibi(~sibi@2001:470:69fc:105::8ab)
2022-10-15 12:29:28 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-15 12:30:58 +0200mekeor[m](~mekeormat@2001:470:69fc:105::17e4)
2022-10-15 12:43:52 +0200vanvik(~vanvik@188.113.111.129)
2022-10-15 12:44:16 +0200unclechu(~unclechu@2001:470:69fc:105::354)
2022-10-15 12:44:17 +0200qbit_m(~qbittapen@2001:470:69fc:105::194)
2022-10-15 12:44:17 +0200yuu[m](~yuum]@2001:470:69fc:105::8a6)
2022-10-15 12:44:17 +0200Balrog[m](~M0x62616c@2001:470:69fc:105::2:9152)
2022-10-15 12:44:17 +0200RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57)
2022-10-15 12:44:17 +0200geekosaur[m](~geekosaur@xmonad/geekosaur)
2022-10-15 12:44:17 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d)
2022-10-15 12:44:17 +0200uhoreg(~uhoreg@2001:470:69fc:105::35f)
2022-10-15 12:44:17 +0200aaronv(~aaronv@user/aaronv)
2022-10-15 12:44:17 +0200MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417)
2022-10-15 12:44:18 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-10-15 12:44:18 +0200alternateved[m](~alternate@2001:470:69fc:105::2:894a)
2022-10-15 12:44:28 +0200NONstope[m](~nonstopem@2001:470:69fc:105::2:8d1c)
2022-10-15 12:44:28 +0200Neo[Envs][m](~neovoiden@2001:470:69fc:105::2:b07)
2022-10-15 12:44:28 +0200arslonga[m](~uuuuuuuum@2001:470:69fc:105::1589)
2022-10-15 12:44:29 +0200Industrial[m](~industria@2001:470:69fc:105::eb9)
2022-10-15 12:44:29 +0200imanebrahimi77[m(~imanebrah@2001:470:69fc:105::2:9a72)
2022-10-15 12:44:29 +0200Spiker01[m](~s98742598@2001:470:69fc:105::2:8415)
2022-10-15 12:44:29 +0200valarMorghulis[m(~lladeebll@2001:470:69fc:105::2:72)
2022-10-15 12:44:29 +0200lions[m](~lionsmatr@2001:470:69fc:105::d1fe)
2022-10-15 12:44:29 +0200Alok[m](~alok8bbma@2001:470:69fc:105::2:620f)
2022-10-15 12:44:29 +0200sogens[m](~sogensmat@2001:470:69fc:105::1:20a1)
2022-10-15 12:44:29 +0200AskYourself[m](~ask-yours@2001:470:69fc:105::2:9793)
2022-10-15 12:44:29 +0200zim0369[m](~zim0369ma@2001:470:69fc:105::2:5d43)
2022-10-15 12:44:29 +0200quarkQuark[m](~quarkquar@2001:470:69fc:105::2:46e2)
2022-10-15 12:44:29 +0200mikevan[m](~mikevanto@2001:470:69fc:105::2:7ef5)
2022-10-15 12:44:30 +0200floweynt[m](~floweyyag@2001:470:69fc:105::2:86b7)
2022-10-15 12:44:30 +0200devhashtag[m](~devhashta@2001:470:69fc:105::2:85a2)
2022-10-15 12:44:30 +0200iamtheonewiththi(~iamtheone@2001:470:69fc:105::2:8a9b)
2022-10-15 12:44:30 +0200uj[m](~ujmatrixo@2001:470:69fc:105::2:888f)
2022-10-15 12:44:31 +0200ChaoticMist[m](~gilganixm@2001:470:69fc:105::3d09)
2022-10-15 13:04:31 +0200 <dminuoso> Phaseditto: the self recompilation does work, but it needs a bit of a holding hand.
2022-10-15 13:04:37 +0200Tisoxin(~ikosit@user/ikosit)
2022-10-15 13:04:37 +0200 <dminuoso> That is, it doesnt work out of the box
2022-10-15 13:04:46 +0200 <Phaseditto> That's the first time i am hearing that
2022-10-15 13:04:58 +0200Solid[m](~slot-matr@2001:470:69fc:105::1:a84)
2022-10-15 13:04:58 +0200liskin[m](~liskinmat@2001:470:69fc:105::768)
2022-10-15 13:05:00 +0200 <dminuoso> Phaseditto: Well so it depends. If you use cabal v1-style it should work out of the box.
2022-10-15 13:05:07 +0200 <dminuoso> With v2-style you will have to provide a custom build script
2022-10-15 13:05:40 +0200 <Phaseditto> huh. Excuse my lack of cabal knowledge, i don't know what the difference means and how it comes to be
2022-10-15 13:05:57 +0200 <dminuoso> (Or rather with v2-style you will most likely get problems and headaches)
2022-10-15 13:06:29 +0200 <dminuoso> Phaseditto: So in v1-install, packages are installed into a global place (think of cabal acting as a scoped package manager on itself this way).
2022-10-15 13:08:00 +0200 <dminuoso> v2-mode works very differently, as while cabal will manage packages in a global store, they are in principle made available to each project directory, but there's not a comparable `install` mode that behaves as nicely.
2022-10-15 13:08:23 +0200 <Phaseditto> Is there any drawbacks to the v1 mode?
2022-10-15 13:08:45 +0200 <dminuoso> If you dont really use Haskell probably not much, except that at some point in the future it will not be supported anymore.
2022-10-15 13:09:18 +0200 <Phaseditto> hm, would be a shame if i had to run my WM on EOL software
2022-10-15 13:09:20 +0200 <dminuoso> Honestly I would just write a custom build script, its not too much extra effort and gives you full control
2022-10-15 13:09:31 +0200 <Phaseditto> if you say so
2022-10-15 13:09:48 +0200 <Phaseditto> i am no stranger to programming and getting used to new syntax so that should not pose much of an issue
2022-10-15 13:10:47 +0200 <dminuoso> Note that using a custom build script might make xmonad restarts a bit slower, unless you spend some extra work. Especially if the code has not changed.
2022-10-15 13:11:01 +0200 <dminuoso> Its nothing major, but I dont want to sell this as "just benefits without downsides" to you
2022-10-15 13:11:40 +0200 <Phaseditto> is that only on rebuilds or on any restart?
2022-10-15 13:12:01 +0200 <dminuoso> On restart too, but those are fixable
2022-10-15 13:12:03 +0200 <dminuoso> Note:
2022-10-15 13:12:05 +0200 <dminuoso> https://xmonad.org/INSTALL.html#custom-build-script
2022-10-15 13:12:07 +0200 <dminuoso> At the bottom
2022-10-15 13:12:31 +0200 <Phaseditto> i see, then that is absolutely negligible for me if i can "make it right"
2022-10-15 13:12:35 +0200 <dminuoso> Yes.
2022-10-15 13:13:16 +0200 <dminuoso> If you use v2-build in the build script, the other cases are covered too.
2022-10-15 13:13:38 +0200 <Phaseditto> the documentation probably explains this thoroughly i presume
2022-10-15 13:13:54 +0200 <dminuoso> Not really
2022-10-15 13:13:57 +0200 <Phaseditto> oh well
2022-10-15 13:14:01 +0200 <dminuoso> So roughly the interface is as follows:
2022-10-15 13:15:09 +0200 <dminuoso> Give me a few minutes, Ill make you a sample repository to work with.
2022-10-15 13:15:34 +0200 <Phaseditto> Appreciate the effort, thanks
2022-10-15 13:38:26 +0200 <dminuoso> Phaseditto: https://gitlab.com/dminuoso/example-xmonad
2022-10-15 13:38:44 +0200 <dminuoso> Phaseditto: Note, that this properly uses a `.cabal` file, which is used to declare things like dependencies.
2022-10-15 13:39:08 +0200 <dminuoso> Outside of nixos, this is probably what I would universally favour over all other solutions (unless you happen to be a stack user already)
2022-10-15 13:39:33 +0200 <dminuoso> Ah you probably want to use something like `set -e -o pipefail` or explicit error checking in the build script
2022-10-15 13:40:10 +0200 <Phaseditto> Thanks. This will probably take some time and tweaking on my side as i am not at all familiar with cabal
2022-10-15 13:40:25 +0200 <dminuoso> One additional benefit of this style is, you can use `haskell-language-server` to interactively write your program, or you can use `ghcide`, or just manual `cabal build` to compile your program for validity, rather than restarting xmonad every time
2022-10-15 13:40:32 +0200 <dminuoso> Phaseditto: Honestly, it wont. :)
2022-10-15 13:40:41 +0200 <Phaseditto> If you say so :D
2022-10-15 13:40:43 +0200 <dminuoso> If you just take this, the only thing you must modify is two things:
2022-10-15 13:41:04 +0200 <dminuoso> If your xmonad program is split across multiple modules, declare each such module in other-modules: https://gitlab.com/dminuoso/example-xmonad/-/blob/main/my-xmonad.cabal#L30
2022-10-15 13:41:13 +0200 <dminuoso> (remove -- comment, and declare module names (not filenames)
2022-10-15 13:41:37 +0200 <dminuoso> See https://gitlab.com/wobcom/haskell/powerdns-gerd/-/blob/master/powerdns-gerd.cabal#L61-66 for example
2022-10-15 13:42:01 +0200 <dminuoso> And, if you want to use additional haskell packages from hackage, delcare them accordingly under `build-depends` (with or without version constraints as you see fit)
2022-10-15 13:42:21 +0200 <dminuoso> Beyond that, nothing needs to be done
2022-10-15 13:43:00 +0200 <dminuoso> Oh and you probably have to adapt the `base` constraint.
2022-10-15 13:44:03 +0200 <Phaseditto> not the most recent version i presume
2022-10-15 13:44:27 +0200 <dminuoso> Honestly, you can just remove it entirely
2022-10-15 13:44:34 +0200 <dminuoso> the constraint, but not the base dependency
2022-10-15 13:44:39 +0200 <dminuoso> let me make those fixes
2022-10-15 13:44:45 +0200 <Phaseditto> Much appreciated
2022-10-15 13:45:10 +0200 <dminuoso> Done
2022-10-15 13:45:32 +0200 <dminuoso> So all you have to do, is manage dependencies under `build-depends` and modules other than Main under `other-modules`
2022-10-15 13:45:54 +0200 <dminuoso> Note, that if you ever want to do update of your dependencies, you have to run a `cabal update` to update its hackage index.
2022-10-15 13:46:07 +0200 <dminuoso> (This applies to all versions that do not use your system package manager)
2022-10-15 13:46:25 +0200 <Phaseditto> cabal update is more stomachable than updating DWM, trust me
2022-10-15 13:46:29 +0200 <dminuoso> :)
2022-10-15 13:46:38 +0200 <dminuoso> It doesnt really do anything beyond just fetching the index
2022-10-15 13:46:50 +0200 <dminuoso> Its the subsequent `build` (or `cabal build`) invocation that will compute a new build plan
2022-10-15 13:47:05 +0200 <dminuoso> Do take note, that you have to supply all X11 dependencies yourself
2022-10-15 13:47:17 +0200 <dminuoso> You can inspect the `shell.nix` file to get an idea of all required native libraries.
2022-10-15 13:47:30 +0200 <Phaseditto> I switched to DWM for the meantime since that is the only other WM i can bastardize into behaving like xmonad but i am tired of patching the same shit in for newer versions, or get in newer version changes onto my patched DWM
2022-10-15 13:47:40 +0200 <dminuoso> (They may or may not be present already, but I just want to point this out)
2022-10-15 13:48:05 +0200 <Phaseditto> With X11 deps you mean the deps that my system has via xbps right?
2022-10-15 13:48:17 +0200Digit(~user@user/digit)
2022-10-15 13:48:21 +0200 <dminuoso> Well, take a look at the shell.nix
2022-10-15 13:48:31 +0200 <Phaseditto> ah gotcha
2022-10-15 13:48:40 +0200 <Phaseditto> yeah that should be easy
2022-10-15 13:48:49 +0200 <Phaseditto> So: Install cabal on my Void spinup, declare potential modules and potential hackage deps, build Xmonad and i am golden, correct?
2022-10-15 13:49:10 +0200 <dminuoso> If you want extra painless installation of both cabal and GHC, install both via `ghcup`
2022-10-15 13:49:24 +0200 <dminuoso> (But I do not know whether that works on Void, give it a try perhaps?)
2022-10-15 13:49:39 +0200 <dminuoso> Wouldnt trust package manager maintainers to package GHC up properly
2022-10-15 13:50:56 +0200 <Phaseditto> I will certainly give it a try later today. For my understanding this type of setup is for the most part system independant, as long as cabal and GHC are properly installed
2022-10-15 13:51:42 +0200 <dminuoso> The thing is, if they are provided by your system package manager, there may be a number of additional problems
2022-10-15 13:52:09 +0200 <dminuoso> Like, will they install additional packages? Screw around with the boot libraries inside GHC?
2022-10-15 13:52:15 +0200 <dminuoso> Or apply random patches?
2022-10-15 13:52:20 +0200 <dminuoso> Lag behind in versions?
2022-10-15 13:53:45 +0200 <dminuoso> But if you prefer them system installed its probably fine?
2022-10-15 13:53:50 +0200 <Phaseditto> Just as an example: Cabal has the cabal-install package and GHC is version 9.0.2_1 on Void. I know hard to say if that indicates any compatibility.
2022-10-15 13:55:21 +0200 <dminuoso> Well Ive shared my opinion and recommendation - but its just that.
2022-10-15 13:55:31 +0200 <dminuoso> Your decision in the end. :)
2022-10-15 13:55:52 +0200 <dminuoso> The GHC version is not much out of date, that version was released about a year ago.
2022-10-15 13:56:32 +0200 <Phaseditto> Appreciate the effort. I will try it later today and see how it works out for me. One thing though: The install documentation mentiones stack, any opinions about that?
2022-10-15 13:56:36 +0200 <dminuoso> Most packages on hackage will work fine with up to 8.6.4 from experience
2022-10-15 13:56:44 +0200tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-10-15 13:57:00 +0200 <dminuoso> So `stack` is an alternative approach with a different mindset.
2022-10-15 13:57:23 +0200 <Phaseditto> I will see what works and what breaks. I would try with default xmonad and then try my own configuration, if everything works, cool, if not i will iteratively remove something until it works
2022-10-15 13:57:37 +0200 <dminuoso> I dont like it, I dont use it, and I think many arguments you will find on the internet are from a time before cabal-install v2-commands
2022-10-15 13:58:10 +0200 <dminuoso> There's a bunch of things I personally think it does wrong, and for beginners it unnecessarily adds extra complexities.
2022-10-15 13:58:14 +0200 <Phaseditto> Yeah sounds like there is a reason to that. Gonna take you word for it
2022-10-15 13:58:32 +0200 <dminuoso> But if you said "you already use stack", I wouldnt try and convince you to stop using it.
2022-10-15 13:58:46 +0200 <Phaseditto> Nah, my Setup is haskell free for the time being
2022-10-15 13:58:55 +0200 <Phaseditto> not that i got anything against haskell but it never came up
2022-10-15 14:00:11 +0200 <dminuoso> Yeah, I write Haskell both at my day job and in my free time. :)
2022-10-15 14:00:42 +0200 <dminuoso> It's quite refreshing to see non-Haskellers trying and using Xmonad honestly.
2022-10-15 14:00:49 +0200 <dminuoso> Even if it doesn't act as a gateway drug for most
2022-10-15 14:01:25 +0200 <dminuoso> xmonad, if anything, rather scares people away from Haskell.
2022-10-15 14:02:22 +0200 <Phaseditto> I got into Xmonad on a rehab for a damaged finger, only had the laptop of my GF and wanted easier operatibility and less resource consumption. Switched from Gnome to Xmonad and got used to it faster than i thought i would
2022-10-15 14:02:39 +0200 <dminuoso> My xmonad config looks so much different from the code I write usually
2022-10-15 14:02:46 +0200 <Phaseditto> Xmonad can be a bit of an oddball when it comes to documentation or rather finding it
2022-10-15 14:02:52 +0200 <dminuoso> My code I consider readable, my xmonad config not so much :)
2022-10-15 14:02:52 +0200 <Phaseditto> at least that was the case for me
2022-10-15 14:03:46 +0200 <Phaseditto> Took a look at GHCup on their website, that might be the least painful way to get everything working and inversely clean in up if i can't get it to work
2022-10-15 14:03:51 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:6d70:b0c1:e403:3e35)
2022-10-15 14:04:28 +0200 <dminuoso> Note that ghcup is both an official installation method, and it is the recommended installation method.
2022-10-15 14:04:38 +0200 <dminuoso> https://www.haskell.org/downloads/
2022-10-15 14:05:15 +0200 <Phaseditto> As long as it allows me to get rid of it as easily as it allows me to install things that's fine with me :D
2022-10-15 14:05:21 +0200 <dminuoso> Yes it does.
2022-10-15 14:05:30 +0200 <Phaseditto> Perfect then
2022-10-15 14:05:33 +0200 <dminuoso> It's just a single `rm -rf` and removing a line from your shell script.
2022-10-15 14:05:50 +0200 <Phaseditto> so it keeps everything in one folder
2022-10-15 14:05:54 +0200 <dminuoso> It installs just into a local directory into your home directory, and versions are managed via a simple shell hook
2022-10-15 14:06:23 +0200 <Phaseditto> cool stuff, preferrable to other "managers" that leave residue of their software all over your system
2022-10-15 14:07:08 +0200 <dminuoso> If you do try out ghcup, let me know if it works on Void or not (or file a bug report if any problems arise)
2022-10-15 14:07:12 +0200 <dminuoso> Not sure whether there have been many Void users
2022-10-15 14:07:39 +0200 <dminuoso> https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/363
2022-10-15 14:07:42 +0200 <dminuoso> Ah it seems like it should work.
2022-10-15 14:07:47 +0200logzet(~quassel@2001:9e8:e51d:8e00:dabb:c1ff:fed3:a1b9)
2022-10-15 14:08:39 +0200 <Phaseditto> From what i can tell the Void crowd doesn't really use haskell because, and i cite "haskell should've been a scripting language. it's extremely hard to make haskell-level generics work across ABI boundaries. I don't blame GHC devs at all refusing to stabilize ABI"
2022-10-15 14:08:51 +0200 <Phaseditto> Of course that does not speak for all of Void users
2022-10-15 14:09:16 +0200 <Phaseditto> but generally it does not play well with xbps and as such gets disregarded for most if it needs recompiling from what i understood
2022-10-15 14:09:21 +0200 <dminuoso> Im not sure what they mean by "haskell-level generics work across ABI boundaries"
2022-10-15 14:09:29 +0200 <Phaseditto> Neither do i
2022-10-15 14:09:36 +0200 <dminuoso> But yes, we do not have stable ABIs in GHC.
2022-10-15 14:10:19 +0200 <Phaseditto> The gist of it is that xbps and Haskell do not mesh well and thus haskell software at best gets delivered as a binary
2022-10-15 14:10:38 +0200 <dminuoso> It's funny to read a comment that "it should have been a scripting language", considering that we get a high level language with unlimited abstraction potential, with performance that can with some care rival rust or C++...
2022-10-15 14:10:43 +0200 <Phaseditto> Might not be entirely correct but that is what i understood
2022-10-15 14:11:16 +0200 <Phaseditto> > It's funny to read a comment that "it should have been a scripting language" ....
2022-10-15 14:11:16 +0200 <Phaseditto> Wouldn't take that too serious, that was just a random comment in a conversation today
2022-10-15 14:11:17 +0200 <lambdabot> <hint>:1:82: error:
2022-10-15 14:11:17 +0200 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2022-10-15 14:11:37 +0200 <dminuoso> Phaseditto: Do they have a policy of requiring dynamic libraries for everything?
2022-10-15 14:11:46 +0200 <dminuoso> Or strongly favouring them?
2022-10-15 14:11:55 +0200 <Phaseditto> No idea to be honest ^^'
2022-10-15 14:12:12 +0200 <dminuoso> But yes, you see this same sort of problem in Arch
2022-10-15 14:12:45 +0200 <dminuoso> If you tie haskell packages, executables *and* dependent libraries into your package manager, you will have a lot of suffering.
2022-10-15 14:12:57 +0200 <Phaseditto> Every language and distro has it's kinks and quirks. That's how it is
2022-10-15 14:13:07 +0200 <Phaseditto> Unless you use Nix and it either works or it doesn'%
2022-10-15 14:13:36 +0200 <dminuoso> GHC is designed to statically link Haskell libraries
2022-10-15 14:13:52 +0200 <dminuoso> So if your package manager philosophy does not like this, then yeah there's a conflict of interests at heart.
2022-10-15 14:14:18 +0200 <Phaseditto> Might be the case, haven't done too much research on that
2022-10-15 14:14:48 +0200 <dminuoso> (I mean you can do dynamic linking with DHC/cabal/stack...)
2022-10-15 14:15:19 +0200 <dminuoso> So yeah, if you imagine that xbps is similar to say pacman, the above statements make perfect sense.
2022-10-15 14:15:30 +0200 <Phaseditto> Wouldn't be too far fetched
2022-10-15 14:15:42 +0200 <Phaseditto> though arch supports xmonad, funnily enough
2022-10-15 14:15:44 +0200 <dminuoso> At the same time I might say, forcibly dynamically linking when you *know* the compiler has no stable ABI...
2022-10-15 14:15:47 +0200 <dminuoso> That's just thickheaded.
2022-10-15 14:15:57 +0200 <dminuoso> Its almost as if you wanted to prove something else was bad.
2022-10-15 14:16:12 +0200 <dminuoso> Phaseditto: Yes, and what horrible pain and suffering you will experience if you try and use it via pacman.
2022-10-15 14:16:31 +0200 <Phaseditto> Used artix for a month.... nah thanks
2022-10-15 14:16:54 +0200 <Phaseditto> I switched to Void because it can take neglect to a degree where i would say it's stable enough for a user who just needs to get stuff done
2022-10-15 14:17:19 +0200 <Phaseditto> Can't be bothered to fix my system every time some package breaks
2022-10-15 14:17:47 +0200 <dminuoso> Phaseditto: Honestly, use ghcup.
2022-10-15 14:18:02 +0200 <Phaseditto> that was the plan
2022-10-15 14:18:44 +0200 <Phaseditto> If i can get something working i will post about that here
2022-10-15 14:18:56 +0200 <dminuoso> Yes, definitely do and highlight me if you can.
2022-10-15 14:19:14 +0200 <Phaseditto> how do i highlight people in IRC?
2022-10-15 14:19:14 +0200 <dminuoso> I should probably polish all that I wrote up, and include it on the xmonad wiki somewhere.
2022-10-15 14:19:17 +0200 <dminuoso> Just write my name
2022-10-15 14:19:26 +0200 <Phaseditto> dminuoso like that?
2022-10-15 14:19:28 +0200 <dminuoso> Yes.
2022-10-15 14:19:33 +0200 <Phaseditto> yup, gonna do that
2022-10-15 14:19:49 +0200 <Phaseditto> (last time i used IRC in 2006 lol)
2022-10-15 14:19:56 +0200 <dminuoso> On most clients, like mine, this causes a) a visual marker in the chat buffer, b) a visual marker on the chat buffer where the highlight occured, and set an urgency hint
2022-10-15 14:20:06 +0200 <dminuoso> So I know someone mentioned my name :)
2022-10-15 14:20:10 +0200 <Phaseditto> That's good to know
2022-10-15 14:20:22 +0200 <dminuoso> *visual marker in the buffer list on the buffer where the highlight occured
2022-10-15 14:30:24 +0200Henson(~kvirc@207.136.101.195) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-10-15 14:52:22 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet) (Quit: mesaoptimizer)
2022-10-15 14:52:33 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet)
2022-10-15 14:57:18 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-10-15 14:57:38 +0200[Leary](~Leary]@user/Leary/x-0910699)
2022-10-15 15:47:15 +0200thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-10-15 16:01:40 +0200zawaken(~zawaken@user/zawaken)
2022-10-15 16:19:39 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-15 17:26:55 +0200noex(~null@user/noex) (Quit: :q!)
2022-10-15 17:29:25 +0200noex(~null@user/noex)
2022-10-15 17:30:03 +0200 <Solid> Phaseditto: the tl;dr is to not install xmonad from Void's repos (it's in removed-packages anyways) and to use stack
2022-10-15 17:30:07 +0200 <Solid> (or cabal, I guess)
2022-10-15 17:31:24 +0200 <Solid> If you use glibc then just use ghcup; for musl install the system GHC and adjust the stack.yaml files as required to use that instead (plus some system-ghc: true option in your global stack config)
2022-10-15 17:31:36 +0200 <Solid> I've been quite happy with a setup like that for a while
2022-10-15 17:32:05 +0200 <Solid> (I also maintain GHC for Void, so if you have any improvements to suggest feel free to ping me :)
2022-10-15 17:32:07 +0200thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
2022-10-15 18:00:10 +0200liskin[m](~liskinmat@2001:470:69fc:105::768) (Quit: You have been kicked for being idle)
2022-10-15 18:04:54 +0200 <dminuoso> Mmm, how exactly is the build script picked up?
2022-10-15 18:05:08 +0200liskin[m](~liskinmat@2001:470:69fc:105::768)
2022-10-15 18:05:23 +0200 <dminuoso> While I was cleaning up the kitchen, it occured to me that my repo cant just magically work. When xmonad restarts, it must have some knowledge of where to look for the builder script.
2022-10-15 18:07:02 +0200 <geekosaur> first thing xmonad does is look for xmonad.hs in various places (first checking for envars, then ~/.config/xmonad, then ~/.xmonad). the build script is then expected to be in the same directory
2022-10-15 18:07:32 +0200 <dminuoso> Well, if I use a cabal v2 style build, there might not even be an xmonad.hs to look for.
2022-10-15 18:07:33 +0200 <geekosaur> build script is useless without a config to build, so this is not a problem
2022-10-15 18:07:41 +0200 <geekosaur> hm?
2022-10-15 18:08:13 +0200 <dminuoso> Or is it assumed, that if my installation is under ~/.config/xmonad, then even if I use a cabal v2 project, then it must have an xmonad.hs?
2022-10-15 18:08:26 +0200 <geekosaur> I suppose you could do it as a package, but then cabal expects it to be in the hackage index
2022-10-15 18:08:27 +0200 <dminuoso> That is, is the xmonad.hs the mechanism for xmonad to detect *where* to look for a build script?
2022-10-15 18:08:41 +0200 <geekosaur> and will error out if it's not
2022-10-15 18:08:46 +0200 <geekosaur> yes it is
2022-10-15 18:08:52 +0200 <dminuoso> Ahh okay! I shall fix this then.
2022-10-15 18:09:03 +0200 <geekosaur> everything is keyed off the location of the config
2022-10-15 18:10:13 +0200 <geekosaur> https://github.com/geekosaur/xmonad.hs/tree/skkukuk is an example (there's a bunch of other files in it because I symlink those elsewhere to make things more usable)
2022-10-15 18:10:54 +0200 <dminuoso> geekosaur: By the way, you can use `cabal list-bin` to extract the path of executable artifacts.
2022-10-15 18:11:15 +0200 <geekosaur> yeh, I just copied that from the original which was for cabal v1
2022-10-15 18:11:30 +0200 <dminuoso> Fair
2022-10-15 18:11:43 +0200 <dminuoso> Phaseditto: In that sense, Ive updated the repository to reflect these requirements.
2022-10-15 18:11:58 +0200 <geekosaur> iirc the stack version is similarly ignoring modern stack features
2022-10-15 18:12:16 +0200 <dminuoso> Yeah Ive already determined that I should probably prepare a modern example with documentation
2022-10-15 18:12:21 +0200xtayex1(~xtayex@180.160.67.85) (Ping timeout: 252 seconds)
2022-10-15 18:12:24 +0200 <dminuoso> I feel like the cabal v2- project *should* be the default.
2022-10-15 18:13:12 +0200 <dminuoso> Since it directly trains users to not rely on their distributions package manager, and gives more reproducible/reusable configurations.
2022-10-15 18:13:45 +0200 <geekosaur> sadly I'm the only cabal user in the maintainers, everyone else does stack 🙂
2022-10-15 18:13:46 +0200 <dminuoso> Heck, xmonad could even detect the presence of a .cabal file, and perhaps assume a v2- build and do all of this itself
2022-10-15 18:14:02 +0200 <dminuoso> Sure, I just meant "the default in case you are using cabal anyway"
2022-10-15 18:14:07 +0200 <geekosaur> so stack is strongly recommended, in a cut-down mode that doesn't use a build scrippt
2022-10-15 18:14:25 +0200 <dminuoso> I suppose for non-haskellers it makes sense since it gives a unified way of getting stack, ghc, and the rest.
2022-10-15 18:15:26 +0200 <geekosaur> I did start on a detect-cabal thing but there's a cut-down cabal mechanism that uses cabal file and optional cabal.project but doesn't do a full build (you do a cabal install --lib to an environment file in the xmonad config dir) so we can't key on either for a full cabalized config
2022-10-15 18:15:50 +0200 <Solid> dminuoso: we would certainly appreciate if xmonad "just worked" with cabal, as it does with stack at the moment :)
2022-10-15 18:16:21 +0200 <geekosaur> https://github.com/xmonad/xmonad/pull/375 which is in draft state until I can work out something that wouldn't break the "simplified cabal" mechanism
2022-10-15 18:18:12 +0200 <geekosaur> you're welcome to think about it and make suggestions
2022-10-15 18:32:12 +0200thunderrd(~thunderrd@183.182.115.199)
2022-10-15 18:33:11 +0200thunderrd(~thunderrd@183.182.115.199) (Read error: Connection reset by peer)
2022-10-15 18:33:29 +0200thunderrd(~thunderrd@183.182.115.199)
2022-10-15 19:02:50 +0200 <dminuoso> Honestly the strange thing is, I would rather prefer explicit configurability rather than a magic mechanism.
2022-10-15 19:03:16 +0200 <dminuoso> That is, if I could tell xmonad "look for the build script here", and that would bypass all detection mechanisms, that'd be ideal in my opinion
2022-10-15 19:04:25 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 246 seconds)
2022-10-15 19:14:19 +0200 <fizzie> I don't have a `xmonad.hs` file anywhere, just a ~/.xmonad/build file, and I feel like it's been perfectly happy using that.
2022-10-15 19:15:57 +0200 <fizzie> And https://github.com/xmonad/xmonad/blob/master/src/XMonad/Core.hs#L540-L544 looks like some sort of "xmonad.hs *or* build" logic.
2022-10-15 19:51:26 +0200 <geekosaur> hm, maybe it is
2022-10-15 19:52:06 +0200 <geekosaur> I don't recall that as such, I just recall the first version checked for ~/.xmonad and then XMonad.Prompt broke that badly by hardcoding ~/.xmonad for its history file
2022-10-15 19:52:30 +0200 <geekosaur> which meant anyone trying to use xdg dirs got an unpleasant surprise next time they (re)started xmonad
2022-10-15 19:54:53 +0200kora9(~kora@h-98-128-228-57.NA.cust.bahnhof.se)
2022-10-15 19:55:25 +0200 <kora9> I'm having a terribly difficult time finding the haskell logo xpm icon a lot of people use in their xmobar configs. Anyone care to link me to it?
2022-10-15 19:57:56 +0200 <dminuoso> fizzie: ah thanks
2022-10-15 20:01:55 +0200justVainjustache
2022-10-15 20:30:41 +0200kora9(~kora@h-98-128-228-57.NA.cust.bahnhof.se) (Quit: WeeChat 3.5)
2022-10-15 20:31:50 +0200 <dminuoso> Hah I found another reason why I love xmonad.
2022-10-15 20:31:57 +0200 <dminuoso> When my display turns off, there's no random jumping around of windows./
2022-10-15 20:32:10 +0200 <dminuoso> (On the other display)
2022-10-15 21:36:01 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-15 22:03:52 +0200Forkk(~forkk@li926-228.members.linode.com) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-15 22:06:32 +0200Forkk(~forkk@li926-228.members.linode.com)
2022-10-15 23:35:50 +0200thaumavorio(~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-15 23:36:43 +0200thaumavorio(~thaumavor@thaumavor.io)