Compton에서 고정 ID가 없는 창 제외

Compton에서 고정 ID가 없는 창 제외

저는 Archlinux와 Compton을 사용합니다.

나는 Wikipedia에서 이것을 읽었습니다.

Compton에서 이름이 없는 모든 창을 제외하려면 다음 옵션을 사용하십시오.

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

그러나 이것은 작동하지 않습니다. 그것은 나에게 오류 메시지를 주었다:

패턴 "!name~=" 위치 8: 잘못된 패턴 유형입니다.

제외 목록에 추가하고 싶은 프로그램 두 개를 사용하고 있습니다. 하나는 "dmenu"이고 하나는 "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

아쉽게도 아이디가 바뀌어 사용할 수 없게 되었습니다. 그리고 사용해 "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>

관련 정보