Как задать имя экземпляра google-chrome (или любого приложения x11)

Как задать имя экземпляра google-chrome (или любого приложения x11)

Теперь я использую 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/

Связанный контент