Logs on 2024-08-15 (liberachat/#xmonad)
| 00:18:46 | <Leary> | user42: I think maintaining on-top status means we can't /truly/ ignore it. You'd likely need to write an extension that doesn't actually ignore the window, but just skips focus over it. The best way to do that would be post-<https://github.com/xmonad/xmonad/pull/433>, but I guess you could still do it now. |
| 00:20:26 | <Leary> | That said, you might just want to make it a strut? If it's small, you can put it on the edge of the screen and reserve that space for it. |
| 00:23:11 | <geekosaur> | I think a handleEventHook could do it but you would need to stash the window ID in XS and possibly select for structureNotifyMask |
| 00:24:55 | <geekosaur> | hm, no, structureNotifyMask is the wrong one and I don't think there's a right one for z-position. you'd have to unconditionally raiseWindow |
| 00:31:38 | <Leary> | Oh, yeah, just ignore me. XS + raiseWindow in (current) logHook sounds like it would suffice. I actually think 433 would break that. |
| 00:46:00 | <geekosaur> | I was suggesting handleEventHook, because if it's not managed (and therefore doesn't take focus) then logHook won't fire |
| 00:46:11 | <geekosaur> | with or without 433 |
| 00:51:22 | <user42> | geekosaur: Thank you for your replay. So I should keep the `doIgnore` and then do a `raiseWindow` in an handleEventHook, is that correct? |
| 00:51:52 | <user42> | On which events would I need to do the raiseWindow? |
| 00:54:20 | <user42> | I haven't looked at it yet, but from what I understand from your reply I would also need to save the window ID in some custom state, presumably because I will not have access to it in the `handleEventHook`. |
| 00:54:52 | <user42> | At which point would I need to save the window ID? In the `manageHook` when I do the `doIgnore`? |
| 01:01:13 | <geekosaur> | all events, since the X server doesn't send any event related to z-order (indicating that the window would need to be raised) |
| 01:04:16 | <geekosaur> | it'd be the manageHook, yes. (className =? "Workrave" --> doIgnore <+> (ask >>= liftX (XS.put . KeepRaised) >> idHook)) or some such, given a type with a constructor KeepRaised (see https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Util-ExtensibleState.html) |
| 01:05:24 | <Leary> | logHook will fire after any window z-reordering; isn't that enough? |
| 01:05:43 | <geekosaur> | then the handleEventHook would extract ev_window from the event, compare it to the one in KeepRaised (which you receive with XS.get), and withDisplay (\d -> raiseWindow d w) |
| 01:05:56 | <geekosaur> | only if it's managed |
| 01:06:26 | <Leary> | It doesn't need to be managed, so long as the window that would overlap it is. |
| 01:06:50 | <geekosaur> | right, that _may_ be enough |
| 01:07:29 | <geekosaur> | hm, right, you don't need to check ev_window either since we can't receive events for that window |
| 01:08:42 | <geekosaur> | just unconditionally https://paste.tomsmeding.com/U6qazUdJ, in handleEventHook or logHook |
| 01:22:20 | → | dysthesis joins (~dysthesis@user/dysthesis) |
| 01:23:42 | <user42> | geekosaur: Thanks a lot, I'll give this a try. |
| 02:22:19 | × | td_ quits (~td@i53870918.versanet.de) (Ping timeout: 260 seconds) |
| 02:23:49 | → | td_ joins (~td@i53870931.versanet.de) |
| 03:12:27 | × | user42 quits (~user42@49.228.56.230) (Quit: Client closed) |
| 03:21:05 | → | user42 joins (~user42@49.228.56.230) |
| 03:22:39 | × | user42 quits (~user42@49.228.56.230) (Client Quit) |
| 05:49:56 | × | dysthesis quits (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds) |
| 05:56:50 | → | dysthesis joins (~dysthesis@user/dysthesis) |
| 05:58:31 | → | julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752) |
| 06:01:28 | × | dysthesis quits (~dysthesis@user/dysthesis) (Remote host closed the connection) |
| 06:08:30 | → | user42 joins (~user42@49.228.56.230) |
| 06:46:52 | × | user42 quits (~user42@49.228.56.230) (Quit: Client closed) |
| 06:55:23 | × | ft quits (~ft@p4fc2aa15.dip0.t-ipconnect.de) (Quit: leaving) |
| 07:30:30 | × | julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
| 08:12:46 | → | Digitteknohippie joins (~user@user/digit) |
| 08:13:22 | × | Digit quits (~user@user/digit) (Ping timeout: 252 seconds) |
| 08:19:48 | Digitteknohippie | is now known as Digit |
| 08:41:42 | → | kalj joins (~kalj@h-158-174-207-174.NA.cust.bahnhof.se) |
| 10:08:30 | × | kalj quits (~kalj@h-158-174-207-174.NA.cust.bahnhof.se) (Quit: Client closed) |
| 10:58:34 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:05:35 | → | wlhn joins (~wlhn@dl6-5j8gfh1n484fp87pt-3.rev.dnainternet.fi) |
| 15:50:57 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
| 16:12:56 | → | cfricke joins (~cfricke@user/cfricke) |
| 16:17:07 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 17:10:37 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 17:15:14 | → | ChubaDuba joins (~ChubaDuba@176.212.42.92) |
| 18:08:38 | → | ft joins (~ft@p4fc2aa15.dip0.t-ipconnect.de) |
| 18:52:26 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
| 18:54:18 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 20:12:43 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 20:30:03 | alethkit | is now known as kitaleth |
| 20:57:53 | × | ChubaDuba quits (~ChubaDuba@176.212.42.92) (Read error: Connection reset by peer) |
| 21:22:16 | × | Solitary quits (~Solitary@user/solitary) (Read error: Connection reset by peer) |
| 21:24:58 | × | wlhn quits (~wlhn@dl6-5j8gfh1n484fp87pt-3.rev.dnainternet.fi) (Remote host closed the connection) |
| 21:25:15 | → | wlhn joins (~wlhn@dl6-5j8gfh1n484fp87pt-3.rev.dnainternet.fi) |
| 21:25:21 | → | Solitary joins (~Solitary@user/solitary) |
| 21:37:58 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 22:17:26 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
All times are in UTC on 2024-08-15.