I have a .desktop file to start a python program in a specific conda environment, like this:

[Desktop Entry]
GenericName=Web Browser
Comment=View and edit files
Exec=bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"

This used to work, but I tweaked my python environment recently.

Now, in a terminal the same command

$ bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"

runs the application, but the .desktop file does not. How do I find out due to what error that is?

My other .desktop files run fine, I assume something goes wrong with my Python environment, which is quite hackish for the moment (which is the main reason to run this in a dedicated conda environment to start with).

Zachary Brady originally suggested (but there are issues) xdg-open might run .desktop files, but it gives me a message box saying


Failed to add a plugin to the panel

No running instance of xfce4-panel was found

both for this .desktop and for another one that otherwise works. (I'm running plain Ubuntu, no xfce).

  • I deleted my answer after reading more into it xdg-open has been bugged for quite a while and only opens the desktop icons in text editors... – Zachary Brady Oct 27 '16 at 15:05
  • It turns out that the problem was an unsubstituted ~ (appearing as “~”, not as “/home/anaphory”) in the Python path, which I found out by adding env > check; in the middle of the command. But I'm sure there is a better way to debug this! – Anaphory Oct 27 '16 at 15:23

You can also use the validation tool desktop-file-validate to find more problems.

(see also: How to validate/verify .desktop files?)

# Result for your example
$ desktop-file-validate qutebrowser.desktop 
test.desktop: hint: value "Network;Utility;X-Python;" for key "Categories"
in group "Desktop Entry" contains more than one main category; application
might appear more than once in the application menu
| improve this answer | |

On Linux Mint, the File Manager service is named nemo, nemo can be exited by issuing:

nemo -q

With your file manager stopped, you can open it in a terminal


It will now print its log to this terminal, when you go to open your *.desktop file, you should be able to see the stdout of your *.desktop's Exec line.

| improve this answer | |
  • Oh, and when your done debugging, Ctrl+C the terminal running nemo, and open it via your start menu, or relog your desktop session. – ThorSummoner Mar 23 '17 at 2:14

I normally add the following to see what is being executed:

| improve this answer | |

xdg-open and exo-open are used for opening files (in their respective associated program). They were never meant to execute anything on their own. For executing the command defined by a desktop, you may use dex.

| 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.