.png)
Теперь я использую 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
Для Chrome (или Chromium) вы можете изменить второй элемент, WM_CLASS
запустив его с --class="myClass"
флагом при запуске (документация). Однако это повлияет на class
столбец вашей dwm
конфигурации, а не на instance
тот, который будет первым элементом массива WM_CLASS
.
Тогда решением может быть использование --app=URI
вместо этого , что как бы создает дискретные экземпляры с «фиксированными» именами, которые основаны на входных данныхURI. Это решает проблему динамического заголовка вкладки; однако недостатком является то, что в --app
режиме вы можете иметь только одну вкладку (и она не имеет границ).
Что касается общего вопроса, то можно wmctrl
вручную изменить класс окна:http://tripie.sweb.cz/utils/wmctrl/