i3wmでxzoomをフローティングにする

i3wmでxzoomをフローティングにする

構成しようとしています。i3したがって、xzoom常にフローティングモードで起動します。

問題は、xzoomのウィンドウにaがなく、ウィンドウが作成されたときに設定されていませんが、少し遅れた後に設定されることですWM_CLASSWM_NAME

最初の数ミリ秒の属性は次のとおりです。

$ xzoom & sleep .01; xprop -id 0x2200001
_NET_WM_DESKTOP(CARDINAL) = 0
WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0x0
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_ICON_NAME(STRING) = "xzoom"

ご覧のとおり、これを区別する唯一のことは、WM_ICON_NAME数ミリ秒後にヘッダーを追加することです。

$ xprop
WM_NAME(STRING) = "xzoom x4"
_NET_WM_DESKTOP(CARDINAL) = 0
WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0x0
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_ICON_NAME(STRING) = "xzoom"

一致するウィンドウを使用すると、WM_NAME別のウィンドウが元の位置に戻る前に自分で並べ替えられ、画面がひどく点滅します。

for_window [title="xzoom*"] floating enable

命令格言そうですが、WM_ICON_NAME何も見つかりませんでした。

フローティングモードでプログラムを起動する他の方法はありますか?

答え1

再コンパイルすると、xzoomにWM_CLASSを追加できます。

    XChangeProperty(dpy, win, XA_WM_CLASS, XA_STRING, 8,
                    PropModeReplace,
                    (unsigned char *)progname, strlen(progname));

XA_WM_ICON_NAMEどこが設定されている次の行に直接あります。

それからfor_window [instance="xzoom"] floating enable i3設定で私のために働いた!

この古いソフトウェアはまだうまくいくので幸いです:)

答え2

または、i3 構成に次の行を追加してみることもできます。この行はウィンドウのタイトルと正確に一致する必要があります。

for_window [title="^xzoom"] border none; floating enable

しかし、カスタムコンパイルが常にオプションであることがわかりました。

関連情報