Eu estou tentando fazer xmonad focar a janela sob o ponteiro quando o mouse é movido, independentemente de qual janela está focada. Isto foi abordado em essa questão ; no entanto, a solução fornecida sugere usar XMonad.Actions.UpdateFocus o que não funciona. Eu decidi que iria apenas reescrever a funcionalidade de UpdateFocus, mas não tenho certeza de como obter um movimento do mouse / gancho de navegação para fazer isso.

Fiz algumas experiências por conta própria e descobri que os MotionEvents não estão sendo passados ​​para o eventHook se o mouse estiver sobre uma janela que esteja interessada em seus próprios eventos de mouse. Exemplos de tais janelas incluem gnome-terminal e nautilus. Existe um discussão de lista de discussão discutindo este problema. Aqui estava o código que usei para a experimentação.

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,
user464014
fonte