好工具 | 平铺窗口WindowGrid

窗口在屏幕上以什么样的风格布局,我见过几种典型的方案。

一种是层叠的,或者浮动的。就是一般我们所见到的情况。如下图所示,三个窗口互相有覆盖的区域。激活的窗口在最前面,挡住后面的窗口。工作的时候视线在这些窗口间转来转去。

我见过最疯狂的层叠,是在大二的时候,看机房里旁边的师兄玩windows3.1自带的纸牌游戏。一大堆纸牌从远到近,从上到下,倾泻而下,后出现的覆盖先出现的。我以为是他写的程序,问这个是怎么实现的。他说这个可容易了。这么炫的效果又特别容易,我更加觉得自己无知。后来有另外的师兄告诉我,那是纸牌游戏打赢时候的过关效果动画。

我见过其次疯狂的层叠,是实验课的时候看到不少同学的编程界面。那么大个显示器,整个都被按钮、菜单、toolbar、广告、各种无关的窗口占据着,留了不到十行五十来个字符的空间,挤在里面写代码。大概就像下图这样。

这类同学往往倾向于用鼠标编程序,在写代码的过程中用鼠标比键盘还多。

层叠以外的风格,我本人走的是另一个极端。无论编程序还是写文字,绝大多数情况下,我都是把当前窗口设置为全屏。不仅最大化而已,而是要占据整个屏幕,连菜单和按钮都隐藏起来。绝大多数操作用快捷键,鼠标也几乎不动。

看起来就像这样,同一时刻只能看到一个窗口。Word快捷键 alt-v u 全屏,退出全屏按ESC。

在用word写作文字时,经常需要用鼠标翻页,使得我正关注的段落在屏幕的正中间。使用 Emacs 则这个操作可以由键盘 C-l 完成,令当前位置上下居中显示。

像这样。Emacs和Firefox全屏快捷键 F11。

如果不是正在写文字或者写代码,我的窗口口风格也并不总简洁到如此极端,而是采用平铺式 tiling的风格。

平铺式风格,又称为瓦片式。整个屏幕划分成若干区域,每个区域显示一个窗口。窗口之间互相没有覆盖,分别在某个区域里最大化。如下图所示,左侧、右上、右下,分别由三个不同窗口占据,窗口间彼此不覆盖。因此可以同时看到三个窗口,但是工作时如果要打字输出,那么需要切换激活的窗口。

平铺式还有个特性对我有帮助。我视力不好,需要非常靠近显示器。与你不同,你看屏幕左上角,只需要转动眼睛,我需要向前探头,再上,再向左。费时间而且易疲劳。所以,我希望窗口特别是我关注的段落能精准地显示在我希望的地方,这样能减少左右移动脖子。

平铺式的窗口管理器(以及各式窗口管理器)在Linux下非常繁荣。Dwm,awesome,xmonad,sawfish,xfce4,各具特色。Windows操作系统下,我长期用过一个,忘了名字。这一轮装机器时似乎找过,找不到了,也许停止开发了。微软开发的PowerToys中的FancyZones,看介绍也非常不错。但是PowerToys是个全家桶,包括很多我不关心的功能,尺寸也不小。所以我没有使用。

我用了 WindowGrid,感觉不错。在这里 http://windowgrid.net/。安装文件也就是运行文件,553KB。运行时占内存30MB多一点,CPU 0。

操作的过程很方便。鼠标点击窗口的标题栏,不要松开,这是拖动窗口的起始动作。差异是,此时按下空格键,当前窗口变成青色,鼠标拖动,只能在事先分配的几个区域中停靠。这几个区域,就是瓦片。如下图所示,青色细线划分了区域,3*2的青色范围是当前正要停靠的区域。

我的机器设置了12个纵列,1行。经常把窗口停在左起第3列到右数第3列之间,正对着我的眼睛。

12*1,这比windows内置的 左1/2,右1/2,左上、右上、左下、右下多了些选择。特别是windows内置的区域要么偏左,要么偏右,居然没有正中间u我最需要的这种配置。

鼠标左键在窗口标题栏按下时,按下 左control 可以只移动而不改变窗口大小。也只能移动到指定的几个区域中,在目标区域中最大化窗口。

 

Leave a Reply

Your email address will not be published. Required fields are marked *