Почему значок не меняется в панели запуска при изменении файла .desktop?

Я немного придурок и изменил свои наиболее часто используемые значки приложений, чтобы иметь собственную тему steam-punk.

Единственным приложением, иконку которого я не смог изменить, было qBitTorrent .

Файл .desktop s присутствует только в /usr/share/applications, чтобы сделать его доступным для всех пользователей, и было подтверждено, что ~/.local/share/applications/ не содержит файлов рабочего стола.

Кто-нибудь может пролить свет на то, почему это происходит? (И дать какое-то руководство, как изменить эту иконку?)

SteamPunk Launcher

Для тех, кто не знает о SteamPunk: я хочу изменить уродливый синий значок ... ; -)

Еще немного info:

$ lsattr /usr/share/applications/qBittorrent.desktop
-------------e-- /usr/share/applications/qBittorrent.desktop

$ lsattr /usr/share/pixmaps/Steampunk-Vlc-Audio-Player-Icon-Mkii.png 
-------------e-- /usr/share/pixmaps/Steampunk-Vlc-Audio-Player-Icon-Mkii.png

Теперь, когда я запускаю qTox самостоятельно (с небольшой помощью @JacobVlijm), и никто не дал мне никаких идей для qBittorrent, я добавляю bounty ...

Примечание:

Я не хочу менять значок с помощью переопределения ~/.local/share/applications/, но для всех пользователей в /usr/share/applications/ или любых других общесистемных настройка!

2
задан 15 September 2015 в 19:41

1 ответ

Проблема состоит в том что qBittorrent's .desktop файл устанавливает значок на основе локализации:

sed -n '/^Icon\(\[[^]]*\]\)\?=.*$/p' /usr/share/applications/qBittorrent.desktop
Icon=qbittorrent
Icon[be]=qbittorrent
Icon[cs]=qbittorrent
Icon[el]=qbittorrent
Icon[en_GB]=qbittorrent
Icon[es]=qbittorrent
Icon[eu]=qbittorrent
Icon[fi]=qbittorrent
Icon[gl]=qbittorrent
Icon[it]=qbittorrent
Icon[ja]=qbittorrent
Icon[lt]=qbittorrent
Icon[nb]=qbittorrent
Icon[pl]=qbittorrent
Icon[pt]=qbittorrent
Icon[pt_BR]=qbittorrent
Icon[ro]=qbittorrent
Icon[ru]=qbittorrent
Icon[sv]=qbittorrent
Icon[uk]=qbittorrent
Icon[vi]=qbittorrent
Icon[zh_TW]=qbittorrent
Icon[en_AU]=qbittorrent

Так изменение значка установлено первым дженериком Icon= запись не помогает:

screenshot1

Необходимо будет установить Icon= запись, соответствующая Вашей текущей локали; однако начиная с локализации значка путем установки того же самого значка для каждой локали очень глупая вещь сделать в первом месте, Вы могли бы также просто измениться весь Icon= записи путем выполнения этой команды (это создаст a qBittorrent.desktop.bak файл резервной копии в /usr/share/applications):

sudo sed -i.bak 's|^Icon\(\[[^]]*\]\)\?=.*$|Icon\1=/path/to/icon|' /usr/share/applications/qBittorrent.desktop
Insert the path to the icon here-------------------^-----------^
user@user-X550CL ~ % sudo sed -i.bak 's|^Icon\(\[[^]]*\]\)\?=.*$|Icon\1=/home/user/icon.png|' /usr/share/applications/qBittorrent.desktop 
user@user-X550CL ~ % sed -n '/^Icon\(\[[^]]*\]\)\?=.*$/p' /usr/share/applications/qBittorrent.desktop
Icon=/home/user/icon.png
Icon[be]=/home/user/icon.png
Icon[cs]=/home/user/icon.png
Icon[el]=/home/user/icon.png
Icon[en_GB]=/home/user/icon.png
Icon[es]=/home/user/icon.png
Icon[eu]=/home/user/icon.png
Icon[fi]=/home/user/icon.png
Icon[gl]=/home/user/icon.png
Icon[it]=/home/user/icon.png
Icon[ja]=/home/user/icon.png
Icon[lt]=/home/user/icon.png
Icon[nb]=/home/user/icon.png
Icon[pl]=/home/user/icon.png
Icon[pt]=/home/user/icon.png
Icon[pt_BR]=/home/user/icon.png
Icon[ro]=/home/user/icon.png
Icon[ru]=/home/user/icon.png
Icon[sv]=/home/user/icon.png
Icon[uk]=/home/user/icon.png
Icon[vi]=/home/user/icon.png
Icon[zh_TW]=/home/user/icon.png
Icon[en_AU]=/home/user/icon.png

Или удалите локализованный Icon= записи и изменение дженерик Icon= запись путем выполнения этой команды (это создаст a qBittorrent.desktop.bak файл резервной копии в /usr/share/applications):

sudo sed -i.bak '/^Icon\(\[[^]]*\]\)\=.*$/d; s|^Icon=.*$|Icon=/path/to/icon|'
Insert the path to the icon here------------------------------^-----------^
user@user-X550CL ~ % sudo sed -i.bak '/^Icon\(\[[^]]*\]\)\=.*$/d; s|^Icon=.*$|Icon=/path/to/icon|' /usr/share/applications/qBittorrent.desktop
user@user-X550CL ~ % sed -n '/^Icon\(\[[^]]*\]\)\?=.*$/p' /usr/share/applications/qBittorrent.desktop
Icon=/path/to/icon

Или просто изменение Icon= запись, соответствующая Вашей текущей локали любым, означает, такие как:

sudo nano /usr/share/applications/qBittorrent.desktop

screenshot2

6
ответ дан 16 September 2015 в 05:41
  • 1
    Я должен разъясниться, я don' t хотят использовать распутника, так как это также контейнеризировано в его собственном chroot. Мое понимание - это, если скалистая вершина установлена в распущенном контейнере, то другие приложения won' t быть в состоянии получить доступ к его прокси через носки скалистой вершины. Моим намерением является для собственного qml приложения I' m создающий, чтобы быть в состоянии получить доступ к скалистой вершине через дополнительную конфигурацию прокси в приложении. I' ve обновил вопрос отразить это. – Keefer Rourke 4 December 2016 в 06:07

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

Похожие вопросы: