web-dev-qa-db-ja.com

静的IDのないウィンドウをComptonから除外する

私はarchlinuxとcomptonを使用しています。

私はウィキでこれを読みました:

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

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

しかし、これは機能しません。それは私にそのエラーメッセージを与えます:

パターン "!name〜 =" pos 8:無効なパターンタイプ。

除外リストに入れたい2つのプログラムを使用しています。 1つは「dmenu」ともう1つは「i3lock」であり、それを除外したいと考えています。 IDを取得するためにxwininfoを実行しました。

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'",の使用も機能しません。

何か案は?

Archwikiのdmenuに関する他の例も試しましたが、これもうまくいきません。しかし、それにもかかわらず、i3lockは私にとってさらに重要です。

ありがとうございました。

5
linuxNewbie

そのウィンドウのすべてのアトムを取得するには、xprop -id 0x3e00003を使用する必要があります。 dmenuの場合は次のようになります。

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

次のCONDITIONはこのアトムに一致します。

"class_g *?= 'dmenu'"

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

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

しかし、i3lockのwmクラスやその他のatomは見つかりませんでした。i3lockはウィンドウIDを取得していないようです。したがって、i3lockの周りに小さなラッパースクリプトを作成することをお勧めします。

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