Xセッションが開いている間に.zshrcを読みますか? / Xセッションが開いているときにスクリプトをどのように実行しますか?

Xセッションが開いている間に.zshrcを読みますか? / Xセッションが開いているときにスクリプトをどのように実行しますか?

Xセッションが開いたときに実行する必要があるカスタムコマンド(マウス構成)があります。

これを使用してスクリプトを作成し、セッションが開かれたときに実行されることを確認したいと思います。

いくつかのディストリビューション依存ソリューション(ランチャーなど)がありますが、私はむしろLinuxレベルのソリューションを探しています(私はディストリビューションをかなり頻繁に変更します)。

.zshrc(または)からスクリプトをインポートできますが、端末が開くまで実行されない.bashrcようです。そうではありませんか?.zshrc

~また、この設定をシステムではなく自分のリポジトリでユーザーごとに設定したいと思います。

どうすればいいですか?

答え1

一般的な設定は、Xディスプレイマネージャが/etc/X11/Xsessionシェルスクリプトを実行し、そのスクリプトがディレクトリからスクリプトをインポートまたは実行することです/etc/X11/Xsession.d

Ubuntuディストリビューション(および他のDebian派生製品)では、このディレクトリの標準ファイルの1つが.xsessionrcホームディレクトリからファイルをインポートします(存在する場合)(デフォルトでは存在しません)。

ファイルを作成すると、他のファイルのインポートや他の.*rcコマンドを含む関連コマンドをファイルに配置できます。非シェルアプリケーション(つまり、端末エミュレーションで実行されていないアプリケーション)の環境変数を設定すると便利です。

メモ:

  • 一部のディストリビューションには.xsessionrcソースがありません。/etc/X11/Xsession.dディレクトリを確認する必要があります。ユーザーのリソースの取得は.xsessionrc通常/etc/X11/Xsession.d/40x11-common_xsessionrcスクリプトによって行われます。ファイルが存在せず、他のスクリプトソースがない場合は、.xsessionrcいつでも独自のスクリプトを追加してソースを生成できます。
  • 実行中のシェルは/etc/X11/Xsession通常、好む/bin/shシェルへのシンボリックリンクである場合とそうでない場合があります。シェルの機能を確認する必要があります。たとえば、を使用すると機能しない可能性が[[あります。.コマンドはexport通常安全です。

答え2

「セッションを開く」が何を理解しているのかはわかりませんが、対話型シェルが起動する.xxxrcたびに、シェル関連ファイルがPOSIXに従って呼び出されます。

これは、現在のセッション内のネストされたシェルだけでなく、ログインシェルにも当てはまります。

答え3

.zshrczsh 構成ファイルです。 zshの対話型インスタンスを起動すると読み込まれます。対話型シェルは、端末で対話するシェルです。 GUIログインには対話型シェルは含まれていません(btw、zshは一般的なシステムにはまったく含まれていません)。

.zshrcGUIの設定を支援できません。ターミナルエミュレータを開いたり、テキストコンソールにログインしたり、ネットワーク経由で読んだときに読み込まれます。あなたがしたいことについては決して適切な時期に読まれることはありません。

セッションが開いている間にコマンドを実行する完全に移植可能な方法はありません。最も信頼性の高い方法は、ウィンドウマネージャのデスクトップ環境に実行ツールがある場合(ほとんどの場合)、それを使用することです。これは展開に関係のない唯一の方法です。

経由でGUIを実行するとstartxコマンドが実行されますので、~/.xinitrcそこにコマンドを入力してください。

グラフィカルモードログインの場合は、DE/WM に依存しない方法が必要な場合は、展開に応じて複数のフックを提供する必要があります。ディスプレイマネージャ、デスクトップ環境(またはセッションマネージャまたはウィンドウマネージャ)、およびディストリビューション(またはシステム管理者)がセッションタイプを設定する方法に応じて、次から実行するコマンドを提供できるファイルが存在する場合と存在しない場合があります。 GUIログイン。

  • カスタムセッションにログインした場合~/.xsession ただ。このファイルの目的は、DE / SM / WMを含むすべてを開始することです。
  • 一部の構成では~/.xprofile読み込まれます。
  • 一部の構成では~/.xsessionrc読み込まれます。

.xprofileファイルが.xsessionrc早すぎたり実行されたりする場合は、後でコードを実行するためにダーティトリックを使用する必要があります。スクリプト/etc/X11/Xsession.dなどを確認してください。これは展開に依存しています。もう一度言いますが、GUIログインとすべてのシステム関連コードを実行する最も簡単でポータブルな方法は、ウィンドウマネージャまたはデスクトップ環境で実行コマンドを宣言することです。実際にシステムセッション起動スクリプトにリンクされているスクリプトを使用する主な理由は、コードを早期に実行するためです。たとえば、WM/DE が呼び出される方法を変更したいからです。

1Display Managerは、グラフィカルモードでログインしたときにパスワードを要求するプログラムです。

関連情報