Então, em vez do nome, você pode obter a própria imagem:
xprop -id THE_WINDOW_ID -notype 32c _NET_WM_ICON |
perl -0777 -pe '@_=/\d+/g;
printf "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 4\nMAXVAL 255\nTUPLTYPE RGB_ALPHA\nENDHDR\n", splice@_,0,2;
$_=pack "N*", @_;
s/(.)(...)/$2$1/gs' > icon.pam
Você pode canalizar essa saída para pamrgbatopng
(de netpbm
) para obter uma imagem PNG:
xprop -id THE_WINDOW_ID ... | perl -0777 ... | pamrgbatopng > the_icon.png
É hacky, meio lento, mas é algo.
Créditos: Esta é uma combinação de @ Resposta de Thomas Dickey com [Como descarregar o ícone de um programa X em execução?] ( link .