Иконки приложений в виджете "Кнопки окон" и xseticon.

Здравстсвуйте.

Нагуглил по сабжу эту тему. В ней предлагается воспользоваться xseticon для смены иконки окна с помощью команды:

sudo xseticon -id WINDOWID /path/to/icon.png

Но после перезапуска приложения иконка становится дефолтной обратно. Вопрос: как сделать эту команду автоматически выполняемой после запуска приложения?

Также нагуглил похожую тему, но вопрос там так и не решился:
Alt-Tab Preview \ Иконки приложений
Поменяйте иконку в .desktop-файле программы, предварительно скопировав его в ~/.local/share/applications/
lampslave
Поменяйте иконку в .desktop-файле программы, предварительно скопировав его в ~/.local/share/applications/
К сожалению, безрезультатно. Перезапуск иксов тоже не дал результатов.
Screenshot
Меняется иконка самого приложения на панели в виджете "Запуск приложений", но сама пиктограмма окна не меняется (справа виджет "Кнопки окон").
У вашей иконки все размеры есть?
stonepig
как сделать эту команду автоматически выполняемой после запуска приложения?
Это хороший вопрос. Так что он содержит ответ: запускать скрипт, а не прямо приложение.
У меня эта проблема возникает в связи с приложениями, запускаемыми в терминале - если ничего не делать, то все они имеют иконку терминала. Моё решение такое.
1. Используемый мной терминал (urxvt) создаёт переменную окружения WINDOWID с идентификатором окна. Думаю, что это стандартно, то есть и другие терминалы тоже выставляют эту переменную.
2. Для запуска в терминале с установкой иконки служит такой скрипт (первый параметр - программа, второй - иконка):
run-with-icon
APP=$1
xseticon -id "$WINDOWID" $2
shift 2
$APP $@
3. Скрипт запуска, например, mc, выглядит так:
urxvt -e run-with-icon mc  /home/ak/.icons/midnightcommander.png $@
akorop
stonepig
как сделать эту команду автоматически выполняемой после запуска приложения?
Это хороший вопрос. Так что он содержит ответ: запускать скрипт, а не прямо приложение.
У меня эта проблема возникает в связи с приложениями, запускаемыми в терминале - если ничего не делать, то все они имеют иконку терминала. Моё решение такое.
1. Используемый мной терминал (urxvt) создаёт переменную окружения WINDOWID с идентификатором окна. Думаю, что это стандартно, то есть и другие терминалы тоже выставляют эту переменную.
2. Для запуска в терминале с установкой иконки служит такой скрипт (первый параметр - программа, второй - иконка):
run-with-icon
APP=$1
xseticon -id "$WINDOWID" $2
shift 2
$APP $@
3. Скрипт запуска, например, mc, выглядит так:
urxvt -e run-with-icon mc  /home/ak/.icons/midnightcommander.png $@
Прошу прощения за нубский вопрос, но как это все слепить? То есть, какой должен быть алгоритм моих действий с этим кодом, например для хромиума, если у меня иконка лежит в /home/user/.share/.icons/chrome.png ?
Если вы думаете, что все эти костыли будут проще того, что я предложил, то ошибаетесь :)
stonepig
какой должен быть алгоритм моих действий с этим кодом, например для хромиума
Никакой. То, что я привёл, - для консольных приложений. Сначала запускается эмулятор терминала, затем по его WindowId устанавливается иконка, затем запускается то приложение, какое нужно (в моём примере - mc).

Для хрома (и других иксовых приложений) надо
  1. запустить приложение параллельно с последующими действиями;
  2. дождаться фактического появления окна;
  3. узнать идентификатор окна;
  4. установить иконку по идентификатору.
В п.2 и 3 может помочь wmctrl -l
lampslave
Если вы думаете, что все эти костыли будут проще того, что я предложил, то ошибаетесь :)
Жалко, у нас нет FAQ. А то прямо просится такие два вопроса:

Q1 А можно в линуксе сделать xxxxx?
A1 Конечно, можно.

Q2 А как?
A2 Через жопу.
 
Зарегистрироваться или войдите чтобы оставить сообщение.