为了做好 Windows「窗口管理」,我改造了一个软件……(二)

简介: 这些年来,「大屏就是生产力」的观念深入人心,越来越多的用户开始使用大尺寸屏幕以及多显示器,但有效利用屏幕面积、快捷操作应用窗口还需要软件辅助。

切换布局

GridMove 预置了一些 Grid 布局,这些布局可以满足绝大多数需求。你可以从「模板」选项栏中应用不同的布局。如果要直观地看到模板效果,可以勾选「选项」>「显示网格」,再以任意方式触发窗口调整模式,模板设定的 Grid 便能一览无余:

808272509ce64d175e7810dc4c4b154f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

网格上的数字是该区域的编号,在快捷模式开启的情况下,我们能按下修饰键 + 区域编号快速移动窗口。软件还支持在不同布局间快速切换。首先选择「模板」>「模板切换顺序」,以英文逗号分隔填写不同模板的名称。接着,在激活 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 一共有多少个区域,然后要为每一个区域分别定义两个矩形的位置和大小,每个矩形要定义上下左右四条线的位置,因而每个区域要写八行。

2b2f6653053aaedd00e280acd9748265_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

第一个 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。它小巧灵活,高效可靠,已经默默地陪伴我大半年,我也希望它能帮助到你。


目录
相关文章
|
7月前
|
消息中间件 编译器 API
Windows窗口程序
Windows窗口程序
|
2月前
|
API Windows
Windows之窗口原理
这篇文章主要介绍了Windows窗口原理和如何使用Windows API创建和管理窗口。
63 0
|
3月前
|
XML JSON C#
有哪些让你「 爽到爆炸 」的 Windows 软件?
有哪些让你「 爽到爆炸 」的 Windows 软件?
|
4月前
|
芯片 iOS开发 MacOS
Mac上运行windows软件-GPTK
Mac上运行windows软件-GPTK
222 1
|
4月前
|
Windows
如何快速卸载windows电脑的一些软件?
如何快速卸载windows电脑的一些软件?
102 0
如何快速卸载windows电脑的一些软件?
|
3月前
|
Linux 网络虚拟化 Windows
ccproxy windows上用的代理软件(类似linux系统上的squid)
ccproxy windows上用的代理软件(类似linux系统上的squid)
|
4月前
|
Windows Python
【Azure 批处理 Azure Batch】在Azure Batch中如何通过开始任务自动安装第三方依赖的一些软件(Windows环境)
【Azure 批处理 Azure Batch】在Azure Batch中如何通过开始任务自动安装第三方依赖的一些软件(Windows环境)
|
4月前
|
文字识别 监控 Windows
Mac 常用软件、快捷健、常用操作 和 Windows 对比
Mac 常用软件、快捷健、常用操作 和 Windows 对比
48 0
|
6月前
|
Windows
windows系统vbs脚本 恶搞关不掉的窗口 以及解决办法
windows系统vbs脚本 恶搞关不掉的窗口 以及解决办法
136 2
|
5月前
|
Windows 内存技术
nvm 管理和切换 node版本(windows操作系统)
nvm 管理和切换 node版本(windows操作系统)
88 0