web-dev-qa-db-ja.com

GNOMEセッションの環境変数を設定するにはどうすればよいですか?

私のシステムでは、SDLを使用するアプリの場合、環境変数を設定する必要があります。

export SDL_AUDIODRIVER=alsa

サウンドを適切に機能させるため。この変数がすべてのアプリケーションに存在するようにGNOMEセッションを設定するにはどうすればよいですか(Nautilusを介してアプリケーションを実行する場合、または [〜#〜] dbgl [〜#〜] 、アプリを使用する場合正しく機能します)?

編集:

私が設定した(そしてそれぞれの後に私のマシンをリセットした)構成ファイルは役に立たない:

  • .xsession
  • .xsessionrc
  • .gnomerc
  • .bash_profile
  • .profile <-これは一般的なケースで機能しますが、ディストリビューションが他の場所で変数を設定している場合は機能しません。
  • /etc/profile
15
Bernard

SDL_AUDIODRIVER変数がどこかで設定解除されている可能性があります。起動スクリプトに関連する問題に使用する戦略の1つは、ファイルを作成/削除することで簡単に有効化/無効化できるデバッグエコーステートメントを挿入することです。あなたは追加することから始めることができます

debug_msg() {
        test -f $HOME/.debug && echo "$@" 1>&2
}

debug_msg "running ~/.bashrc ($0), SDL_AUDIODRIVER = '$SDL_AUDIODRIVER'"

.bashrc、.bash_profile、.profile、および/ etc/profileに移動して、値がどのようなもので、どこで変更されているかを確認します。

6
hlovdal

https://help.ubuntu.com/community/EnvironmentVariables 環境変数を設定できる4つの場所について説明します。

  • ~/.pam_environment- […]これはスクリプトファイルではなく、1行に1つずつ割り当て式で構成されています。 […]変数を初期化するには、再ログインが必要です。 […]
  • ~/.profile-これは、環境変数の割り当てを配置するのにおそらく最適なファイルです。これは、起動プロセスのデスクトップセッション中にDisplayManagerによって、またテキストコンソールからログインしたときにログインシェルによって自動的に実行されるためです。 。
  • ~/.bash_profileまたは~/.bash_login-これらのファイルのいずれかが存在する場合、bashは、ログインシェルとして開始されるときに、「〜/ .profile」ではなくファイルを実行します。 (Bashは「〜/ .bash_login」よりも「〜/ .bash_profile」を優先します)。ただし、これらのファイルはデフォルトではグラフィカルセッションに影響を与えません。
  • ~/.bashrc-Ubuntuが現在デフォルトでさまざまなスクリプトファイルを設定する方法のため、これは変数を設定する最も簡単な場所かもしれません。デフォルト構成は、このファイルがbashのすべての呼び出しで実行されることをほぼ保証しますグラフィカル環境へのログイン中も同様です。ただし、パフォーマンスの観点からは、値が不必要に何度も設定されるため、これは最善の方法ではない場合があります。

http://userbase.kde.org/Session_Environment_Variables/en は、KDEにこの場所を提案します。

KDEは、ファイル名が$HOME/.kde/envで終わる.shで見つかったすべてのスクリプトを実行し、それらによって設定されたすべての環境変数を維持します。設定する変数もエクスポートする必要があることが重要です。

https://help.ubuntu.com/community/ComposeKey#XIM~/.gnomercまたは~/.Xsessionの変更を提案します。

6

必要なすべての変数を設定するシェルスクリプト(.gnomercなど)である.bashrcファイルを$ HOMEに作成します。

1
Mike McQuaid

環境変数int 。profileまたは/ etc/profileを作成してみましたか?

それはうまくいくはずであり、すでに存在しているはずです。ターミナルセッションごとの。bashrcとは異なり、これらはセッションへのログイン時に開始されます。

0
codeLes