xmonad:鼠标悬停钩子

xmonad:鼠标悬停钩子

我试图让 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,

相关内容