Exclua janelas sem identificação estática do Compton

5

Eu uso o archlinux e o compton.

Eu li isso no wiki:

Exclude all windows with no name from compton using the following options:

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

Mas isso não funciona. Isso me dá essa mensagem de erro:

Pattern "! name~=" pos 8: Invalid pattern type.

Eu uso dois programas que quero na lista de exclusão. Um é 'dmenu' e um 'i3lock' e quer excluí-lo. Eu executei xwininfo para obter o id:

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

Infelizmente, o id muda, então não posso usá-lo. E usar "class_g = 'i3lock'", também não funciona.

alguma ideia?

Eu também tentei o outro exemplo sobre o dmenu no archwiki, mas isso não funciona para mim também. Mas, no entanto, o i3lock é ainda mais importante para mim.

Obrigado.

    
por linuxNewbie 14.03.2017 / 17:18

1 resposta

4

Você precisa usar xprop -id 0x3e00003 para obter todos os átomos dessa janela. Para dmenu será:

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

Os seguintes CONDITION correspondem a este átomo:

"class_g *?= 'dmenu'"

Você pode usar várias condições:

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

No entanto, não encontrei a classe wm ou qualquer outro átomo do i3lock. Parece que o i3lock não tem janela. Então eu sugiro escrever um pequeno script wrapper em torno do i3lock:

#!/bin/sh
killall compton
i3lock -n <other arguments>
compton -b <other arguments>
    
por 18.03.2017 / 00:43