Home liberachat/#xmonad: Logs Calendar

Logs on 2023-07-09 (liberachat/#xmonad)

00:18:35 × fcser quits (~fcser@booty.farted.net) (Server closed connection)
00:18:42 fcser joins (~fcser@booty.farted.net)
01:03:00 Kal joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net)
01:26:02 × Kal quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Quit: Leaving)
01:32:51 Kal joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net)
01:33:15 × ElKowar quits (~ElKowar@srv-fin.xware-gmbh.de) (Server closed connection)
01:33:37 ElKowar joins (~ElKowar@srv-fin.xware-gmbh.de)
01:58:57 × Kaladin quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Quit: Leaving)
01:59:12 × Kal quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Quit: Leaving)
02:05:59 Kaladin joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net)
02:15:13 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
02:16:15 × td_ quits (~td@i53870908.versanet.de) (Ping timeout: 246 seconds)
02:18:24 td_ joins (~td@i53870924.versanet.de)
02:18:48 × Kaladin quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Quit: Leaving)
02:20:31 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
02:25:39 Kaladin joins (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net)
02:32:09 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
02:37:26 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
02:49:03 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
02:54:21 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
02:57:41 × Kaladin quits (~Kaladin@157-131-203-194.fiber.dynamic.sonic.net) (Quit: Leaving)
03:07:55 × m5zs7k quits (aquares@web10.mydevil.net) (Server closed connection)
03:08:18 m5zs7k joins (aquares@web10.mydevil.net)
03:08:22 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
03:13:39 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
04:45:41 × fcser quits (~fcser@booty.farted.net) (Quit: zzzzz)
04:45:59 fcser joins (~fcser@booty.farted.net)
04:49:33 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
04:53:20 × fcser quits (~fcser@booty.farted.net) (Quit: zzzzz)
04:53:34 fcser joins (~fcser@booty.farted.net)
04:54:51 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
05:02:53 × fcser quits (~fcser@booty.farted.net) (Quit: zzzzz)
05:03:10 fcser joins (~fcser@booty.farted.net)
05:15:15 × hellwolf[m] quits (~hellwolfm@2001:470:69fc:105::3:6a4) (Server closed connection)
05:15:27 hellwolf[m] joins (~hellwolfm@2001:470:69fc:105::3:6a4)
06:23:21 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
06:24:10 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:59:56 × tv1 quits (~tv@user/tv) (Server closed connection)
08:00:20 tv1 joins (~tv@user/tv)
08:19:52 retropikzel joins (9d1a4f9f46@2604:bf00:561:2000::ce)
08:19:57 Retropikzel[m] joins (~retropikz@2001:470:69fc:105::14e7)
08:29:29 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
08:31:28 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
08:49:22 acidbong joins (6e5528b381@198.108.77.94)
08:55:05 <acidbong> hi there, hello, i'm yet with another wild thought
08:55:05 <acidbong> since taffybar is also technically a library, can it be inserted in Xmonad like xmobar can?
08:55:27 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
08:55:42 unclechu joins (~unclechu@2001:470:69fc:105::354)
09:07:34 <acidbong> meaning, imported in xmonad.hs
09:50:52 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Remote host closed the connection)
09:50:52 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Remote host closed the connection)
09:53:11 <Solid> I would imagine so
09:53:25 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
09:53:40 unclechu joins (~unclechu@2001:470:69fc:105::354)
09:54:11 × hightower3 quits (~hightower@235-102.dsl.iskon.hr) (Ping timeout: 245 seconds)
10:54:26 alternat` joins (~user@77-254-166-50.dynamic.inetia.pl)
10:54:26 × alternat` quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
15:30:01 <Solid[m]> ChaoticMist Perhaps try looking what command is actually spawned by using `getInput`
15:30:09 <Solid[m]> Otherwise debugging sounds difficult
16:04:21 × liskin[m] quits (~liskinmat@2001:470:69fc:105::768) (Remote host closed the connection)
16:04:22 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Remote host closed the connection)
16:14:25 <ChaoticMist[m]> <Solid[m]> "ChaoticMist Perhaps try looking..." <- How can I output the value of getInput?
16:14:58 <ChaoticMist[m]> <geekosaur> "or asleep; I think I'm close..." <- No worries, just missed seeing more haskell content hehe xD
16:22:42 <ndaniel[m]> What's the minimal config? I've found this https://xmonad.org/TUTORIAL.html and two there https://wiki.haskell.org/Xmonad/Config_archive
16:23:15 <ndaniel[m]> And then of course the one from the arch wiki
16:24:01 <geekosaur> absolute minimal config is https://paste.tomsmeding.com/2PAGmY30
16:24:59 liskin[m] joins (~liskinmat@2001:470:69fc:105::768)
16:25:14 unclechu joins (~unclechu@2001:470:69fc:105::354)
16:26:23 <geekosaur> minimal practical config is probably https://paste.tomsmeding.com/Szj1Cvc4
16:32:43 <ndaniel[m]> Another different one! :D
16:33:06 <geekosaur> there's lots of different ones
16:33:21 <geekosaur> xmonad isn't so much a window manager, as it's a window manager construction toolkit
16:33:42 <geekosaur> we give you the tools, you build your own WM 🙂
16:33:56 <ndaniel[m]> I remember something like that
16:34:03 <ndaniel[m]> Although it's a bit overwhelming at the beginninf
16:36:27 <ndaniel[m]> s/beginninf/beginning/
17:29:21 <geekosaur> that's what TUTORIAL is about, it takes you through building a custom config from the beginning
17:29:50 <geekosaur> you're not required to start with liskin's config 🙂
17:30:19 <geekosaur> (our configs are linked from README.md, if you're interested)
17:37:18 <ndaniel[m]> I see
17:37:39 <ndaniel[m]> By the way, what's the behavior supposed to be without a config?
17:37:41 <ndaniel[m]> As in, I only install xmonad and try to start it
17:37:50 <geekosaur> you get that first config I showed
17:38:22 × Forkk quits (~forkk@li926-228.members.linode.com) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
17:38:31 <geekosaur> ICCCM compliance only so a lot of modern apps won't work very well
17:41:11 <ndaniel[m]> What do newer apps rely on?
17:41:12 Forkk joins (~forkk@li926-228.members.linode.com)
17:43:21 <geekosaur> EWMH
17:43:32 <geekosaur> which is why I suggested the second config earlier
17:44:11 <geekosaur> we can't do that in the default config because EWMH is part of xmonad-contrib which base xmonad can't rely on
17:44:39 <geekosaur> (I suspect it's time to merge it over, but that'll actually involve a lot of stuff)
17:45:49 <geekosaur> (also there's a redesign in the works somewhere)
18:34:41 <ndaniel[m]> Ah I see
18:34:47 <ndaniel[m]> Thanks for the answer
19:16:56 <ndaniel[m]> I am looking at the tutorial - I don't quite see what ewmhFullscreen does
19:17:30 <ndaniel[m]> From what I gather, without it, when I fullscreen an application it will stay in it's window in the layout
19:19:54 <geekosaur> yes. basically, in EWMH fullscreening is something an application requests from the window manager. without ewmhFullscreen we don't look for or respond to the application request
19:20:06 <geekosaur> or advertise support for it
19:20:29 <ndaniel[m]> It asks XMonad to maximize the window?
19:21:16 <geekosaur> it's a separate option because some users prefer alternative behaviors such as "fullscreening" in a window (see https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Util-Hacks.html#v:windowedFullscreenFixEventHook)
19:21:25 <geekosaur> yes
19:24:08 <geekosaur> as to why these would differ: consider maximizing a video in a browser window. this both maximizes the video in the browser window and maximizes the browser window. some users want the first but not the second
19:25:36 <ndaniel[m]> geekosaur: I get this behavior if I don't add ewmhFullscreen?
19:26:45 <geekosaur> depends on the program. some use old-style fullscreen if the window manager doesn't advertise EWMH fullscreen, so you have to advertise EWMH fullscreen but not actually do it to get that behavior. I believe that option is provided by other combinators
19:27:11 <geekosaur> ewmhFullscreen is the convenience combinator that does the whole fullscreen support thing
19:27:53 <ndaniel[m]> I would want apps to think that their window size is everything
19:29:35 <geekosaur> then you want https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Hooks-EwmhDesktops.html#v:fullscreenStartup which is currently deprecated, but I think Tomas's rework will replace it instead of it going away completely
19:30:49 <geekosaur> ewmh take-focus has the same thing, sometimes you want to advertise it to keep apps from just stealing focus whenever, but not respond to focus change requests (more correctly, change them to urgency requests which is explicitly supported by the EWMH spec)
19:31:44 <ndaniel[m]> So if I don't advertise the functionality, the program decides what to do?
19:32:06 <geekosaur> yes, it assumes the WM is too old to support the requests and does it itself
19:32:15 <geekosaur> which is … rude
19:32:35 <ndaniel[m]> Is this the reason why ewmh and ewmhFullscreen are separate?
19:32:38 <geekosaur> browsers in particular are guilty of this
19:32:41 <geekosaur> yeh
19:33:04 <geekosaur> you need ewmh for the browser to work at all but you don't necessarily want it to do fullscreen
19:33:13 <ndaniel[m]> Ah I see
19:33:21 <ndaniel[m]> I pretty much only use Firefox
19:33:51 <ndaniel[m]> On the topic of fullscreen, in i3 I can go into Fullscreen mode
19:34:03 <ndaniel[m]> Would the equivalent here be to switch to the Fullscreen layout?
19:34:15 <geekosaur> Full layout
19:34:34 <geekosaur> the Fullscreen layout is an alternative implementation of the EWMH Fullscreen stuff
19:34:58 <geekosaur> for when you want to grant the app a larger but not actually full screen window, for example
19:36:14 <ndaniel[m]> Ah that's what I mean though; I just want the app to have a large window without invoking it's fullscreen mode
19:36:22 <ndaniel[m]> s/it's/its/
19:36:29 <geekosaur> right, that's Full
19:36:38 <geekosaur> or XMonad.Layout.Maximize
19:37:00 <ndaniel[m]> Do those maximize the window in focus?
19:37:04 <geekosaur> Fullscreen is for what happens when an app requests fullscreen but you don't want it to actually fullscreen
19:37:53 <geekosaur> Maximize maximizes the focused window; Full maximizes all windows (meaning only one is visible, of course)
19:38:21 <geekosaur> Full is the "default layout" in the sense that it's what happens when a layout does absolutely nothing
19:38:31 <ndaniel[m]> I'll look into maximize then, thanks :)
19:38:54 <geekosaur> it takes a screen rectangle and returns it, meaning the whole screen is given to the focused window and nothing to any other window
19:41:41 <geekosaur> https://imgur.com/IfmGoWn.png maximized (X.L.Maximize) my IRC window, have a Matrix (nheko) window in its usual lower tile underneath (Mirror TwoPane layout)
19:59:43 <ndaniel[m]> By the way, is there already a layout for main + tab? As in two panes, where one is tabbed and the other only holds a single window
20:04:17 <geekosaur> combineTwo (TwoPane 0.03 0.5) Full simpleTabbed
20:04:33 <geekosaur> import X.L.Combo, X.L.TwoPane, X.L.Tabbed
20:05:07 <geekosaur> alternatively: mastered simpleTabbed
20:05:15 <geekosaur> (X.L.Mastered, X.L.Tabbed)
20:05:50 <geekosaur> there are also a few other ways to combine layouts, each with its own features
20:09:07 <ndaniel[m]> Ah, very nice
20:09:44 <geekosaur> for example, ComboP instead of Combo lets you match windows and auto-place them in the left-hand layout
20:10:46 <geekosaur> LayoutBuilder and LayoutBuilderP let you construct multipane layouts in various ways, the -P variant likewise letting you auto-place windows
20:12:13 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Layout-TallMastersCombo.html is an interesting compound layout
20:15:59 <geekosaur> since a layout is a function from a screen rectangle to a list of window rectangles, it can call other layout functions to test arbitrarily (and confusingly if you're not careful about combining things 🙂 )
20:16:06 <geekosaur> *nest
20:23:35 <ndaniel[m]> What's the proper way to redefine the key bindings? I'd probably want to redefine all the default ones
20:27:16 <geekosaur> additionalKeysP as shown in the tutorial
20:28:02 <geekosaur> you *could* replace the `keys` element of the config record, but (modmask,keysym) is annoying to work with
20:29:39 <ndaniel[m]> But additionalKeysP wouldn't get rid of anything, right?
20:30:38 <geekosaur> but (a) removeKeysP does (b) you don't need to remove to overwrite/replace
20:31:26 <ndaniel[m]> I guess I'd have to remove M - p if I wanted only M - d to spawn dmenu
20:32:15 <geekosaur> unless you want M-p to do something else
20:48:10 <ndaniel[m]> Is there a clean way to refer to refer to "variables" of the conf from within additional keys?
20:48:30 <ndaniel[m]> For example if I want to update the keybinding for the terminal
20:59:09 <geekosaur> give the conf a binding instead of passing ot directly to `xmonad`
20:59:17 <geekosaur> or maybe you want to use `keys` after all
20:59:39 <geekosaur> it's annoying
21:01:36 <geekosaur> `keys` is a function from a config to a Map (KeyMask,KeySym) (X ()), so you can refer to the config
21:02:19 <geekosaur> you could also do something like `asks (terminal . config) >>= spawn` as the action
21:47:17 <ndaniel[m]> <geekosaur> "`keys` is a function from a..." <- Yeah, I took a look at the definition
21:49:31 <ndaniel[m]> <geekosaur> "give the conf a binding instead..." <- I guess this is what I'd do

All times are in UTC on 2023-07-09.