Just updated to Ubuntu 16.04 & trying snap packages for first time.

So I needed meshlab to view some stl files. Ran in to issue with p-i-t-n log in. Found that command line install of snap packages does not need the log in. Did:

sudo snap install meshlab

and hey presto meshlap installed, no pitn log in. Works fine from command line. However program does not show up in the launcher. Why is this? Do snap packages not show up in launcher? How can I fix this?


14 Answers 14


If you are using zsh, the snap binary and desktop directories will not automatically be added to your environment variables. In order to solve this, I added the following line to /etc/zsh/zprofile (taken from Arch):

emulate sh -c 'source /etc/profile'

This will process your /etc/profile file with bash emulation, which in turn sources /etc/profile.d/* and sets the proper PATHs, etc.

To add only the snap directories to your path, without including all the rest of the default bash profile:

emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'
  • 2
    Thanks! Works well on 17.10 too. Switching to zsh brought up this problem for me aswell. Feb 11 '18 at 12:07
  • 2
    They should fix this in the install process or add a FAQ/Troubleshooting steps for snap.
    – BradErzwh
    Mar 10 '18 at 22:55
  • 1
    Thanks, worked for me on 18.10. Hope this will be fixed somehow in future. Nov 2 '18 at 10:23
  • 2
    Brilliant, unfortunately its still a problem on 19.04
    – jhole89
    Apr 18 '19 at 19:16
  • 4
    maybe obvious to some but login / logout after change Jan 24 '20 at 9:12

It's built into the snap system, but you have to add the link to your dash. To start the program type

snap run meshlab

once it's up and running, right click on the icon and click on "add to dash".


For me, it also seems to be related to the combination of Wayland/ZSH under Ubuntu 18.04 - even though /var/lib/snapd/desktop is listed in the XDG_DATA_DIRS variable (this is done by /etc/profile.d/apps-bin-path.sh), the launcher doesn't recognize apps from that folder.

A quick workaround is to sym-link the desired desktop files, for example:

ln -s /var/lib/snapd/desktop/applications/rubymine_rubymine.desktop .local/share/applications

Copy applications shortcut from /var/lib/snapd/desktop/applications/ to /usr/share/applications/

Example: sudo cp /var/lib/snapd/desktop/applications/brave_brave.desktop /usr/share/applications/

I had to do this on GalliumOS 3.0 (Xubuntu-based)

  • Easy and straightforward
    – evening_g
    Aug 17 at 22:53

Running Kubuntu 18.04 the solution for me was adding

export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/snapd/desktop/"

to a custom file like snap-apps.sh in ~/.config/plasma-workspace/env. But that applies only to Plasma 5 and might be fixed in Ubuntu 18.10 already.

As dsager's answer already mentioned the usual /etc/profile.d/apps-bin-path.sh does not seem to work.

  • 4
    This worked perfectly - fellow Kubuntu user.
    – john
    Apr 23 '19 at 19:07

Do snap packages not show up in launcher?

They do as long as the snap ships proper .desktop files. Only Meshlab's meshlabserver has a proper desktop file (and indeed, it shows up in my launcher). The meshlab .desktop file, however, is attempting to exec meshlab.meshlab, when it should just be using meshlab. As a result, it doesn't show up.

How can I fix this?

If you run snap info meshlab you'll see contact info for the publisher. I suggest you report a bug to them. Until then, you can always run meshlab from the CLI, or create your own .desktop file for it.


I couldn't comment on someone else's post. However, this is to add to dsager's answer which helped me on Fedora 28 (which as far as I can tell, uses Wayland)

I added the following snip to my ~/.bash_profile to link on login each file in /var/lib/snapd/desktop/applications. Similarly this could be modified to remove the links for apps which do not exist anymore by switching the paths in the for line and the if line then replacing ln with an 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##*/};

There's probably a handful of different ways to accomplish this, but it works.

  • 1
    Useless use of ls. Use for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ... instead. A shorter way to achieve this would be ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null. Jul 27 '18 at 16:44
  • I knew there was a way to execute your first example, however I couldn't remember the ${i##*/} portion when I was initially writing this. I'll edit my post to include that variant. However, your latter suggestion does not check if the link already exists, thus uselessly re-executing the ln command. In fact, I wanted to find a way to avoid grep as well to reduce the number of processes spun up while executing. Thank's for your comment. Jul 29 '18 at 17:06
  • My second suggestion does check if the target file exists already and, if that's the case, prints an error message (redirect to /dev/null and thus suppressed). It doesn't do anything “useless”: it forks & exec’s a single time and makes one system call to symlink(2) or symlinkat(2) for each matching file. If you use a loop to check for file type (stat(2)) and then (conditionally) fork & exec ln(1) which invokes symlink*(2) that’s a lot more “useless” work. Jul 29 '18 at 17:36

You have to run snap run meshlab from terminal and stop it, then you will see Meshlab in your application list


Snap binaries are stored in /snap/bin, at least in Debian 10 (buster). Add the directory to $PATH and reload bash profile, ~/.bashrc.

echo -n "export PATH=/snap/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

Same thing with blender.

snap run blender

does work, however did not fix the problem.

I had to copy blender.desktop from /snap/blender/current/blender.desktop to /usr/share/applications (with sudo) and then all was fixed: blender shows in the gnome menus and nautilus associates it with .blend files.

Looks like some sort of crack between snaps and gnomes to me. Perhaps what we need is a snappy gnome (or is it a gnomey snap ;^).

  • 1
    Hi, I did what you told but I've now two icons for every program I've did this... see i.imgur.com/aamlQJZ.png Is this happened to you too?
    – Cirelli94
    Dec 29 '17 at 14:24

On my machine all snaps that are installed only show in the launcher after I log off and back on. I just installed Krita and Standard Notes. Logged off and back on and it was in the launcher. Same thing with Spotify.


I was having an issue that after I installed zsh, none of my Snap packages were showing up in the start menu, or on my Latte Dock on KDE (no apps were showing up even though they existed).

What fixed it was one of the answers above.

I did:

sudo cp /var/lib/snapd/desktop/applications/* /usr/share/applications/

You may need to restart your computer after doing it to cause the apps to show.


For me help command

ln -s /var/lib/snapd/desktop/applications ~/.local/share/applications/snap

This link folder with snap application shortcuts to my local folder. And now I can run snap applications as other.


I ran in to the same issue on Ubuntu 18.04. It seems to be a problem with Wayland. The solution for me was to switch back from Wayland to Xorg.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.