Answers:
如果使用zsh,则快照二进制目录和桌面目录不会自动添加到环境变量中。为了解决这个问题,我在/ etc / zsh / zprofile(摘自Arch)中添加了以下行:
emulate sh -c 'source /etc/profile'
这将使用bash仿真处理您的/ etc / profile文件,而bash仿真又将获取/etc/profile.d/*并设置适当的PATH等。
要将快照目录仅添加到您的路径,而不包括所有其他默认bash配置文件:
emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'
为我运行Kubuntu 18.04的解决方案
export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/snapd/desktop/"
像自定义文件snap-apps.sh
在~/.config/plasma-workspace/env
。但这仅适用于Plasma 5,可能已在Ubuntu 18.10中修复。
正如dsager在他的回答中已经提到的那样,通常的做法/etc/profile.d/apps-bin-path.sh
似乎无效。
您必须snap run meshlab
从终端运行并停止它,然后您将在应用程序列表中看到Meshlab
我无法评论其他人的帖子。但是,这是对dsager的回答的补充,该回答对Fedora 28(据我所知使用Wayland)有所帮助。
我将以下代码片段添加到〜/ .bash_profile中,以在登录时链接到/ var / lib / snapd / desktop / applications中的每个文件。同样,可以通过切换for行和if行中的路径,然后将ln替换为rm来删除不再存在的应用程序的链接。
for i in /var/lib/snapd/desktop/applications/*.desktop; do
if [ ! -f ~/.local/share/applications/${i##*/} ];then
ln -s /var/lib/snapd/desktop/applications/${i##*/} ~/.local/share/applications/${i##*/};
fi;
done
可能有几种不同的方法可以完成此操作,但它确实有效。
ls
。使用for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...
代替。实现此目的的更简单方法是ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null
。
/dev/null
并因此被抑制)。它没有做任何事情,“无用”:它叉&Exec的一个单一的时间,使一个系统调用symlink(2)
或symlinkat(2)
每个匹配的文件。如果您使用循环检查文件类型(stat(2)
),然后(有条件地)检查fork&exec ln(1)
,则调用symlink*(2)
此操作会更多“无用”的工作。
与搅拌器相同。
snap run blender
确实可以,但是不能解决问题。
我不得不复制blender.desktop
从/snap/blender/current/blender.desktop
到/usr/share/applications
(有sudo
),然后将所有固定:在GNOME菜单搅拌机节目和鹦鹉螺关联起来.blend
的文件。
对我来说,在快照和侏儒之间似乎有些裂痕。也许我们需要的是一个敏捷的侏儒(或者它是一个侏儒的快照; ^)。