Home liberachat/#xmonad: Logs Calendar

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

00:48:43 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
01:20:31 × catman quits (~catman@user/catman) (Quit: WeeChat 4.7.0)
02:03:13 × ft quits (~ft@p4fc2aa9f.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
02:04:57 ft joins (~ft@p3e9bc646.dip0.t-ipconnect.de)
02:12:40 × td_ quits (~td@i53870915.versanet.de) (Ping timeout: 255 seconds)
02:14:17 td_ joins (~td@i5387090d.versanet.de)
03:58:47 × ft quits (~ft@p3e9bc646.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
04:05:34 ft joins (~ft@p508dbd3a.dip0.t-ipconnect.de)
04:11:37 × ft quits (~ft@p508dbd3a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
04:13:24 ft joins (~ft@p508dbd4a.dip0.t-ipconnect.de)
04:18:37 × ft quits (~ft@p508dbd4a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
04:19:23 ft joins (~ft@p508dbdda.dip0.t-ipconnect.de)
05:46:16 × ft quits (~ft@p508dbdda.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
05:47:28 ft joins (~ft@p508dbaa3.dip0.t-ipconnect.de)
06:13:00 × gwentpl quits (~gwpl@user/gwentpl) (Ping timeout: 276 seconds)
06:25:56 × ft quits (~ft@p508dbaa3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
06:32:33 gwentpl joins (~gwpl@user/gwentpl)
06:32:50 ft joins (~ft@p508dbd8e.dip0.t-ipconnect.de)
06:46:25 × gwentpl quits (~gwpl@user/gwentpl) (Read error: Connection reset by peer)
06:46:33 spwl joins (~gwpl@user/gwentpl)
07:18:40 × spwl quits (~gwpl@user/gwentpl) (Ping timeout: 255 seconds)
07:18:50 gwentpl joins (~gwpl@user/gwentpl)
07:49:20 × ft quits (~ft@p508dbd8e.dip0.t-ipconnect.de) (Quit: leaving)
09:49:08 ChubaDuba joins (~ChubaDuba@109.195.235.119)
10:25:18 × ChubaDuba quits (~ChubaDuba@109.195.235.119) (Quit: WeeChat 4.6.3)
11:53:22 L29Ah joins (~L29Ah@wikipedia/L29Ah)
14:17:22 catman joins (~catman@user/catman)
15:34:45 ft joins (~ft@p508dbd8e.dip0.t-ipconnect.de)
16:10:49 samhh_ is now known as samhh
20:22:21 <haskellbridge> <iqubic (she/her)> Why is screen sharing weird on XMonad? Basically, when an application wants to screen share, it gives me two options "entire screen" or "select window" However, the "select window" option seems to only ever list windows that are visible. Like, even if I'm in the Full layout and have multiple applications on the current workspace, I still only see the option for the window at the top of the stack.
20:23:20 <geekosaur> try using Simplest instead of Full
20:23:37 <geekosaur> xmonad unmaps invisible windows ormally, which renders them inaccessible to other apps
20:23:51 <geekosaur> most other window managers leave them mapped but move them offscreen
20:24:10 <haskellbridge> <iqubic (she/her)> What does Simplest do?
20:24:52 <geekosaur> Full only provides a rectangle for the topmost window, so the others get unmapped. Simplest provides rectangles for all windows on the current workspace, so they're mapped but hidden under the topmost window
20:25:13 <haskellbridge> <iqubic (she/her)> Oh, I see.
20:26:25 <geekosaur> this also breaks some extensions (notably the tabbed family), which is why Simplest exists
20:26:58 <geekosaur> specifically, you would get a tab only for the topmost window with Tabbed Full
20:27:23 <haskellbridge> <iqubic (she/her)> Is there any downside to using Simplest everywhere instead of Full?
20:27:40 <haskellbridge> <iqubic (she/her)> Also will using Simplest break NamedScratchpads?
20:28:10 <geekosaur> a little bit of a slowdown and a little more memory used, but in both cases you'd be getting the same thing other window managers do and the differences aren't enough to notice
20:29:16 <geekosaur> NamedScratchpads doesn't care, because they're floats and therefore not managed by the layout (trying to use tiled windows as scratchpads will behave very oddly regardless)
20:30:38 <geekosaur> tabbed (and other layout modifiers that associate additional windows, as for example DwmStyle) will only assign their windows to mapped windows
20:31:37 <haskellbridge> <iqubic (she/her)> Got it. And Full only maps the top window in the stack?
20:31:52 <haskellbridge> <iqubic (she/her)> That's the main difference when compared with Simplest?
20:31:58 <geekosaur> correct, by only returning a rectangle for that window
20:32:53 <geekosaur> layouts are given a list of windows and a screen region, and produce a list of rectangles saying where the windows are to be positioned/sized. any window not assigned a rectangle gets unmapped
20:34:24 <haskellbridge> <iqubic (she/her)> Right. I see. What happens when XMonad is told to render multiple windows in overlapping locations?
20:36:07 <geekosaur> it does so, and the X server draws whatever is visible based on the reverse order of mapping (so the last one mapped is topmost)
20:36:41 <geekosaur> in essence, you're putting windows on top of each other
20:38:08 <haskellbridge> <iqubic (she/her)> I find it funny that Simplest is actually more code than Full, because Full just seems to be using the default implementations from the LayoutClass class
20:38:38 <haskellbridge> <iqubic (she/her)> Literally the code is just "instance LayoutClass Full a"
20:38:41 <haskellbridge> <iqubic (she/her)> vs
20:39:16 <haskellbridge> <iqubic (she/her)> I love how the default is to only map visible windows.
20:42:23 <geekosaur> well, aside from the fact that it completely breaks screen sharing utilities and a few other similar things that want access to the contents of hidden windows
20:42:54 <haskellbridge> <iqubic (she/her)> Yeah. I get that.
20:43:10 <haskellbridge> <iqubic (she/her)> Simplest is what I want. Let me see if that works.
20:43:10 <geekosaur> and yes, Full is just the default. which is also why if something goes wrong in your layout for some reason (e.g. it throws an exception), xmonad degrades to Full (actually, the default implementation)
20:47:27 × samhh quits (7569f027cf@2a03:6000:1812:100::e4) (Server closed connection)
20:47:36 samhh_ joins (7569f027cf@2a03:6000:1812:100::e4)
20:48:21 <haskellbridge> <iqubic (she/her)> If workspace 1 is set to Simplest and workspace 2 is set to Tall and workspace 2 is currently focused, will that still unmap the windows on workspace 1?
20:48:50 <geekosaur> if it's not visible (i.e. multi-monitor)
20:49:05 <haskellbridge> <iqubic (she/her)> Like, does setting a workspace to the layout "simplest" prevent the windows from being unmapped when the workspace isn't visible?
20:49:48 <geekosaur> that's the case where other window managers move things offscreen instead so they're still mapped and therefore contents available to other programs
20:50:16 <haskellbridge> <iqubic (she/her)> Ah. I see. I can work with this.
20:50:25 <geekosaur> this is probably something we should consider changing, although I think Full needs to keep its current behavior
20:51:50 <haskellbridge> <iqubic (she/her)> It would be a big change though.
20:53:07 <geekosaur> I don't think it would actually be that big. XMonad.Operations.windows would need to change what it's doing, but that would be invisible to everything but v4l or XImage consumers
20:55:51 <geekosaur> layout modifiers would still go by the windows inbound and rectangles outbound, map state is irrelevant (and must be because it all happens _before_ the result is displayed)
20:58:51 <haskellbridge> <iqubic (she/her)> Interesting. I'm not sure how useful this change would be.
20:59:21 <haskellbridge> <iqubic (she/her)> Simplest works well enough for me.
21:18:26 <haskellbridge> <iqubic (she/her)> Is there a way to modify a layout to never have an boarders?
21:20:01 <haskellbridge> <iqubic (she/her)> I have this: https://github.com/IQubic/nixos-config/blob/master/hm/xmonad/XMonad.hs#L88-L103
21:20:20 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.18.1/docs/XMonad-Layout-NoBorders.html https://hackage.haskell.org/package/xmonad-contrib-0.18.1/docs/XMonad-Layout-VoidBorders.html (different behaviors)
21:20:29 <haskellbridge> <iqubic (she/her)> layoutHook = avoidStruts $ smartBorders $ windowNavigation $ myLayoutHook
21:21:02 <haskellbridge> <iqubic (she/her)> The thing I want to do is make it so that the Simplest Layout doesn't have ever have any boarders.
21:21:17 <haskellbridge> <iqubic (she/her)> But I'm not sure how to modify my layout to do that.
21:21:37 <geekosaur> NoBorders Simplest
21:21:59 <haskellbridge> <iqubic (she/her)> Will there be a conflict with smartBoarders at the bottom of the file?
21:22:06 <geekosaur> sorry, make that noBorders Simplest
21:23:07 <geekosaur> yesit'll override the smartBorders behavior, at the possible price of border "flashing" on changing workspaces
21:23:17 <geekosaur> -yes
21:23:46 <haskellbridge> <iqubic (she/her)> Interesting. That's fine.
21:29:55 <haskellbridge> <iqubic (she/her)> I'm actually not getting any border flashing.

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