繁体   English   中英

Xmonad:浮动窗口时,移动或调整其大小

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM