focusOnMouseMove 的 xmonad 启动挂钩不起作用

focusOnMouseMove 的 xmonad 启动挂钩不起作用

每当光标在窗口上移动时,我试图将焦点集中到窗口上。

使用案例:

  1. 光标聚焦的窗口 A
  2. 用户使用键盘移动焦点
  3. 用户移动鼠标并期望激活光标下方的窗口

我需要将光标移动到,而不是 3其他窗口,然后返回。

这个存在,并且似乎完全符合我的要求。我无法让它发挥作用。

这是我所拥有的,请参阅第 121 行和第 122 行,或者查看差异,以防更容易(有一些缩进更改,我将其留在这里只是为了确保不删除任何相关内容):

@@ -1,5 +1,6 @@
 import XMonad hiding ((|||))
 import XMonad.Actions.RotSlaves
+import XMonad.Actions.UpdateFocus
 import XMonad.Hooks.DynamicLog
 import XMonad.Hooks.EwmhDesktops
 import XMonad.Hooks.ManageDocks
@@ -111,12 +112,14 @@ myKeys =
          , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]

 main = do
-    xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmonad/.xmobarrc -x 0"
-    --xmproc <- spawnPipe "~/.cabal/bin/xmobar ~/.xmonad/.xmobarrc -x 1"
-    xmonad $ withUrgencyHook NoUrgencyHook
-           $ defaultConfig {
+  xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmonad/.xmobarrc -x 0"
+  xmonad
+    $ withUrgencyHook NoUrgencyHook
+    $ defaultConfig {
         workspaces = myWorkspaces
         , terminal = "gnome-terminal"
+        , startupHook = adjustEventInput
+        , handleEventHook = focusOnMouseMove
         , manageHook = myManageHook <+> manageHook defaultConfig
         , layoutHook = avoidStruts $ smartBorders $ myLayout
         , logHook = dynamicLogWithPP xmobarPP

xmonad版本 0.12。我不仅尝试过mod+q,还尝试过注销和登录。

答案1

显然,所使用的指针移动掩码focusOnMouseMove不再以这种方式实现,这使得该贡献变得过时。

这是我在 IRC 上得到的答案:

尝试更新掩码,而不是设置startupHook

, rootMask = rootMask defaultConfig .|. pointerMotionMask
, clientMask = clientMask defaultConfig .|. pointerMotionMask

这对我不起作用,但是嘿,如果其他人想尝试的话,祝你好运。

相关内容