无法看到Snaps和Flatpak应用程序的启动器

我使用最新的KDE neon,但我相信问题不完全是关于KDE,而是Ubuntu。
当我安装flatpak或snap应用程序时,KDE无法识别它们 - 我的意思是在应用程序启动器的应用程序列表中找不到它们。
我进行了一些研究,发现snaps和flatpak都有以下目录来保存启动器:
对于flatpak,它是:/var/lib/flatpak/exports/share 对于snaps,它是:/var/lib/snapd/desktop 我发现系统会在变量XDG_DATA_DIRS定义的目录中搜索应用程序。
所以当我执行echo $XDG_DATA_DIRS时,我得到: /usr/share//usr/share/xsessions/plasma:/usr/local/share/:/usr/share/ 因此它不包含snaps和flatpak的启动器文件夹。
此外,我可以看到/etc/profile.d/中有适当的脚本,应该更新这个变量,例如:/etc/profile.d/flatpak.sh的内容如下:
# /etc/profile.d/flatpak.sh - set XDG_DATA_DIRS

if [ "${XDG_DATA_DIRS#*flatpak}" = "${XDG_DATA_DIRS}" ]; then
    XDG_DATA_DIRS="${XDG_DATA_HOME:-"$HOME/.local/share"}/flatpak/exports/share:/var/lib/flatpak/exports/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
fi

export XDG_DATA_DIRS

所以我猜也许这些脚本由于某种原因没有执行或者它们是错误的?你们能告诉我有什么问题吗?

我觉得我可能有相同的问题,或者至少是一个类似的问题。对于我来说,echo $XDG_DATA_DIRS 命令返回的结果是 /usr/share//usr/share/xsessions/plasma:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop。所以,前面的"/usr/share//usr/share/xsessions/plasma" 部分相同,但是 "/var/lib/snapd/desktop" 也包含在内。 - Kenneth Hanson
在我的情况下,我首先注意到这个问题是在尝试手动添加flatpak路径时出现的,但是添加的结果却出现在中间,导致Plasma启动失败。我也无法确定"/usr/share/xsessions/plasma"部分是从哪里来的,这让我觉得Plasma正在做一些奇怪的事情,导致了这些问题的发生。 - Kenneth Hanson
3个回答

关于快照问题,如果您正在使用zsh,则可能会遇到this snap bug
解决方法是在您的.zshrc.zshenv中明确地源化/etc/profile.d/apps-bin-path.sh


我建议编辑这个答案,以具体细节来扩展它,说明如何做到这一点。(另请参阅《如何撰写一个好的答案?》以获取关于哪种答案被认为是在Ask Ubuntu上最有价值的一般建议。) - abu_bua
感谢 @abu_bua 的建议。我添加了一个链接来解释这个问题,以避免重复。 - Sandro L

你重启了吗?或者你可以直接注销然后重新登录。
我刚刚安装了flatpak,并发现自己遇到了同样的情况:/etc/profile.d/flatpak.sh文件在那里,但是它没有机会运行,因为它在启动时不存在。而且这个脚本需要在启动时运行,因为“在启动桌面管理器之前,需要将路径添加到此变量中”。