如何通过键绑定 运行 Xmonad Window 上的钩子

How to run a hook on a Xmonad Window via keybinding

我正在寻找一种方法来将我的 managehook 中 doCenterFloat 的行为复制到键绑定。 我想保持 windows 'natural' 大小。例如,当我创建一个大小为 800x600 的 OpenGL window 时,我必须手动将 window 的标题添加到我的 XMonad 配置中,否则它将被平铺并且 [=25] 的内容=] 会被拉伸。

这是我试图复制到键绑定的代码

myManageHook = composeAll
     [ title =? "OpenGL"              --> doCenterFloat ]

以上代码使window正确显示。我尝试过切换普通浮动(不是 centerFloat)的功能,但它们以平铺大小显示,就像这样 Xmonad: Float and resize windows to its “natural size

非常感谢任何帮助

runQuery :: Query a -> Window -> X a

http://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Config-Prime.html#v:runQuery

withFocused :: (Window -> X ()) -> X ()

http://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Config-Prime.html#v:withFocused

使用以上两个函数,其中 myQuery 将设置为您的 Query(如 doCenterFloat)。

myQuery = undefined :: Query
withFocused (\window -> runQuery myQuery window)