如何让firefox主窗口没有使用devilspie的装饰?

首先,我无法运行Compiz。 它不适用于我的旧ati。

我试图让所有firefox主窗口都没有装饰。

这是规则:

( if ( and ( is ( application_name ) "Firefox" ) ( contains ( window_name ) "- Mozilla Firefox" ) ) ( begin ( println "match" ) ( undecorate ) ) ) 

它将解开任何打开的firefox窗口。 只要一个firefox窗口打开,它就会解开任何新窗口。 如果我关闭FF并重新打开,它就没有未修饰。

有任何想法吗?

(这是在Xubuntu 12.04,Xfce 4.10上测试的, xfwm4作为窗口管理器。)

如果您使用的是最新版本的devilspie ,版本0.22,那么现有的firefox窗口新打开的窗口肯定可以自动修饰。 这是在存储库中,可以安装:

 sudo apt-get install devilspie 

还有一个名为gdevilspie的gui,但它产生的规则似乎不准确并且通常不太有效,因此通过阅读自述文件和联机帮助页来编写规则是最容易的。

规则是如何创建的

创建的所有规则必须在~/.devilspie ,并且具有.ds扩展名,因此首先创建该文件夹(如果该文件夹不存在)

 mkdir ~/.devilspie 

如果你想试验找到最好的窗口匹配条件(类,名称等),你可以在~/.devilspie创建一个名为test.ds的新文件并放入其中(debug) 。 现在您可以输入devilspie &然后对于您启动的每个程序, devilspie将检查并在终端中提供一些窗口信息:

 Window Title: 'Mozilla Firefox'; Application Name: 'Firefox'; Class: 'Firefox'; Geometry: 1280x970+0+27 

在这种情况下,最好选择Class( window_class ),因为它可以可靠地识别窗口。

规则

~/.devilspie创建一个名为firefox.ds的新文件并放入其中:

 ; firefox rule to undecorate all existing and new windows (if (is (window_class) "Firefox") (undecorate)) 

评论介绍; 并且不读。 除非指定多个操作,否则不需要在命令中使用begin ,例如(begin undecorate (set_workspace 2)))而不是单个操作(undecorate))

但是, devilspie读取新规则,您必须重新启动它,所以运行

 killall devilspie 

然后重启它

 devilspie & 

每次编辑规则或在~/.devilspie添加新规则时都必须执行此~/.devilspie ,否则将不会读取更改或任何新规则。

使用桌面环境的菜单将它添加到启动应用程序中也非常重要

有关devilspie其他可能性的更多信息,请参阅man devilspie或Ubuntu联机帮助页 。