2017-10-18 7 views
1

Étant donné cet échantillon myManageHook. Comment puis-je appeler UpdatePointer après doIgnore? Tous mes essais ont abouti à des incompatibilités de type.Xmonad - Comment déplacer le pointeur de la souris dans le cadre de ManageHook?

myManageHook = composeAll . concat $ 
    [ 
     -- IntelliJ idea Tweaks 
     -- Manage idea completion window 
     , [ appName =? "sun-awt-X11-XWindowPeer" <&&> className =? "jetbrains-idea" --> doIgnore ] 
     , [ (className ~=? "jetbrains-") <&&> (title ~=? "Changes in") --> unfloat ] 
    ] 
    where 
     unfloat = ask >>= doF . W.sink 

Mon problème est que la fenêtre pop-up Idée IntelliJ perd le focus lors de la frappe si mon pointeur de la souris se trouve sur des suggestions dropbox. C'est pourquoi j'essaie de déplacer la souris vers une partie supérieure de l'écran lorsque cette fenêtre apparaît.

enter image description here

UPD Trouvé fil avec des solutions de contournement liées à l'idée https://youtrack.jetbrains.com/issue/IDEA-112015#comment=27-2362253

Répondre

1

Vous pouvez utiliser liftX pour transformer une action X en une action Query. Vous voulez probablement utiliser XMonad.Actions.Warp au lieu de X.A.UpdatePointer à la place, cependant; ce dernier a l'air de faire un peu trop de magie pour tirer raisonnablement pendant un hook de gestion. Quoi qu'il en soit, vous devriez être en mesure d'essayer vous-même une fois que vous voyez comment soulever X actions.

Ainsi, pour banish, vous pouvez utiliser liftX comme ceci:

... --> (liftX (banish UpperLeft) >> doIgnore) 

D'autres X actions peuvent être levées et séquencés avec doIgnore la même façon.

+0

Merci, je vais essayer ça. J'ai vu 'liftX', mais je n'ai pas réussi à l'utiliser correctement avec' UpdatePointer' – Dmitriusan

+0

@Dmitriusan N'hésitez pas à ouvrir une nouvelle question avec les détails de ce que vous avez essayé et ce qui s'est mal passé. –

+0

ressemble au code que vous avez proposé, mais 'bannir UpperLeft' n'est pas exécuté (le curseur ne bouge pas) lorsque le hook de gestion est déclenché. Avez-vous une idée de ce qui ne va pas, ou devrais-je ouvrir une nouvelle question? – Dmitriusan