Universal Wayland Session Manager

提供: ArchWiki
ナビゲーションに移動 検索に移動

Universal Wayland Session Manager(uwsm)は、スタンドアロンのWayland コンポジタ をオンザフライで systemd ユニットのセットにラップします。これにより、環境設定、XDG Autostart のサポート、ログインセッションとの双方向バインディング、クリーンシャットダウンを含む堅牢なセッション管理が提供されます。

ノート: dbus-broker を D-Bus デーモンの実装として使用することが強く推奨されます。その他の利点として、システムdのアクティベーション環境を再利用し、別の環境を持つことがないため、環境管理が簡素化され、適切なクリーンアップが可能になります。参照実装 もサポートされていますが、変数の解除ができないため、代わりに空の文字列を設定して最善の努力でクリーンアップが行われます。D-Bus デーモンの別々の環境を適切にクリーンアップする唯一の方法は、loginctl terminate-user ""を実行することです。

インストール

uwsm パッケージをインストールします。

設定

コンポジタによって設定されたサービスの起動通知と変数

ノート: 管理されているコンポジタがすでに WAYLAND_DISPLAY(およびその他の有用な環境変数)を systemd アクティベーション環境に設定している場合、このセクションをスキップでき、uwsm finalize を使用する必要はありません。

現在のコンポジタを見つけるために、Wayland アプリケーションは WAYLAND_DISPLAY(または、Xwayland を通じて実行する場合は DISPLAY)変数が必要です。そのため、これらの環境変数およびその他の有用な環境変数は、コンポジタがその値を設定した後、systemd/dbus アクティベーション環境に設定する必要があります。

コマンド uwsm finalize は、WAYLAND_DISPLAYDISPLAY および UWSM_FINALIZE_VARNAMES リストで空白区切りで指定されたその他の環境変数をアクティベーション環境に設定します。したがって、このコマンドはコンポジタが準備完了した後に実行する必要があります。

コンポジタによって設定された他の変数がアクティベーション環境に必要な場合、それらも引数として渡すことができます:

exec uwsm finalize VAR1 VAR2 ...

環境変数

${XDG_CONFIG_HOME}/uwsm/env ファイルに設定されたすべての環境変数は、uwsm によってソースされ、管理されているコンポジタおよびそのセッション内で実行されるグラフィカルアプリケーションで利用可能になります。

特定のコンポジタ(およびそのグラフィカルセッション内のグラフィカルアプリケーション)のみのために環境変数を設定する必要がある場合は、代わりに ${XDG_CONFIG_HOME}/uwsm/env-compositor に入れてください。

これらのファイルでは、以下の形式で環境変数を設定する必要があります:

export KEY1=VAR1
export KEY2=VAR2
export KEY3=VAR3
...

コメントを含めるべきではありません。

使い方

起動する

UWSM は、TTY とディスプレイマネージャによって開始できます。

TTY

~/.profile ファイルに追加してください:

if uwsm check may-start && uwsm select; then
  exec uwsm start default
fi

同じ コンポジタ を常に起動したい場合は、代わりに ~/.profile ファイルに次のように記述できます:

if uwsm check may-start; then
  exec uwsm start compositor.desktop
fi

ディスプレイマネージャ

UWSM を介してコンポジタを開始するカスタムしたセッションデスクトップエントリを作成できます:

/usr/share/wayland-sessions/my-compositor-uwsm.desktop
Name=My compositor (with UWSM)
Comment=My cool compositor, UWSM session

# either full command line with metadata and executable
Exec=uwsm start -N "My compositor" -D mycompositor:mylib -C "My cool compositor" -- my-compositor

# or a reference to another entry
Exec=uwsm start -- my-compositor.desktop

DesktopNames=mycompositor;mylib
Type=Application

セッション終了

現在の uwsm セッションを終了したい場合、次のいずれかを使用する必要があります:loginctl terminate-user ""(ユーザーセッション全体を終了)または uwsm stop(uwsm start 後にコードを実行するか、ログインシェルを置き換えた場合はユーザーセッションを終了)

警告: コンポジタのネイティブな終了メカニズムを使用したり、そのプロセスを直接終了させたりしないでください。これにより、コンポジタがすべてのクライアントから突然切り離され、順序付けられたユニットの非アクティブ化シーケンスに干渉することになります。