Home liberachat/#xmonad: Logs Calendar

Logs on 2022-08-04 (liberachat/#xmonad)

00:08:29 mvk joins (~mvk@2607:fea8:5ce3:8500::d5f2)
00:12:11 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
00:12:28 sogens joins (~sogens@211.30.173.20)
01:59:31 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
01:59:49 sogens joins (~sogens@211.30.173.20)
02:03:26 × banc quits (banc@gateway/vpn/airvpn/banc) (Ping timeout: 240 seconds)
02:11:02 × catman quits (~catman@user/catman) (Ping timeout: 240 seconds)
02:13:22 catman joins (~catman@user/catman)
02:24:17 banc joins (banc@gateway/vpn/airvpn/banc)
02:36:38 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
02:37:16 sogens joins (~sogens@211.30.173.20)
02:39:12 × td_ quits (~td@94.134.91.79) (Ping timeout: 245 seconds)
02:41:18 td_ joins (~td@94.134.91.223)
03:05:02 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
03:08:08 sogens joins (~sogens@211.30.173.20)
03:44:38 × rekahsoft quits (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 240 seconds)
04:03:39 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
05:19:15 qbt joins (~qbt@user/edun)
06:03:33 × qbt quits (~qbt@user/edun) (Quit: WeeChat 3.5)
06:07:31 qbt joins (~qbt@user/edun)
06:20:41 logzet joins (~quassel@2001:9e8:e50d:7a00:dabb:c1ff:fed3:a1b9)
06:34:03 thyriaen joins (~thyriaen@2a02:8109:8340:686c:3cdc:1de0:eddb:5de6)
06:35:04 <thyriaen> i am configuring the theme of tabs in my config file and reload xmonad afterwards but somehow it does not apply those changes to my current session - restarting the pc will do it though - what am i doing wrong ?
06:44:08 × thyriaen quits (~thyriaen@2a02:8109:8340:686c:3cdc:1de0:eddb:5de6) (Remote host closed the connection)
06:52:31 <xmonadtrack> xmonad Brandon S Allbery KF8NH {Tony Zorman} * v0.17.0-72-g8965e41: attempt to work around the join point bug (#389) (4 weeks ago, 2 files, 12+ 2-) https://github.com/xmonad/xmonad/commit/8965e41d0689
06:52:31 <xmonadtrack> xmonad Tony Zorman {GitHub} * v0.17.0-73-ga13a1dc: Merge pull request #404 from geekosaur/forever-away (4 minutes ago, 0 files, 0+ 0-) https://github.com/xmonad/xmonad/commit/a13a1dcee832
07:24:21 alternateved joins (~user@staticline-31-183-149-36.toya.net.pl)
07:41:42 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 245 seconds)
07:43:32 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:47:40 <quarkQuark[m]> <thyriaen> "i am configuring the theme of..." <- I was trying to get this to work last week. It turns out you need to call 'setLayout layoutHook'
07:49:06 <Solid> this is bound to M-S-<Space> by default (layouts carry state, which is being transferred over on restarts. This is usually what one wants, except when actively changing bits of that)
08:12:16 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
08:14:16 sogens joins (~sogens@211.30.173.20)
08:15:17 sogens2 joins (~sogens@gateway/vpn/pia/sogens)
08:19:12 × sogens quits (~sogens@211.30.173.20) (Ping timeout: 245 seconds)
08:39:58 Jade1 joins (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
08:41:03 <Jade1> I have some problem with fehbg in xmonad. I have this:
08:41:03 <Jade1> ---
08:41:04 <Jade1> myStartupHook = do
08:41:04 <Jade1>       spawnOnce "~/.fehbg"
08:41:05 <Jade1>       spawnOnce "picom --experimental-backends"
08:41:05 <Jade1> ---
08:41:06 <Jade1> in my `xmonad.hs` but the background does not load upon starting xmonad.
08:41:06 <Jade1> If I manually do `.fehbg &` everything works fine
08:46:06 <[Leary]> I would try the full path; I'm not sure ~ expansion works in spawn.
08:46:46 <Jade1> Also did not work
08:48:24 <Solid> ~ expansion should work, I think, but do note that spawnOnce really is about spawning the thing only once and so you will have to pretty much restart X for it to get executed again (simply pressing M-q is not enough)
08:48:51 <Jade1> I know, I did that
08:49:14 <Jade1> exited xmonad and manually `startx`'d again
08:49:23 <Solid> can you find anything in .xsession-errors (or a similar file)?
08:50:00 <Jade1> no file like that in my home directory
08:51:35 <Solid> mh, what distro are you on?
08:52:30 <Solid> try executing something like `startx >& ~/.xsession-errors` instead of only startx
08:52:39 <Solid> this should redirect errors to that file
08:57:10 benin0 joins (~benin@183.82.25.146)
09:06:35 diep joins (~diep@2a01:cb11:2d7:4a00:a13f:e40c:c4e8:736c)
09:06:57 <Jade1> minimal arch install
09:07:04 × Jade1 quits (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
09:07:52 Jade1 joins (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de)
09:08:30 <Jade1> ooo
09:08:46 <Jade1> it seems to not compile at all and fall back to an old version of the binary
09:09:02 <Jade1> it doesn't find the `XMonad` modules ..
09:09:15 <Jade1> I think it's due to installing ghcup next to the regular ghc
09:10:08 <diep> Hi, Im using a namedscratchpad to spawn firefox, as floating, but the firefox spawns no floating, here is the relevent config part https://paste.ofcode.org/yjDZgUpBSDpfCmd86kMuB3 Any idea about what can cause the problem?
09:14:37 <Solid> diep: matching on titles is very brittle because they can change rather uncontrollably. I don't know exactly what you're spawning, so I have no idea if the title is stable somehow; as a first approximation, however, I think you have to use an em dash (— ) instead of a normal dash (-) after the stuff (at least my firefox uses an em dash in the title)
09:14:54 Guest8343 joins (~Guest83@1.39.30.16)
09:15:17 <Guest8343> I need help with X11
09:15:34 <Guest8343> import Graphics.X11.ExtraTypes.XF86
09:15:49 <Guest8343> Adding the above line to get function keys working
09:15:55 <Guest8343> gives me this error
09:16:56 <Jade1> What DE integrates best with xmonad?
09:18:25 <diep> Solid: the title match is working I think because the shortcut spawn/hide/show/hide... the window as expected
09:20:22 <diep> and I give as parameter an URL, and the purpose is to stay on that URL once firefox spawns, but if I switch to another site, yes the match doesn't work anymore
09:20:38 <diep> but I dont know how to to a better matching
09:21:24 <diep> because I cant customize the window CLASS for example, or I didnt find how to do it
09:27:54 × sogens2 quits (~sogens@gateway/vpn/pia/sogens) (Quit: WeeChat 3.5)
09:28:06 sogens joins (~sogens@gateway/vpn/pia/sogens)
09:28:56 × Jade1 quits (~Jade1@ip-178-201-128-039.um46.pools.vodafone-ip.de) (Quit: Client closed)
09:32:36 × Guest8343 quits (~Guest83@1.39.30.16) (Ping timeout: 252 seconds)
09:35:31 sogens[m]1 joins (~sogensmat@2001:470:69fc:105::1:20a1)
09:37:22 <sogens[m]1> hello all love xmonad even though im currently using boring gnome
09:37:41 × qbt quits (~qbt@user/edun) (Ping timeout: 252 seconds)
09:44:59 × sogens quits (~sogens@gateway/vpn/pia/sogens) (Quit: WeeChat 3.5)
09:45:10 sogens joins (~sogens@gateway/vpn/pia/sogens)
09:45:24 <diep> Also, I have a terminal window with this WM_CLASS attribute <"Alacritty", "nnn"> and I fail to write a match using `className`
09:45:41 × sogens quits (~sogens@gateway/vpn/pia/sogens) (Client Quit)
09:45:47 <diep> WM_CLASS(STRING) = "Alacritty", "nnn"
09:45:52 sogens joins (~sogens@gateway/vpn/pia/sogens)
09:46:40 <diep> How Im suppose to write the matcher? Like `className =? "Alacritty, nnn"` doesnt work
09:50:51 <Solid> diep: className matches on the second string of WM_CLASS
09:51:07 <Solid> appName matches on the first
09:51:57 <diep> hmm this is not clear in the doc, but thx! Now the question is, how can I write this in haskell xD
09:52:12 <diep> to combine both matchs?
09:57:01 <Solid> something like `appName =? "Alacritty" <&&> className =? "nnn" --> doSomethingIdon'tKnow` should work
09:57:17 <Solid> and contributions wrt improving docs always welcome :)
09:58:58 <diep> big thx! For doc contribution, I'll check for it ;)
10:03:03 × redgloboli quits (~redglobol@user/redgloboli) (Quit: ...enter the matrix...)
10:12:59 × sogens quits (~sogens@gateway/vpn/pia/sogens) (Remote host closed the connection)
10:15:34 sogens joins (~sogens@211.30.173.20)
10:16:23 sogens2 joins (~sogens@gateway/vpn/pia/sogens)
10:20:27 × sogens quits (~sogens@211.30.173.20) (Ping timeout: 245 seconds)
10:40:37 qbt joins (~qbt@user/edun)
11:23:47 × sogens2 quits (~sogens@gateway/vpn/pia/sogens) (Ping timeout: 245 seconds)
11:25:47 sogens2 joins (~sogens@211.30.173.20)
11:50:39 Guest8343 joins (~Guest83@1.39.30.16)
11:51:08 <Guest8343> I'm trying to convert my old key map from `additionalKeys` to emacs style
11:51:31 <Guest8343> but I'm confused what I should do here:
11:51:44 <Guest8343> ```hs
11:51:44 <Guest8343>       ((modm, xK_w), submap . M.fromList $
11:51:45 <Guest8343>         [ ((m, k), windows $ f i)
11:51:45 <Guest8343>         | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
11:51:46 <Guest8343>         , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]
11:51:46 <Guest8343>       ])
11:51:47 <Guest8343> ```
11:52:19 <Guest8343>  Anyone here?
11:55:45 <sogens[m]1> today I found out to quit emacs you just do the same thing you do in vim
11:55:54 <sogens[m]1> and to save too!!!
11:56:05 <Guest8343> huh?
11:56:50 <sogens[m]1> sorry I cant help you
11:56:58 <Guest8343> I was asking how do I convert the above submap I made for switching workspaces to emacs style
11:57:50 × logzet quits (~quassel@2001:9e8:e50d:7a00:dabb:c1ff:fed3:a1b9) (Ping timeout: 240 seconds)
11:58:28 <Solid> depends on how deeply you want to do this; if it's just for type-checking purposes then changing the first (modm, xK_w) to "M-w" should be enough
11:59:54 <Guest8343> so i still need to import submap right?
12:00:59 <Solid> yes
12:04:53 <Solid> something like http://ix.io/46E2 would only use EZConfig syntax (since that actually supports submaps ootb), but I don't think it's necessarily more readable in this case
12:06:28 <Guest8343> Solid actually I was creating my new config from scratch as the old one was a big mess
12:06:35 <Guest8343> so I have a problem here
12:07:41 <Guest8343> Solid https://pastebin.com/aXsiSkbQ
12:08:08 <Guest8343> This is the current state of my config. How should I go about adding my old workspace switching submap to my new config?
12:09:31 <Guest8343> hey guys?
12:13:24 <Solid> well, first of all you probably don't want `keys = myKeys` since that would override _all_ of the default bindings
12:14:24 <Solid> try something like http://ix.io/46E6
12:14:53 <Solid> might need to import qualified Data.Map as M as well
12:16:11 <geekosaur> Solid, you got those reversed
12:17:42 <geekosaur> Guest8343, see https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L231-L236
12:17:51 <geekosaur> but use greedyView instead if view
12:17:54 <geekosaur> *of
12:18:43 <Solid> geekosaur: huh?
12:19:05 <geekosaur> I think "Alacritty" is the className?
12:21:03 <geekosaur> quite the active overnight
12:21:16 <Solid> I would also intuitively assume that but they posted `WM_CLASS(STRING) = "Alacritty", "nnn"`
12:21:19 <alternateved> sogens[m]1: I guess that depends if you use evil mode
12:21:26 <Solid> and className definitely gets the second string in WM_CLASS
12:21:52 <Guest8343> geekosaur currently facing this error: https://imgur.com/95kM3cD
12:22:32 <alternateved> Solid: how is your health? Is it better now?
12:22:50 <geekosaur> you probably shouldn't have called your list `workspaces`. since you did, you have to use `Main.workspaces` there
12:23:23 <Solid> alternateved: yeah all I have is a very light cough now, otherwise I'm all good; thanks for asking :)
12:23:38 <alternateved> Oh, that is great to hear
12:24:01 <geekosaur> Jade1, at the moment KDE and MATE are the best desktop environments to use xmonad with. but KDE needs a patch (https://github.com/xmonad/xmonad/issues/174)
12:24:02 <alternateved> s/hear/read
12:24:27 <geekosaur> I'm actively maintaining the MATE integration, since I use it myself
12:25:37 <Guest8343> geekosaur hey it is working now but just to make sure it's correct: https://pastebin.com/DkaF8Zba
12:26:07 <Guest8343> and i didn't understand it's context with https://github.com/geekosaur/xmonad.hs/blob/d60036ffd53c32d20452a5eef963c0f8503f20da/xmonad.hs#L231-L236
12:27:04 <geekosaur> looks correct to me
12:27:19 <geekosaur> and I was showing how I do the list comprehension in emacs-keys mode
12:27:45 <Guest8343> Should I make changes similar to yours or is mine
12:27:54 <geekosaur> yours is fine
12:28:18 <geekosaur> mine has a few more workspaces, and I don't use a submap
12:28:30 <Guest8343> and also out of the context, I don't know haskell. I just read and edit code. So should I learn a little haskell right now?
12:28:59 <geekosaur> it can help, but most people set up their config once and never touch it again so it may not help much 🙂
12:29:03 <geekosaur> @where books
12:29:03 <lambdabot> See `LYAH',`RWH',`YAHT',`SOE',`HR',`PIH',`TFwH',`wikibook',`PCPH',`HPFFP',`FSAF',`HftVB',`HTAC',`TwT',`FoP',`PFAD',`WYAH',`non-haskell-books'. Also <https://www.vex.net/~trebla/haskell/learn-sources.
12:29:03 <lambdabot> html>,<https://www.extrema.is/articles/haskell-books>
12:29:30 <geekosaur> hm, pity that url gets broken in the middle
12:29:48 <Guest8343> vex
12:29:50 <Guest8343> ya
12:29:59 <Guest8343> I'll pick one short book
12:30:10 <Guest8343> or maybe if there's a nice blog
12:30:35 <Guest8343> btw, do you think the way distrotube configures his xmonad is a little terrible?
12:31:13 <evilop> a little?
12:31:56 <Guest8343> umm... kinda.. cause I've followed his way of doing things quite a few times and my config started becoming a big mess so I've started doing things from scratch now
12:32:41 <Guest8343> It got really broken when I started using Deocration for "one sided border" after taking a look at leary's comment on github
12:32:56 <Guest8343> Is there a better way to do "one sided border"?
12:33:10 <alternateved> My opinion is that the best route is doing things from scratch - this gives you the least issues as you understand what you are doing
12:33:41 <Guest8343> one sided border as show here: https://github.com/xmonad/xmonad/issues/152#issuecomment-362716434
12:33:54 <alternateved> If you use someone's config, you could get lost pretty quickly if you would want to change something
12:34:05 <Guest8343> alternateved agreed. same goes for my vim journey.
12:35:12 <alternateved> Also, I think it is much more valuable to get to know things by yourself without taking such shortcuts
12:35:53 <alternateved> But you know, there are different use-cases - some people just want to get something working and move on with their lives
12:44:13 <alternateved> Solid: you use X Emacs build and setDefaultCursor from X.U.Cursor, right?
12:44:53 <Solid> alternateved: yes
12:45:01 <alternateved> Did you ever had some situations where mouse pointer (cursor) gets colored pitch black?
12:45:17 <alternateved> Only in Emacs frame?
12:45:59 <Solid> mh, no, I've never had that happen
12:46:07 <alternateved> As lately I was trying the X build and this made mouse pointer unusable, when the Emacs theme is dark
12:46:22 <alternateved> Hmm
12:46:57 <alternateved> Haha, weirdly enough I have no such issues with pgtk build
12:47:35 <Solid> x)
12:47:37 <alternateved> At the same time, I cannot have floating scratchpad with pgtk build, while I could with X build
12:48:05 <Solid> i will note that I don't use GTK or something, I just build Emacs with lucid
12:48:06 <alternateved> I need to dig a bit what is causing the pointer color change only in Emacs
12:48:09 <Solid> so that may also have an effect
12:49:58 <alternateved> Oh, right
12:51:26 <alternateved> So `--with-x-toolkit=lucid` option, yes?
12:51:45 <geekosaur> mouse pointer will be up to the toolkit
12:51:49 <alternateved> I was using just simple `--with-x`, but I am not sure what exactly this does
12:52:14 <Solid> yeah `--with-x-toolkit=athena` (but i think lucid also works)
12:52:15 <geekosaur> it just enables things like frame support, using the Athena toolkit
12:52:21 <alternateved> Apart from the using X Window System
12:53:29 <Guest8343> I was rewriting my config from scratch and copied this line:
12:53:30 <Guest8343> `[ ((modMask .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)`
12:53:30 <Guest8343> but xmessage says "variable conf not in scope"
12:53:53 <geekosaur> correct, it won't be in scope using emacs-style
12:54:10 <geekosaur> it was originally extracted from the parameters to myKeys
12:55:07 <geekosaur> asks XMonad.terminal . config >>= spawn
12:55:11 <Guest8343> so should I just do: spawn "alacritty" instead of adding myTerminal=alacritty and then doing terminal=myTerminal?
12:55:57 <evilop> or just do terminal="alacritty"
12:56:12 <Guest8343> okay
12:56:22 <geekosaur> see the line with the >>=
12:56:40 <geekosaur> that's the equivalent for emacs-style, it extracts your terminal from the config and passes it to spawn
12:57:25 <Guest8343> so it extracts it from the line `myTerminal = "alacritty"`?
12:57:37 <diep> Hi again, I repost my previous question, Im using a namedscratchpad to spawn firefox, as floating, but the firefox spawns in a no floating window, here is the relevent config part https://paste.ofcode.org/yjDZgUpBSDpfCmd86kMuB3 Any idea about what can cause the problem? Please note that this scratchpad works correctly, the problem is just that the window is not floating
12:58:21 <alternateved> Is it really the title of the window? "stuff - Mozilla Firefox"
12:58:51 <diep> I replaced the real one by "stuff", this is not relevent
12:59:43 <evilop> firefox forking can make it a bit more complicated
13:00:00 <diep> When I press on the associated shortcut, it spawns/hides/shows/hides that window as expected, as far as I know
13:02:08 <geekosaur> the problem with browsers is nothing is set up whyen the window first spawns. chrome windows have a random string as the title (which is actually the component id of whatever manages new windows) until they're rendered. matching would work fine after that, but not when first spawned
13:02:48 <geekosaur> you need to use something like X.H.DynamicProperty to watch for the title being set afterward and float the window
13:04:14 <geekosaur> sadly, this also includes things that are mandatory-set at map time like class, name, role (that is, they ognore the "mandatory" and set them after mapping)
13:04:29 <geekosaur> which is all because it's all done by JS that doesn't run until after mapping
13:08:47 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:09:24 <diep> humm looks too complicated for me, I think I'll give up on this xD
13:31:34 × Guest8343 quits (~Guest83@1.39.30.16) (Quit: Client closed)
13:34:49 Guest833 joins (~Guest83@1.39.30.16)
13:35:25 <Guest833> geekosaur why does my current config expect me to use additionalKeys sytnax under the submap instead of string syntax?
13:36:24 <geekosaur> because that's how submap is defined. additionalKeysP syntax integrates submaps though
13:36:46 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L199-L205
13:38:17 gdd1 is now known as gdd
13:39:06 <geekosaur> so for example "M-C-cl" will automatically define M-C-c" as a submap and then define "l" as a key within it, and reuse that submap for the other ones starting with "M-C-c"
13:40:37 <Guest833> oh so i shouldn't be using M.fromlist but rather the emacs syntax all the way
13:40:57 <geekosaur> yep
13:41:13 <geekosaur> emacs syntax handles a bunch of things you'd otherwise have to do manually
13:41:26 <geekosaur> it's why we recommend it these days
13:42:35 <Guest833> `          ("M-s s", asks XMonad.terminal . config >>= spawn),
13:42:36 <Guest833> ` is this wrong
13:43:36 <geekosaur> oh, I may have missed some parens there. also that key sequence would be read as M-s space s
13:43:55 <geekosaur> asks (XMonad.terminal . config) >>= spawn
13:44:05 <geekosaur> (and no, you can't use $)
13:45:07 <Guest833> but
13:45:14 <Guest833> from the docs
13:45:22 <Guest833> , ("M-x y", spawn "xmessage 'yay!'") -- type mod+x then y to pop up 'yay!'
13:45:48 <geekosaur> *Main> :t asks (XMonad.terminal . config) >>= spawn
13:45:49 <geekosaur> asks (XMonad.terminal . config) >>= spawn
13:45:49 <geekosaur> :: (MonadReader XConf m, MonadIO m) => m ()
13:46:18 <geekosaur> hm. maybe it does ignore spaces. I've always left them out
13:47:11 <Guest833>  I didn't understand  the above code you pasted
13:47:14 <geekosaur> right, explicit space is <Space>. carry on then
13:47:25 <Guest833> Where is that supposed to go and what does it do
13:47:40 <geekosaur> that was just showing that the code typechecks in ghci
13:48:01 <geekosaur> (cabal repl on my config)
13:48:33 <geekosaur> ":t" asks ghci the type of some expression
13:48:51 <geekosaur> it also works in lambdabot in here, but that doesn't and can't have xmonad loaded
13:49:38 <Guest833> I don't understand much
13:49:42 <Guest833> how should i be making this binding?
13:49:44 <Guest833>           ("M-s s", launch my terminal),
13:50:24 <geekosaur> I would write it as: ("M-s s", asks (XMonad.terminal . config) >>= spawn)
13:51:02 <geekosaur> you don't really have to understand the "asks" part, suffice it that it's retrieving your config and looking up the "terminal" part
13:53:48 × alternateved quits (~user@staticline-31-183-149-36.toya.net.pl) (Remote host closed the connection)
13:54:11 <Guest833> geekosaur
13:54:12 <Guest833> main = xmonad $ def
13:54:12 <Guest833>       { modMask = mod4Mask,
13:54:13 <Guest833>         terminal = "alacritty"
13:54:13 <Guest833>       }
13:54:15 <Guest833> correct?
13:54:23 <geekosaur> yes
13:54:24 <Guest833> btw, I'm very sorry to bother you so much
13:54:36 <geekosaur> that's fine, it's why I hang out in here
13:54:49 <Guest833> I need to configure my xmonad rn just enough to get it working and then I'll take time to learn some haskell
13:58:26 × evilop quits (~Urist@archlinux/op/MrElendig) (Quit: setting you up the bomb)
13:59:37 MrElendig joins (~Urist@archlinux/op/MrElendig)
14:09:46 Nahra joins (~user@static.161.95.99.88.clients.your-server.de)
14:10:28 <quarkQuark[m]> <geekosaur> "you don't really have to..." <- That's interesting. Currently I'm passing my config record to my keybindings definition as a parameter and calling `spawn (terminal config)` (to avoid annoying type signatures, I define the config with `where` in `main`.
14:10:28 <quarkQuark[m]> Would this `asks` function mean that I don't have to pass my config to my keybindings as a parameter, or am I misunderstanding? This would seem strange as otherwise my keybindings definition is pure.
14:10:58 <quarkQuark[m]> * That's interesting. Currently I'm passing my config record to my keybindings definition as a parameter and calling `spawn (terminal config)` (to avoid annoying type signatures, I define the config with `where` in `main`.
14:10:58 <quarkQuark[m]> Would this `asks` function mean that I don't have to pass my config to my keybindings as a parameter, or am I misunderstanding? This would seem strange as otherwise my keybindings definition is pure.
14:11:01 <quarkQuark[m]> * That's interesting. Currently I'm passing my config record to my keybindings definition as a parameter and calling `spawn (terminal config)` (to avoid annoying type signatures, I define the config with `where` in `main`.
14:11:01 <quarkQuark[m]> Would this `asks` function mean that I don't have to pass my config to my keybindings as a parameter, or am I misunderstanding? This would seem strange as otherwise my keybindings definition is pure.
14:11:12 <quarkQuark[m]> * That's interesting. Currently I'm passing my config record to my keybindings definition as a parameter and calling `spawn (terminal config)` (to avoid annoying type signatures, I define the config with `where` in `main`.
14:11:12 <quarkQuark[m]> Would this `asks` function mean that I don't have to pass my config to my keybindings as a parameter, or am I misunderstanding? This would seem strange as otherwise my keybindings definition is pure.
14:12:53 <geekosaur[m]> You may have defined them as pure but they run in X
14:13:41 <geekosaur[m]> Otherwise spawning wouldn't work
14:14:08 <quarkQuark[m]> Ah yes, that makes sense thanks!
14:14:21 <quarkQuark[m]> * That's interesting. Currently I'm passing my config record to my keybindings definition as a parameter and calling `spawn (terminal config)` (to avoid annoying type signatures, I define the config with `where` in `main`).
14:14:21 <quarkQuark[m]> Would this `asks` function mean that I don't have to pass my config to my keybindings as a parameter, or am I misunderstanding? This would seem strange as otherwise my keybindings definition is pure.
14:14:56 <geekosaur[m]> If you look at the type it's (String -> X ())
14:15:29 <geekosaur[m]> Sorry (String, X ())
14:16:57 <quarkQuark[m]> And everything in X can access my config record using `asks`?
14:17:17 <geekosaur[m]> Yes
14:19:00 mc47 joins (~mc47@xmonad/TheMC47)
14:22:09 <geekosaur> if you want to poke around, `asks` looks things up in `XConf` and `gets` looks things up in `XState`, both of which are defined in `XMonad/Core.hs`
14:22:54 <geekosaur> (the difference is that `XConf` never changes after xmonad starts, while `XState` is the live "mutable" state of xmonad)
14:23:01 × sogens2 quits (~sogens@211.30.173.20) (Ping timeout: 268 seconds)
14:24:01 <geekosaur> btw all that editing works fine in Matrix but it makes a real mess in IRC
14:25:24 sogens2 joins (~sogens@211.30.173.20)
14:25:34 × Guest833 quits (~Guest83@1.39.30.16) (Ping timeout: 252 seconds)
14:25:42 <quarkQuark[m]> Oh, sorry - I didn't realise this was also on IRC! Does it send a new message each time? I will try not to do that again
14:25:51 <geekosaur> yes
14:26:17 <quarkQuark[m]> Thanks for letting me know
14:27:23 <geekosaur> yeh, we have the Matrix room joined to an IRC channel. it's convenient but gets messy when some of Matrix's fancier features get involved
14:35:21 <Solid> quarkQuark[m]: since you're asking about asks (heh): now is a great time for you to learn about reader monads! :>
14:45:12 <quarkQuark[m]> I suppose I'll give them a 'read'!
14:46:28 <Solid> :^)
14:46:32 <geekosaur> they're not difficult, at least while wrapped in a Reader. (the unwrapped version is somewhat mind-bending, but it's simple and safe while wrapped)
14:48:25 × sogens2 quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
14:48:41 sogens joins (~sogens@211.30.173.20)
14:49:09 <geekosaur> ("safe" with respect to your sanity, that is, there's nothing otherwise unsafe about them)
15:10:59 × diep quits (~diep@2a01:cb11:2d7:4a00:a13f:e40c:c4e8:736c) (Remote host closed the connection)
15:12:28 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
15:12:44 sogens joins (~sogens@211.30.173.20)
15:15:13 <Hash> !monad
15:15:23 <Hash> Come on bot!
15:15:28 × sogens quits (~sogens@211.30.173.20) (Client Quit)
15:15:44 sogens joins (~sogens@211.30.173.20)
15:17:57 × qbt quits (~qbt@user/edun) (Ping timeout: 252 seconds)
15:23:40 <geekosaur> what were you looking for?
15:24:02 <geekosaur> first off, there are only two (known) bots in here and neither responds to !
15:24:41 <geekosaur> second, the main bot you'd query doesn't accept that.
15:25:08 <geekosaur> @google you could have invented monads
15:25:23 <lambdabot> Plugin `search' failed with: <<timeout>>
15:25:33 <geekosaur> mm, still broken. sad
15:25:56 <geekosaur> http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html
15:27:08 <geekosaur> yes, the concept derives from category theory. but th4ese aren't category theory monads and you don't care about category theory when using or even defining them
15:30:09 <geekosaur> (we don't even define it properly for category theory, that'd be join and fmap instead of return and bind)
15:31:43 <Hash> Oh ok
15:31:45 <Hash> I dunno the bots here yet
15:32:19 <Hash> Category theory. I did some stuff there in algorithm generation
15:32:28 <Hash> Robitics stuff. Fun.
15:32:50 <Hash> I never knew Robots need to generate algorithms for various problems on the fly.
15:32:59 <Hash> Pretty cool. But neither here nor there!
15:33:06 <geekosaur> that's the direction robotics has been going, yes
15:33:21 <geekosaur> because it's what we do, and fixed algorithms don't work well in the real world
15:49:49 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
16:00:12 × Melkor333[m] quits (~melkor333@2001:470:69fc:105::2:3ef7) (Quit: You have been kicked for being idle)
16:02:44 Guest8311 joins (~Guest83@114.143.131.219)
16:03:20 <Guest8311> main = xmonad $ def
16:03:20 <Guest8311>       { modMask = mod4Mask,
16:03:21 <Guest8311>         terminal = "alacritty",
16:03:21 <Guest8311>         borderWidth = 0,
16:03:22 <Guest8311>         layoutHook = myLayout
16:03:22 <Guest8311>       }
16:03:23 <Guest8311>       `additionalKeysP` myKeys
16:03:23 <Guest8311> Hey, geekosaur is it okay to override borderwidth in the def block?
16:04:30 <geekosaur> yes
16:04:46 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L133
16:04:46 <Guest8311> and if you replied to my text about "moving windows to workspaces" using submaps then I've missed those texts
16:04:51 <Guest8311> I was disconnected
16:05:35 <geekosaur> I think I missed that question
16:08:21 <Guest8311> geekosaur
16:08:23 <Guest8311>       ("M-w", submap . M.fromList $
16:08:24 <Guest8311>         [ ((m, k), windows $ f i)
16:08:24 <Guest8311>         | (i, k) <- zip myWorkspaces [xK_1 .. xK_9]
16:08:25 <Guest8311>         , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]
16:08:25 <Guest8311>       -- ((modm, xK_p), toggleWS),
16:08:26 <Guest8311>         ])
16:08:42 <Guest8311> Now the above block changes to a certain workspace using submap
16:08:57 <Guest8311> Is it possible to create a submap to move windows to workspaces?
16:09:12 <geekosaur> that one actually does both
16:09:26 <Guest8311> what's the binding?
16:09:45 <Guest8311> okay
16:09:53 <geekosaur> the shifted version does the move
16:09:54 <Guest8311> mod+w and shift+num
16:10:07 <geekosaur> that's the (W.shift, shiftMask) part
16:10:36 <geekosaur> the first being the operation and the second being the mask, so you could for example change that to controlMask if you wanted
16:11:01 <geekosaur> the various operations you can do with `windows` are in XMonad.StackSet
16:13:07 <Guest8311> I was trying to seperate the moving part into another submap
16:13:09 <Guest8311>       ("M-u", submap . M.fromList $
16:13:09 <Guest8311>         [ (f, m) <- [(W.greedyView, 0), (W.shift, [xK_1 .. xK_9])]
16:13:09 <Guest8311>         ])
16:13:45 <geekosaur> you need a bit more to be a proper list comprehension
16:15:06 <geekosaur> [ ((0, k), windows $ shift i) | (i, k) <- zip myWorkspaces [xK_1 .. xK_9]
16:15:12 <geekosaur> whoops
16:15:15 <geekosaur> [ ((0, k), windows $ shift i) | (i, k) <- zip myWorkspaces [xK_1 .. xK_9]]
16:15:38 <geekosaur> still wrong, needs to be W.shift
16:15:46 <geekosaur> but you get the idea, hopefully
16:16:10 <geekosaur> the part before the | is a template for each element of the result list,m the part after it is how to build it
16:18:48 <Guest8311> okay worked
16:32:01 <Guest8311> geekosaur
16:32:17 <geekosaur> yes?
16:32:18 <Guest8311> I'm trying to understand both the blocks so that I can clean this one:
16:32:20 <Guest8311>       ("M-w", submap . M.fromList $
16:32:20 <Guest8311>         [ ((m, k), windows $ f i)
16:32:21 <Guest8311>         | (i, k) <- zip myWorkspaces [xK_1 .. xK_9]
16:32:21 <Guest8311>         , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]
16:32:22 <Guest8311>       -- ((modm, xK_p), toggleWS),
16:32:22 <Guest8311>         ]),
16:32:26 <Guest8311> but I just can't
16:33:04 <Guest8311> In the above block I want to remove the submap of moving windows to a workspace and add in that submap a binding "p" to move to the previous workspace
16:33:35 <geekosaur> you can't really do the previous workspace thing in there
16:34:31 <Guest8311> so if I create another block of the same submap just to switch to previous workspace then does that create a conflict?
16:35:23 <geekosaur> it'll overwrite the other one
16:35:32 <Guest8311> ugh
16:35:36 <Guest8311> so not possible?
16:35:37 <geekosaur> you need to let additionalKeysP do the submap creation for them to be coalesced
16:36:05 <Guest8311> Okay I'll add that
16:37:22 <Guest8311> but
16:37:30 <Guest8311> um I've already imported ezconfig
16:37:53 × sogens quits (~sogens@211.30.173.20) (Ping timeout: 252 seconds)
16:37:56 <Guest8311> do I need to explicitly import `additionalkeysP`? and does that mean I can't use emacs style?
16:40:27 sogens joins (~sogens@211.30.173.20)
16:41:09 <geekosaur> https://paste.tomsmeding.com/XS0j6WyU
16:41:32 <geekosaur> you're already usingt additionalKeysP, you'll just be using it a bit more than you were
16:42:16 <geekosaur> the thing I pasted is what goes at the end of your current additionalKeysP list
16:43:37 × benin0 quits (~benin@183.82.25.146) (Ping timeout: 268 seconds)
16:44:26 <geekosaur> hm, slightly wrong, that's prev window not prev ws
16:44:46 <geekosaur> CycleRecentWS or CycleWS depending on how you define "previous"
16:45:17 <Guest8311>         , ("M-w p", rotAllUp) -- import XMonad.Actions.RotSlaves
16:45:18 <Guest8311>         ]
16:45:18 <Guest8311>         ++
16:45:19 <Guest8311>         [ ("M-w " ++ k, windows $ W.greedyView i)
16:45:19 <Guest8311>         | (i, k) <- zip myWorkspaces ["1" .. "9"]
16:45:20 <Guest8311>         ]
16:45:26 <Guest8311> this block goes exactly where?
16:45:35 <geekosaur> please don't paste like that directly into the channel
16:45:40 <geekosaur> we have a pastebin
16:45:43 <geekosaur> @where paste
16:45:43 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
16:45:53 <Guest8311> okay sorry
16:46:02 <geekosaur> \anyway I can't tell you exactly without seeing the rest of your config
16:46:57 <Guest8311> https://pastebin.com/hrfnRHBv
16:47:01 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
16:47:04 <Guest8311> my current config state
16:48:38 <geekosaur> anyway it';s slightly wrong, as I said, you don;'t want rotAllUp, you want either (moveTo Prev hiddenWS) (from XMonad.Actions.CycleWS) or toggleRecentWS (from XMonad.Actions.CycleRecentWS)
16:48:53 <geekosaur> sigh. did you have to use that pastebin when I pointed you at a saner one?
16:49:02 <geekosaur> I mean, did you even look at the result?
16:49:37 <Guest8311> oh I didn't take a look... I thought the actual pastebin thing... its a little too popular
16:50:04 <Guest8311> https://paste.tomsmeding.com/F7dbWmIi
16:52:27 <geekosaur> it's practically unreadable for haskell code, sorry
16:52:33 <geekosaur> I'm patching up what you sent
16:52:42 <geekosaur> you misunderstood what I meant somewhat
16:53:28 <geekosaur> https://paste.tomsmeding.com/9Q55yHIc
16:54:19 <geekosaur> you don't put it inside the list (except the toggleRecentWS part), you append it to the list
16:54:53 <geekosaur> I assumed toggleRecentWS because you turn out to already be doing the other one with M-<L> and M-<R>
16:57:49 <Guest8311> the part we appended to the list
16:57:55 <Guest8311> doesn't compile
16:59:35 <Guest8311> https://imgur.com/XvDULLI
16:59:42 <Guest8311> This is the error
16:59:58 <Guest8311> changing it to emacs style doesn't solve it
17:01:17 <geekosaur[m]> It wouldn't. Hold on a few minutes
17:01:55 <Guest8311> okay
17:11:54 <geekosaur> https://paste.tomsmeding.com/PveoOU9m
17:12:02 sogens joins (~sogens@211.30.173.20)
17:12:04 <geekosaur> (it's not perl :/)
17:14:58 <Guest8311> do i really need both:
17:14:59 <Guest8311> import XMonad.Actions.CycleWS
17:14:59 <Guest8311> import XMonad.Actions.CycleRecentWS
17:15:12 <geekosaur> yes, they do different things
17:15:21 <Guest8311> okay
17:15:41 <geekosaur> you already have M-<L> and M-<R> to switch to the previous/next workspace by number
17:16:02 <Guest8311> no
17:16:17 <Guest8311> they just instantly switch to the next or previous workspace
17:16:32 <geekosaur> yes
17:16:50 <geekosaur> then what did you want M-w p to do?
17:17:01 <Guest8311> to switch to recent on
17:17:14 <Guest8311> suppose i switch from 1 to 6
17:17:20 <geekosaur> right, that's what toggleRecentWS from CycleRecentWS does
17:17:25 <Guest8311> then to go back to 1 i just press m-w p
17:18:04 <geekosaur> by "by number" I meant that if you were on "5" M-<R> would go to "6"
17:18:19 <Guest8311> oh yea
17:18:30 <Guest8311> but that would be like switching one by one
17:18:40 <Guest8311> sometimes m-w p would be more convenient
17:18:49 <Guest8311> btw, have you ever seen this: https://github.com/xmonad/xmonad/issues/152#issuecomment-362716434
17:18:56 <geekosaur> yes, that's why I assumes that was what you wanted and brought in toggleRecentWS
17:19:33 <geekosaur> I've seen every issue in the tracker, since I'm the primary maintainer 🙂
17:19:53 <Guest8311> oh
17:19:58 <Guest8311> you're the maintainer
17:20:02 <geekosaur> sadly nobody has packaged that up as a contrib, it just gets copied around in people's xmonad.hs files
17:20:09 <Guest8311> how do you even get time for all this
17:20:33 <Guest8311> but is there a cleaner way to do it?
17:20:55 <Guest8311> a packaged contrib also would've been more convenient
17:22:19 <sogens[m]1> installing arch linux so i can steal distrotubes xmonad config
17:22:32 <sogens[m]1> because im not a pro programmer who can make sick layouts
17:23:29 <geekosaur> it looks pretty clean to me as it is, aside from the Eq glitch mentioned later on (which isn't readily fixable without breaking all other uses of Decoration)
17:23:52 <Guest8311> Eq glitch?
17:24:20 <Guest8311> do you mean where the windows start disappearing and there's decoration artifacts on the screen?
17:24:22 <geekosaur> https://github.com/xmonad/xmonad/issues/152#issuecomment-447585325
17:25:35 <Guest8311> oh that
17:27:47 <geekosaur> decoration artifacts would probably be https://github.com/xmonad/xmonad-contrib/issues/343 and related issues, where layout cleanup messages don't get sent to inactive layouts
17:28:06 <geekosaur> we're still working on that one
17:30:00 <geekosaur> a bunch of contrib layouts need to be modified to forward cleanup messages to inactive layouts / layout groups
17:35:27 benin0 joins (~benin@2401:4900:2323:8106:8928:2ec0:5649:e0a1)
17:37:39 <geekosaur> also as to maintainers, there are four of us. but three of them are pretty busy of late with other things so I'm kinda holding down the firt. that said Solid was on earlier
17:37:53 <geekosaur> and liskin may peek in later
17:40:46 × benin0 quits (~benin@2401:4900:2323:8106:8928:2ec0:5649:e0a1) (Quit: The Lounge - https://thelounge.chat)
17:41:14 <geekosaur> *fort
17:43:52 × byorgey quits (~byorgey@155.138.238.211) (Remote host closed the connection)
17:44:52 <Guest8311> xmonad is the best tiling wm
17:44:58 <Guest8311> I've tried everything out ther
17:45:01 <Guest8311> there*
17:45:07 <Guest8311> xmonad is far ahead
17:45:16 <Guest8311> is it haskell that's holding it back?
17:48:05 diep joins (~diep@2a01:cb11:2d7:4a00:a13f:e40c:c4e8:736c)
17:49:40 × Guest8311 quits (~Guest83@114.143.131.219) (Quit: Client closed)
17:49:43 <geekosaur[m]> In the sense that lots of people are afraid of it, yes
17:51:57 logzet joins (~quassel@2001:9e8:e50d:7a00:dabb:c1ff:fed3:a1b9)
18:01:00 <geekosaur> and you're far from the only one who pops up looking for help with the syntax; I woke up this morning to find 5 or 6 of them with Solid trying to deal with all of them at once 🙂
18:12:56 Guest8383 joins (~Guest83@114.143.131.219)
18:13:21 <Guest8383> geekosaur I came across that fringing problem again
18:13:32 <Guest8383> It was one of the reasons I had to write my config from scratch
18:13:55 <geekosaur> fringing?
18:14:02 <Guest8383> so it seems like "XMonad.Layout.SubLayouts" doesn't play well with decorations
18:14:06 <Guest8383> wait ill send a picture
18:15:03 <geekosaur> no, it's probably one that fails to send cleanup messages
18:15:45 <Guest8383> https://imgur.com/a/dC917ey
18:19:04 <Guest8383> Is there a way to fix this?
18:19:29 <Guest8383> btw, the problem doesn't occur when I apply the decoration to both the layouts
18:19:32 <Guest8383> i have
18:19:35 <diep> ReHi guys, Im looking for a way to match on window property class with regex, I want to match "jetbrains-*", but cant figure out how to do this exactly. I found in docs XMonad.Util.WindowPropertiesRE but there is no example how to use these functions :/
18:19:37 <geekosaur> the documentation says no
18:19:43 <Guest8383> but I don't want the decorations on full
18:19:51 <geekosaur> see the very bottom of https://hackage.haskell.org/package/xmonad-contrib-0.17.0/docs/XMonad-Layout-SubLayouts.html
18:22:30 <geekosaur> diep, that's more for layouts like ComboP that want to use "managehooks" as part of a layout
18:23:02 <geekosaur> if you have something that does regexp matching then you can use it with fmap / <$>
18:24:51 <Guest8383> geekosaur but they mention that subtabbed works well
18:24:58 <Guest8383> which is what im using but it fails
18:25:15 <Guest8383> everything works well when I apply decorations to all the layouts
18:25:16 <geekosaur> they say it works better but still has problems, as I read it
18:25:31 <Guest8383> but it works well when i apply it to all the layouts
18:25:39 <Guest8383> but i dont want decorations on full
18:25:42 <Guest8383> so as a workaround
18:25:52 <Guest8383> i thought that ill use jumptolayout
18:25:57 <Guest8383> to switch to full
18:26:09 <Guest8383> and remove full from my layouthook
18:26:14 <Guest8383> how bout that?
18:26:24 <geekosaur> jumpToLayout requires it to be part of your layout
18:26:31 <Guest8383> ughh
18:26:34 <geekosaur> setLayout doesn't
18:26:54 <geekosaur> but will be lost of mod0q and in a few other situations
18:26:55 <Guest8383> would that solve the problem then?
18:26:59 <geekosaur> *on mod-q
18:27:22 <Guest8383> lost on recompile and restart?
18:27:23 <diep> geekosaur, ok
18:27:33 <geekosaur> it might leave the decorations with no way to clear them since there would be no chance to send ReleaseResources
18:27:54 <geekosaur> diep, it looks like WindowPropertiesRE gives you a match operator ~?
18:28:00 <geekosaur> which works like =?
18:28:07 <geekosaur> except it takes a regexp
18:29:15 <diep> yes so I'll try to use it
18:29:24 <diep> seems to be what Im looking for
18:29:44 <diep> I just need to know how I write my regex pattern correctly
18:29:58 <diep> maybe `"jetbrains-*"` is okay?
18:30:10 <geekosaur> no, that's a glob
18:30:42 <geekosaur> but if all you want is for it to match a prefix, how about XMonad.Hooks.ManageHelpers.^=
18:30:55 <geekosaur> title ^= "jetbrains-"
18:31:12 <diep> yes this is what Im looking for
18:31:34 <diep> but ~? "jetbrains-.*" should work too isnt it?
18:31:47 <geekosaur> yes, it'll just be slower
18:32:02 <geekosaur> I tend to avoid regexp unless I really need it
18:32:12 <diep> yes you're probably right
18:32:17 <geekosaur> (and I've been using regexps for around 40 years…)
18:32:37 <geekosaur> and in particular xmonad-extras drags in a bunch of other dependencies, not just regexps
18:32:40 <Guest8383> this doesn't seem to work:
18:32:41 <Guest8383>       ("M-u", setLayout "Full"),
18:33:02 <geekosaur> no, it'd be `setLayout Full` without the quotes
18:33:06 <diep> it was a long run 40 years^^
18:33:41 <geekosaur> you're setting it to an actual layout, not to a name to be searched in the current layout
18:38:18 <[Leary]> Guest8383: If you don't want `subTabbed` etc on `Full`, perhaps you can just move that under `myDecorate` in `tiled`?
18:39:54 <geekosaur> hm, actually if that is your question then the fix is to replace Full with Simplest
18:40:05 <geekosaur> but I thought it was about SideDecoration?
18:41:08 <geekosaur> (come to think of it that might apply there as well, because Full prunes its window list in ways that can confuse layout modifiers, which is why Simplest exists and is used by tabbed)
18:42:09 <diep> geekosaur: the operator from ManageHelpers to match a prefix is `^?` not `^=` :p
18:42:20 <geekosaur> whoops, sorry
18:42:32 <diep> of course no problem
18:42:36 geekosaur is apparently trying to do too many things at once
18:42:39 <diep> thx for the help
18:42:46 <geekosaur> I already corrected that typo once even 😕
18:44:09 <[Leary]> Well, the problem is just rearranging the layout so that we don't have myDecorate underneath subTabbed, which seems to be achievable if they want `something ||| Full`.
18:44:46 <Guest8383> [Leary] It was an easy fix
18:45:00 <Guest8383> myLayout = windowNavigation $ boringWindows $ (tiled ||| Full)
18:45:01 <Guest8383>   where
18:45:01 <Guest8383>     tiled = myDecorate $ subTabbed $ reflectHoriz $ Tall nmaster delta ratio
18:45:02 <Guest8383>     nmaster = 1 -- Default number of windows in the master pane
18:45:02 <Guest8383>     ratio = 1/2 -- Default proportion of screen occupied by master pane
18:45:03 <Guest8383>     delta = 3/100 -- Percent of screen to increment by when resizing panes
18:45:12 <Guest8383> I rewrote my entire config thinking everything was broken lol
18:45:26 <Guest8383> moving subtabbed to tiled fixed everything
18:45:42 <Guest8383> thank you so much [Leary] and geekosaur
18:45:51 <Guest8383> you guys are absolutely great****
18:46:28 <Guest8383> btw, do i then even need to apply windownavigation and boringwindows on all layouts or do i move them to tiled too?
18:46:47 <geekosaur> up to you
18:46:57 <geekosaur> not wure WN is all that useful with Full though
18:46:57 <Guest8383> but what difference does it make?
18:47:44 <geekosaur> and boringWindows just makes WN behave a bit better so they should go together
18:47:54 <geekosaur> *sure
18:48:34 <Guest8383> okay
19:00:53 <Guest8383> also
19:00:57 <Guest8383> why doesn't this:
19:01:00 <Guest8383>       ("M-u", setLayout Full),
19:01:02 <Guest8383> work?
19:01:13 <Guest8383>  i don't understand the types expected by setLayout?
19:01:33 <geekosaur> oh, hm. I bet it needs a layout wrapped in an existential
19:01:40 <geekosaur> that's going to bve harder
19:02:08 <geekosaur> but since you've solved the problem with Full in the layout, you can go back to using JumpToLayout
19:03:31 <geekosaur> we do something slightly evil with layouts, since otherwise we can't sanely work with them because their types depend on exactly what you've done
19:06:48 <diep> In my manageHook, there is a way to add to a match, like `className =? "feh"`, both `doFloat` and `hasBorder False` instructions?
19:07:43 <diep> Or I have to write two separate match, one to apply doFloat, the other one hasBorder?
19:08:44 <geekosaur[m]> Use `<>` to combine them
19:09:01 <diep> I try
19:10:10 <diep> thx again, works perfectly
19:12:22 <Guest8383> geekosaur ughh
19:12:33 <Guest8383> this time I wanted to use another layout to jump to
19:13:06 <Guest8383> isn't there a way to jump to a layout and not have to cycle through it
19:13:19 <geekosaur[m]> Nope
19:13:30 <Guest8383> okay
19:13:56 <Guest8383> I would say that one thing is necessary
19:14:04 <Guest8383> really needed that
19:14:48 <geekosaur[m]> A layout is secretly a function; it has to be run to get to a particular point in it
19:17:43 <geekosaur[m]> This is also why you can't go backwards
19:20:49 <[Leary]> You can write a layout modifier which takes some `X Bool` predicate (say, reading a toggle from extensible state) and switches into an alternative layout when it holds.
19:21:00 <[Leary]> Not sure if we have something like that already.
19:21:53 <[Leary]> Oh, actually I guess you need Read?
19:22:03 <[Leary]> That's a pain.
19:22:14 <geekosaur> see how (|||) works
19:23:47 <geekosaur> you can do something like that but you need to hide the predicate inside the implementation
19:24:16 <geekosaur> so you could for example take a String and compare it against something in XS
19:24:45 <[Leary]> Right, or have it sent with the message, and store the result for runLayout.
19:24:48 <geekosaur> you can also send it a predicate via a message, which doesn't require Read since it's not serialized
19:27:07 <[Leary]> I suspect this would generalise several layout modifiers...
19:27:39 <geekosaur> likely
19:28:24 <geekosaur> I think we already have a note in an issue to consider merging some layout modifiers that way, but we decided it would be too confusing for users unless we still provided the originals as wrappers for it
19:55:19 × diep quits (~diep@2a01:cb11:2d7:4a00:a13f:e40c:c4e8:736c) (Remote host closed the connection)
20:17:51 <Guest8383> hey geekosaur
20:17:56 <Guest8383> one more thing btw
20:18:02 <geekosaur> yes?
20:18:10 <Guest8383> when using a subtabbed layout
20:18:28 <Guest8383> suppose i have a tabbed group with three tabs on my left half of the screen
20:18:33 <Guest8383> and my focus is on that group
20:18:41 <Guest8383> then
20:18:49 <Guest8383> using the binding to toggle the scratchpads
20:19:01 <Guest8383> also affects the tabgroup
20:19:13 <Guest8383> in the background it switches to the first tab
20:19:18 <Guest8383> why is that?
20:19:54 <geekosaur> because there's really only one list of windows for the workspace and it gets ordered somewhat oddly especially when sublayouts are in use
20:20:02 <geekosaur> TrackFloating may help some
20:20:23 <geekosaur> https://hackage.haskell.org/package/xmonad-contrib-0.17.0/docs/XMonad-Layout-TrackFloating.html
20:20:55 <geekosaur> but ultimately it's a fundamental bug in how we track windows that is really hard to fix without breaking compatibility
20:21:29 <geekosaur> the StackSet is unforgiving and doesn't quite behave the same way people think
20:22:00 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
20:23:29 <Guest8383> umm
20:23:45 <Guest8383> applying trackfloating to my layout doesn't fix the problem
20:23:58 <geekosaur> I did say "may help"
20:24:10 <Guest8383> oh so is that something I'll have to live with?
20:24:20 sogens joins (~sogens@211.30.173.20)
20:25:02 <geekosaur> really, things like floating windows (in particular ones managed in a different way, like scratchpads) really ought to have their own stacks instead of being intermingled into the same underlying workspace stack
20:25:31 <Guest8383> but that's not the case here right?
20:25:36 <geekosaur> wherever the window gets inserted will affect display of every other window in the stack, leading to the behavior you're seeing. and yes, you'll just have to live with it
20:25:51 <Guest8383> ugh
20:26:19 <geekosaur> someday I'll get all the old bugs transferred over to github maybe; this was bug 4 in the original bug tracker, to tell you how long it's been around
20:26:35 <Guest8383> damn
20:27:04 <geekosaur> it is *by far* our biggest shortcoming 😞
20:27:12 <Guest8383> why is xmonad's development so slow?
20:27:37 <geekosaur> because nobody wants to break the core, including breaking backward compatibility
20:27:59 <geekosaur> redoing the StackSet and its relationship to workspaces would break pretty much everything, sadly
20:28:39 <Guest8383> so why not do it in an entirely new release
20:29:01 <geekosaur> we'd have to remove pretty much all of contrib as part of that release
20:29:26 <Guest8383> If that's done then that'll be one of the best days of my life
20:29:29 <Guest8383> not kidding
20:29:37 <geekosaur> it'd all have to be redone from scratch, and who knows where the original contributors are? and some of the things in there we don't really understand enough to rewrite
20:29:58 <geekosaur> like nobody wants to touch MultiToggle
20:30:12 <Guest8383> I always dream of xmonad's clone in rust
20:30:58 <geekosaur> wouldn't surprise me if it happens, although it's a bit more likely to actually be a dwm clone (xmonad is more or less dwm done in haskell)
20:31:36 <Guest8383> so dwm is older than xmonad?
20:31:44 <Guest8383> I actually came from dwm
20:32:02 <Guest8383> I was tired of patching things and then fixing and fiddling with patches
20:32:10 <Guest8383> not the way I'd want to configure things
20:32:16 <[Leary]> Guest8383: I wrote X.L.StateFull.focusTracking to fix this issue, but iirc it somewhat duplicated the module geekosaur recommended; I'm not sure how different they are. That said, I don't see why it shouldn't work if you apply it to the sublayout.
20:32:27 <Guest8383> and xmonad has more features i think
20:33:57 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
20:34:06 <geekosaur> sjanssen came from dwm and felt that a haskell dsl would be an improvement over patching the window manager core to add features, so xmonad was born
20:34:42 <geekosaur> the core is still almost identical to what he wrote back in 2006
20:35:18 <geekosaur> we've moved some things into the config record that had been hardcoded and added basic support for extensiblestate, but I think that's pretty much it for changes to the core
20:35:31 <Guest8383> Isn't janssen the same guy who wrote kmonad?
20:35:56 <Guest8383> [Leary] I'm not sure if i did it correctly but doesn't seem to worl
20:35:59 <Guest8383> work*
20:36:05 <geekosaur> spencer janssen, not david
20:36:14 sogens joins (~sogens@211.30.173.20)
20:36:22 <Guest8383> oh
20:36:25 <Guest8383> hehe
20:36:29 <Guest8383> [Leary]
20:36:30 <Guest8383> import XMonad.Layout.StateFull (focusTracking)
20:36:31 <Guest8383> myLayout = (tiled ||| Full)
20:36:31 <Guest8383>   where
20:36:32 <Guest8383>     tiled = focusTracking $ myDecorate $ windowNavigation $ subTabbed $ boringWindows $ reflectHoriz $ Tall nmaster delta ratio
20:37:01 <[Leary]> Try putting it under subTabbed.
20:39:24 <Guest8383> like this:
20:39:26 <Guest8383>     tiled = myDecorate $ windowNavigation $ subTabbed $ focusTracking $ boringWindows $ reflectHoriz $ Tall nmaster delta ratio
20:39:32 <Guest8383> this failed
20:47:26 <Guest8383> [Leary] ?
20:47:41 <Guest8383> [Leary]
20:48:41 <[Leary]> I don't really know what's going wrong; it's always worked for me. Perhaps below boringWindows too? I can't remember how that one works. But I need to go, so I can't really help more.
20:49:54 <Guest8383> do i need refocuslast too?
20:50:39 <Guest8383> okay
20:50:43 <Guest8383> perhaps some other time
20:50:51 <Guest8383> i need to go to
20:51:00 <Guest8383> gud night everyone... thanks for all the help
21:06:54 <Guest8383> geekosaur what's the recommended way of installing xmonad?
21:07:07 <Guest8383> arch package manager or cabal or stack?
21:07:28 <Guest8383> I installed using cabal and frequently get errors similar to this:
21:08:33 <Guest8383> https://imgur.com/a/Qtsy86y
21:08:37 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
21:11:53 <geekosaur> that just looks like a typo (note the case of the ""m")
21:12:18 <geekosaur> I think most people use stack, especially on Arch because you have to jump through hoops otherwise
21:12:25 <geekosaur> but I use cabal
21:12:50 <geekosaur> "Xmonad" vs. "XMonad"
21:15:08 × Guest8383 quits (~Guest83@114.143.131.219) (Ping timeout: 252 seconds)
21:19:47 sogens joins (~sogens@211.30.173.20)
21:19:49 <geekosaur> whoops
21:29:11 <geekosaur> @tell Guest8383 https://ircbrowse.tomsmeding.com/browse/lcxmonad?id=76768#trid76768
21:29:11 <lambdabot> Consider it noted.
21:32:00 <Etxeberrialex[m]> <Guest8383> "arch package manager or cabal or..." <- I use stack installed with ghcup
21:46:24 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
21:47:34 sogens joins (~sogens@211.30.173.20)
22:04:22 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
22:04:38 sogens joins (~sogens@211.30.173.20)
22:06:24 × sogens quits (~sogens@211.30.173.20) (Client Quit)
22:06:40 sogens joins (~sogens@211.30.173.20)
22:23:33 <quarkQuark[m]> <Etxeberrialex[m]> "I use stack installed with ghcup" <- I switched to ghcup recently from `stack-static` in the AUR to fix an issue with the Haskell language server (it doesn't work with the newest Stackage LTS if you use the ghc installed by stack. I had no problem specifically with the AUR package, but ghcup is good for installing a better ghc).
22:23:33 <quarkQuark[m]> I really don't recommend using and Haskell packages from the standard repositories on Arch, as every time one updates so do all the others and they often break (because Arch decided to have them dynamically linked).
22:38:02 × zawaken quits (~zawaken@user/zawaken) (Quit: ZNC 1.9.x-git-unknown - https://znc.in)
22:39:05 zawaken joins (~zawaken@user/zawaken)
22:45:29 × zawaken quits (~zawaken@user/zawaken) (Quit: ZNC 1.9.x-git-unknown - https://znc.in)
22:47:01 zawaken joins (~zawaken@user/zawaken)
22:49:02 × logzet quits (~quassel@2001:9e8:e50d:7a00:dabb:c1ff:fed3:a1b9) (Ping timeout: 240 seconds)
22:50:06 × zawaken quits (~zawaken@user/zawaken) (Client Quit)
22:52:46 zawaken joins (~zawaken@user/zawaken)
23:12:08 × zawaken quits (~zawaken@user/zawaken) (Quit: ZNC 1.9.x-git-unknown - https://znc.in)
23:13:18 zawaken joins (~zawaken@user/zawaken)
23:18:22 × Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
23:32:11 × sogens quits (~sogens@211.30.173.20) (Quit: WeeChat 3.5)
23:49:46 sogens joins (~sogens@211.30.173.20)

All times are in UTC on 2022-08-04.