切换布局
GridMove 预置了一些 Grid 布局,这些布局可以满足绝大多数需求。你可以从「模板」选项栏中应用不同的布局。如果要直观地看到模板效果,可以勾选「选项」>「显示网格」,再以任意方式触发窗口调整模式,模板设定的 Grid 便能一览无余:
网格上的数字是该区域的编号,在快捷模式开启的情况下,我们能按下修饰键 + 区域编号快速移动窗口。软件还支持在不同布局间快速切换。首先选择「模板」>「模板切换顺序」,以英文逗号分隔填写不同模板的名称。接着,在激活 GridMove 的情况下,单击鼠标右键便能按顺序切换布局模板。
▍自定义布局
尽管不像 FancyZones 那样直观,在 GridMove 中设计自己的布局并不难。定位到软件安装目录,或者选择「模板」>「打开模板文件夹」,你可以看到Grids 目录。其中所有以 .gird 结尾的文件本质上是文本文件,它们会在软件启动时被读取加载为模板;修改、添加模板只要编辑或新建 gird 文件。建议直接从既有的 gird 文件上修改布局,其语法非常简单,只涉及到了一些四则运算和一些变量,如下所示:
# 井号及之后的内容仅做说明,使用时需删除 [Groups] NumberOfGroups = 12 # 这里写总共有多少区域 [1] # 这是 grid 的编号 # Trigger 部分 TriggerTop = [Monitor1Top] TriggerRight = [Monitor1Left] + [Monitor1Width] / 9 * 1 TriggerBottom = [Monitor1Bottom] TriggerLeft = [Monitor1Left] # Grid 部分;如果不写这一部分,则取 Trigger 的值 GridTop = [Monitor1Top] GridRight = [Monitor1Right] - [Monitor1Width] / 3 * 2 GridBottom = [Monitor1Bottom] GridLeft = [Monitor1Left]
简单来说,我们首先要告诉 GridMove 一共有多少个区域,然后要为每一个区域分别定义两个矩形的位置和大小,每个矩形要定义上下左右四条线的位置,因而每个区域要写八行。
第一个 Trigger 矩形是用于触发窗口调整的区域,应用窗口放到这个矩形中会被缩放、移动。Trigger 区域不能重叠;第二个 Grid 矩形是应用最终所占屏幕的空间,Grid 区域可以重叠;每一个显示器都要单独写配置,GridMove 最多只支持三个显示器。文件中所用的变量以直角括号包围,都非常语义化。保存文件后重启应用就能看到效果。应用安装目录下的 GridsExample 文件夹是一些用作参考的模板,你可以从这些文件中学习如何自定义布局。
▍高级设置
点击「选项」>「更多选项」可以打开 GridMove 的配置文件。如果应用出现问题,删除此文件后重启一般能解决问题。这个配置文件提供一些不方便设置 GUI 的选项,例如:• Gap:控制不同 Grid 间的空隙,但不建议设置为 0。TIM,微信等不使用标准窗口框架的应用,空隙会异常;• NoTrayIcon:控制是否显示托盘图标;• Exceptions:如果「过滤窗口」功能有问题,可以在此处手动填写。这里是不需要控制的应用的 Class3,Window Class 可通过 AHK 组件 Window Spy 获取,以逗号分隔。
▍总结
如何有效利用多显示器和大屏幕?开放自由的 Linux 已然交出趋近于满分的答卷:i3、xmonad 等平铺式窗口管理器羡煞了 Windows 用户。尽管 Windows 平台上已有数个模仿者,但项目工程量大、维护人手不足的同时商业化困难,使用门槛高、配置繁杂的同时效果却只能做到差强人意,效颦之作不少折戟沉沙。在厌倦了多个尚不完善的窗口管理器后,我只得退而求其次,在前人的基础上敲敲打打做出了 GridMove。它小巧灵活,高效可靠,已经默默地陪伴我大半年,我也希望它能帮助到你。