Set variable in .desktop file
Is there a way to set the enviroment variable in .desktop file? I'm trying to run application (eclipse) with custom gtk style, so basically I want to get the following result by runing a .desktop file:
GTK2_RC_FILES=gtkrc.custom /path/to/eclipse
I've tryied to put it in a bash script and run it from the .desktop file, but then it does not integrate well with the Unity launcher.
Solution 1:
You can add an environment variable to an application by editing its .desktop
file. For example, to run "digiKam" with the environment variable APPMENU_DISPLAY_BOTH=1
, find the corresponding digikam.desktop
file and add the setting of the variable, via the env
command, to the entry "Exec":
Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i
In your case:
Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/eclipse
Solution 2:
An alternative to modify the .desktop
file is to put a wrapper script in e.g. ~/bin
.
$ cat ~/bin/eclipse
#!/bin/sh
export GTK2_RC_FILES=gtkrc.custom
exec /usr/bin/eclipse "$@"
This way the customization won't be overwritten next time the application package is updated.
Edit:
A hint about why this works can you see by checking out what the PATH
variable contains. In my case:
$ echo $PATH
/home/gunnar/bin:/home/gunnar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
~/bin
is the first folder in the list, and thus is looked at before /usr/bin
.