Haskell Xmonad-如何作为ManageHook的一部分移动鼠标指针?

Haskell Xmonad-如何作为ManageHook的一部分移动鼠标指针?,haskell,intellij-idea,mouse,xmonad,Haskell,Intellij Idea,Mouse,Xmonad,给定此示例myManageHook。在doIgnore之后如何调用?我所有的尝试都导致了类型不兼容 myManageHook = composeAll . concat $ [ -- IntelliJ idea Tweaks -- Manage idea completion window , [ appName =? "sun-awt-X11-XWindowPeer" <&&> className =? "jetbrain

给定此示例
myManageHook
。在
doIgnore
之后如何调用?我所有的尝试都导致了类型不兼容

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
myManageHook=composell。海螺$
[
--IntelliJ想法调整
--管理想法完成窗口
,[appName=?“sun-awt-X11-XWindowPeer”className=?“jetbrains idea”-->doIgnore]
,[(类名~=?“jetbrains-”)(标题~=?“更改”)-->unfloat]
]
哪里
unfloat=ask>>=doF。W.水槽
我的问题是,如果我的鼠标指针位于建议下拉框上,IntelliJ Idea弹出窗口在键入时会失去焦点。这就是为什么当这个窗口出现时,我试图将鼠标移动到屏幕的上部


UPD找到了Idea解决方案的相关线程

您可以使用
liftX
X
操作转换为
查询
操作。不过,您可能希望使用
XMonad.Actions.Warp
而不是
X.A.updateInter
;后者看起来可能有点太神奇了,无法在管理钩子期间明智地发射。无论如何,一旦你看到如何提升
X
动作,你应该能够自己尝试一下

因此,对于
banish
,您可以像这样使用
liftX

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

其他
X
动作也可以用
doIgnore
进行提升和排序。

谢谢,我会试试的。我看到了
liftX
,但在
updateInter
@Dmitriusan中没有适当地使用它。请随意提出一个新问题,详细说明您尝试了什么以及出现了什么问题。看起来您建议的代码已经编译,但
banish UpperLeft
没有执行(光标不移动)当管理钩子被触发时。你知道什么可能是错误的吗,或者我应该提出一个新问题?这里是我尝试的不同变体。我发现了一个与想法设置相关的讨论,以另一种方式实现这一点