回答:
.desktopファイルを編集して、環境変数をアプリケーションに追加できます。たとえば、環境変数を使用して "digiKam"を実行するAPPMENU_DISPLAY_BOTH=1には、対応するdigikam.desktopファイルを見つけ、envコマンドを介してエントリの "Exec"に変数の設定を追加します。
Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i
あなたの場合:
Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/eclipse
.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ます。
.desktopファイルの更新の恩恵を受けることはできません。
~/binに役立つかはわかりません。パッケージ所有の.desktopファイルには、そのラッパーは表示されません。次も使用する必要がありますupdate-alternatives
.desktopファイルはラッパーを「見る」必要はありません。それは単に実行eclipseされPATH、ラッパーのためにの代わりに選択され/usr/bin/eclipseます。答えを編集して明確にしました。
$HOME?を含む環境変数を設定するにはどうすればよいですか?どちらExec=env MYVAR="$HOME/foo"もExec=env MYVAR="~/foo"拡張されません。代わりに、文字通り渡されます。