
我現在正在使用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
它,它確實創建具有基於輸入的“固定”名稱的離散實例統一資源標識符。這樣就解決了動態tab標題的問題;然而缺點是在--app
模式下你只能有一個選項卡(而且它是無邊框的)。
至於一般問題,可以wmctrl
手動更改視窗類別:http://tripie.sweb.cz/utils/wmctrl/