pop-os / shell

Pop!_OS Shell
GNU General Public License v3.0
4.83k stars 261 forks source link

Missing applications in launcher (XDG_DATA_DIRS ignored?) #1224

Open colinxs opened 2 years ago

colinxs commented 2 years ago

(1) Issue/Bug Description:

I use Nix as a package manager on PopOS, which installs packages to ~/.nix-profile. Desktop entries live at ~/.nix-profile/share/applications. These applications do not appear in the launcher. XDG_DATA_DIRS is correctly set and includes ~/.nix-profile/share.

It appears the issue stems from this code which ignores XDG_DATA_DIRS.

Issue was originally filed at nix-community/home-manager#1439 but it looks like the bug is with pop-os/shell.

Ubuntu's "Show Applications" window correctly finds all the desktop entries in XDG_DATA_DIRS.

(2) Steps to reproduce (if you know):

  1. Install any application with a desktop entry using Nix
  2. Log out/in to refresh desktop database
  3. Open launcher and search for installed package.

(3) Expected behavior:

All desktop entries found in XDG_DATA_DIRS should appear in the launcher.

(4) Distribution (run cat /etc/os-release):

NAME="Pop!_OS"
VERSION="21.04"
ID=pop
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 21.04"
VERSION_ID="21.04"
HOME_URL="https://pop.system76.com"
SUPPORT_URL="https://support.system76.com"
BUG_REPORT_URL="https://github.com/pop-os/pop/issues"
PRIVACY_POLICY_URL="https://system76.com/privacy"
VERSION_CODENAME=hirsute
UBUNTU_CODENAME=hirsute
LOGO=distributor-logo-pop-os

(5) Gnome Shell version:

gnome-shell:
  Installed: 3.38.4-1ubuntu3~21.04.1ubuntu1pop1~1623339707~21.04~2a1865d
  Candidate: 3.38.4-1ubuntu3~21.04.1ubuntu1pop1~1623339707~21.04~2a1865d
  Version table:
 *** 3.38.4-1ubuntu3~21.04.1ubuntu1pop1~1623339707~21.04~2a1865d 1001
       1001 http://ppa.launchpad.net/system76/pop/ubuntu hirsute/main amd64 Packages
        100 /var/lib/dpkg/status
     3.38.4-1ubuntu3~21.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu hirsute-updates/main amd64 Packages
     3.38.4-1ubuntu2 500
        500 http://us.archive.ubuntu.com/ubuntu hirsute/main amd64 Packages

(6) Pop Shell version (run apt policy pop-shell or provide the latest commit if building locally):

pop-shell:
  Installed: 1.1.0~1633445036~21.04~28c060e
  Candidate: 1.1.0~1634592251~21.04~1de4139
  Version table:
     1.1.0~1634592251~21.04~1de4139 1001
       1001 http://ppa.launchpad.net/system76/pop/ubuntu hirsute/main amd64 Packages
       1001 http://ppa.launchpad.net/system76/pop/ubuntu hirsute/main i386 Packages
 *** 1.1.0~1633445036~21.04~28c060e 100
        100 /var/lib/dpkg/status

(7) Where was Pop Shell installed from:

ISO from website.

(8) Monitor Setup (2 x 1080p, 4K, Primary(Horizontal), Secondary(Vertical), etc):

N/A

(9) Other Installed/Enabled Extensions:

N/A

(10) Other Notes:

jacobgkau commented 2 years ago

This was supported before the Rust rewrite: https://github.com/pop-os/shell/commit/2fb9c406e975c718d2d05a63dc2f69772f25c081

reddraggone9 commented 2 years ago

It looks like Nix support was recently hardcoded, but the latest release is too old to include that change. I'd personally still like to see XDG_DATA_DIRS and XDG_DATA_HOME support. I ran into this when I added a directory I had just made up out of thin air only to see my desktop entries show up in the applications overview and not the launcher. For now I added my own hardcoded path, compiled the plugin, and stuck it at ~/.local/share/pop-launcher/plugins/desktop_entries/ to work around the issue.

PRs #764, #1005, #1018 look to have added this flexibility to the previous implementation and removed the hardcoded paths. @mmstick, would you be interested in something similar for the rust implementation?

felkal commented 2 years ago

@reddraggone9 could you please share your workaround?

reddraggone9 commented 2 years ago

@felkal This issue was resolved with pop-launcher version 1.2.0 and should be closed. My workaround is no longer necessary. Specifically, https://github.com/pop-os/freedesktop-desktop-entry/pull/3 added XDG_DATA_DIRS support, and launcher version 1.2.0 was released 13 days ago including the updated desktop entries plugin. You can check your installed version using dpkg -s pop-launcher and, if necessary, update your system.