Open jceb opened 1 year ago
We can add a configurable hook to https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/src/XMonad.Hooks.EwmhDesktops.html#EwmhDesktopsConfig
(pull request welcome but one of us would get to it eventually too :-))
Okay, I managed to get it to work .. it felt a bit more involved than before. Since it's not easily possible to feed my own custom handleEventHook
in - ewmh
places its own event hook in front of any custom hook that I pass in, I resolved to patching the config that ewmh
returns.
It would be helpful if additional symbols like EwmhDesktopsConfig
were exported so it becomes easier to write a custom ewmh event hook.
@jceb so would you like to add an additional field to EwmhDesktopsConfig
?
@slotThe I want to define a new hook (see https://github.com/jceb/dotfiles/blob/master/xorg/.xmonad/xmonad.hs#L118) that requires EwmhDesktopsConfig
.. so I'd like to import it to define the hook.
@jceb That sounds like an https://en.wikipedia.org/wiki/XY_problem though. What you really want is to make _NET_CURRENT_DESKTOP
be handled via greedyView
, right? Whether you achieve that goal via a nice handleDesktopSwitch
-ish hook interface or via copypasting the entire ewmhDesktopsEventHook
implementation and making tiny changes to it, is an implementation detail…
Since it's not easily possible to feed my own custom
handleEventHook
in -ewmh
places its own event hook in front of any custom hook that I pass in, I resolved to patching the config thatewmh
returns. It would be helpful if additional symbols likeEwmhDesktopsConfig
were exported so it becomes easier to write a custom ewmh event hook.
Actually, I just remembered that there's always been a way to override just a part of what ewmhDesktopsEventHook
does. You define a hook wrapper that handles a specific request (_NET_CURRENT_DESKTOP
in your case) and falls back to the ewmh
-defined hook otherwise. See an old example here: https://github.com/xmonad/xmonad-contrib/pull/110/files#diff-cf9308345d1d5de4c1e403c5874d91d723ffc5d4ff79b21c4dbfe6390a592598R230
This should be a better solution for you now, and we'll try to figure out a nice hook api for swapping view
/greedyView
later.
Thanks mate, I found a solution that works for the moment. Thanks for working on the API!
Problem Description
I'd like xmonad to change the current workspace via
W.greedyView
when clicking on a workspace in the desktop bar. Currently,ewmh
usesW.view
inewmhDesktopsEventHook'
which doesn't bring the selected workspace into sight when the workspace is displayed on a another monitor. Before version 0.17 I was able to patchewmhDesktopsEventHook'
manually and feed it back into the configuration via the hook system. With version 0.17 this workaround doesn't seem to be possible anymore.This function is the one that causes the issue for me: https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/src/XMonad.Hooks.EwmhDesktops.html#ewmhDesktopsEventHook%27
Steps to Reproduce
Configuration File
Please include the smallest full configuration file that reproduces the problem you are experiencing:
Checklist
[x] I've read CONTRIBUTING.md
I tested my configuration
xmonad
version 0.17.1xmonad-contrib
version 0.17.1