web-dev-qa-db-ja.com

.desktopファイルで変数を設定

.desktopファイルに環境変数を設定する方法はありますか?カスタムgtkスタイルでアプリケーション(Eclipse)を実行しようとしているので、基本的には.desktopファイルを実行して次の結果を得たいと思います。

GTK2_RC_FILES=gtkrc.custom /path/to/Eclipse

私はそれをbashスクリプトに入れて.desktopファイルから実行しようとしましたが、Unityランチャーとうまく統合できません。

74
dotintegral

.desktopファイルを編集して、アプリケーションに環境変数を追加できます。たとえば、環境変数APPMENU_DISPLAY_BOTH=1を使用して "digiKam"を実行するには、対応するdigikam.desktopファイルを見つけ、envコマンドを介してエントリの "Exec"に変数の設定を追加します:

Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i

あなたの場合:

Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/Eclipse
108
jasmines

.desktopファイルを変更する別の方法は、ラッパースクリプトをたとえば~/bin

$ cat ~/bin/Eclipse
#!/bin/sh
export GTK2_RC_FILES=gtkrc.custom
exec /usr/bin/Eclipse "$@"

この方法では、アプリケーションパッケージが次に更新されるときにカスタマイズが上書きされません。

編集:

これがなぜ機能するかについてのヒントは、PATH変数の内容を確認することで確認できます。私の場合:

$ 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はリストの最初のフォルダーであるため、/usr/binの前に表示されます。

9