Я пишу сценарий для быстрого списка моих многих открытых окон. Я сгруппировал их согласно их классу. Я хотел бы добавить значок к группе.
Я использую wmctrl для получения списка окон:
wmctrl -lx | egrep -v "0x.*(0 N/A)|-1" | sort -k3
egrep
канал отфильтровывает фоновые сервисы.
sort
из третьих групп столбцов окна классом.
Это - демонстрационный вывод:
0x05a00001 0 google-chrome.Google-chrome ubunzeus (8) Newest Questions - Ask Ubuntu - Google Chrome
0x05a00028 0 google-chrome.Google-chrome ubunzeus How to get the icon of a window class? - Ask Ubuntu - Google Chrome
0x06c00010 0 Mail.Thunderbird ubunzeus Inbox - L. D. James - Mozilla Thunderbird
Класс окна является третьим столбцом вывода.
Если я могу получить доступ к значку (в этом образце, google-chrome.Google-chrome
и Mail.Thunderbird
), я могу связать изображение с теми блоками.
Кто-либо знает, где Ubuntu хранит эти изображения? Я полагаю, что они упоминаются как изображения пантомимы или что-то как этот.
В то время как я уверен, что существуют более изящные и официальные методы, я нашел, что обходное решение получает значок.
Можно определить местоположение значков, связанных с приложениями путем поиска настольного средства запуска и просмотра icon=
запись.
В '' примере в вопросе Вы искали бы имя после "." точка, которая является Google-chrome
.
Эта командная строка обеспечит Настольное Средство запуска:
$ egrep -ir "\b$Google-chrome\b" /usr/share/applications/*.desktop ${HOME}/.local/share/applications/*.desktop | head -1
Это даст настольное средство запуска Chrome:
/usr/share/applications/google-chrome.desktop
Теперь поиск icon
запись:
$ egrep -i "icon=" /usr/share/applications/google-chrome.desktop
Icon=google-chrome
В этом случае, средство запуска, не имеющее полный путь, можно найти, что это - значок текущей темы, которая может быть найдена со сценарием Python, предоставленным Stefano Palazzo.