es環境を設定するには?

es環境を設定するには?

遊んでいた英語最近は、rcと同様に、.esrcログイン時にのみ起動スクリプトを実行する珍しい/機能があります()。各対話型セッションでコードを実行する一般的な方法は、コードを%prompt関数に入れることです。

もちろん、一度も実行されたことがない限り、機能はありません%promptes -l

したがって、質問は:gdmまたは同様のソース専用の.profile(または.xprofile、.xsessionなど)を介してログインするときにログイン環境をどのように設定しますか?私が思いついた最高は次のとおりです。

if [ -f "$HOME/.esrc" ]; then
    eval "`es -l <<-x
        sh <<<'export -p'
    x`"
fi

これは…ひどいようですね。もっと良い方法がありますか?

答え1

誰も実際の答えを持っていないので、ここに私のひどい蜂蜜のヒントがあります。一部のシェル(例:* rxvt)には、ログインシェルを強制する設定があります。だからあなたは.Xdefaults次のようなものを追加できます

urxvt256c-ml:loginShell: true

これはurxvt256c-ml、実行しているすべての端末にデフォルトでログインシェルがあることを意味します。

役に立ちましたか?

答え2

数年後、私自身の質問に答えると、gnome-sessionはログインシェルから環境変数を抽出し、それについてdbusに通知する魔法を実行しているように見えますが、.profileは実行されません。

https://gitlab.gnome.org/GNOME/gnome-session/-/blob/ef9f3039bdb48e008cd59e46aac442811bc40f09/gnome-session/gsm-util.c#L545

残念ながら、次の理由で長い文字列を含む気に入らない項目(2023年)のエクスポートも拒否します。

https://gitlab.gnome.org/GNOME/glib/-/issues/2824

関連情報