为什么当我更改 .desktop 文件时启动器中的图标没有改变?

为什么当我更改 .desktop 文件时启动器中的图标没有改变?

我有点喜欢修补,我将我最常用的应用程序图标改为我自己的蒸汽朋克主题。

唯一一个我无法更改图标的应用程序是qBitTorrent

文件仅存在于以供所有用户使用,并且.desktop已经验证不包含任何桌面文件。/usr/share/applications~/.local/share/applications/

谁能解释一下为什么会发生这种情况? (并提供一些如何更改该图标的说明?)

蒸汽朋克发射器

对于那些不了解 SteamPunk 的人:我想改变丑陋的蓝色图标...... ;-)

更多信息:

$ 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 的想法,所以我添加了赏金......

笔记:

我并不是想使用~/.local/share/applications/覆盖来更改图标,而是想为所有用户/usr/share/applications/或任何其他系统范围的设置更改图标!

答案1

问题是 qBittorrent 的.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=没有帮助:

截图1

您必须设置Icon=与您当前的语言环境相匹配的条目;但是由于通过设置本地化图标完全相同的图标首先,为每个区域设置更改所有条目是一件非常愚蠢的事情,您还不如Icon=通过运行此命令来更改所有条目(它将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=条目(它将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

截图2

相关内容