Comptonで固定IDを持たないウィンドウを除外

Comptonで固定IDを持たないウィンドウを除外

私はArchlinuxとComptonを使用しています。

私はウィキペディアでこれを読んだ。

Comptonから名前のないすべてのウィンドウを除外するには、次のオプションを使用します。

$ compton <other arguments> --focus-exclude "! name~="

しかし、これはうまくいきません。それは私にエラーメッセージを与えました:

パターン "!name~=" 位置 8: 無効なパターンの種類です。

除外リストに追加したい2つのプログラムを使用しています。 1つは「dmenu」、1つは「i3lock」、それを除外しようとしています。私はxwininfoIDを取得するために実行します:

xwininfo: Window id: 0x3e00003 "i3lock"

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 3840
  Height: 1080
  Depth: 24
  Visual: 0x23
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: yes
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 3840x1080+0+0

残念ながらIDが変わって使用できなくなりました。そして使用して"class_g = 'i3lock'",も動作しません。

どんなアイデアがありますか?

私もdmenuのArchwikiで別の例を試しましたが、私にはうまくいきませんでした。しかし、それにもかかわらず、私にとってはi3lockがより重要です。

ありがとうございます。

ベストアンサー1

xprop -id 0x3e00003そのウィンドウのすべての原子を取得するには、を使用する必要があります。 dmenuの場合:

WM_CLASS(STRING) = "dmenu", "Dmenu"

以下はCONDITIONこの原子と一致します。

"class_g *?= 'dmenu'"

複数の条件を使用できます。

"class_g *?= 'dmenu' && class_g *?= 'i3lock'"

しかし、wmクラスやi3lockの他の原子を見つけることができませんでした。 i3lockがwindowidを取得できなかったようです。したがって、i3lockの周りに小さなラッパースクリプトを書くことをお勧めします。

#!/bin/sh
killall compton
i3lock -n <other arguments>
compton -b <other arguments>

おすすめ記事