xmonad: mouse hover hook

2

Estou tentando fazer o xmonad focar a janela abaixo do ponteiro quando o mouse é movido, independentemente de qual janela está focada. Isso foi abordado em esta 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 de mouse / hover hook para fazer isso.

Eu 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 tópico da lista de discussão que está discutindo esse 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,
    
por user464014 29.06.2018 / 09:26

0 respostas