Home liberachat/#xmonad: Logs Calendar

Logs on 2022-10-17 (liberachat/#xmonad)

01:50:46 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
01:59:31 × ghormoon quits (~ghormoon@ghorland.net) (Ping timeout: 248 seconds)
02:04:56 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 260 seconds)
02:21:40 × td_ quits (~td@83.135.9.59) (Ping timeout: 268 seconds)
02:23:18 td_ joins (~td@83.135.9.13)
02:24:10 banc joins (banc@gateway/vpn/airvpn/banc)
02:42:53 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:45:28 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:45:49 ghormoon joins (~ghormoon@ghorland.net)
02:53:55 × berberman quits (~berberman@user/berberman) (Ping timeout: 248 seconds)
03:52:10 berberman joins (~berberman@user/berberman)
04:36:06 Kaladin joins (~Kaladin@157-131-169-214.fiber.dynamic.sonic.net)
05:05:08 × Kaladin quits (~Kaladin@157-131-169-214.fiber.dynamic.sonic.net) (Quit: Leaving)
05:06:37 Kaladin joins (~Kaladin@157-131-169-214.fiber.dynamic.sonic.net)
05:08:02 vanvik1 joins (~vanvik@188.113.111.129)
05:08:12 × vanvik quits (~vanvik@188.113.111.129) (Ping timeout: 264 seconds)
05:08:12 vanvik1 is now known as vanvik
05:10:06 sagax joins (~sagax_nb@user/sagax)
05:13:03 × sagax quits (~sagax_nb@user/sagax) (*.net *.split)
05:13:03 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (*.net *.split)
05:13:03 × Solid[m] quits (~slot-matr@2001:470:69fc:105::1:a84) (*.net *.split)
05:13:04 × devhashtag[m] quits (~devhashta@2001:470:69fc:105::2:85a2) (*.net *.split)
05:13:04 × Spiker01[m] quits (~s98742598@2001:470:69fc:105::2:8415) (*.net *.split)
05:13:04 × MangoIV[m] quits (~mangoivma@2001:470:69fc:105::2:8417) (*.net *.split)
05:13:04 × bsima quits (~bsima@2604:a880:400:d0::19f1:7001) (*.net *.split)
05:13:04 × PotatoGim_ quits (sid99505@id-99505.lymington.irccloud.com) (*.net *.split)
05:13:04 × brianbnt quits (~brianbnt@user/brianbnt) (*.net *.split)
05:13:51 PotatoGim_ joins (sid99505@id-99505.lymington.irccloud.com)
05:15:36 brianbnt joins (~brianbnt@user/brianbnt)
05:15:43 bsima joins (~bsima@2604:a880:400:d0::19f1:7001)
05:16:07 Solid[m] joins (~slot-matr@2001:470:69fc:105::1:a84)
05:17:51 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
05:20:20 MangoIV[m] joins (~mangoivma@2001:470:69fc:105::2:8417)
05:22:35 devhashtag[m] joins (~devhashta@2001:470:69fc:105::2:85a2)
05:22:35 Spiker01[m] joins (~s98742598@2001:470:69fc:105::2:8415)
05:24:26 sagax joins (~sagax_nb@user/sagax)
05:26:12 × berberman quits (~berberman@user/berberman) (Ping timeout: 264 seconds)
05:41:48 × Kaladin quits (~Kaladin@157-131-169-214.fiber.dynamic.sonic.net) (Quit: Leaving)
05:42:43 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
05:42:58 [Leary] joins (~Leary]@user/Leary/x-0910699)
06:06:52 chomwitt joins (~chomwitt@2a02:587:dc1e:5e00:35ee:8105:5f30:c2c7)
06:09:23 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 250 seconds)
06:28:53 cfricke joins (~cfricke@user/cfricke)
06:38:43 berberman joins (~berberman@user/berberman)
07:09:48 × akamar quits (~akamar@host-212-204-102-90.customer.m-online.net) (Remote host closed the connection)
07:18:30 × sagax quits (~sagax_nb@user/sagax) (Remote host closed the connection)
07:18:50 Ehllie joins (~Thunderbi@217-67-208-66.itsa.net.pl)
07:33:54 × chomwitt quits (~chomwitt@2a02:587:dc1e:5e00:35ee:8105:5f30:c2c7) (Quit: Leaving)
07:36:35 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
07:53:26 <Phaseditto> Does anyone know what i might be doing wrong when i try to build xmonad via cabal that i installed with GHCup when i get the Error message: cabal: Failed to build data-default-class-0.1.2.0 (which is required by exe:xmonad from xmonad-0.1.0.0) ?
08:09:27 <dminuoso> Phaseditto: Yes, you are depending on an import present in a package that has not been declared in your build-depends
08:09:36 <dminuoso> Phaseditto: In cabal, you may not implicitly use a transitive dependency.
08:09:42 <dminuoso> Oh wait.
08:09:47 <dminuoso> My squinting is poor.
08:09:54 <dminuoso> Phaseditto: Can you share the entire build eror?
08:10:00 <Phaseditto> sure
08:10:31 <Phaseditto> Error: cabal: Failed to build data-default-class-0.1.2.0 (which is required by
08:10:32 <Phaseditto> exe:test-xmonad from my-xmonad-0.1.0.0). See the build log above for details.
08:10:32 <Phaseditto> Failed to build exe:hsc2hs from hsc2hs-0.68.8 (which is required by
08:10:33 <Phaseditto> exe:test-xmonad from my-xmonad-0.1.0.0). See the build log above for details.
08:10:33 <Phaseditto> Failed to build splitmix-0.1.0.4 (which is required by exe:test-xmonad from
08:10:34 <Phaseditto> my-xmonad-0.1.0.0). See the build log above for details.
08:10:34 <Phaseditto> Failed to build utf8-string-1.0.2 (which is required by exe:test-xmonad from
08:10:35 <Phaseditto> my-xmonad-0.1.0.0). See the build log above for details.
08:10:40 <Phaseditto> Problem is, that there is no log file as far as i can see
08:10:56 <dminuoso> Is this when you run the `build` script?
08:11:05 <Phaseditto> yup
08:11:06 <dminuoso> Try running plain `cabal build` in the path
08:11:12 <dminuoso> Im not sure how much -v0 silences :p
08:11:35 <Phaseditto> oh that is WAY more verbose
08:11:52 <dminuoso> Yeah, the build script runs cabal with `-v0` as to avoid xmonad prompting needlessly
08:11:59 <Phaseditto> [1 of 5] Compiling Codec.Binary.UTF8.String ( Codec/Binary/UTF8/String.hs, dist/build/Codec/Binary/UTF8/String.o, dist/build/Codec/Binary/UTF8/String.dyn_o )
08:11:59 <Phaseditto> [2 of 5] Compiling Codec.Binary.UTF8.Generic ( Codec/Binary/UTF8/Generic.hs, dist/build/Codec/Binary/UTF8/Generic.o, dist/build/Codec/Binary/UTF8/Generic.dyn_o )
08:12:00 <Phaseditto> [3 of 5] Compiling Data.ByteString.Lazy.UTF8 ( Data/ByteString/Lazy/UTF8.hs, dist/build/Data/ByteString/Lazy/UTF8.o, dist/build/Data/ByteString/Lazy/UTF8.dyn_o )
08:12:00 <Phaseditto> [4 of 5] Compiling Data.ByteString.UTF8 ( Data/ByteString/UTF8.hs, dist/build/Data/ByteString/UTF8.o, dist/build/Data/ByteString/UTF8.dyn_o )
08:12:01 <Phaseditto> [5 of 5] Compiling Data.String.UTF8 ( Data/String/UTF8.hs, dist/build/Data/String/UTF8.o, dist/build/Data/String/UTF8.dyn_o )
08:12:02 <Phaseditto> collect2: error: ld returned 1 exit status
08:12:02 <Phaseditto> `gcc' failed in phase `Linker'. (Exit code: 1)
08:12:03 <Phaseditto> Error: cabal: Failed to build data-default-class-0.1.2.0 (which is required by
08:12:03 <Phaseditto> exe:test-xmonad from my-xmonad-0.1.0.0). See the build log above for details.
08:12:04 <Phaseditto> Failed to build exe:hsc2hs from hsc2hs-0.68.8 (which is required by
08:12:04 <Phaseditto> exe:test-xmonad from my-xmonad-0.1.0.0). See the build log above for details.
08:12:05 <Phaseditto> Failed to build splitmix-0.1.0.4 (which is required by exe:test-xmonad from
08:12:05 <Phaseditto> my-xmonad-0.1.0.0). See the build log above for details.
08:12:06 <Phaseditto> Failed to build utf8-string-1.0.2 (which is required by exe:test-xmonad from
08:12:06 <Phaseditto> my-xmonad-0.1.0.0). See the build log above for details.
08:12:13 <dminuoso> Use a paste website, or the network mechanisms will kick you off the network
08:12:19 <dminuoso> See topic
08:12:19 <Phaseditto> oh okay
08:12:23 <dminuoso> Or not
08:12:36 <dminuoso> https://paste.tomsmeding.com/
08:12:42 <dminuoso> Or gist at github, or whatever
08:12:49 <Phaseditto> yeah
08:13:01 <dminuoso> I dont quite like what Im seeing though.
08:13:03 <dminuoso> Can you run cabal with -v2
08:13:12 <dminuoso> This will produce a ton of output, so be sure to use a paste website
08:13:19 <Phaseditto> sure will do
08:13:47 <dminuoso> Before we go further, are you on a musl system?
08:13:58 <Phaseditto> nope
08:14:11 <Phaseditto> https://paste.tomsmeding.com/cabgeQRU
08:14:23 <dminuoso> Ah!
08:14:26 <dminuoso> You need to install `gmp`
08:14:40 <dminuoso> So I would consider this a ghcup bug, it should have told you so.
08:14:47 <Phaseditto> devel?
08:14:49 <dminuoso> But its hard to have diagnostics for every linux distribution out there
08:14:58 <dminuoso> No, just plain should be sufficient
08:15:04 <dminuoso> I think?>
08:15:08 <Phaseditto> got gmp-6.2.1_1 installed
08:15:53 <dminuoso> Try installing the -devel package?
08:15:59 <Phaseditto> sure
08:16:42 <dminuoso> Ah yes, you need the development package.
08:16:54 <Phaseditto> yeah it's building atm
08:17:30 <Phaseditto> also i replaced the filler with my old xmonad.hs
08:17:34 <Phaseditto> just to see how that pans out
08:17:36 <dminuoso> Yeah that's perfecftly fine.
08:18:09 <Phaseditto> This whole undertaking is also a precursor to getting waymonad running once it's mature enough
08:18:30 <dminuoso> The waymonad that bas been dead for 3 years?
08:18:37 <Phaseditto> the more you knowl...
08:18:39 <dminuoso> 4 even.
08:19:00 <Phaseditto> I just can't with sway for the life of it. The way it handles multi monitor is just ... n
08:19:00 <dminuoso> It was really just a single person, and I suppose they didnt have the energy
08:19:01 <Phaseditto> o
08:19:50 <Phaseditto> yeah not even judging, it's just a shame. wlroots might have made this a whole lot easier
08:20:08 <dminuoso> Honestly I think one of the biggest problems with wayland is that its all adhoc and not specified.
08:20:23 <dminuoso> That makes writing software for it way more difficult.
08:20:49 <dminuoso> While X has some severe deficiencies, clearly defined semantics and an extremely stable API are not amongst them.
08:20:53 <Phaseditto> Yeah the fact that you need to reinvent the wheel for every new project is crippling
08:21:51 <dminuoso> But truth be told, xmonad is what keeps me tied to X11.
08:22:20 <Phaseditto> same
08:22:26 <Phaseditto> i mean, WMs in general
08:22:39 <Phaseditto> DWM is the only one i could bastardize to behave like xmonad
08:25:08 <dminuoso> There's also i3 which you can customize quite arbitrarily as well
08:25:11 <dminuoso> If you can stand the pain of C.
08:25:41 <Phaseditto> The problem is that sway behaves like i3, and i haven't seen anyone being able to make the workspaces on multi monitors or at all behave like xmonad
08:26:13 <dminuoso> It took me a while to get used to the default behavior of xmonad on multi mopnitor
08:26:36 <dminuoso> But once I did, I began to embrace it - there's just so many right things with the way StackSet is used.
08:27:23 <Phaseditto> I prefer to have one set of workspaces accessible to every monitor. I have a set of workspaces, designated to functionality, 1 for instance is Production. When i want to access audacity and i know i have it open, i access 1, does not matter which monitor, it just works
08:27:42 <dminuoso> you can do that with xmonad too, and I used to use as well
08:28:10 <dminuoso> Mostly the pinning can also be solved by just a small bit of discipline
08:28:18 <dminuoso> My browser is always on 2, chat windows on 4
08:28:22 <dminuoso> development stuff is on 1
08:28:26 <Phaseditto> no this is the specific reason why i use xmonad to begin with :D
08:28:38 <dminuoso> well by "it with xmonad" I meant the deafult.
08:29:01 <Phaseditto> maybe i modified its behavior, don't remember
08:29:30 <Phaseditto> Though it's weird that this is not the default behavior or at least a setting on most WMs
08:29:38 <Phaseditto> in any case: https://paste.tomsmeding.com/Bqfms9oo
08:29:39 <Phaseditto> Did this ... work?
08:33:35 <dminuoso> Yes.
08:33:45 <Phaseditto> amazing
08:33:46 <dminuoso> What you saw is just a warning (as you can see in line 11 right next to the file + line)
08:33:57 <dminuoso> Where it says `warning:`
08:34:06 <Phaseditto> Yeah i would've guessed, i just expected more... resistance?
08:34:27 <dminuoso> Glad to have surprised you. :)
08:34:39 <dminuoso> A bit sad that it was that much of a hurdle, though
08:34:54 <dminuoso> Feel free to file a bug report on ghcup to not tell the user about `gmp-devel` on void
08:35:08 <Phaseditto> when i get around, sure :D
08:35:09 <Phaseditto> So all i need is to make a corresponding .desktop file and link / paste the binary?
08:35:17 <dminuoso> Nope
08:35:33 <dminuoso> So the build script already symlinks the artifact to the directory itself, that should be sufficient
08:35:46 <dminuoso> Just run `exec /path/to/your/xmonad//directory/xmonad` as your window manager now.
08:35:56 <dminuoso> Ah without the double slash of course.
08:36:01 <Phaseditto> does the rebuild go back to the build script in its own?
08:36:42 <dminuoso> Yes, so the way xmonad works is, it looks in your ~/.config/xmonad/ for whether an executable called `build` exists.
08:36:49 <dminuoso> And if it does, that is what it will use.
08:37:04 <Phaseditto> it's not currently located there, should i move it there?
08:37:09 <dminuoso> The directory, yes.
08:37:13 <dminuoso> Alternatively ~/.xmonad works too
08:37:38 <Phaseditto> so the whole build script and all in one of those corresponding directories and the rest is up to cabal?
08:38:30 <Phaseditto>  In that case i will take a small break and try that in a bit
08:38:42 <dminuoso> I do not understand the question
08:39:04 <dminuoso> Basically there's just two bits you need:
08:40:13 <dminuoso> Ah the build script is incomplete by the way.
08:40:31 <dminuoso> Adapt it, so it symlinks to $1
08:40:43 <dminuoso> First, ~/.xmonad/build or ~/.config/xmonad/build need to exist (for custom build scripts)
08:40:54 <Phaseditto> got it
08:41:11 <dminuoso> If a file there is found, it will be used to rebuild. The script will be passed the name of the resulting artifact, so `build` must place it at that path.
08:41:28 <dminuoso> (Whether or not that directory contains anything else, is almost entirely irrelevant)
08:41:30 <dminuoso> Second:
08:41:50 <dminuoso> You might want the build script to keep an *additional* symlink at a known path
08:42:07 <Phaseditto> hm okay
08:42:19 <dminuoso> Such that your X start script can `exec` directly into the existing binary, rather than relying on xmonad -- because that would try and `build` first (causing a delay)
08:42:39 <dminuoso> (In a custom build script, xmonad does not do any caching at the moment)
08:42:41 <Phaseditto> okay
08:43:30 <Phaseditto> i presume when i got the build script in ~/.xmonad/ or ~/.config/xmonad/ i need the corresponsing files around there aswell, such as the cabal file and xmonad.hs
08:43:43 <dminuoso> That doesnt really matter
08:43:49 <dminuoso> as long as the build script itself executes.
08:44:01 <dminuoso> so you can shuffle things around, but then adapt the build script to locate the proper directory
08:44:08 <Phaseditto> ah yeah
08:44:11 <Phaseditto> that was what i meant
08:44:15 <dminuoso> As soon as xmonad detects the build script, it really doesnt care about anything. it just calls that script
08:44:43 <dminuoso> Its then the scripts responsibility to produce an xmonad executable at the given argument
08:53:20 <Phaseditto> I will set everything up and test it out, that would be so cool if it would work
08:59:48 wonko joins (~wjc@2a0e:1c80:2:0:45:15:19:130)
09:05:55 andrejsh[m] joins (~andrejshm@2001:470:69fc:105::2:a171)
09:06:33 <Phaseditto> should i compile xmobar myself aswell or just take the xmobar-0.42_1 from xbps?
09:23:07 <dminuoso> Up to you, really.
09:23:15 <dminuoso> I would just use `cabal install` for this.
09:36:08 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Quit: Client closed)
09:37:31 × ft quits (~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving)
09:42:57 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
09:51:31 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Quit: Client closed)
09:54:11 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
09:55:19 <Phaseditto> almost done with it, though when i try to start it it immediately closes and the error log is non conclusive:
09:55:20 <Phaseditto> $ /home/user/.xmonad/build /home/user/.xmonad/xmonad-x86_64-linux
09:59:50 <geekosaur> if you're using cabal, drop 'exec 1>&2' near the top of the buildscript so cabal sends the error messages to the right place (sigh)
10:00:00 <geekosaur> or run "xmonad --recompile" in a terminal
10:01:34 <Phaseditto> it recompiles successfully
10:02:47 <geekosaur> also you usually can't start xmonad directly because another window manager will already be running so it'll get an error about "access to private resource denied"
10:03:25 <geekosaur> that or you are trying to run it from a text terminal and it'll fail to connect to an X server; it does not start the server itself
10:03:52 <geekosaur> if you're at a virtual console, try: startx /path/to/xmonad
10:04:23 <geekosaur> (you must specify the full path or it'll use the default window manager and pass "xmonad" as a parameter to it. startx is weird)
10:05:45 <Phaseditto> my tests were done through configuration in lightdm
10:05:58 <Phaseditto> just throws me back to the greeter
10:07:48 <geekosaur> 😞
10:09:52 <geekosaur> is there anything in .xsession-errors?
10:12:24 <Phaseditto> lemme check
10:13:54 <Phaseditto> oh...
10:14:13 <Phaseditto> "Couldn't exec xmonad: No such file or directory"
10:14:39 <geekosaur> x11 via a greeter won't have the path your terminal does
10:14:55 <Phaseditto> i made a .desktop file for it
10:15:11 <Phaseditto> thought that would solve the problem
10:15:46 <Phaseditto> should probably enter the whole path in the exec section of said file
10:15:59 <geekosaur> you would still need a full pathname, or use a wrapper script that sets $PATH (I used a wrapper script that did "source ~/.profile" until I arranged for X11 to do so itself)
10:16:28 <Phaseditto> so either i have the corresponding binary in /usr/bin or i put the whole path
10:16:37 <geekosaur> yes
10:16:45 <Phaseditto> alright, will try that in a bit
10:19:15 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Quit: Client closed)
10:26:36 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
10:26:44 <Phaseditto> Ladies and Gentlemen, it works
10:26:57 <Phaseditto> currently on xmonad on void
10:27:18 <Phaseditto> With my own config, xmobar and everything
10:27:32 <dminuoso> Very nice :)
10:27:40 <dminuoso> And with a custom v2-build ontop.
10:28:29 <Phaseditto> Entirely separate from xbps but that's not a problem for me, might even prove as a somewhat portable setup
10:28:53 <dminuoso> Yes, this is definitely more portable.
10:29:12 <dminuoso> Outside of native dependencies, all haskell dependencies can be constrained or even pinned
10:29:21 <dminuoso> (via tight bounds or lock file)
10:29:34 <Phaseditto> Again, thank you and geekosaur for the help
10:29:42 <dminuoso> You're welcome.
10:30:46 <Phaseditto> When i am less sick and got more time i might write a little documentation for the Void crowd how to get xmonad running there. It initially kept me from switching to the distro since i had to opt for DWM to have a somewhat similar experience
10:32:58 <dminuoso> Feel free to supply that documentation to our wiki at https://wiki.haskell.org/Xmonad
10:33:38 <Phaseditto> When i get around to it, i will set a reminder for myself
10:33:48 <Phaseditto> When i get around to it, until then i will set a reminder for myself
10:34:06 <Phaseditto> Whoops, new-era messenger habit
10:49:47 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Quit: Client closed)
10:55:10 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
10:58:53 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
11:11:51 × Ehllie quits (~Thunderbi@217-67-208-66.itsa.net.pl) (Ping timeout: 252 seconds)
11:14:35 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Quit: Client closed)
11:15:27 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
11:19:48 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Client Quit)
11:36:29 <Solid> (please add it to the website instead of a desolate wiki)
11:45:26 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
11:48:39 <geekosaur> they already left
11:49:11 <Solid> oh
12:05:32 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 268 seconds)
12:12:46 Ehllie joins (~Thunderbi@217-67-208-66.itsa.net.pl)
12:28:33 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 250 seconds)
12:43:20 Phaseditto joins (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de)
12:43:57 <Phaseditto> Solid i was merely gone and i read through the logs. will do when i get around to do that
12:44:27 <Phaseditto> Haven't installed an IRC client yet so this is just a guest session over my browser
12:53:30 <geekosaur> you may be interested in matrix
12:54:25 <geekosaur> see https://element.io (element is the most popular, but not the only, matrix client)
12:55:20 <geekosaur> https://matrix.org has a list of other clients
12:55:25 <Phaseditto> I have my own matrix / elment server but it's unfederated and i muslti sessions are not a thing yet
12:55:37 <geekosaur> ah
12:56:06 × Phaseditto quits (~Phaseditt@p200300f03f0a9400773b3c68de96c9f8.dip0.t-ipconnect.de) (Quit: Client closed)
13:05:57 Phaseditto joins (~r5on11c@p5ddf8ff3.dip0.t-ipconnect.de)
13:06:29 <Phaseditto> Test, is this working?
13:10:34 <geekosaur> yes
13:11:19 <Phaseditto> Good, i set up irssi real quick so i don't have to do this over the browser
13:11:56 geekosaur prefers hexchat
13:12:01 <geekosaur> but whatever floats your boat
13:12:19 <Phaseditto> i literally took the first thing the gentoo people answered in their Discord
13:13:08 <Phaseditto> also i am a Terminal rat, so i like CLIs (i know they are more cumbersome overall ^^')
13:13:43 <geekosaur> I hang out in a couple channels which use flags and such that don't render right in most terminals
13:14:05 <geekosaur> and emoticons (borderline) etc.
13:14:38 <geekosaur> mostly I use matrix from my phone because irc clients for android suck
13:15:04 <geekosaur> but doing chanop stuff sucks even more from matrix so I use a real irc client on the desktop
13:15:29 <geekosaur> (chanop here, #haskell* channels, ##soccer)
13:15:42 <Phaseditto> Yeah i haven't used IRC in years but slowly i prefer it more over the alternatives again
13:20:47 <Phaseditto> I have this odd behavior that, when i recompile xmonad and restart it i don't see any changes. The restart is happening, i can see the very short flicker but i only get the changes when i log out and in again
13:27:13 <geekosaur> are you changing your layout hook?
13:27:29 <Phaseditto> the build file is in ~/.xmonad/ . The only difference is that the xmonad folder is symlinked but that should not pose a problem, no?
13:27:41 <geekosaur> it doesn't
13:28:03 <geekosaur> if you change only your layout hook and the type doesn't change, it will be ignored until you mod-shift-space
13:28:32 <Phaseditto> This time for instance i changed myFocusBorderColor to a different value
13:28:35 <geekosaur> because it doesn't detect the change at runtime and there are things like changing the number of master windows that you might want to keep across restarts
13:28:43 <geekosaur> oh, that should have worked
13:28:47 <Phaseditto> thought so
13:30:22 <Phaseditto> makes adjusting the look quite the hassle
13:31:53 <geekosaur> hm. I use a build script and I can chang stuff at runtime fine without having to log out/in
13:32:47 <Phaseditto> maybe i am missing something in my build script?
13:33:10 <geekosaur> probably not or logging out and in wouldn't do it either
13:33:36 <Phaseditto> makes sense but then i have no idea what's wrong
13:36:06 <geekosaur> neither do I 😞 if the one works then the other should as well
13:36:16 <Phaseditto> the rest is state handling
13:36:35 <Phaseditto> i could remove the xmonad.state but that would probably just make it crash
13:37:29 <geekosaur> they're actually the same code path, mod-q recompiles if necedssary and then re-exsecs xmonad. the only difference is the new one is passed a parameter pointing to a state file preserving the layout and ExtensibleState, neither of which is involved with border color
13:40:38 <Phaseditto> The thing is that literally no changes go through. Key bindings aswell
13:40:52 <Phaseditto> until i log
13:41:13 <geekosaur> yes, that sounds like it's running the old version of your compiled config
13:41:27 <geekosaur> can you pastebin your build script?
13:41:30 <geekosaur> @where paste
13:41:30 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
13:41:54 <Phaseditto> https://paste.tomsmeding.com/Mgcmm9bC
13:42:16 <Phaseditto> literally as simple as can be
13:44:20 <geekosaur> hm. actually I wonder if that works. you might check the session file for errors
13:44:48 <Phaseditto> aite
13:44:56 <geekosaur> it occurs to me that the file that's being written is the one that';s running and something might be throwing ETXTBSY as a result
13:45:46 <Phaseditto> thanks for the hint i will check it out in a bit
13:45:53 <geekosaur> I have mine copy instead of linking out of cabal's build area, and move the old one to a backup, so that can't happen
13:46:16 <Phaseditto> ah yeah i might try that in a bit
13:46:23 <Phaseditto> currently in a sudden VC
13:58:57 <geekosaur> (if you're wondering how this would work on login, that recompile (forced because it can't know when to rebuild when you have a build script) is done by the main xmonad binary instead of by your compiled config like mod-q restarts)
14:03:12 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
14:04:02 cfricke joins (~cfricke@user/cfricke)
14:13:39 × amenonsen quits (~amenonsen@pitta.toroid.org) (Remote host closed the connection)
14:14:01 amenonsen joins (~amenonsen@pitta.toroid.org)
14:20:08 [Leary] joins (~Leary]@user/Leary/x-0910699)
14:34:55 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
14:56:41 × Ehllie quits (~Thunderbi@217-67-208-66.itsa.net.pl) (Ping timeout: 260 seconds)
15:19:05 telser joins (~quassel@user/telser)
15:19:05 × telser quits (~quassel@user/telser) (Client Quit)
15:23:22 <Phaseditto> geekosaur can you paste your build script maybe?
15:25:10 <geekosaur> I'm just using the example cabal build script. https://github.com/geekosaur/xmonad.hs/blob/skkukuk/build
15:26:14 <xmonadtrack> xmonad-contrib Tony Zorman * v0.17.1-33-g4d7ae81f: X.U.Parser: Feature parity with ReadP (2 weeks ago, 2 files, 103+ 2-) https://github.com/xmonad/xmonad-contrib/commit/4d7ae81f7ad7
15:26:14 <xmonadtrack> xmonad-contrib Tony Zorman * v0.17.1-34-g0bef428f: X.U.Parser: Inline definitions (13 days ago, 1 file, 36+ 4-) https://github.com/xmonad/xmonad-contrib/commit/0bef428f8fe5
15:26:17 <Phaseditto> hold on, this script uses cabal install instead of cabal build, does that make any difference?
15:26:20 <xmonadtrack> xmonad-contrib Tony Zorman * v0.17.1-35-g2b1a15c9: X.P.OrgMode: Remove pLast (2 weeks ago, 1 file, 2+ 7-) https://github.com/xmonad/xmonad-contrib/commit/2b1a15c9e57d
15:26:27 <xmonadtrack> xmonad-contrib Tony Zorman {GitHub} * v0.17.1-41-g05c4c776: Merge pull request #759 from slotThe/parser/feature-parity (2 minutes ago, 0 files, 0+ 0-) https://github.com/xmonad/xmonad-contrib/commit/05c4c776af3a
15:27:27 <geekosaur> you're using list-bin to grab the built config, the build script uses install to lift it out of dist-newstyle
15:27:40 <geekosaur> mostly this is left over from cabal v1, at some point I may rewrite it
15:31:03 <geekosaur> either way you would need to mv (not cp) the running config to a backup name before installing (however you do it) the new one
15:31:34 <Phaseditto> why is that
15:31:44 <geekosaur> but this is probably harder if you ln to the build artifact in dist_newstyle because you'd need to find and move it before running cabal
15:31:55 <geekosaur> [17 13:44:56] <geekosaur> it occurs to me that the file that's being written is the one that';s running and something might be throwing ETXTBSY as a result
15:32:28 <geekosaur> basically you can't overwrite a file that is currently running because the OS expects to be able to load pages from it on the fly
15:32:35 <Phaseditto> ooooh yeah
15:32:38 <Phaseditto> that makes sense
15:32:53 <Phaseditto> hm
15:34:38 <geekosaur> I'd say instead of ln -sf you cp, and before doing that mv the existing one out of the way
15:34:54 <Phaseditto> i could give that a try, gimme a sec
15:35:34 <Phaseditto> Hold on, remove the symlink or the actual file?
15:36:07 <geekosaur> it won;t be a symlink any more, it would be a copy
15:36:13 <Phaseditto> right
15:36:22 <geekosaur> otherwise you're just pushing the problem down into dist_newstyle
15:36:31 <geekosaur> and it'll be harder to do the backup step
15:37:33 <Phaseditto> so instead of "ln -sf "$bin" "$1" i do rm "$1" and cp "$bin" "$1"
15:38:14 <geekosaur> well, I'd do `mv "$1" "$1.bak"` but I think if you `rm` it it gets copied to swap
15:38:21 <geekosaur> so it can keep paging from it
15:38:50 <Phaseditto> i will try the rm version, see how that goes
15:39:28 <geekosaur> (the OS can't know you're immediately going to exec the new file)
15:39:56 <geekosaur> hm, actually neither can you, --recompile is separate from --restart)
15:40:05 <Phaseditto> yup
15:40:15 <Phaseditto> also it did't change
15:40:26 <Phaseditto> i can try to mv but i think that also makes no difference
15:43:42 <geekosaur> first one wouldn't work because it'd be moving the symlink which will do nothing useful
15:43:52 <geekosaur> I mean,m the first restart after the change
15:44:08 <Phaseditto> i tried the mv after i switched to cping
15:44:12 <Phaseditto> didn't work either
15:44:37 <geekosaur> hm. pastebin your current build script?
15:44:41 <Phaseditto> sure, sec
15:45:00 <Phaseditto> https://paste.tomsmeding.com/Juzs0JRr
15:45:32 <geekosaur> that should work 😞
15:45:38 <[Leary]> Phaseditto: If you're using `launch` in your xmonad.hs, you might need to switch it for `xmonad`. If not, rather than the build script, I want to know what your logs show.
15:45:49 <Phaseditto> lemme check
15:46:22 <Phaseditto> nope, no launch
15:48:12 <Phaseditto> XMonad is recompiling and replacing itself with another XMonad process because the current process is called "xmonad" but the compiled configuration should be called "xmonad-x86_64-linux"
15:48:16 <Phaseditto> lul
15:49:24 <geekosaur> yes, that's an unfortunate message that happens because the first compile is done by xmonad instead of your config, as I described earlier
15:49:49 <Phaseditto> well it says that twice
15:50:05 <Phaseditto> should i just copy it as "xmonad"?
15:50:12 <geekosaur> no
15:50:40 <Phaseditto> can i tell restart to use a specific file?
15:51:18 <geekosaur> if you replace th keybinding, yes
15:53:39 <geekosaur> https://hackage.haskell.org/package/xmonad-0.17.1/docs/XMonad-Operations.html#v:restart
15:55:30 <Phaseditto> does it matter where i define the restart behavior in the HS file?
15:56:36 <geekosaur> this would be a keybinding
15:56:52 <Phaseditto> ah okay
16:01:10 <Phaseditto> something like this:
16:01:12 <Phaseditto> , ("M-q", restart "/home/r5on11c/.xmonad/xmonad-x86_64-linux" True) -- Restart xmonad
16:01:59 <geekosaur> that will restart but not recompile
16:02:35 <Phaseditto> yeah i know, i haven't done concatenated commands within a single keybind yet
16:03:46 <geekosaur> use >> to chain commands
16:03:58 <Phaseditto> gotcha
16:04:39 <geekosaur> that said, `recompile` is something of a pain to use directly and you can't spawn `xmonad --recompile` because it will run in the background (and you want it to, you don't want xmonad to block while compiling)
16:05:18 <Phaseditto> that's a shame..
16:06:05 <Phaseditto> i will restart xmonad manually with logging out and in so i at least have that at my disposal
16:06:18 × Phaseditto quits (~r5on11c@p5ddf8ff3.dip0.t-ipconnect.de) (Quit: Lost terminal)
16:09:06 Phaseditto joins (~r5on11c@p5ddf8ff3.dip0.t-ipconnect.de)
16:09:22 <Phaseditto> there we go
16:10:56 <Phaseditto> the restart works accordingly, that makes things easier
16:14:07 <Phaseditto> i set it back to symlinking and it still seems to work
16:14:30 <Phaseditto> don't know which method is preferrable
16:57:28 <dminuoso> geekosaur: How does xmonad know that compilation is done?
16:58:28 <geekosaur> it doesn't. these days the restart sequence is `spawn "xmonad --recompile; xmonad --restart"` and the restart message comes in when it's done
16:58:43 <dminuoso> So the manager is blocked while recompilation is going on?
16:58:47 <geekosaur> no
16:58:54 <dminuoso> Oh `spawn` sorry!
16:58:59 <geekosaur> the whole thing is backgrounded
16:59:32 <dminuoso> Ohh I see, so its actually the spawned thread that will, outside, call xmonad again, triggering the replacement
16:59:39 <geekosaur> but the shell sequence isn't so *it* (but not xmonad) knows when compilation is done, and sends XMONAD_RESTART
16:59:41 <dminuoso> or *process rather
17:00:30 <geekosaur> (client message sent to the root window; xmonad listens for that and does the actual restart)
17:00:57 <dminuoso> Okay, and `spawn` just double forks.
17:01:01 <geekosaur> yes
17:03:51 <dminuoso> So it seems to me, that one can also just bind a key to `spawn "/path/to/build; xmonad --restart"` too,
17:04:15 <geekosaur> right, but it's te restart part that Phaseditto was trying to replace, not the compile part
17:04:17 <dminuoso> Adapt the build script to forward stderr to the xmonad.errors directory
17:04:25 <dminuoso> Fair
17:05:10 <geekosaur> also build wants a parameter which is the binary to create
17:07:10 <dminuoso> Yeah, figured that one out already :)
17:07:18 <dminuoso> The interface is somewhat quirky
17:07:37 <dminuoso> I mean the entire restart/startup/rebuild interface
17:07:47 <dminuoso> Cant quite put my thumb on it, but it doesnt feel right
17:07:51 <geekosaur> there's also fun stuff like cabal redirecting errors to stdout
17:08:13 <geekosaur> it's not so much designed as grown from a much simpler setup
17:08:41 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7)
17:09:02 <dminuoso> If only I was interested in hacking on my xmonad config again, I might be motivated to invest some work
17:09:17 <dminuoso> But as the old saying goes: never change a running xmonad config.
17:39:13 <Phaseditto> Currently spending my time making my xmobar resemble my DWM setup
17:40:34 <Phaseditto> i can't pass the restart parameters when call the restart in the terminal, can i?
17:40:58 <Phaseditto> If i could i could just make a recompile & restart script that handles the timing
17:41:24 <geekosaur> calling `xmonad --restart` sends the restart parameters automatically
17:41:37 <geekosaur> [17 16:58:28] <geekosaur> it doesn't. these days the restart sequence is `spawn "xmonad --recompile; xmonad --restart"` and the restart message comes in when it's done
17:42:23 <geekosaur> (`xmonad --restart` just sends an `XMONAD_RESTART` message to the root window; xmonad handles that in its builtin event handler and does `restart (its own path) True`
17:44:48 <Phaseditto> though i would need to set the restart path in the xmonad.hs then yes?
17:45:03 <Phaseditto> since i have only done so for the keybinding, but not globally for xmonad itself
17:46:20 <geekosaur> you could conceivably duplicate the `handle` code in your `handleEventHook` with your own path
17:46:39 <Phaseditto> i mean elsewise it would do default behavior and i would end up with the same problem
17:47:20 <geekosaur> https://github.com/xmonad/xmonad/blob/master/src/XMonad/Main.hs#L415-L419
17:48:00 <geekosaur> if you handle it in `handleEventHook` it'll override the built-in behavior
17:49:19 <Phaseditto> gonna check that
17:49:50 <Phaseditto> that configuration right there only tackles the restart event right?
17:50:14 <geekosaur> yes
17:50:36 <geekosaur> if you look around it you'll notice that it's just one out of a bunch of equations for `handle`
17:51:29 <Phaseditto> yeah, which was what i suspected but my haskell syntax understanding is pretty rudamentary
17:51:55 <Phaseditto> let me give that a spin
17:52:42 <geekosaur> you can't quite use it as is, handleEventHook has different semantics from the built-in handler
17:55:40 <geekosaur> https://paste.tomsmeding.com/T9NZv9yx
17:56:20 <Phaseditto> was about to say, it don't work :D
17:56:29 <geekosaur> technically "wrong" as the restart leg should return (All False) to indicate it's been handled… but if it's been handled then that should never be reached 🙂
17:57:15 <Phaseditto> is the inclusion of handle _ = return (All True) intentional?
17:57:19 <geekosaur> yes
17:57:50 <geekosaur> you aren't handling all possible events, you're taking one event type and handling it, and passing everything else on to the default handler
17:58:18 <Phaseditto> roger
17:58:37 <geekosaur> so the first one matches the ClientMessageEvent and the second one matches everything else and says "we didn't handle this, do the default handler"
17:59:12 <Phaseditto> i suppose the when was suppposed to be a then
17:59:18 <geekosaur> no
17:59:26 <geekosaur> @i8ndex when
17:59:26 <lambdabot> Control.Monad
17:59:39 <Phaseditto> oh misread
17:59:48 <Phaseditto> though it does not compile
17:59:53 <geekosaur> when <condition> <monadic action>
17:59:58 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:00:08 <geekosaur> and it performs a default (`return ()`) if the condition is false
18:00:47 <geekosaur> so it's shorter than `if <condition> then <action> else return ()` which is what you'd have to write otherwise
18:01:15 <geekosaur> (you do not want the `sendMessage` the builtin handler does, you want to pass it on to the default handler)
18:01:17 <Phaseditto> https://paste.tomsmeding.com/mw0sUdTe
18:01:55 <geekosaur> did you see the `@index` I did? you need to import Control.Monad to have `when`
18:02:16 <geekosaur> (`whenX` does something a bit different and wrong here)
18:02:17 <Phaseditto> oh sorry, not entirely there. Still sick, excuse my lack of attentiveness ^^'
18:03:25 <Phaseditto> compiling succeeded
18:04:33 <Phaseditto> still does not work
18:04:56 <Phaseditto> Not a biggie, i might check on later why that is
18:05:15 <geekosaur> hm
18:37:17 <Phaseditto> different topic, does anyone here use pipewire, and if yes, do you start it via the startup hook of xmonad?
18:41:07 <Phaseditto> or in a different manner?
18:41:36 <geekosaur> I run under MATE so that kind of thing is started by its session manager
18:47:01 <Phaseditto> usually i just call pipewire via a corresponding script. I tried to call it in the startingHook via spawnOnce but that did not work
18:48:12 <geekosaur> typically you need to invoke it in such a way that things can get at the environment variables it sents
18:48:15 <geekosaur> *sets
18:48:59 <geekosaur> which usually means either a startup script that starts a session, or one which returns envar settings and whose output needs to be `eval`ed in a shell
18:50:28 <geekosaur> hm, first link I get for pipewire startup assumes systemd is used to plumb stuff together…
18:50:38 ft joins (~ft@p3e9bc57b.dip0.t-ipconnect.de)
18:52:27 <geekosaur> right, all the instructions I'm seeing assume it's a systemd user session. you will not be able to start it from xmonad if that's the case
18:52:35 <geekosaur> you must configure systemd
18:52:44 <Phaseditto> Void runs on runit
18:52:55 <Phaseditto> in the documentation it just tells you to run it in the user-session
18:53:14 <Phaseditto> Merely a matter of where do i sensibly start it from
18:54:26 <Phaseditto> for instance dwm has a patch that executes a given script in a designated destionation once every startup / reboot, easy as pie. Just don't know where i would do such a thing in xmonad
18:54:39 <geekosaur> https://forum.artixlinux.org/index.php/topic,2368.0.html
18:55:19 <geekosaur> looks like spawns in the startupHook are expected to work
18:55:42 <geekosaur> I have no idea how clients are supposed to find and rendezvous with the server in that case
18:56:37 <Phaseditto> i mean i could also just use the dwm script from the startupHook
18:56:54 <Phaseditto> it's just about the processes being started, that's it
20:29:21 × wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 268 seconds)
20:30:07 chomwitt joins (~chomwitt@2a02:587:dc1e:5e00:e9e7:bb14:f272:9a4b)
20:30:24 Ehllie joins (~Thunderbi@79.184.245.117.ipv4.supernova.orange.pl)
20:46:59 × Ehllie quits (~Thunderbi@79.184.245.117.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds)
21:01:16 darkstardevx joins (~darkstard@50.126.124.156)
21:03:09 × darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection)
21:03:33 darkstardevx joins (~darkstard@50.126.124.156)
21:10:34 × darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection)
21:10:57 darkstardevx joins (~darkstard@50.126.124.156)
21:15:08 wonko joins (~wjc@2a0e:1c80:2:0:45:15:19:130)
21:31:42 abiss27 joins (~abiss27@190.213.236.106)
21:35:10 × chomwitt quits (~chomwitt@2a02:587:dc1e:5e00:e9e7:bb14:f272:9a4b) (Remote host closed the connection)
21:36:10 × Phaseditto quits (~r5on11c@p5ddf8ff3.dip0.t-ipconnect.de) (Quit: Lost terminal)
21:38:57 stackdroid18 joins (14094@user/stackdroid)
21:56:41 × abiss27 quits (~abiss27@190.213.236.106) (Ping timeout: 260 seconds)
22:37:31 × wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds)
22:59:28 wonko joins (~wjc@2a0e:1c80:2:0:45:15:19:130)
23:25:21 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 260 seconds)
23:29:05 banc joins (banc@gateway/vpn/airvpn/banc)

All times are in UTC on 2022-10-17.