Ubuntu 17.04
How to integrate snaps into gnome 3 shell application menu bar and menu?
It looks like snaps applications are not recognized by gnome 3 shell. We can make them favorite and add them on the application bar.
Exemple: blender snap
Ubuntu 17.04
How to integrate snaps into gnome 3 shell application menu bar and menu?
It looks like snaps applications are not recognized by gnome 3 shell. We can make them favorite and add them on the application bar.
Exemple: blender snap
are you using a wayland session ? there was a fix for this in:
No, it is on 17.04, and 17.10, with proprietary nvidia-driver (so, no wayland).
tested on wayland too, it is the same.
what does “snap version” show ? (it is definitely supposed to work (and AFAIK also does work for most))
There was an issue in gnome-shell with matching desktop files with running applications that broke the icon and application menu for running applications from snaps. This was fixed in gnome-shell 3.26 but not backported to older releases.
snap version
snap 2.28.5+17.10
snapd 2.28.5+17.10
series 16
ubuntu 17.10
kernel 4.13.0-16-generic
gnome-shell --version
GNOME Shell 3.26.1
I am using ubuntu 18.04 and still have broken icons and no ability to add the app I am running to the list of favorites.
My set-up is the following:
$ snap version
snap 2.32.8+18.04
snapd 2.32.8+18.04
series 16
ubuntu 18.04
kernel 4.15.0-22-generic
$ gnome-shell --version
GNOME Shell 3.28.1
$ snap list
Name Version Rev Tracking Developer Notes
core 16-2.32.8 4650 stable canonical core
slack 3.1.1 6 stable slack classic
At the moment, I have to press Meta + r
and execute snap run slack
to start slack.
I want to press meta
and start typing slack
to start the application.
This is working for me (not tested with slack, but confirmed with other snaps).
Does slack install a desktop file under /var/lib/snapd/desktop/applications/
?
Does XDG_DATA_DIRS
include /var/lib/snapd/desktop
?
$ lh /var/lib/snapd/desktop/applications
total 8,0K
-rw-r--r-- 1 root root 57 Mai 28 10:17 mimeinfo.cache
-rwxr-xr-x 1 root root 355 Mai 22 12:53 slack_slack.desktop
$ echo "$XDG_DATA_DIRS"
/home/USER/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/
In /etc/profile.d/apps-bin-path.sh
is the following snippet:
8 # desktop files (used by desktop environments within both X11 and Wayland) are
9 # looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for
10 # snappy applications' desktop files.
11 if [ "${XDG_DATA_DIRS#*/snapd/desktop}" = "${XDG_DATA_DIRS}" ]; then
12 export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}:/var/lib/snapd/desktop"
13 fi
My default shell is zsh but this should not cause gnome-shell to fail executing this script, or not?
note that for Xorg (and gnome-shell under Xorg) the var is set in /etc/X11/Xsession.d/65snappy (not sure where the Wayland equivalent lives)
Not sure this is entirely true. Here on Arch, XDG_DATA_DIRS
is set in /etc/profile.d/snapd.sh
and looking up snap applications from Gnome overview works just fine. I would expect Ubuntu setup to nearly identical.
this only applies to pam based shell logins, no ?
in ubuntu 16.04 i definitely have:
$ dpkg -S /etc/X11/Xsession.d/65snappy
snapd: /etc/X11/Xsession.d/65snappy
$ dpkg -l snapd|grep ^ii
ii snapd 2.32.3.2 amd64 Daemon and tooling that enable snap packages
$ snap version
snap 2.32.8
snapd 2.32.8
series 16
ubuntu 16.04
kernel 4.13.0-39-generic
and /etc/X11/Xsession.d/65snappy contains:
$ cat /etc/X11/Xsession.d/65snappy
# This file is sourced by Xsession(5), not executed.
# Add the additional snappy desktop path
if [ -z "$XDG_DATA_DIRS" ]; then
# 60x11-common_xdg_path does not always set XDG_DATA_DIRS
# so we ensure we have sensible defaults here (LP: #1575014)
# as a workaround
XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
else
XDG_DATA_DIRS="$XDG_DATA_DIRS":/var/lib/snapd/desktop
fi
export XDG_DATA_DIRS
(it might indeed be that Arch simply sources profile.d even for graphical logins or some such)
zsh doesn’t source /etc/profile
(and thus files in /etc/profile.d/
) by default. It does source /etc/zsh/zprofile
, but that one doesn’t appear to do anything by default.
@ehj can you copy the contents of /etc/profile.d/apps-bin-path.sh
in $HOME/.zprofile
, restart your session and see if that “fixes” the issue?
copy the contents of
/etc/profile.d/apps-bin-path.sh
in$HOME/.zprofile
, restart your session
These instructions brought up a slack icon when search for slack in the overview and the context menu when right clicking over the running app icon (which is the correct icon now) offers the correct options. So, the problem is “solved”.
What would be the best way for a long lasting solution?
I guess snapd could be made zsh-aware, i.e. it could install a script similar to /etc/profile.d/apps-bin-path.sh in a place that zsh will source. You could file a bug to make sure this gets acknowledged as a feature request by the development team.
The feature request is filed as a bug at launchpad!
FYI, the content of /etc/zsh/zprofile
on Arch is:
$ cat /etc/zsh/zprofile
emulate sh -c 'source /etc/profile'
which would explain why /etc/profile[.d]
stuff ends up being loaded in zsh here too. Looking at the PKGBUILD, the file is not shipped by the source tarball but rather comes as part of the packaging. Wondering if other distros do the same.
Note there is https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1640514 about zsh (with comments from one of the debian zsh maintainers)