Como definir o nome da instância do google-chrome (ou qualquer aplicativo x11)

Como definir o nome da instância do google-chrome (ou qualquer aplicativo x11)

Agora estou usando dwmo gerenciador de janelas e sei que posso definir regras para especificar um aplicativo para uma determinada tag como esta:

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
};

Agora quero executar várias instâncias do Chrome com diferentes páginas da Web especificadas para tags diferentes. O problema é que alguns títulos das páginas da web são dinâmicos. Portanto, acho que definir regras por título não é uma boa prática.

Aqui está minha pergunta: como definir o nome da instância do Google-chrome (ou de qualquer aplicativo X11) para que eu possa criar as regras pelo nome da instância.

Responder1

Para o Chrome (ou Chromium), você pode alterar o segundo elemento WM_CLASSiniciando-o com o --class="myClass"sinalizador na inicialização (documentação). Porém , isso afetará a classcoluna da sua dwmconfiguração, e não aquela instanceque seria o primeiro elemento do WM_CLASSarray.

A solução, então, pode ser usar --app=URI, em vez disso, o que cria instâncias discretas com nomes "fixos" baseados na entradaURI. Isso resolve o problema do título dinâmico da guia; A desvantagem, porém, é que no --appmodo você só pode ter uma guia (e ela não tem bordas).

Quanto à questão geral, pode-se usar wmctrlpara alterar a classe da janela manualmente:http://tripie.sweb.cz/utils/wmctrl/

informação relacionada