10

我更喜欢使用键盘来浮动或下沉窗口。不幸的是,在浮动时,窗口不会移动或调整大小,因此几乎没有视觉迹象表明它们还没有平铺。理想情况下,在移动到浮动层时,我会让它们移动到屏幕的中心和/或调整大小。

最好的解决方案将与下面的函数(或类似的函数)一起使用,我用键绑定调用它——我希望通过鼠标单击浮动以仍然正常工作。

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”,这使得它变得多余。

4

2 回答 2

8

我想你已经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.Ratioa % bab

import Data.Ratio ((%))
于 2012-02-06T09:24:37.137 回答
4

mod+左拖浮动窗口,mod+右拖调整大小。

于 2020-11-18T01:10:30.600 回答