xmonad: крюк для мыши

326
user464014

Я пытаюсь заставить xmonad фокусировать окно под указателем, когда мышь перемещается, независимо от того, какое окно сфокусировано. Это было решено в этом вопросе ; Тем не менее, предоставленное решение предлагает использовать XMonad.Actions.UpdateFocusчто не работает. Я решил, что я просто переписал бы функциональность UpdateFocus, но я не уверен, как заставить движение мыши / зависать для этого.

Я провел некоторые эксперименты самостоятельно и обнаружил, что MotionEvents не передаются в eventHook, если мышь находится над окном, которое интересуется своими собственными событиями мыши. Примеры таких окон включают gnome-Terminal и Nautilus. Существует тема рассылки, обсуждающая эту проблему. Вот код, который я использовал для экспериментов.

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 ответов на вопрос

Похожие вопросы