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.