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


14

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

export SDL_AUDIODRIVER=alsa

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

編集:

私が設定した(そして、それぞれの後にマシンをリセットする)設定ファイルはありません:

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

これは環境変数である必要がありますか?他の種類の設定のようです。システムのサウンド設定アプレットを掘り下げましたか?
codeLes 2009

確かにそうです。これが、SDLがどのバックエンドを使用するかを判断する方法です。構成ファイルだけを使用したいのですが、SDLは環境変数を使用して動作を指示するという点でかなり一貫しています。
バーナード

これを見ましたか?modarchive.org/forums/index.php
topic=

1
ええ、SDLを再コンパイルするか、環境変数を設定するかの選択です。私は正しい選択をしていると思います。:pこれは動作します(つまり、シェルで動作します)。これは、問題のシェルから開始されていないアプリの変数をGNOMEに伝搬させるという厄介な問題です。引き続きご協力いただきありがとうございます。
バーナード

これは何のディストリビューションですか?!(gdmの設定を理解するのは本当に難しいので、「/ etc / gdm /を見て、スクリプトを読むだけ」というのは非常に苦痛です。)ここで、.profileはうまく機能しているようです。(
デビアン

回答:


6

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にアクセスして、その値とif / whereが変更されているかどうかを確認します。


うーん、それも私の現在の考えです。「パルス」に設定されおり、OpenSUSEによってどこかに設定されている必要があります。家に帰ったら探偵をします。
バーナード

5

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がさまざまなスクリプトファイルをデフォルトで設定する方法のため、これは変数を設定する最も簡単な場所かもしれません。グラフィカル環境に。ただし、パフォーマンスに関しては、値が不必要に何度も設定されるため、これが最善の方法ではない場合があります。

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

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

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


1

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


残念ながら、これはうまくいきません。
バーナード

gnome-terminalを開いて、envに表示されないことを確認しましたか?
マイクマッケイド

1
@Mike:.bashrcにあるので表示されますが、不正確です。Emacs M-x getenvは、GUIアプリでオーバーライドされていないことを確認します。
バーナード

0

環境変数int .profileまたは/ etc / profileを作成しようとしましたか?

それは機能するはずで、すでに存在しているはずです。端末セッションごとの.bashrcとは異なり、これらはセッションへのログイン時に開始されます。


悲しいかな、効果はありません。
バーナード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.