構成しようとしています。i3したがって、xzoom
常にフローティングモードで起動します。
問題は、xzoomのウィンドウにaがなく、ウィンドウが作成されたときに設定されていませんが、少し遅れた後に設定されることですWM_CLASS
。WM_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
しかし、カスタムコンパイルが常にオプションであることがわかりました。