
ランダムプログラムFooを考えてみましょう。
- 環境変数の値に基づいて動作を変更します。
- グラフィックデスクトップのFooアイコンの1つをクリックして起動できます。
この記事の残りの部分では、次のように仮定します。すべて問題のFooインスタンスは、上記の(2)で説明されているように開始または開始される予定です。 IOW、この記事では、いくつかのコマンドラインを介してFooを起動する可能性が排除されます。
具体的には、現在のX11セッションがユーザーによって「手動で」開始されたとします。つまり、(テキストインタフェース)ログイン1startx
以降のある時点で(テキストインタフェース)コマンドラインに入力します。
startx
AFAICTは、デフォルトでは、各Fooインスタンスが継承する環境は、ユーザーが2を実行したときの環境です。 (間違っている場合は訂正してください。)
私の質問は次のとおりです。 Fooの後続のインスタンス(または少なくとも起動されたFooの次のインスタンス)が継承した環境を変更する一般的な方法(Fooとは無関係)はありますか?
上記の(一般的な)質問に対する答えはおそらく「いいえ」であると予想しており、以下では、質問のより具体的なバリエーションに対する答えが「はい」になることを願っていくつかの具体的な詳細を提供します。
- 現在、私はFooがターミネーター(ターミナルエミュレータ)の場合に特に興味があります。
- 私の殻は
zsh
; - 私のデスクトップはxfce4 + xfwm4です。
1ユーザーがグラフィカルログインを介してログインした後にX11セッションが自動的に開始されると、この質問に対する答えが変わる可能性があります。お知らせください。
2より正確には、遺伝的環境は以下によって決定されます。出口シェル変数とその値は、ユーザー呼び出しと同様に、startx
非常に注意深く表現された説明がせいぜい過度に単純化されたものだと思います。しかし、あまりにも極端なので、残りの投稿を無意味にしないことを願っています。
答え1
デスクトップ上のリンクからプログラムを実行している場合は、必要な変数と値を含むようにリンクファイルを変更できます。まだzshの経験はありませんが、linkの値env VAR=VAL
の先頭に追加するとリンクを変更できると思います。Exec
もっと読むために私が見つけたアーチLinuxこの資料では、デスクトップ ファイルの多くの項目について説明します。これはArchの記事ですが、これらのファイルの形式はディストリビューション全体で標準です。
ウィンドウマネージャを使用してセッション全体に対してこの変数を変更することもできます。