我现在正在使用dwm
窗口管理器,并且我知道我可以设置规则来将应用程序指定给某个标签,如下所示:
static const Rule rules[] = {
/* xprop(1):
* WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title
*/
/* class instance title tags mask isfloating monitor */
{ "Gimp", NULL, NULL, 0, True, -1 },
{ "Google-chrome", NULL, NULL, 1 << 1, False, -1 }, // set chrome's tab. 2013-12-13
{ "UXTerm", NULL, "proxy", 1 << 8, False, -1 }, // let goagent proxy run in tab #9. 2013-12-13
};
现在我想运行多个 chrome 实例,将不同的网页指定给不同的标签。问题是有些网页的标题是动态的。所以我认为按标题设置规则不是一个好的做法。
这是我的问题:如何设置 Google-chrome(或任何 X11 应用程序)的实例名称,以便我可以按实例名称创建规则。
答案1
WM_CLASS
对于 Chrome(或 Chromium),您可以通过在启动时使用标志启动它来更改第二个元素--class="myClass"
(文档)。但是,这会影响配置class
的列dwm
,而不是数组instance
的第一个元素WM_CLASS
。
那么,解决方案可能是使用--app=URI
,它确实会根据输入创建具有“固定”名称的离散实例URI。这解决了动态选项卡标题的问题;但缺点是在--app
模式下您只能有一个选项卡(并且它是无边框的)。
对于一般问题,可以使用wmctrl
手动更改窗口类:http://tripie.sweb.cz/utils/wmctrl/