Использование сценария оболочки: Как получить имя иконки (или путь) открытого окна в оконном менеджере на основе X?

Я могу получить идентификаторы окон и заголовки окон, используя wmctrl, но до сих пор я не смог получить путь к иконке, используемой окном. Я пробовал смотреть на утилиты xdg, но самым близким была установка / удаление значков.

Есть ли способ получить имя значка, используемого XDG/GTK, или путь dir к значку в сценарии / командной строке оболочки?

2 ответа

Таким образом, вместо имени вы можете получить само изображение:

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

Вы можете передать, что выход pamrgbatopng (от netpbm) чтобы получить изображение в формате PNG:

xprop -id THE_WINDOW_ID ... | perl -0777  ... | pamrgbatopng > the_icon.png

Хакерский, довольно медленный, но это что-то.

Кредиты: Это сочетание ответа @ Thomas Dickey с [Как вывести значок работающей программы X?] ( https://unix.stackexchange.com/questions/48860/how-to-dump-the-icon-of-a-running-x-program.

Вы не можете получить это от wmctrl потому что он знает только о свойствах окна. Ни одно из свойств, связанных со значками, в подсказках Extended Window Manager не указывает, где находится значок. Это потому, что это может быть растровое изображение в памяти (как это делает xterm для некоторых конфигураций, начиная с патча № 282).

Предположительно, вы уже знаете об этих свойствах:

Но это только отправная точка. Предполагая, что есть файл значков, вы должны искать его в дереве каталогов, где находятся значки, например, /usr/share/pixmapsв соответствии с текущей темой.

Аналогичный вопрос был задан в разделе Каков абсолютный путь к значку, объявленному в файле.desktop?, который указывает на

Получение названия темы зависит от рабочего стола. Соответствующий вопрос (и ответ) можно найти в поиске темы значков, не зависящих от рабочего стола.

Другие вопросы по тегам