2024/06/15

2024-06-15 00:06:16 +0200 <haskellbridge> <adamame> I was wondering, is there a function in xmonad contrib like runOrRaise but it checks for a window with a given class in the current workspace only?
2024-06-15 00:06:47 +0200 <haskellbridge> <iqubic (she/her)> Does "additionalKeysP" let me do key chords? For example: something like "M-a s" to trigger a command. That's "Mod + a then s" to invoke a command.
2024-06-15 00:06:53 +0200 <haskellbridge> <iqubic (she/her)> * That would be
2024-06-15 00:09:14 +0200 <geekosaur> yes. but I wouldn't call that a chord; that would be holding down mod, a, and s all together
2024-06-15 00:09:49 +0200 <geekosaur> (which isn't supported by the core; you'd have to do it in a handleEventHook)
2024-06-15 00:10:40 +0200 <geekosaur> basically as you wrote it. see for example https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L225
2024-06-15 00:10:50 +0200 <geekosaur> (mod-control-C, u, e)
2024-06-15 00:11:57 +0200 <haskellbridge> <iqubic (she/her)> Yeah, I'm looking at that, and wondering what exactly that's do it.
2024-06-15 00:12:31 +0200 <haskellbridge> <iqubic (she/her)> *wondering exactly what that does
2024-06-15 00:13:00 +0200 <geekosaur> press mod-control-c, release, press and release u, press and release e
2024-06-15 00:13:13 +0200 <geekosaur> through the magic of XMonad.Actions.Submap
2024-06-15 00:13:52 +0200 <haskellbridge> <iqubic (she/her)> Oh, I need XMonad.Actions.Submap? Got it. Will I need to change the call to "additionalKeysP"?
2024-06-15 00:14:19 +0200 <geekosaur> no, you don't need it, EZConfig builds Submaps for you
2024-06-15 00:15:06 +0200 <haskellbridge> <iqubic (she/her)> Does it import the required modules, or will I need to do that myself?
2024-06-15 00:15:09 +0200 <geekosaur> it assigns M-C-c to a Submap, then adds entries to it for any other binding starting with M-C-c
2024-06-15 00:15:22 +0200 <geekosaur> you don't need to import it since you don't manipulate it directly
2024-06-15 00:15:39 +0200 <haskellbridge> <iqubic (she/her)> Thanks.
2024-06-15 00:29:43 +0200 <haskellbridge> <iqubic (she/her)> Does "additionalKeysP" care about the order I put the modifiers? Will "M-C-a" be the same as "C-M-a"? I assume, because it just combines them into a bitmask, the answer is that order doesn't matter, but I'm not sure.
2024-06-15 00:37:56 +0200 <geekosaur> order doesn't matter
2024-06-15 00:38:23 +0200 <geekosaur> the only rule is that it can't combine keys defined another way, including via multiple additionalKeys / additionalKeysP calls
2024-06-15 00:38:55 +0200 <geekosaur> because they generate code, which can't be introspected so there's no way to combine keymaps generated by separate operations
2024-06-15 00:43:26 +0200 <haskellbridge> <iqubic (she/her)> Thanks
2024-06-15 00:49:45 +0200 <haskellbridge> <iqubic (she/her)> Would using a list comprehension like this work? https://dpaste.com/5V3HCF6MZ
2024-06-15 00:49:57 +0200 <haskellbridge> <iqubic (she/her)> This uses X.L.WindowNavigation
2024-06-15 00:50:44 +0200 <haskellbridge> <iqubic (she/her)> I assume it would, because Haskell is a good language.
2024-06-15 00:50:57 +0200 <geekosaur> looks like it
2024-06-15 00:52:20 +0200 <haskellbridge> <iqubic (she/her)> It's creating "M-<U>", "M-S-<U>", and "M-S-C-<U>" bindings for all 4 directions that send the correct window navigation messages.
2024-06-15 00:55:20 +0200 <geekosaur> looks like it's the right type, at least
2024-06-15 00:57:31 +0200 <haskellbridge> <iqubic (she/her)> It is. There might be some parse errors, but at least it compiles.
2024-06-15 01:00:24 +0200 <haskellbridge> <iqubic (she/her)> Hmm... I'm looking to get to create a keybinging that jumps to layout "Full", but also remembers what the previous layout is so I can jump back to that when I hit the same keybinding again. Would that be possible, and is that just what X.L.Maximize does already?
2024-06-15 01:01:06 +0200 <geekosaur> Maximize isn't quite the same thing
2024-06-15 01:01:23 +0200 <haskellbridge> <iqubic (she/her)> What does Maximize do?
2024-06-15 01:01:37 +0200 <geekosaur> you probably want https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Layout-ToggleLayouts.html
2024-06-15 01:01:57 +0200 <geekosaur> it pops the window out of the layout and makes it _almost_ full screen
2024-06-15 01:02:22 +0200 <haskellbridge> <iqubic (she/her)> geekosaur: That's not what I want.
2024-06-15 01:02:42 +0200 <geekosaur> https://imgur.com/F0qNKBg.png
2024-06-15 01:08:20 +0200 <haskellbridge> <iqubic (she/her)> What I want is something like toggle layout, but I can swap to it from any layout. Like if I'm in a Tabbed layout and I switch to a Full layout, I want to be able to switch back to the Tabbed layout. But if I'm Tall, then I want that to be remembered so that when I switch to Full and back again, I want to return to the Tall layout.
2024-06-15 01:09:25 +0200 <geekosaur> right, that's ToggleLayouts or MultiToggle
2024-06-15 01:10:42 +0200 <haskellbridge> <iqubic (she/her)> MultiToggle is what I want. Thanks!
2024-06-15 01:11:10 +0200 <geekosaur> if all you want is a single toggle, ToggleLayouts is much easier
2024-06-15 01:11:20 +0200 <geekosaur> MultiToggle makes you deal with HLists
2024-06-15 01:12:30 +0200 <haskellbridge> <iqubic (she/her)> Oh? I just want the ability to swap to Full and back again.
2024-06-15 01:13:20 +0200 <geekosaur> that's the example in ToggleLayouts documentation
2024-06-15 01:13:38 +0200 <geekosaur> myLayout = toggleLayouts Full (Tall 1 (3/100) (1/2)) ||| etc..
2024-06-15 01:14:08 +0200 <haskellbridge> <iqubic (she/her)> Yeah, but that seems to imply that you can only swap between Full and Tall.
2024-06-15 01:14:26 +0200 <geekosaur> you did see the |||?
2024-06-15 01:14:58 +0200 <geekosaur> toggleLayouts someLayout (a list of layouts here with |||/Choose between them, as usual)
2024-06-15 01:15:21 +0200 <haskellbridge> <iqubic (she/her)> I think I'm getting confused by the fixity here. I kept assuming that the given example was the same as this:
2024-06-15 01:16:03 +0200 <haskellbridge> <iqubic (she/her)> myLayout = (toggleLayouts Full (Tall nmaster delta initialWidth)) ||| etc..
2024-06-15 01:17:30 +0200 <geekosaur> oh, hm, that is a bad example
2024-06-15 01:18:34 +0200 <haskellbridge> <iqubic (she/her)> Do you have a better one?
2024-06-15 01:19:48 +0200 <geekosaur> toggleLayouts Full $ Tall nmaster delta initialWidth ||| Mirror (Tall nmaster delta initialWidth) ||| Full
2024-06-15 01:20:10 +0200 <geekosaur> I don't think \limiting it to the first layout like the parens there do is particularly useful
2024-06-15 01:20:44 +0200 <haskellbridge> <iqubic (she/her)> No... but that's how I'm reading what the given example does.
2024-06-15 01:21:26 +0200 <geekosaur> yes, that's' what it's doing. as an example it's pretty useless
2024-06-15 01:21:43 +0200 <geekosaur> why would you ever want it to only apply to the first of a list of layouts?
2024-06-15 01:22:24 +0200 <haskellbridge> <iqubic (she/her)> Does function application bind at a higher precedence than the infix Choose operator? According to all that I know about Haskell the answer should be yes.
2024-06-15 01:22:33 +0200 <geekosaur> yes
2024-06-15 01:22:44 +0200 <geekosaur> the only thing that binds tighter is record update syntax
2024-06-15 01:23:38 +0200 <haskellbridge> <iqubic (she/her)> Oh. I didn't know that.
2024-06-15 01:34:52 +0200 <haskellbridge> <iqubic (she/her)> Is it a good idea to run unGrab before spawning my screen locker?
2024-06-15 01:35:46 +0200 <geekosaur> yes, because xmonad retains its key grab while the command is running so keys don't leak to the focused window if it's a Submap or GridSelect or etc.
2024-06-15 01:36:13 +0200 <geekosaur> but screen lockers also grab the keyboard so they'll error out
2024-06-15 01:37:03 +0200 <geekosaur> you could also sleep for half a second before running the locker, which is the old workaround, but unGrab is cleaner
2024-06-15 01:37:14 +0200 <geekosaur> and doesn't suffer from race conditions
2024-06-15 01:37:50 +0200 <haskellbridge> <iqubic (she/her)> Awesome!!!
2024-06-15 01:41:25 +0200 <haskellbridge> <iqubic (she/her)> Wait... wrong WM
2024-06-15 02:26:22 +0200 <haskellbridge> <iqubic (she/her)> I wish there was a better description on how to use X.L.MessageControl.
2024-06-15 02:30:34 +0200dysthesis(~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
2024-06-15 02:32:39 +0200dysthesis(~dysthesis@user/dysthesis)
2024-06-15 02:33:56 +0200 <geekosaur> I don't think there can be; it's kinda tricky to do at all
2024-06-15 02:38:34 +0200 <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`
2024-06-15 02:40:07 +0200 <geekosaur> uh, I think I have too many close parens at the end of that
2024-06-15 02:40:11 +0200 <haskellbridge> <iqubic (she/her)> What do "unEscape" and "escape" do?
2024-06-15 02:40:55 +0200 <geekosaur> escape wraps a message in an EscapedMessage message, and unEscape recognizes EscapedMessage, unwraps the message, and forwards it to its sublayout
2024-06-15 02:41:12 +0200 <geekosaur> everything else is forwarded directly to the sublayout
2024-06-15 02:42:03 +0200 <haskellbridge> <iqubic (she/her)> Will this allow me to send a message to just layout1, or just layout2, or just the super layout?
2024-06-15 02:42:07 +0200 <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
2024-06-15 02:42:48 +0200 <geekosaur> with the example I gave the message will go to both layout1 and layout2 but not TwoPane
2024-06-15 02:43:16 +0200 <haskellbridge> <iqubic (she/her)> Right. I see. Is there a way to get messages to only one of the sub layouts?
2024-06-15 02:43:41 +0200 <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
2024-06-15 02:44:08 +0200 <geekosaur> if you only ever wan t to send it to one of the layouts, only apply unEscape to that layout
2024-06-15 02:44:28 +0200 <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.
2024-06-15 02:44:41 +0200 <geekosaur> messages are broadcast, so there isn't much else you can do
2024-06-15 02:45:23 +0200 <geekosaur> hm, actually I'd have to check, Combo and CompoB might only relay to the active sublayout
2024-06-15 02:45:52 +0200 <haskellbridge> <iqubic (she/her)> They don't.
2024-06-15 02:46:36 +0200 <geekosaur> no, I just checked, it relays messages to all three layouts
2024-06-15 02:47:07 +0200 <haskellbridge> <iqubic (she/her)> You sure about that? https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L159
2024-06-15 02:47:16 +0200 <haskellbridge> <iqubic (she/her)> Is that comment just wrong?
2024-06-15 02:48:07 +0200 <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)
2024-06-15 02:48:27 +0200 <geekosaur> everything else is handled by https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Layout/ComboP.hs#L127-L135
2024-06-15 02:48:35 +0200 <haskellbridge> <iqubic (she/her)> Right. I see. In general it sends the message to all three layouts.
2024-06-15 02:50:36 +0200 <haskellbridge> <iqubic (she/her)> But like I said... I don't actually need to use this, because I actually want a simpler layout.
2024-06-15 02:52:28 +0200 <haskellbridge> <iqubic (she/her)> I'm looking at the DecorationMadness module and I hate bitrot. I just wanna see what the decorations look like.
2024-06-15 03:05:03 +0200td_(~td@i53870931.versanet.de) (Ping timeout: 264 seconds)
2024-06-15 03:35:52 +0200dysthesis(~dysthesis@user/dysthesis) (Quit: dysthesis)
2024-06-15 05:40:42 +0200plp(~plp@2601:380:8386:8b20::cf8f)
2024-06-15 05:43:46 +0200 <plp> is it better to use stack or cabal to compile from source? using netbsd but couldn't get xmobar to install
2024-06-15 05:46:48 +0200 <geekosaur> these days either should work
2024-06-15 05:46:56 +0200 <geekosaur> I personally use cabal
2024-06-15 05:57:51 +0200 <geekosaur> stack is probably better documented since the tutorial uses it (see the /topic)
2024-06-15 06:34:42 +0200 <plp> geekosaur: stack isn't supported on NetBSD
2024-06-15 06:39:44 +0200 <plp> does the cabal.project file need to be in the ~/.config/xmonad directory?
2024-06-15 06:54:44 +0200thunderrd(~thunderrd@118.174.53.205) (Quit: If it wasn't written down it didn't happen...)
2024-06-15 06:55:04 +0200thunderrd(~thunderrd@118.174.53.205)
2024-06-15 06:59:33 +0200thunderrd(~thunderrd@118.174.53.205) (Remote host closed the connection)
2024-06-15 07:00:23 +0200thunderrd(~thunderrd@118.174.53.205)
2024-06-15 07:26:19 +0200plp(~plp@2601:380:8386:8b20::cf8f) (Quit: Client closed)
2024-06-15 07:57:53 +0200 <haskellbridge> <iqubic (she/her)> What do the parameters for the RationalRect mean again? What's the order of the 4 Rationals?
2024-06-15 08:18:33 +0200 <geekosaur> x, y, w, h, as fractions of the screen size
2024-06-15 08:19:03 +0200 <geekosaur> plp, you don't need a cabal.project. just cabal install --package-env=. --lib xmonad xmonad-contrib
2024-06-15 08:19:34 +0200 <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
2024-06-15 08:22:10 +0200 <geekosaur> https://xmonad.org/INSTALL.html#build-using-cabal-install
2024-06-15 08:23:41 +0200 <geekosaur> @tell plp you don't need a cabal.project. just cabal install --package-env=. --lib xmonad xmonad-contrib
2024-06-15 08:23:41 +0200 <lambdabot> Consider it noted.
2024-06-15 08:23:55 +0200 <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
2024-06-15 08:23:55 +0200 <lambdabot> Consider it noted.
2024-06-15 08:24:09 +0200 <geekosaur> @tell plp https://xmonad.org/INSTALL.html#build-using-cabal-install
2024-06-15 08:24:09 +0200 <lambdabot> Consider it noted.
2024-06-15 08:24:47 +0200 <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.
2024-06-15 08:25:02 +0200 <haskellbridge> <iqubic (she/her)> This is not the typical way to do this, and I fully recognize that.
2024-06-15 08:26:15 +0200 <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"
2024-06-15 08:29:25 +0200 <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.
2024-06-15 08:29:49 +0200 <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.
2024-06-15 08:30:00 +0200 <haskellbridge> <iqubic (she/her)> Nix doesn't run on NetBSD
2024-06-15 08:30:05 +0200 <geekosaur> sounds like you reimplemented home-manager?
2024-06-15 08:30:19 +0200 <haskellbridge> <iqubic (she/her)> No. I'm using home-manager to do these things.
2024-06-15 08:30:55 +0200 <haskellbridge> <iqubic (she/her)> https://github.com/IQubic/nixos-config/blob/main/hm/xmonad/xmonad.nix#L3
2024-06-15 08:31:24 +0200 <haskellbridge> <iqubic (she/her)> Line 41 there is also relevant:
2024-06-15 08:31:24 +0200 <haskellbridge> "home.file.".cache/xmonad/xmonad-${pkgs.stdenv.system}".source = "${my-xmonad}/bin/my-xmonad";"
2024-06-15 08:32:06 +0200 <haskellbridge> <iqubic (she/her)> That line there is literally just telling nix to put the compiled binary in the place that "xmonad --restart" expects.
2024-06-15 09:24:10 +0200catman(~catman@user/catman) (Ping timeout: 255 seconds)
2024-06-15 10:17:33 +0200Nixkernal(~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-06-15 13:31:29 +0200td_(~td@i53870937.versanet.de)
2024-06-15 14:57:17 +0200plp(~plp@2601:380:8386:8b20::cf8f)
2024-06-15 14:58:00 +0200Viking667(~user@user/Viking667)
2024-06-15 14:59:08 +0200 <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?
2024-06-15 14:59:44 +0200 <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.
2024-06-15 15:07:32 +0200 <Leary> Viking667: `title ^? "Eagle Mode"`, with (^?) coming from X.H.ManageHelpers.
2024-06-15 15:09:11 +0200 <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.
2024-06-15 15:11:29 +0200 <Viking667> hrm. And I'm on about 0.17 or something like that - from 2022-ish.
2024-06-15 15:12:23 +0200 <Viking667> I had this as the import line: import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat)
2024-06-15 15:12:33 +0200 <Viking667> will that do, or do I just inhale the whole thing instead?
2024-06-15 15:15:08 +0200 <Viking667> Hm. I got this when I attempted to recompile: • Variable not in scope: (^?) :: Query String -> [Char] -> t (and some other stuff)
2024-06-15 15:15:44 +0200 <plp> why is xmobar requiring linux stuff and refusing to build even though it's not a linux system? https://paste.debian.net/1320338
2024-06-15 15:15:55 +0200 <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…
2024-06-15 15:18:21 +0200 <Viking667> hm. It definitely didn't like that: import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat, ^?)
2024-06-15 15:18:39 +0200 <Leary> You need the brackets.
2024-06-15 15:18:53 +0200 <Viking667> hm. What about the two weird quotes you provided?
2024-06-15 15:19:06 +0200 <Viking667> (I think they're backticks in this font)
2024-06-15 15:19:13 +0200 <Leary> No, that's just me separating code from words.
2024-06-15 15:19:21 +0200 <Viking667> Ah, right. thanks
2024-06-15 15:22:12 +0200 <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)
2024-06-15 15:23:11 +0200catman(~catman@user/catman)
2024-06-15 15:23:36 +0200 <Leary> What does `xmonad --version` say?
2024-06-15 15:25:03 +0200 <Viking667> uh. 0.17.0
2024-06-15 15:25:17 +0200 <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.
2024-06-15 15:25:27 +0200 <Viking667> so, I guess go copy that definition into xmonad.hs directly?
2024-06-15 15:25:31 +0200 <plp> here is the relevant error log complaining about netlink is this really needed?: https://paste.debian.net/1320339
2024-06-15 15:25:39 +0200 <Viking667> (I'm guessing the three lines)
2024-06-15 15:26:57 +0200 <plp> no I forgot to word wrap it
2024-06-15 15:29:40 +0200 <Viking667> leary: yup. Only had to adjust for X.Actions.Search
2024-06-15 15:29:43 +0200 <plp> here is a better one, sorry about that: https://paste.debian.net/1320340
2024-06-15 15:30:14 +0200 <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)
2024-06-15 15:30:52 +0200Viking667disapparates
2024-06-15 15:30:57 +0200Viking667(~user@user/Viking667) (*croak*)
2024-06-15 15:34:29 +0200 <plp> so my question is the netlink required for xmobar and is there anything else inside xmobar that's looking for linux stuff?
2024-06-15 17:18:29 +0200 <geekosaur> how are you building xmobar? it comes with a bunch of plugins, which can be enabled/disabled with flags
2024-06-15 17:20:14 +0200 <geekosaur> in particular, I think this means you have +with_nl80211 (or +all_extensions)
2024-06-15 17:23:21 +0200 <geekosaur> the linux-specific plugins are: +with_inotify +with_nl80211 +with_iwlib
2024-06-15 17:23:52 +0200 <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 😞
2024-06-15 17:24:13 +0200 <geekosaur> https://codeberg.org/xmobar/xmobar/issues
2024-06-15 17:43:20 +0200 <plp> I was using the all_extensions flags
2024-06-15 17:46:28 +0200 <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.
2024-06-15 17:50:12 +0200 <geekosaur> yeh, I think you need to file a bug against xmobar
2024-06-15 17:52:49 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-06-15 17:53:38 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com)
2024-06-15 17:53:53 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> adamame: can you explain the use-case?
2024-06-15 17:53:54 +0200 <haskellbridge> <柱間 (@senju_hashirama:aria-net.org)> i didnt understood what you meant
2024-06-15 17:54:04 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-06-15 17:58:54 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com)
2024-06-15 18:02:45 +0200 <haskellbridge> <geekosaur (@geekosaur:matrix.org)> fwiw I think X.H.ManageHelpers has enough for you to add that to the runOrRaise predicate?
2024-06-15 18:14:34 +0200plp(~plp@2601:380:8386:8b20::cf8f) ()
2024-06-15 18:19:15 +0200 <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
2024-06-15 20:12:10 +0200zawaken(~zawaken@user/zawaken) (Ping timeout: 255 seconds)
2024-06-15 20:12:49 +0200zawaken(~zawaken@user/zawaken)
2024-06-15 20:13:04 +0200scardinal(~supreme@0x573d64a9.static.cust.fastspeed.dk) (Ping timeout: 255 seconds)
2024-06-15 20:13:04 +0200joshproehl(~quassel@user/joshproehl) (Ping timeout: 255 seconds)
2024-06-15 20:13:31 +0200joshproehl(~quassel@user/joshproehl)
2024-06-15 20:14:55 +0200scardinal(~supreme@0x573d64a9.static.cust.fastspeed.dk)
2024-06-15 21:51:06 +0200xmonadtrack(~xmonadtra@user/geekosaur/bot/xmonadtrack) (Remote host closed the connection)
2024-06-15 21:56:30 +0200Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no) (Quit: Lost terminal)
2024-06-15 22:10:16 +0200mzg(mzg@abusers.hu) (Ping timeout: 268 seconds)
2024-06-15 22:10:23 +0200mzg(mzg@abusers.hu)
2024-06-15 22:32:23 +0200mzg(mzg@abusers.hu) (Ping timeout: 264 seconds)
2024-06-15 22:32:30 +0200mzg(mzg@abusers.hu)
2024-06-15 22:53:33 +0200Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no)
2024-06-15 23:08:19 +0200Guest0(~Guest0@67-0-55-142.albq.qwest.net)
2024-06-15 23:08:55 +0200 <Guest0> Hello
2024-06-15 23:09:42 +0200 <Guest0> I have one question
2024-06-15 23:11:07 +0200 <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
2024-06-15 23:13:17 +0200 <geekosaur> I'm not sure what you're asking. What documentation are you looking at?
2024-06-15 23:14:03 +0200 <Guest0> I'm having problems understanding what ifClick' does on the module after drag and how to use it
2024-06-15 23:14:25 +0200 <Guest0> And if you're preparing to what documentation is the xmonad documentation
2024-06-15 23:19:33 +0200 <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)
2024-06-15 23:21:05 +0200 <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
2024-06-15 23:21:59 +0200Guest0(~Guest0@67-0-55-142.albq.qwest.net) (Quit: Client closed)
2024-06-15 23:24:38 +0200Guest0(~Guest0@67-0-55-142.albq.qwest.net)
2024-06-15 23:26:13 +0200 <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
2024-06-15 23:27:10 +0200 <geekosaur> pretty much the same as the example for ifClick
2024-06-15 23:27:53 +0200 <geekosaur> `, ((modm, button3), (\w -> focus w >> mouseResizeWindow w >> ifClick' 300 (windows $ W.float w $ W.RationalRect 0 0 1 1) (return ())))`
2024-06-15 23:28:17 +0200 <geekosaur> (that's the ifClick example rewritten to use ifClick')
2024-06-15 23:28:21 +0200 <Guest0> When I tried to use that exact same one it didn't work
2024-06-15 23:28:29 +0200 <geekosaur> note that this has to be part of a mouse binding
2024-06-15 23:29:19 +0200 <Guest0> Is it a fixed number amount only
2024-06-15 23:30:47 +0200 <geekosaur> I don't understand what you're asking
2024-06-15 23:31:21 +0200 <geekosaur> you can use values other than 300; that's just the number ifClick uses. ifClick' allows you to use a different one
2024-06-15 23:32:01 +0200 <Guest0> Thank you very much
2024-06-15 23:32:32 +0200 <Guest0> If I may ask one more question
2024-06-15 23:33:12 +0200 <Guest0> What is this for
2024-06-15 23:33:31 +0200 <Guest0> :: X ()
2024-06-15 23:34:26 +0200 <Guest0> -> X ()
2024-06-15 23:35:02 +0200 <Guest0> How do I use these I keep seeing them in xmonad and I've always wanted to learn how to use them properly
2024-06-15 23:35:24 +0200 <Guest0> I found these on the after drag module
2024-06-15 23:35:32 +0200 <Guest0> I just wanted to know how to use them and what they're for
2024-06-15 23:37:53 +0200 <geekosaur> :: marks a type signature, -> X () is part of a type signature (usually indicating that something is an xmonad action)
2024-06-15 23:38:46 +0200 <Guest0> And the other item
2024-06-15 23:39:57 +0200 <geekosaur> didn't I just say that?
2024-06-15 23:40:08 +0200 <geekosaur> -> X () is part of a type signature (usually indicating that something is an xmonad action)
2024-06-15 23:40:17 +0200 <Guest0> This one
2024-06-15 23:40:54 +0200 <Guest0> - > ()
2024-06-15 23:41:19 +0200 <Guest0> Thank you for the assistance have a nice day
2024-06-15 23:44:29 +0200 <geekosaur> https://en.wikibooks.org/wiki/Haskell/Type_basics#section=9
2024-06-15 23:45:20 +0200 <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)
2024-06-15 23:45:44 +0200 <geekosaur> :t putStrLn
2024-06-15 23:45:46 +0200 <lambdabot> String -> IO ()
2024-06-15 23:46:01 +0200 <geekosaur> in this case, it's an action in the IO monad
2024-06-15 23:59:26 +0200 <Guest0> Where does someone go to learn the basic fundamentals of xmonad and to understand the documentation better thank you very much