I'm using GNOME 3.22 and I want to organize all desktop files in groups. To do so, I must list all desktop files that appears in the application menu and use some command from this guide to organize them.

I've discovered that there're 3 places that contain these desktop files:


Using this script, I half-succeed. However, there're still some items that doesn't belongs to any group:

  • These desktop files don't have any Categories field so I cannot rule over them by category

  • These desktop files don't belong to any directory I listed above so I cannot call their names


Apparently, GNOME doesn't list desktop files just from directories above. There must be some place that store them, the desktop shell just need to read it to list all applications. I just cannot see it. Could you please let me know where is it?


This is my "half-success": GNOME Apps Menu

  • Have you tried alacarte? It might help you instead of do manually the job – George Vasiliou Feb 14 '17 at 14:08
  • There's a tool called find that can find any .desktop file on your sytem... – don_crissti Feb 14 '17 at 15:00
  • @don_crissti Doing find at root would take a lot of time, and I don't run my script just once but every time I add an application. There must be a place where the desktop shell (e.g. gnome-shell) just need to look at it to list all these applications. – DMaster Feb 14 '17 at 16:44
  • 1
    per the standards the default places are $XDG_DATA_HOME and $XDG_DATA_DIRS - now, whether your distro/setup is using some additional location is another question (and the reason I suggested find - you don't have to use it everytime you add an application but just once to see where those files are though again, the standard locations are those mentioned in your post) – don_crissti Feb 14 '17 at 17:44

This link may help with desktop files that don't have any "Category" field: https://wiki.gentoo.org/wiki/Gnome_Applications_Folders

| improve this answer | |

I know I'm late to the party, but maybe this answer helps someone later in time.

To find all desktop files in your system:

find / -iname "*desktop" -type f -not -path "/media*" 2> /dev/null

The command above lists all desktop files in your system. If you want to find a specific application (replace <application-name> with your application name or even part of its name, and remove the <>):

find / -iname "*desktop" -type f -not -path "/media*" -exec grep -il <application-name> '{}' ';' 2> /dev/null

Hope this helps someone someday.

| improve this answer | |

The free desktop specification for the Applications menu search path is here. The short answer to your question is append "applications" to every directory in the search path $XDG_DATA_DIRS.

| improve this answer | |

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.