Ubuntu – 16.04 IntelliJ IDEA Desktop Entry not working


I tried running "Create Desktop Entry" both from "Tools" in main menu and "Configure" from the splash screen. It shows

Desktop Entry Created
You may now exit IDEA and start it from the system menu (restart a session if a new entry seem not to appear).

but after closing IDEA (without manually locking the icon to launcher), the icon is also removed. I have deleted the desktop entry under ~/.local/share/applications according to this thread Stack Overflow: Intellij launcher doesn't work on unity?

Then I tried

chmod 777 /usr/share/applications/jetbrains-idea.desktop

and dragged it to launcher, which still doesn't work.

JAVA_HOME and PATH are both set up correctly.

Best Answer

There is no option as of right now for automatic pinning of the .desktop file to the launcher of an application that was just installed. It does not just include IntelliJ but many other applications.

Technically speaking , there are ways to append an icon to the list of icons on the launcher , however most developers don't use it and leave that option up to the user. Hence you have to manually pin the Launcher icon. Otherwise, once the program exits - the icon disappears from launcher, which is the proper behavior of any app that is not on the list of the launcher favorites.

As for the .desktop file itself - it is created.

enter image description here

Checking only the Create a desktop entry option creates the file in ~/.local/share/applications/ folder, which is typically where the launcher entries for unknown or user-specific apps go.

To confirm that , I've ran this after installation:

$ ls ~/.local/share/applications | grep idea

Checking For all users option will create /usr/share/applications/jetbrains-idea-ce.desktop, since the /usr/share/applications directory is available globally to all users.

Either of these is what you want, and they can be pinned to the launcher simply by dragging them from file manager or dash to the launcher. NOTE: the bin/idea.sh must be ran as your regular user - otherwise if you run it as root, the .desktop file will be root owned, hence you cannot drag that to the launcher. If that's the case, you can always sudo chown $USER:$USER /path/to/jetbrains-idea-ce.desktop

You can always copy either of those to Desktop if that's what you want, but .desktop files aren't literally supposed to be on the desktop.

As a last resort, you can always manually create a .desktop file.

In my example, that would be

[Desktop Entry]
Exec=/bin/sh /home/xieerqi/intellij/idea-IC-145.597.3/bin/idea.sh

Notice , that this is different from the example in the link you provided . The #!/usr/bin/env xdg-open is unnecessary and Exec line actually runs /bin/sh and the idea.sh as parameter to it. Note that this .desktop file needs to have executable permissions, otherwise you will receive a warning "Untrusted application"