问题描述
我正在寻找一种方法来将管理钩子中 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)