ディスプレイマネージャ

提供: ArchWiki
2023年5月30日 (火) 08:16時点におけるAshMyzk (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

ディスプレイマネージャ、もしくはログインマネージャは、起動の最後に標準のシェルにかわって表示されるグラフィカルユーザーインターフェイスです。ウィンドウマネージャデスクトップ環境の数が多くあるように、様々な種類のディスプレイマネージャがあります。さらに、それぞれのマネージャをカスタマイズしたりテーマを選択したりすることが可能です。

ディスプレイマネージャ一覧

コンソール

  • CDMBash で記述されたログインマネージャー。
https://github.com/evertiro/cdm || cdmAUR
  • Console TDM — Bash だけで書かれた xinit の拡張。
https://github.com/dopsi/console-tdm || console-tdmAUR
  • nodm — 自動ログイン用のディスプレイマネージャ。2017 以降、開発中止。
https://github.com/spanezz/nodm || nodm
  • Ly — Linux と BSD のための TUI (ncurses ライクな) ディスプレイマネージャ。X と Wayland のセッションをサポートします。
https://github.com/nullgemm/ly || ly
  • tbsm — Bash セッションまたはアプリケーションランチャー。X と Wayland のセッションをサポートします。
https://loh-tar.github.io/tbsm/ || tbsmAUR
  • emptty — X と Wayland をサポートする TTY 上のシンプルな CLI ディスプレイマネージャー。
https://github.com/tvrzna/emptty/ || emptty-gitAUR
  • loginx — getty/login/xinit の組み合わせ。ユーザフレンドリーな curses ui。
https://sourceforge.net/projects/loginx/ || loginxAUR
  • Lemurs — Rust で書かれた、Linux 用 TUI ディスプレイマネージャ。X、Wayland、TTY シェルのセッションをサポートします。
https://github.com/coastalwhite/lemurs || lemurs-gitAUR

グラフィカル

  • EntranceEnlightenment のディスプレイマネージャ。非常に実験的で、適切な systemd サポートがありません。
https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR
  • GDMGNOME のディスプレイマネージャ。
https://wiki.gnome.org/Projects/GDM || gdm
  • LightDM — クロスデスクトップのディスプレイマネージャ、様々なツールキットを使って書かれたフロントエンドを使用できます。
https://github.com/CanonicalLtd/lightdm/ || lightdm
  • LXDMLXDE のディスプレイマネージャ。LXDE とは別個に使うことも可能。
https://sourceforge.net/projects/lxdm/ || lxdm, lxdm-gtk3
  • SDDM — QML ベースのディスプレイマネージャ (KDM の後継)。PlasmaLXQt の推奨ディスプレイマネージャ。
https://github.com/sddm/sddm || sddm
  • SLiM — 軽量でエレガントなグラフィカルログインのソリューション。2013 年以降、開発中止。systemd とは完全な互換性がありません。
https://sourceforge.net/projects/slim.berlios/ || slim
  • XDM — XDMCP をサポートした X ディスプレイマネージャ、ホストが選べる。
xdm(8) || xorg-xdm

ログインデーモン

  • greetd — コンソールとグラフィカルグリーターの両方をサポートするログインデーモン。
https://git.sr.ht/~kennylevinsen/greetd || greetd

ディスプレイマネージャをロードする

グラフィカルログインを有効にするには、適切な systemd サービスを有効化してください。例えば、SDDMの場合、sddm.service を有効にします。

これだけで動くはずですが、動かない場合、カスタム default.target シンボリックリンクをリセットして、デフォルトの graphical.target を指すようにする必要があるかもいれません。systemd#起動するデフォルトターゲットを変更 を参照してください。

SDDM有効にすると、シンボリックリンク display-manager.service/etc/systemd/system/ で設定されているはずです。古いシンボリックリンクを上書きするために、--force を使う必要があるかもしれません。

$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service

systemd-logind を使う

ユーザーセッションの状態を確認するには loginctl を使います。サスペンドや外部デバイスのマウントなどの全ての polkit アクションはそのまま動きます。

$ loginctl show-session $XDG_SESSION_ID

セッション設定

多くのディスプレイマネージャは /usr/share/xsessions/ ディレクトリから利用できるセッションを読み込みます。このディレクトリには DM/WM のための標準の デスクトップエントリファイル が入っています。一部のディスプレイマネージャは、Wayland 固有のセッションをリストアップするために、別のディレクトリ /usr/share/wayland-sessions/ を使用します。

ディスプレイマネージャのセッションリストにエントリを追加・削除するには、/usr/share/xsessions/ にある .desktop ファイルを必要に応じて作成・削除してください。典型的な .desktop ファイルは以下のようになります:

[Desktop Entry]
Name=Openbox
Comment=Log in using the Openbox window manager (without a session manager)
Exec=/usr/bin/openbox-session
TryExec=/usr/bin/openbox-session
Icon=openbox.png
Type=Application

セッションとして ~/.xinitrc を実行

xinit-xsessionAUR をインストールすることで xinitrc をセッションとして実行することができるようになります。ディスプレイマネージャに対して xinitrc をセッションとして設定してください。この時、~/.xinitrc実行可能であることを確認してください。

ウィンドウマネージャを使わずにアプリケーションを起動

ウィンドウ装飾やデスクトップ、ウィンドウ管理を省いて、アプリケーションを起動することもできます。例えば google-chromeAUR を起動するには、以下のように /usr/share/xsessions/web-browser.desktop ファイルを作成します:

[Desktop Entry]
Name=Web Browser
Comment=Use a web browser as your session
Exec=/usr/bin/google-chrome --auto-launch-at-startup
TryExec=/usr/bin/google-chrome --auto-launch-at-startup
Icon=google-chrome
Type=Application

この場合、ログイン時に、Exec で設定したアプリケーションがすぐに起動します。アプリケーションを閉じると、ログインマネージャに復帰します (DE/WM からログアウトしたときと同じ)。

この方法で起動することを、ほとんどのグラフィカルアプリケーションは想定していないため、上手く行くように設定が必要になるかもしれません (ウィンドウマネージャが存在しないため、ウィンドウの移動やサイズ変更はできず、ダイアログも使えません。アプリケーションの設定ファイルでウィンドウの配置を設定しておかなくてはならないでしょう)。

xinitrc#ウィンドウマネージャを使わずにアプリケーションを起動 も参照。

ヒントとテクニック

自動起動

ほとんどのディスプレイマネージャは /etc/xprofile, ~/.xprofile, /etc/X11/xinit/xinitrc.d/ を実行します。詳しくは xprofile を見て下さい。

ユーザセッションで使う言語を設定する

AccountsService を使用するディスプレイマネージャの場合、/var/lib/AccountsService/users/$USER を編集することでユーザセッションのロケールを設定できます:

/var/lib/AccountsService/users/$USER
[User]
Language=your_locale

your_localeja_JP.UTF-8 といった値に置き換えて下さい。

または、D-Bus を使用してこれを実現できます: busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s your_locale

ログアウトして再びログインし直せば、変更が適用されます。

翻訳ステータス: このページは en:Display manager の翻訳バージョンです。最後の翻訳日は 2023-05-30 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。