haskell - Xmonad: float 窗口时,移动或调整其大小

标签 haskell window-managers xmonad

我更喜欢使用键盘来 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,gy1gx2gy2 是您的设置。
文档中提到的运算符%来自于Data.Ratioa % b 表示分子 a 和分母 b 的有理数。如果你想使用它,你必须导入:

import Data.Ratio ((%))

关于haskell - Xmonad: float 窗口时,移动或调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157349/

相关文章:

dialog - 使用 api 4.x 在 tinymce 对话框中添加颜色按钮不起作用

window - xmonad - 打开一个窗口进入特定的瓷砖

pointers - 对相同数据和内存分配的引用

无符号整数函数的性能改进

python - 在Python中监控用户 "behavior"的好方法?

linux - 如何从命令行在 *nix 中将文件显示为 "selected"?

XMonad 窗口拇指概述

haskell - xmonad自动切换到应用程序

haskell - Sum 类型函数参数的 GHC 调用约定

haskell - 使用 constructive-algebra 包定义代数模块