Ubuntu – How to tell which app is coming from which source in GNOME

20.04gnome-shellinstalled-programs

I use some programs where there are 2 or 3 versions on my PC, perhaps an apt installed, version, and a snap, and an appimage, usually because the developers release bug fixes. For example, LMMS and Kdenlive work differently via appimage versus apt install.

When I open up the dash using the windows key and search for an app, for example typing lm or kd, I see multiple icons, one for each app version. What I can't see is how to tell which is which. Ideally, I should be able to right click and see where that app is located. Right clicking only reveals 'New window' or 'Add to favourites'.

How can I tell which is which? I suspect they also move around in the dash, so just remembering where they are won't help.

Example: Here's a screenshot illustrating the problem with Kdenlive. There is an apt package and 2 appimage files. Each is a different version of the program, with different bugfixes and features. It's the same with LMMS, some features only work in the appimage, but the apt is more stable.

As you can see, there is no 'show details' option.

enter image description here

Best Answer

GNOME Shell looks for a .desktop launcher associated to an applications in some standard directories:

  • /usr/share/applications/ (standard location for applications installed system-wide)
  • ~/.local/share/applications/ (for applications installed locally, i.e. only for the current user)
  • /var/lib/snapd/desktop/applications/ (for snap applications)

If you open a .desktop launcher file with a text editor, you would find a Name= key which provides the name of the application (e.g. "Kdenlive") shown in your Activities or applications overview. There is also an Exec= key which contains the command to be used to run the application, thus it would also tell you what the source of the application is.

You can then simply rename the application as you wish by changing the Name= key to distinguish it from another one with the same name, for example change Name=Kdenlive to Name=Kdenlive (AppImage) for the one installed using AppImage. Then it would appear as 'Kdenlive (AppImage)' instead.

You can use GUI tools to achieve this perhaps more easily, for example:

  • Main Menu aka alacarte

    Install by running

    sudo apt install alacarte
    
  • MenuLibre

    Install by running

    sudo apt install menulibre
    
Related Question