xmonad: Maus-Hover-Haken

434
user464014

Ich versuche, dass xmonad das Fenster unter dem Zeiger fokussiert, wenn die Maus bewegt wird, unabhängig davon, welches Fenster fokussiert ist. Dies wurde in dieser Frage angesprochen ; Die mitgelieferte Lösung schlägt jedoch vor, zu verwenden, XMonad.Actions.UpdateFocuswas nicht funktioniert. Ich entschied, dass ich nur die Funktionalität von neu schreiben würde UpdateFocus, aber ich bin nicht sicher, wie man eine Mausbewegung / einen Hover-Hook dazu bekommt.

Ich habe selbst einige Experimente durchgeführt und festgestellt, dass MotionEvents nicht an eventHook übergeben werden, wenn sich der Mauszeiger über einem Fenster befindet, das an seinen eigenen Mausereignissen interessiert ist. Beispiele für solche Fenster sind Gnome-Terminal und Nautilus. Es gibt einen Mailinglisten-Thread, der dieses Problem behandelt. Hier war der Code, den ich für das Experiment verwendet habe.

focusOnMouseMove :: Event -> X All focusOnMouseMove (MotionEvent { ev_x = x, ev_y = y, ev_window = root }) = do return (debugPrint ((show x) ++ " " ++ (show y)) (All True))  -- later in my config  rootMask = rootMask defaultConfig .|. pointerMotionMask, clientMask = clientMask defaultConfig .|. pointerMotionMask, startupHook = adjustEventInput, handleEventHook = myEventHook, 
2

0 Antworten auf die Frage