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

今、異なるタグに指定された異なる Web ページを持つ複数の Chrome インスタンスを実行したいと考えています。問題は、一部の Web ページのタイトルが動的であることです。したがって、タイトルごとにルールを設定するのは良い方法ではないと思います。

質問は次のとおりです。インスタンス名でルールを作成できるように、Google Chrome (または任意の X11 アプリケーション) のインスタンス名を設定する方法を教えてください。

答え1

WM_CLASSChrome(またはChromium)の場合、起動時にフラグを付けて起動することで、の2番目の要素を変更できます--class="myClass"ドキュメンテーション)。ただし、これは設定classの列に影響しdwm、配列instanceの最初の要素となる列には影響しませんWM_CLASS

解決策としては、代わりに を使用することです--app=URI。これは、入力に基づいて「固定」された名前を持つ個別のインスタンスを作成します。URIこれにより、動的なタブ タイトルの問題が解決されます。ただし、欠点は、--appモードではタブが 1 つしか持てないこと (および境界がない) です。

一般的な質問に関しては、wmctrlウィンドウ クラスを手動で変更するには、次のようにします。http://tripie.sweb.cz/utils/wmctrl/

関連情報