StartupWMClass não modificando ícones no Plank

Certos programas que instalo, seja por flatpak ou pelo pacman estão com “problemas” visual nos ícones. Uma medida profilática que encontrei foi buscar o StartupWMClass desses ao rodar o comando xprop WM_CLASS e obter seu output, mas nem todos pegam da forma correta. Alguma sugestão?
Caso 1 - Onde funciona (ao menos no Plank)

Caso 2 - Onde não funciona (nem no Plank)

Alguma sugestão? Estou utilizando o Archcraft com Openbox e X11. Informações adicionais :point_down:

System:
  Host: joao-ab350mgaming3 Kernel: 5.19.3-xanmod1-1-x64v2 arch: x86_64
    bits: 64 Desktop: Openbox v: 3.6.1 Distro: Archcraft
Machine:
  Type: Desktop System: Gigabyte product: AB350M-Gaming 3 v: N/A
    serial: <superuser required>
  Mobo: Gigabyte model: AB350M-Gaming 3-CF v: x.x
    serial: <superuser required> UEFI: American Megatrends v: F50d
    date: 07/02/2020
CPU:
  Info: 8-core model: AMD Ryzen 7 1700 bits: 64 type: MT MCP cache: L2: 4 MiB
  Speed (MHz): avg: 2881 min/max: 1550/3000 cores: 1: 3000 2: 3000 3: 3000
    4: 3000 5: 2562 6: 3000 7: 3050 8: 2855 9: 2672 10: 3000 11: 2568 12: 3000
    13: 3000 14: 3000 15: 2843 16: 2554
Graphics:
  Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
    driver: amdgpu v: kernel
  Display: x11 server: X.Org v: 21.1.4 driver: X: loaded: amdgpu
    unloaded: fbdev,modesetting,vesa gpu: amdgpu resolution: 2560x1080
  Message: Unable to show GL data. Required tool glxinfo missing.
Audio:
  Device-1: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]
    driver: snd_hda_intel
  Device-2: AMD Family 17h HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.19.3-xanmod1-1-x64v2 running: yes
  Sound Server-2: PulseAudio v: 16.1 running: yes
  Sound Server-3: PipeWire v: 0.3.56 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    driver: r8169
  IF: eno1 state: up speed: 1000 Mbps duplex: full mac: e0:d5:5e:8f:34:ae
  IF-ID-1: docker0 state: up speed: 10000 Mbps duplex: unknown
    mac: 02:42:a8:85:30:dd
  IF-ID-2: veth24eb24e state: up speed: 10000 Mbps duplex: full
    mac: 3a:cd:ec:eb:4b:e0
Drives:
  Local Storage: total: 1.13 TiB used: 144.47 GiB (12.5%)
  ID-1: /dev/sda vendor: Kingston model: SA400S37240G size: 223.57 GiB
  ID-2: /dev/sdb vendor: Seagate model: ST1000DM010-2EP102 size: 931.51 GiB
Partition:
  ID-1: / size: 214.42 GiB used: 20.8 GiB (9.7%) fs: ext4 dev: /dev/sda3
  ID-2: /boot/efi size: 952.1 MiB used: 288 KiB (0.0%) fs: vfat
    dev: /dev/sda1
  ID-3: /home size: 915.82 GiB used: 123.67 GiB (13.5%) fs: ext4
    dev: /dev/sdb1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 35.2 C mobo: N/A gpu: amdgpu temp: 49.0 C
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 761
Info:
  Processes: 362 Uptime: 25m Memory: 15.58 GiB used: 4.99 GiB (32.0%)
  Shell: Zsh inxi: 3.3.20
1 curtida

Isso é algo que me incomoda bastante mas não sabia como resolver. Seria possível vc me dar um exemplo prático?

Por exemplo, o aplicativo whatsapp-desktop, instalado via flatpak, foi o primeiro que tive esse problema. Descobri em uma postagem no stack overflow que um simple xprop WM_CLASS e seu resultado, ao colocar no .desktop do programa em questão seria o bastante. Fiz até uma postagem recente ensinando para programas em flatpak, o que deu certo para o emoji-pickerm baixado via pacman, por exemplo.

1 curtida

Infelizmente não funciona no wayland.

Sim, pois o comando é atrelado ao X11. Dá uma olhada neste tópico do Stack OverFlow e veja se atende seu caso

1 curtida

Até onde sei o parâmetro StartupWMClass presente nos .desktop serve para agrupar as aplicações de acordo com suas classes, e não pra definir o ícone… Se quiser configurar uma aplicação para inicializar com uma determinada classe, altere a linha no .desktop informando a classe desejada como no exemplo abaixo…

[Desktop Entry]
Name=Unity Hub
Exec=/opt/unityhub/unityhub --class=UnityHub %U
StartupWMClass=UnityHub

Isso fará com que a aplicação passe a iniciar com a classe definida, impedindo que talvez a mesma venha alterar…


Mais sobre Recognized desktop entry keys

1 curtida

Não, não está como sugeri, note a presença do parâmetro --class=UnityHub ao executar a aplicação…

1 curtida

Reiniciei a máquina também, mas sem efeito

Conferiu se o tema à qual está usando, tem o ícone desta aplicação? Chegou a testar com outras alternativas ao Plank?

1 curtida

Positivo. Ele apresenta o ícone da UnityHub ao pesquisar no launcher global

image

Quando a Unity em si é aberta, ele mostra o ícone padrão
image
Na esquerda, a omissão do ícone referente ao unityHub, e na direita o ícone da Unity em si

Experimente iniciar o Plank, em modo de debug, afim de encontrar à causa deste comportamento…

plank -d
1 curtida