[英]Xmonad: when floating a window, move or resize it
我更喜欢使用键盘来浮动或下沉窗户。 不幸的是,当浮动时,窗口不会移动或调整大小,因此几乎没有视觉迹象表明它们尚未平铺。 理想情况下,在转移到浮动层时,我会让它们移动到屏幕的中心和/或调整大小。
最好的解决方案是与下面的函数(或类似的东西)一起工作,我用一个键绑定调用它——我想通过鼠标点击浮动以仍然正常工作。
toggleFloat = withFocused (\windowId -> do
{ floats <- gets (W.floating . windowset);
if windowId `M.member` floats
then withFocused $ windows . W.sink
else float windowId })
(代码被盗,我还是没有掌握 Haskell :c)
编辑:下面修改后的代码中的 keysMoveWindowTo 内容实际上可以替换“float windowId”,这使得它变得多余。
我想你已经安装了xmonad-contrib
包。 那么你应该看看XMonad.Actions.FloatKeys
我想修改后的功能将是:
...
import XMonad.Actions.FloatKeys
...
toggleFloat = withFocused (\windowId -> do
{ floats <- gets (W.floating . windowset);
if windowId `M.member` floats
then withFocused $ windows . W.sink
else do
keysMoveWindowTo (x, y) (gx1, gy1) windowId
keysResizeWindow (dx, dy) (gx2, gy2) windowId
}
)
其中x
, y
, dx
, dy
, gx1
, gy1
, gx2
, gy2
是您的设置。
文档中提到的 Operator %
来自Data.Ratio
; a % b
表示分子为a
分母为b
有理数。 如果你想使用它,你必须导入:
import Data.Ratio ((%))
mod+左拖动浮动窗口,mod+右拖动调整大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.