我更喜欢使用键盘来 float 或下沉窗口。不幸的是,当 float 时,窗口不会移动或调整大小,因此几乎没有视觉迹象表明它们尚未平铺。理想情况下,在转移到 float 层后,我会让它们移动到屏幕中心和/或调整大小。
最好的解决方案将与下面的函数(或类似的函数)一起使用,我用键绑定(bind)调用它 - 我希望通过鼠标单击 float 以仍然正常工作。
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
是您的设置。
文档中提到的运算符%
来自于Data.Ratio
; a % b
表示分子 a
和分母 b
的有理数。如果你想使用它,你必须导入:
import Data.Ratio ((%))
关于haskell - Xmonad: float 窗口时,移动或调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157349/