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

use*_*815 6 haskell window-managers xmonad

我更喜欢用键盘来漂浮或下沉窗户.不幸的是,当浮动时,窗户不会移动或调整大小,因此很少有视觉指示它们仍然没有平铺.理想情况下,在转移到浮动层时,我会将它们移动到屏幕中心和/或调整大小.

最好的解决方案将与下面的函数(或类似的东西)一起工作,我用keybind调用 - 我想通过鼠标点击浮动仍然可以正常工作.

toggleFloat = withFocused (\windowId -> do
                              { floats <- gets (W.floating . windowset);
                                if windowId `M.member` floats
                                then withFocused $ windows . W.sink
                                else float windowId })
Run Code Online (Sandbox Code Playgroud)

(代码被盗,我仍然没有掌握Haskell:c)

编辑:keysMoveWindowTo下面修改过的代码中的东西实际上只能替换"float windowId",这是多余的.

Mat*_*nov 6

我想你已经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
                              }
                          ) 
Run Code Online (Sandbox Code Playgroud)

其中x,y,dx,dy,gx1,gy1,gx2,gy2是你的设置.文档中提到的
运算符%来自Data.Ratio; a % b指分子a和分母的有理数b.如果要使用它,则必须导入:

import Data.Ratio ((%))
Run Code Online (Sandbox Code Playgroud)


Fan*_*mX1 5

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