Home liberachat/#xmonad: Logs Calendar

Logs on 2025-08-15 (liberachat/#xmonad)

00:12:19 × tv quits (~tv@user/tv) (Read error: Connection reset by peer)
00:16:10 tremon joins (~tremon@83.80.159.219)
01:01:57 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 260 seconds)
01:03:11 L29Ah joins (~L29Ah@wikipedia/L29Ah)
01:32:17 × ft quits (~ft@p508dba54.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
01:33:52 ft joins (~ft@p508db692.dip0.t-ipconnect.de)
02:11:04 × td_ quits (~td@i53870938.versanet.de) (Ping timeout: 260 seconds)
02:12:46 td_ joins (~td@i53870931.versanet.de)
02:21:55 × tremon quits (~tremon@83.80.159.219) (Remote host closed the connection)
02:28:13 weitcis joins (~quassel@syn-172-091-071-027.res.spectrum.com)
02:28:51 × gauge quits (~gauge@user/gauge) (Read error: Connection reset by peer)
02:32:34 gauge joins (~gauge@user/gauge)
03:02:43 dpn joins (~dpn@121-44-66-107.tpgi.com.au)
03:04:56 <dpn> moin - for the life of me I can't figure out why my manageHook is not working with xfce4-notifyd notifications https://gist.github.com/dpnova/b03c7dbb536ddaf731d7bd6d141fdca3
03:06:02 <geekosaur> classNames are usually uppercase initial. you could also try XMonad.Hooks.ManageDebug to see what the manageHook actually sees
03:06:50 <dpn> ah - xprop had both listed... it doesn't work with either
03:07:00 <dpn> TIL about managedebug, thanks
03:07:27 <geekosaur> right, the property contains appName and className in that order
03:07:46 <dpn> i noticed I'm not explicitly starting notifyd myself in my xmonad session rc or my config... I dont think startup order would impact this though
03:07:57 <dpn> ahh... another TIL thanks!
03:08:26 <haskellbridge> <iqubic (she/her)> What does XMonad.Action.CopyWindow do? Surely you can't tell XOrg to draw the same window in multiple places on the screen.
03:09:02 <dpn> and now it's working... i swear it was capitalised when i started trying to figure this out earlier... either way, this explains weirdness with manageHook i've had in the past haha. Thanks heaps for the help!
03:09:25 <geekosaur> no, it'll only place it at the last place it's told to. but it makes a window "sticky" in the sense that it will be displayed on all workspaces
03:10:08 <geekosaur> or to specific workspaces (copyWindow copies to a specific workspace, copyToAll copies to all workspaces)
03:10:22 <haskellbridge> <iqubic (she/her)> That's neat!
03:12:43 <haskellbridge> <iqubic (she/her)> One thing I still need to do is figure out if it's possible to create a manageHook for Firefox's Picture-In-Picture popout. I want that to float and be in the lower corner and a few other things. I guess the way to handle that would be to xprop the window and check for a property that's different from the main firefox window's properties to isolate that window.
03:12:52 <haskellbridge> <iqubic (she/her)> I can do that on my own. I have the skills.
03:15:11 <geekosaur> or you could use debugManageHookOn and press the key sequence you selected before popping it out
03:15:23 <geekosaur> which is the main reason I wrote ManageDebug
03:15:26 <haskellbridge> <iqubic (she/her)> Oh, I didn't know about that.
03:15:40 <haskellbridge> <iqubic (she/her)> dpn: You are importing CopyWindows twice.
03:15:55 <haskellbridge> <iqubic (she/her)> I'm not sure that's a problem, but it is something with an easy fix.
03:17:40 <dpn> sorry using catgirl and didn't realise the brige messages were a portal - where's the other end?
03:17:50 <geekosaur> it's not a problem, and both hlint and I think ghc (with -Wall) will warn you
03:18:21 <haskellbridge> <iqubic (she/her)> I'm using matrix via Element's Web client.
03:18:54 <dpn> ahh cool - I really want to use matrix more... usually an up hill battle trying to convince other people to
03:19:04 <haskellbridge> <iqubic (she/her)> When I use things like debugManageNextWindow, where do the messages get put? Does XMonad have a log file?
03:19:05 <geekosaur> yes, haskellbridge bridges a number of Haskell IRC channels to matrix.org rooms
03:19:29 <geekosaur> if you /whois haskellbridge you'll get a list (well, a URL containing a list)
03:19:49 <dpn> i basically only use irc to come here now - might be more convenient to use matrix. cheers
03:21:03 <haskellbridge> <iqubic (she/her)> Looking at the code, I see you're just using "trace". But won't that write so stdout? How would I view those messages while xmonad is running?
03:22:52 <geekosaur> you look at wherever stderr (not stdout; it actually uses the RTS's debugBelch internally iirc) is going.
03:23:12 <haskellbridge> <iqubic (she/her)> Ah. I se.
03:23:33 <geekosaur> I've been thinking about how to capture output to a window without having to plumb I/O through the pure parts of a manageHook
03:29:08 <dpn> being able to summon a window for the log would be pretty amazing
03:30:03 <haskellbridge> <iqubic (she/her)> geekosaur: Isn't calling "trace" technically doing I/O?
03:30:31 <dpn> *grabs popcorn*
03:30:45 <haskellbridge> <iqubic (she/her)> Or is that a different because "trace" is "MonadIO" action and not an "X Monad" action?
03:31:58 <geekosaur> trace uses unsafePerformIO
03:32:16 <geekosaur> which is why it has to use debugBelch: you run into problems with locked Handles otherwise
03:32:49 <haskellbridge> <iqubic (she/her)> Oh.. So that's not actually "real" I/O. Got it. I see now why opening a window for debug output would be hard.
03:35:49 <haskellbridge> <iqubic (she/her)> I was viewing the source code on the Hackage site and the mouse hover info was showing me the signature for this "trace" https://hackage.haskell.org/package/xmonad-contrib-0.18.1/docs/XMonad-Config-Prime.html#v:trace
03:36:04 <haskellbridge> <iqubic (she/her)> I think that's not the same "trace" as DebugManage uses.
03:37:21 <geekosaur> that's a bug in how we have things set up. X.C.Prime is an ancient experiment that went nowhere
03:37:37 <geekosaur> but haddock insists on linking to everything it exports
03:38:16 <geekosaur> I think if you use (and can find) the live docs it's been fixed and will go live with the next release
03:38:25 <geekosaur> I can never remember where they live
03:38:37 <haskellbridge> <iqubic (she/her)> Is there a new release planned?
03:40:25 <geekosaur> not currently
03:41:48 <haskellbridge> <iqubic (she/her)> Not sure if this is the live docs, or just a different domain showing the same haddocks.
03:41:53 <haskellbridge> <iqubic (she/her)> But I found this: https://xmonad.github.io/xmonad-docs/xmonad-contrib/
03:42:50 <geekosaur> that should be it, maybe we do have a different trace in scope
03:43:28 <haskellbridge> <iqubic (she/her)> https://xmonad.github.io/xmonad-docs/xmonad-contrib/src/XMonad.Hooks.ManageDebug.html#debugManageHook
03:44:08 <haskellbridge> <iqubic (she/her)> Hovering my mouse over "trace" there shows me "MonadIO m => m ()" as the signature.
03:44:16 <geekosaur> yeh, I just saw that
03:44:52 <haskellbridge> <iqubic (she/her)> I'm going to assume this is some weirdness related to X.C.Prime and just not worry about this.
03:45:23 <geekosaur> hah. it's from XMonad.Core
03:46:07 <geekosaur> I guess that means I can get away with plumbing a Handle to an xmessage through there after all
03:46:36 <haskellbridge> <iqubic (she/her)> https://xmonad.github.io/xmonad-docs/xmonad/src/XMonad.Core.html#trace
03:47:17 <haskellbridge> <iqubic (she/her)> Wait... is that still running unsafePerformIO? I can't tell.
03:48:34 <geekosaur> "io" is short for liftIO
03:48:42 <geekosaur> which is why the type has a MonadIO constraint
03:51:04 <haskellbridge> <iqubic (she/her)> Anyways, what exists now works for me. You don't need to worry about spawning a new window for ManageDebug output unless you want to.
03:51:17 <geekosaur> I want to
03:52:07 <geekosaur> I've never been very happy about people having to figure out where their session output is (if it's there at all: some systems cap it via cgroups) to use it
03:53:29 <haskellbridge> <iqubic (she/her)> I know Haskell well enough to understand the XMonad code, but actually learning all the library functions and types involved to make this work will take me a long while. I've figured out where NixOS put its session output, so I can use this module as it currently is.
04:17:10 × haskellbridge quits (~hackager@syn-096-028-224-214.res.spectrum.com) (Remote host closed the connection)
04:17:53 haskellbridge joins (~hackager@syn-096-028-224-214.res.spectrum.com)
06:21:19 × ft quits (~ft@p508db692.dip0.t-ipconnect.de) (Quit: leaving)
08:39:27 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
10:29:36 L29Ah joins (~L29Ah@wikipedia/L29Ah)
11:31:26 ft joins (~ft@p508db692.dip0.t-ipconnect.de)
12:34:12 <liskin> Hm, the "live" docs probably use old ghc. I should fix that.
12:34:26 <liskin> Well there's so many things I should do
13:24:44 tv joins (~tv@user/tv)
16:04:39 × Digit quits (~user@user/digit) (Read error: Connection reset by peer)
16:05:43 Digit joins (~user@user/digit)
18:05:12 werneta joins (~werneta@syn-071-083-160-242.res.spectrum.com)
20:34:12 × haskellbridge quits (~hackager@syn-096-028-224-214.res.spectrum.com) (Remote host closed the connection)
20:36:31 haskellbridge joins (~hackager@syn-096-028-224-214.res.spectrum.com)
20:39:23 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
21:09:17 L29Ah joins (~L29Ah@wikipedia/L29Ah)

All times are in UTC on 2025-08-15.