如何更改作为“flatpak”安装的应用程序上的图标?

如何更改作为“flatpak”安装的应用程序上的图标?

在我的新 Meerkat 上,运行 Pop 21.04(基于 Ubuntu),我将 Thunderbird 安装为 flatpak。我想将应用程序图标(以及许多其他应用程序图标)更改为半开玩笑的版本(对于 T-Bird,吉祥物的翅膀缠绕在一瓶雷鸟酒上;在以预装的 Firefox 为例,吉祥物正在咀嚼 Internet Explorer 徽标)。

到目前为止,我对 T-Bird 所做的任何尝试都没有对应用程序菜单或扩展坞中显示的内容产生丝毫影响:我尝试更改 .desktop 文件以指向 PNG 文件的完全限定路径名;没有效果(我取消了更改)。我尝试备份 .local/share/flatpak/app/org.mozilla.Thunderbird/current/active/files/share/icons 中的 hicolor 目录,然后将 org.mozilla.Thunderbird.png 的每个最后一个实例替换为修改后的图标的正确缩放版本;即使在“更新图标缓存”和系统重新启动之后仍然没有效果。我在其他任何可以找到 org.mozilla.Thunderbird.png 实例或指向该实例的链接的地方尝试了此方法的变体。

物有所值:

我半开玩笑的 T-Bird 图标

回应“WGRM”的评论:

jameslampert@pop-os:~$ env | grep -i 'XDG'
XDG_CONFIG_DIRS=/etc/xdg/xdg-pop:/etc/xdg
XDG_MENU_PREFIX=gnome-
XDG_SESSION_DESKTOP=pop
XDG_SESSION_TYPE=x11
XDG_CURRENT_DESKTOP=pop:GNOME
XDG_SESSION_CLASS=user
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/usr/share/pop:/home/jameslampert/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

我想到的另一个想法是:简单地创建全新的 .desktop 文件(大部分是从原始文件复制的)就可以在半开玩笑的图标中完成任何有用的事情吗?

答案1

我刚刚尝试了创建一个全新的 .desktop 文件的想法 - org.mozilla.Thunderbird.desktop 文件的副本,其中图标引用已更改。

它似乎已经得到了回报。我现在有两个单独的 .desktop 文件(原始文件位于 flatpak 中,“T-Bird.desktop”当前位于 /usr/share/applications 中),都指向 Thunderbird,后者带有我的自定义图标。

如果有人能告诉我可以将 .desktop 文件放在哪里,Gnome 可以看到这些文件,但又不会被更新覆盖,那么在赏金到期之前,它就是你的了。

答案2

我通过编辑 .desktop 文件更改了 flatpak 应用程序图标

~/.local/share/flatpak/exports/share/applications/

例如,对于 slack 应用程序,文件是com.slack.Slack.desktop

[Desktop Entry]
Name=Slack
Comment=Slack Desktop
GenericName=Slack Client for Linux
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=slack --file-forwarding com.slack.Slack @@u %U @@
#Icon=com.slack.Slack
Icon=/FULL_PATH/slack-dark.png
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Network;InstantMessaging;
MimeType=x-scheme-handler/slack;
X-Desktop-File-Install-Version=0.26
StartupWMClass=Slack
X-Flatpak-RenamedFrom=slack.desktop;
X-Flatpak=com.slack.Slack

答案3

恐怕.desktop文件几乎无处不在,包括许多非 $PATH 的地方。它们在“应用程序”目录中似乎很常见,但没有出现它们需要遵循的任何规则。

我不相信它们在任何 GUI 文件管理器中都是可见的 - 即使你告诉它显示隐藏文件。

find会找到它们,命令也会找到它们locate(前提是它被设置为更新其数据库,通常是每天)。

示例:-locate .desktop在我的 PC 上生成了 4,872 个桌面文件。

您可以在以下位置创建自定义桌面文件:-
~/.local/share/applications/thunderbird.desktop 您可以将自定义图标放入~/.icons/youricon.

由于这些文件位于 $HOME 中,因此它们不会被更新。

未针对 PopOS 进行测试。我猜想您可能需要在进行任何更改后重新启动。

相关内容