平铺式窗口管理器——Awesome
首先科普一下 Tiling window manager,直译就是“瓦片式窗口管理器”;意译为“平铺式窗口管理器”。
假设你需要同时监视多个程序的状态并进行操作(这种情况非常之普遍),你就需要不停的按 Alt+Tab 切换,但是这会加速 Alt 尤其是 Tab 的磨损(手的磨损忽略了,因为它是可再生的)。
聪明的人就会想出这一招,见图 1:
但是要先调整窗口布局,而且总是不太合适,有点缝隙啥的,分散注意力。
而在 Tiling window manager 中,无论有多少个窗口,都会把屏幕占满,见图 2:
它的窗口没有标题栏(标题在状态栏上),边框尽可能的窄(可再设置为 0),以最大程度的节约桌面空间。
Awesome 还有超低的资源占用率。
完全的键盘控制(在普通的窗口管理器中,完全键盘控制是不现实的,因为调整窗口位置无论如何要用鼠标。而 Tiling WM 中则不需要调整窗口位置)
首先把修饰键设置为 Win 键,这样不会和其它的快捷键冲突。附件里有配置文件,可以直接使用。
- Win+数字键 切换工作区
- Win+Space 切换窗口布局比如水平布局下,新开窗口与原窗口水平分割桌面。布局有下面几种:
- 水平布局与垂直布局各两种,区别在于新开窗口的位置。它们是最常用的布局
- 全屏布局。这个不实用,可以用 Win+m 最大化/还原当前窗口
- 螺旋布局。似乎也不太实用,反正我很少用
- 逐渐减小布局。和上面的那个差不多
- 浮动布局。类似传统窗口管理器的布局。对于不规则的窗口,像 GIMP、mplayer 等,无论在任何布局下窗口都是浮动的。可以在配置文件里设定哪些程序使用浮动窗口。调整浮动窗口的位置时,按下 Win 键,用鼠标拖动就可以了。
- Win+Enter 开启预设的终端
- Win+Shift+C 关闭当前窗口
- Win+Shift+数字键 把当前窗口发送到其它工作区
- Win+j Win+k 切换到其它窗口
- Win+h Win+l 调整当前窗口大小这一组快捷键是VI风格的。
- Win+F2 运行程序
默认的不好用,我安装了一个dmenu。这东东真不赖。
看图 4 顶部的状态栏就是 dmenu 的菜单,根据你的输入动态的显示匹配选项,用方向键进行选项。
对于窗口管理器的选择,我们需要考虑的无非以下几点:
- 配置 简单 Or 复杂
- 功能 强大 Or 实用
- 视觉 华丽 Or 朴素
下面我们以辩证唯物马克思列宁毛爷爷主义的思想来分析一下:
- 配置除了 FVWM 这种矫揉造作的 WM,配置起来严重麻烦;其它 WM 的配置方式虽然不同,但是配置的难度基本在同一量级。
- 功能这一方面,我想大多数人被忽悠了。别家有的功能,咱一定要有;别家没有的功能……那就是卖点。这种无序竞争导致了 WM 中的大部分功能用户根本用不到,却占用了很多的系统资源。所以 FVWM 的卖点就来了——自由配置,想要什么功能自己加,用不着的功能嘛……除非有病,不然谁费老鼻子的力气配置自己根本不需要的功能。
- 华丽的视觉效果养眼,不过效果不好。我用过一段时间的 Compiz,视力并没有好转。向别人炫耀,尤其是对华丽敏感的别人,比如说 MM。占用更多的系统资源。
——下面是我的结论,虽然看起来和上面的论述没什么逻辑关系——
在长期使用的情况下,配置和视觉效果是可以忽略的,而最重要的是功能。那我们需要什么样的功能呢?大家应该注意到了:
- 重量级窗口管理器,如 Metacity(GNOME)、Kwin(KDE)等,它们的功能五花八门,差别也很大
- 而羽量级窗口管理,如 Fluxbox、IceWM 等等等等,它们的功能都差不多
为什么会这样?
上面说了,以功能强大为卖点的 WM,它们之间比拼的是功能多少,所以功能多多益善。而以短小精悍为卖点的 WM,则是越苗条越好,这是一种寻底竞争,最终结果就是保留最少的有用功能。而真正有用的功能,也就那么几个,没啥不一样的。
羽量级窗口管理都有什么功能呢?
- 调整窗口位置,层次…… Tiling WM 中的方式更有效率
- 桌面背景 Tiling WM 中不需要
- 开始菜单、右键菜单 Tiling WM 中不需要
- 键盘控制 Tiling WM 中被强化
- 工作区
- 状态栏
- 运行对话框 Tiling WM 中被强化
- 启动终端快捷键
所以,最终的结论就是,Tiling WM 是高手、准高手、半高手、伪高手的最佳选择。
另:我花了很长时间,差不多把能找到的 Tiling WM 试遍了。把它们的特点/缺点汇报一下:
- dwm 窗口布局较少,标题栏中文乱码(不过有中文补丁可以解决这个问题),使用鼠标操作窗口极易造成混乱
- wmii 调整窗口大小要用鼠标,每个窗口顶部有微型标题栏,标题栏乱码
上面两个 WM 和 dmenu 配合最完美。
以下是第一时间删除的,还有一些记不起名字了:
- xmonad 要安装体积超大的 Haskell
- ion3 标题栏中文,风格不喜欢,窗口间有缝
- larswm 同上