Home liberachat/#xmonad: Logs Calendar

Logs on 2024-06-15 (liberachat/#xmonad)

00:26:22 <haskellbridge> <iqubic (she/her)> I wish there was a better description on how to use X.L.MessageControl.
00:30:34 × dysthesis quits (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
00:32:39 dysthesis joins (~dysthesis@user/dysthesis)
00:33:56 <geekosaur> I don't think there can be; it's kinda tricky to do at all
00:38:34 <geekosaur> so if you're trying to send messages through a `combineTwoP (TwoPane 0.03 0.5) (layout1) (layout2) (predicate)` it would be `combineTwoP (TwoPane 0.03 0.5) (unEscape layout1) (unEscape layout2) (predicate))` and you send a message with `sendMessage $ escape theMessage`
00:40:07 <geekosaur> uh, I think I have too many close parens at the end of that
00:40:11 <haskellbridge> <iqubic (she/her)> What do "unEscape" and "escape" do?
00:40:55 <geekosaur> escape wraps a message in an EscapedMessage message, and unEscape recognizes EscapedMessage, unwraps the message, and forwards it to its sublayout
00:41:12 <geekosaur> everything else is forwarded directly to the sublayout
00:42:03 <haskellbridge> <iqubic (she/her)> Will this allow me to send a message to just layout1, or just layout2, or just the super layout?
00:42:07 <geekosaur> so in this case, since combineTwoP doesn't recognize EscapedMessage it'll ignore those messages and forward them on to the sublayouts, where unEscape uwraps them
00:42:48 <geekosaur> with the example I gave the message will go to both layout1 and layout2 but not TwoPane
00:43:16 <haskellbridge> <iqubic (she/her)> Right. I see. Is there a way to get messages to only one of the sub layouts?
00:43:41 <geekosaur> I don't think there's a way to forward different messages to different layouts, except to copy-paste MessageControl and use distinct wrappers
00:44:08 <geekosaur> if you only ever wan t to send it to one of the layouts, only apply unEscape to that layout
00:44:28 <haskellbridge> <iqubic (she/her)> Right... I see. That's fine. I don't actually need anything this complex. I've realized I was overthinking my setup.
00:44:41 <geekosaur> messages are broadcast, so there isn't much else you can do
00:45:23 <geekosaur> hm, actually I'd have to check, Combo and CompoB might only relay to the active sublayout
00:45:52 <haskellbridge> <iqubic (she/her)> They don't.
00:46:36 <geekosaur> no, I just checked, it relays messages to all three layouts
00:47:07 <haskellbridge> <iqubic (she/her)> You sure about that? https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L159
00:47:16 <haskellbridge> <iqubic (she/her)> Is that comment just wrong?
00:48:07 <geekosaur> the commented function is only used by the SwapWindowN message when N /= 0 (https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L117)
00:48:27 <geekosaur> everything else is handled by https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L127-L135
00:48:35 <haskellbridge> <iqubic (she/her)> Right. I see. In general it sends the message to all three layouts.
00:50:36 <haskellbridge> <iqubic (she/her)> But like I said... I don't actually need to use this, because I actually want a simpler layout.
00:52:28 <haskellbridge> <iqubic (she/her)> I'm looking at the DecorationMadness module and I hate bitrot. I just wanna see what the decorations look like.
01:05:03 × td_ quits (~td@i53870931.versanet.de) (Ping timeout: 264 seconds)
01:35:52 × dysthesis quits (~dysthesis@user/dysthesis) (Quit: dysthesis)
03:40:42 plp joins (~plp@2601:380:8386:8b20::cf8f)
03:43:46 <plp> is it better to use stack or cabal to compile from source? using netbsd but couldn't get xmobar to install
03:46:48 <geekosaur> these days either should work
03:46:56 <geekosaur> I personally use cabal
03:57:51 <geekosaur> stack is probably better documented since the tutorial uses it (see the /topic)
04:34:42 <plp> geekosaur: stack isn't supported on NetBSD
04:39:44 <plp> does the cabal.project file need to be in the ~/.config/xmonad directory?
04:54:44 × thunderrd quits (~thunderrd@118.174.53.205) (Quit: If it wasn't written down it didn't happen...)
04:55:04 thunderrd joins (~thunderrd@118.174.53.205)
04:59:33 × thunderrd quits (~thunderrd@118.174.53.205) (Remote host closed the connection)
05:00:23 thunderrd joins (~thunderrd@118.174.53.205)
05:26:19 × plp quits (~plp@2601:380:8386:8b20::cf8f) (Quit: Client closed)
05:57:53 <haskellbridge> <iqubic (she/her)> What do the parameters for the RationalRect mean again? What's the order of the 4 Rationals?
06:18:33 <geekosaur> x, y, w, h, as fractions of the screen size
06:19:03 <geekosaur> plp, you don't need a cabal.project. just cabal install --package-env=. --lib xmonad xmonad-contrib
06:19:34 <geekosaur> I use a full-blown cabal setup, but that's because I'm a developer and use git checkouts, plus I have extra dependencies most people don't want or need
06:22:10 <geekosaur> https://xmonad.org/INSTALL.html#build-using-cabal-install
06:23:41 <geekosaur> @tell plp you don't need a cabal.project. just cabal install --package-env=. --lib xmonad xmonad-contrib
06:23:41 <lambdabot> Consider it noted.
06:23:55 <geekosaur> @tell plp I use a full-blown cabal setup, but that's because I'm a developer and use git checkouts, plus I have extra dependencies most people don't want or need
06:23:55 <lambdabot> Consider it noted.
06:24:09 <geekosaur> @tell plp https://xmonad.org/INSTALL.html#build-using-cabal-install
06:24:09 <lambdabot> Consider it noted.
06:24:47 <haskellbridge> <iqubic (she/her)> I'm just telling NixOS to treat my config as a stand alone cabal project and compile it for me. One cool benefit of this is that I can easily tell Nix to fetch additional libraries from Hackage if I want/need extra stuff.
06:25:02 <haskellbridge> <iqubic (she/her)> This is not the typical way to do this, and I fully recognize that.
06:26:15 <haskellbridge> <iqubic (she/her)> Essentially, I'm just asking nix to call cabal for me and is just like "Sure thing buddy. I'll recompile that only when changes have been made"
06:29:25 <haskellbridge> <iqubic (she/her)> And then I tell Nix to move the resulting binary to ~/.cache/xmonad/xmonad-x86_64-linux so that "xmonad --restart" works properly. I also tell nix to write the .xinitrc for me, which calls my specially compiled xmonad binary.
06:29:49 <haskellbridge> <iqubic (she/her)> This isn't something the average user will need to do. And this also isn't something that works on NetBSD.
06:30:00 <haskellbridge> <iqubic (she/her)> Nix doesn't run on NetBSD
06:30:05 <geekosaur> sounds like you reimplemented home-manager?
06:30:19 <haskellbridge> <iqubic (she/her)> No. I'm using home-manager to do these things.
06:30:55 <haskellbridge> <iqubic (she/her)> https://github.com/IQubic/nixos-config/blob/main/hm/xmonad/xmonad.nix#L3
06:31:24 <haskellbridge> <iqubic (she/her)> Line 41 there is also relevant:
06:31:24 <haskellbridge> "home.file.".cache/xmonad/xmonad-${pkgs.stdenv.system}".source = "${my-xmonad}/bin/my-xmonad";"
06:32:06 <haskellbridge> <iqubic (she/her)> That line there is literally just telling nix to put the compiled binary in the place that "xmonad --restart" expects.
07:24:10 × catman quits (~catman@user/catman) (Ping timeout: 255 seconds)
08:17:33 × Nixkernal quits (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
11:31:29 td_ joins (~td@i53870937.versanet.de)
12:57:17 plp joins (~plp@2601:380:8386:8b20::cf8f)
12:58:00 Viking667 joins (~user@user/Viking667)
12:59:08 <Viking667> 'llo all. I've got a question (doesn't everyone?). in the statement findEagle = title =? "Eagle Mode ", how do I get it to match just on the Eagle Mode part, and not any other thing glommed on the end?
12:59:44 <Viking667> err, "Eagle Mode - Clock" would be the window string, but that "clock" could be any one of a number of things. The "Eagle Mode" bit stays the same.
13:07:32 <Leary> Viking667: `title ^? "Eagle Mode"`, with (^?) coming from X.H.ManageHelpers.
13:09:11 <Leary> Though if your version of contrib is not most recent, you might need to copy the definition into your xmonad.hs. IIRC it was broken until recently.
13:11:29 <Viking667> hrm. And I'm on about 0.17 or something like that - from 2022-ish.
13:12:23 <Viking667> I had this as the import line: import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat)
13:12:33 <Viking667> will that do, or do I just inhale the whole thing instead?
13:15:08 <Viking667> Hm. I got this when I attempted to recompile: • Variable not in scope: (^?) :: Query String -> [Char] -> t (and some other stuff)
13:15:44 <plp> why is xmobar requiring linux stuff and refusing to build even though it's not a linux system? https://paste.debian.net/1320338
13:15:55 <Leary> Viking667: If you're on 0.17.1 or later, add `(^?)` to that import list to bring it into scope. Otherwise copy the definition from here: https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/src/XMonad.Hooks.ManageHelpers.html#%5E%3F
13:18:21 <Viking667> hm. It definitely didn't like that: import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat, ^?)
13:18:39 <Leary> You need the brackets.
13:18:53 <Viking667> hm. What about the two weird quotes you provided?
13:19:06 <Viking667> (I think they're backticks in this font)
13:19:13 <Leary> No, that's just me separating code from words.
13:19:21 <Viking667> Ah, right. thanks
13:22:12 <Viking667> Hrm, still not (quite) doing the right thing... it's spawning a new version of the window instead of simply fetching the originally spawned window (I'd set it up as a scratchpad, or tried to anyhow)
13:23:11 catman joins (~catman@user/catman)
13:23:36 <Leary> What does `xmonad --version` say?
13:25:03 <Viking667> uh. 0.17.0
13:25:17 <Leary> Oh, I guess that won't quite tell you the version of contrib... Whatever; presume your contrib is too old and copy the definition instead.
13:25:27 <Viking667> so, I guess go copy that definition into xmonad.hs directly?
13:25:31 <plp> here is the relevant error log complaining about netlink is this really needed?: https://paste.debian.net/1320339
13:25:39 <Viking667> (I'm guessing the three lines)
13:26:57 <plp> no I forgot to word wrap it
13:29:40 <Viking667> leary: yup. Only had to adjust for X.Actions.Search
13:29:43 <plp> here is a better one, sorry about that: https://paste.debian.net/1320340
13:30:14 <Viking667> leary: works fine now, thank you for your help. (I guess that's what I get for trying to import a file that started with 0.13)
13:30:52 Viking667 disapparates
13:30:57 Viking667 parts (~user@user/Viking667) (*croak*)
13:34:29 <plp> so my question is the netlink required for xmobar and is there anything else inside xmobar that's looking for linux stuff?
15:18:29 <geekosaur> how are you building xmobar? it comes with a bunch of plugins, which can be enabled/disabled with flags
15:20:14 <geekosaur> in particular, I think this means you have +with_nl80211 (or +all_extensions)
15:23:21 <geekosaur> the linux-specific plugins are: +with_inotify +with_nl80211 +with_iwlib
15:23:52 <geekosaur> oh, hm, but looking at the cabal file, I think it stupidly assumes that if you're not on freebsd then you must be on linux 😞
15:24:13 <geekosaur> https://codeberg.org/xmobar/xmobar/issues
15:43:20 <plp> I was using the all_extensions flags
15:46:28 <plp> I just tried with _dbus with_threaded with_xrender with_xpm with_alsa with_datazone and got an error: StatFS.hsc:34:10: fatatl error: sys/vfs.h: no such file or directory compilation terminated.
15:50:12 <geekosaur> yeh, I think you need to file a bug against xmobar
15:52:49 × haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
15:53:38 haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com)
15:53:53 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> adamame: can you explain the use-case?
15:53:54 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> i didnt understood what you meant
15:54:04 × haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
15:58:54 haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com)
16:02:45 <haskellbridge> <geekosaur (@geekosaur:matrix.org)> fwiw I think X.H.ManageHelpers has enough for you to add that to the runOrRaise predicate?
16:14:34 plp parts (~plp@2601:380:8386:8b20::cf8f) ()
16:19:15 <haskellbridge> <adamame> yes I ended up using some of those like currentWS for exa., tho I think I will stick with GroupNavigation as I can specify a direction in its functions and I like that
18:12:10 × zawaken quits (~zawaken@user/zawaken) (Ping timeout: 255 seconds)
18:12:49 zawaken joins (~zawaken@user/zawaken)
18:13:04 × scardinal quits (~supreme@0x573d64a9.static.cust.fastspeed.dk) (Ping timeout: 255 seconds)
18:13:04 × joshproehl quits (~quassel@user/joshproehl) (Ping timeout: 255 seconds)
18:13:31 joshproehl joins (~quassel@user/joshproehl)
18:14:55 scardinal joins (~supreme@0x573d64a9.static.cust.fastspeed.dk)
19:51:06 × xmonadtrack quits (~xmonadtra@user/geekosaur/bot/xmonadtrack) (Remote host closed the connection)
19:56:30 × Miroboru quits (~myrvoll@178-164-114.82.3p.ntebredband.no) (Quit: Lost terminal)
20:10:16 × mzg quits (mzg@abusers.hu) (Ping timeout: 268 seconds)
20:10:23 mzg joins (mzg@abusers.hu)
20:32:23 × mzg quits (mzg@abusers.hu) (Ping timeout: 264 seconds)
20:32:30 mzg joins (mzg@abusers.hu)
20:53:33 Miroboru joins (~myrvoll@178-164-114.82.3p.ntebredband.no)
21:08:19 Guest0 joins (~Guest0@67-0-55-142.albq.qwest.net)
21:08:55 <Guest0> Hello
21:09:42 <Guest0> I have one question
21:11:07 <Guest0> How do I implement ifClick' on after drag I've seen the documentation and it doesn't seem clear to me thank you for the help
21:13:17 <geekosaur> I'm not sure what you're asking. What documentation are you looking at?
21:14:03 <Guest0> I'm having problems understanding what ifClick' does on the module after drag and how to use it
21:14:25 <Guest0> And if you're preparing to what documentation is the xmonad documentation
21:19:33 <geekosaur> okay, the idea is you call this after initiating a drag in code (the example code for `ifClick` uses `mouseResizeWindow`). drags are not synchronous; once initiated, the main event loop tracks the drag and runs code after it completes (see `afterDrag`, and `dragging` in https://hackage.haskell.org/package/xmonad-0.18.0/docs/XMonad-Core.html#t:XState)
21:21:05 <geekosaur> `afterDrag` modifies the action to be taken after the drag completes. `ifClick'` uses `afterDrag` to install a cleanup handler that checks if the drag was a click and executes its second parameter for a click (as defined by its first argument) or a drag
21:21:59 × Guest0 quits (~Guest0@67-0-55-142.albq.qwest.net) (Quit: Client closed)
21:24:38 Guest0 joins (~Guest0@67-0-55-142.albq.qwest.net)
21:26:13 <Guest0> How do I use this on x-monad module after drag ifClick' https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Actions-AfterDrag.html thank you
21:27:10 <geekosaur> pretty much the same as the example for ifClick
21:27:53 <geekosaur> `, ((modm, button3), (\w -> focus w >> mouseResizeWindow w >> ifClick' 300 (windows $ W.float w $ W.RationalRect 0 0 1 1) (return ())))`
21:28:17 <geekosaur> (that's the ifClick example rewritten to use ifClick')
21:28:21 <Guest0> When I tried to use that exact same one it didn't work
21:28:29 <geekosaur> note that this has to be part of a mouse binding
21:29:19 <Guest0> Is it a fixed number amount only
21:30:47 <geekosaur> I don't understand what you're asking
21:31:21 <geekosaur> you can use values other than 300; that's just the number ifClick uses. ifClick' allows you to use a different one
21:32:01 <Guest0> Thank you very much
21:32:32 <Guest0> If I may ask one more question
21:33:12 <Guest0> What is this for
21:33:31 <Guest0> :: X ()
21:34:26 <Guest0> -> X ()
21:35:02 <Guest0> How do I use these I keep seeing them in xmonad and I've always wanted to learn how to use them properly
21:35:24 <Guest0> I found these on the after drag module
21:35:32 <Guest0> I just wanted to know how to use them and what they're for
21:37:53 <geekosaur> :: marks a type signature, -> X () is part of a type signature (usually indicating that something is an xmonad action)
21:38:46 <Guest0> And the other item
21:39:57 <geekosaur> didn't I just say that?
21:40:08 <geekosaur> -> X () is part of a type signature (usually indicating that something is an xmonad action)
21:40:17 <Guest0> This one
21:40:54 <Guest0> - > ()
21:41:19 <Guest0> Thank you for the assistance have a nice day
21:44:29 <geekosaur> https://en.wikibooks.org/wiki/Haskell/Type_basics#section=9
21:45:20 <geekosaur> in our case, X is a monad that carries around xmonad's internal state, and X () indicates that something is an action in the X monad (that is, it does something instead of producing a value)
21:45:44 <geekosaur> :t putStrLn
21:45:46 <lambdabot> String -> IO ()
21:46:01 <geekosaur> in this case, it's an action in the IO monad
21:59:26 <Guest0> Where does someone go to learn the basic fundamentals of xmonad and to understand the documentation better thank you very much
22:01:04 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> Guest0: there's a video about it, by the youtuber named "distrotube" it's a good introduction
22:01:31 <Guest0> Thank you
22:09:37 × Guest0 quits (~Guest0@67-0-55-142.albq.qwest.net) (Quit: Client closed)
23:38:38 × yosafbridge quits (~yosafbrid@static.38.6.217.95.clients.your-server.de) (Quit: Leaving)

All times are in UTC on 2024-06-15.