mathjax rss 输出测试
初识 Gjs

使用 gdevilspie 对窗口进行自动定位

Garfileo posted @ 2011年9月16日 10:12 in Linux 的世界 with tags gnome gdevilspie devilspie , 6332 阅读

显示器屏幕和分辨率越大,可以平铺展现的窗口也就越多,这是好事情。但是对于像 GNOME 这种采用 MetaCity 窗口管理器的桌面,程序窗口布局管理方面的功能非常有限,不能像瓦片式窗口管理器那样充分利用显示空间。例如在 GNOME 中每次打开 gnome-terminal 的时候,终端窗口的默认位置是左侧靠上,如果我们希望每次开启 gnome-terminal 的时候,窗口能自动移动到屏幕的右侧靠下的位置的话,MetaCity 便无能为力了。还有,如果我们希望在开启 pidgin 的时候,让它的联系人列表窗口以及聊天窗口都自动移到桌面第 2 个工作区,MetaCity 依然无能为力。对于这类的事情,我们可以考虑使用 gdevilspie 工具进行处理。

gdevilspie 是采用 PyGTK 编写的 devilspie 程序的 GUI 前端;devilspie 是作为守护进程负责对指定窗口进行自动定位的程序。各大 Linux 桌面发行版的软件仓库中应该是包含了 gdevilspie 的,而且在安装 gdevilspie 的时候应当会自动依赖安装 devilspie,所以安装过程就不再赘述。下面只是以 gnome-terminal 窗口的定位为例讲述 gdevlispie 的基本用法。

运行 gdevilspie 程序,第一次运行时的界面如下:

gdevilspie 窗口中的『Start』按钮是用于开启 devilspie 守护进程的,现在不需要理睬它,因为我们需要先为各种窗口设定 devilspie 守护进程所接受的规则。下面来看如何为 gnome-terminal 窗口设置自动定位规则。

首先,点击『Add』按钮打开 devilspie 规则编辑器:

规则编辑器可以实现窗口类型捕获与各种定位规则的设定。我们下一步要做的就是捕获 gnome-terminal 窗口的身份信息,所以这需要 gnome-terminal 进程的存在,也就是说如果还没有运行 gnome-terminal 程序,那么现在便运行它。

规则编辑器可以从多种途径来获取窗口的身份信息,通常是选用『application_name』,见上图勾选的选项。设定了窗口身份信息的获取途径之后,点击『Get』按钮,这时会出现当前正在运行的窗口程序的标题名列表,从中选择你需要进行定位控制的窗口,对于本例,只需从中选择当前 gnome-terminal 窗口对应的标题名,然后点击『Apply』按钮完成身份获取。

这时,规则编辑器便会出现所选窗口的身份信息,对于本例而言是所得信息是『Terminal』:

获得终端窗口的身份信息之后,便可以为其设定规则,这时打开规则编辑器的『Actions』面板,从中选择『geometry』并根据自己的屏幕分辨率以及所期望的 gnome-terminal 出现位置来填写相应的『geometry』参数。

注意:如果从 Actions 列表里勾选了『set_workspace』,可以控制窗口在开启时自动移到指定的工作区。这一功能可以解决前文中所述的 pidgin 窗口定位问题。

完成规则的设定之后,可以在规则编辑器的『Raw』面板中看到刚才一系列操作所生成的规则:

现在对已生成的规则取个名字,然后点击『Save』按钮,规则信息会被保存于 $HOME/.devilspie 目录。

设定完规则后,回到 gdevilspie 主界面,可以看到刚才所设的规则已经出现于规则列表。

这时点击『Start』按钮即可运行 devilspie 守护进程,所设规则生效。

自此之后,所开启的 gnome-terminal 窗口会被自动移到我的桌面右侧靠下的位置。

上述即为 gdevilspie 的基本用法。值得一提的是在设定窗口 geometry 参数时,配合 xwininfo 工具会更方便,可以很轻易的将 GNOME 桌面改造成很仿瓦片式窗口管理器。

转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter