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

时间:2012-02-06 08:25:00

标签: 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 })

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

编辑:下面修改后的代码中的keysMoveWindowTo东西实际上只能替换&#34; float windowId&#34;,这是多余的。

2 个答案:

答案 0 :(得分: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
                              }
                          ) 

其中xydxdygx1gy1gx2,{{1}是你的设置。
文档中提到的运算符gy2来自%; Data.Ratio表示带有分子a % b和分母a的有理数。如果要使用它,则必须导入:

b

答案 1 :(得分:0)

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