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

나에게는 효과가 없었지만, 다른 사람이 시도해 보고 싶다면 행운을 빌어요.

관련 정보