ディスプレイマネージャ

提供: ArchWiki
2021年2月23日 (火) 19:40時点におけるHayao0819 (トーク | 投稿記録)による版 (nodmについての注脚を追加)
ナビゲーションに移動 検索に移動

関連記事

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

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

コンソール

  • CDM — 非常に小さい、しかし機能がととのったログインマネージャ、bash によって実装
https://github.com/ghost1227/cdm || cdm-gitAUR
  • Console TDM — bash だけで書かれた xorg-xinit の拡張。
https://github.com/dopsi/console-tdm || console-tdmAUR
  • nodm — 自動ログイン用の無駄のないディスプレイマネージャ(開発終了)。
http://enricozini.org/sw/nodm/ || nodm
警告: nodmは作者が開発を終了しています。代わりにLightDMの自動ログインを使用してください。


グラフィカル

  • Entrance — EFL ベースのディスプレイマネージャ、実験段階。
http://enlightenment.org/ || entrance-gitAUR
  • GDMGNOME のディスプレイマネージャ。
https://wiki.gnome.org/Projects/GDM || gdm
  • KDMKDE のディスプレイマネージャ (開発終了)。
https://www.kde.org/ || kdebase-workspaceAUR
  • LightDM — クロスデスクトップのディスプレイマネージャ、様々なツールキットを使って書かれたフロントエンドを使用できます。
https://www.freedesktop.org/wiki/Software/LightDM || lightdm
  • LXDMLXDE のディスプレイマネージャ。LXDE とは別個に使うことも可能。
https://sourceforge.net/projects/lxdm/ || lxdm
  • MDM — GDM 2 のフォーク。
https://github.com/linuxmint/mdm || mdm-display-managerAUR
  • SDDM — QML ベースのディスプレイマネージャ (KDM の後継)。Plasma 5 や LXQt の推奨ディスプレイマネージャ。
https://github.com/sddm/sddm || sddm, sddm-qt5AUR[リンク切れ: アーカイブ: aur-mirror]
  • SLiM — 軽量でエレガントなグラフィカルログインを提供 (開発終了)。
http://slim.berlios.de/ || slim
  • XDM — XDMCP をサポートした X ディスプレイマネージャ、ホストが選べる。
https://www.x.org/archive/X11R7.5/doc/man/man1/xdm.1.html || xorg-xdm


ログインデーモン

  • Greetd — コンソールとグラフィカルグリーターの両方をサポートする最小限の柔軟で不可知論的なログインデーモン。
https://git.sr.ht/~kennylevinsen/greetd || greetd-gitAUR

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

グラフィカルログインを有効にするには、好きなディスプレイマネージャのデーモンを使って下さい (例: SDDM)。

# systemctl enable sddm

これだけで動くはずですが、動かない場合、手動で default.target を設定するか、古いインストールを使います:

$ ls -l /etc/systemd/system/default.target
[...] /etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target

シンボリックリンクを削除すれば systemd は標準の default.target (つまり graphical.target) を使うようになります。

# rm /etc/systemd/system/default.target

SDDM を有効にした後、シンボリックリンク "display-manager.service" が /etc/systemd/system/ に設定されるはずです:

$ ls -l /etc/systemd/system/display-manager.service
[...] /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/sddm.service

systemd-logind を使う

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

$ loginctl show-session $XDG_SESSION_ID

セッション設定

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

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

[Desktop Entry]
Encoding=UTF-8
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=XSession

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

xinit-xsessionAUR をインストールすることで .xinitrc をセッションとして実行することができるようになります。

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

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

[Desktop Entry]
Encoding=UTF-8
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

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

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

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

ヒントとテクニック

自動起動

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

言語の設定

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

[User]
Language=your_locale

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

ディスプレイマネージャを再起動することで変更が適用されます。

既知の問題

systemd との非互換性

影響がある DM: Entrance, MDM

いくつかのディスプレイマネージャは PAM セッションのプロセスを再利用するため systemd と完全な互換性がありません。そのため二回目のログアウトで様々な問題が発生します:

  • NetworkManager アプレットが動かない。
  • PulseAudio のボリュームが調整できない。
  • 他のユーザーで GNOME にログインできない。