如何通过键绑定在 Xmonad 窗口上运行钩子

问题描述

我正在寻找一种方法来将管理钩子中 doCenterFloat 的行为复制到键绑定。 我想保持窗户“自然”的大小。例如,当我创建一个大小为 800x600 的 OpenGL 窗口时,我必须手动将窗口的标题添加到我的 XMonad 配置中,否则它会被平铺并且窗口的内容会被拉伸。

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

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

以上代码使窗口正确显示。我尝试过切换普通浮动(不是 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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...