「ディスプレイマネージャ」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) →コンソール: 翻訳 |
同期 |
||
| (3人の利用者による、間の24版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category: |
[[Category:グラフィカルユーザーインターフェイス]] |
||
[[Category:ソフトウェア一覧]] |
[[Category:ソフトウェア一覧]] |
||
[[ar:Display manager]] |
|||
[[cs:Display manager]] |
|||
[[de:Login-Manager]] |
[[de:Login-Manager]] |
||
[[en:Display manager]] |
[[en:Display manager]] |
||
[[es:Display manager]] |
[[es:Display manager]] |
||
[[ |
[[fr:Display manager]] |
||
[[fr:Gestionnaire de connexions]] |
|||
[[he:Display manager]] |
|||
[[it:Display manager]] |
|||
[[pt:Display manager]] |
[[pt:Display manager]] |
||
[[ru:Display manager]] |
[[ru:Display manager]] |
||
[[tr:Görüntü yöneticisi]] |
|||
[[uk:Display manager]] |
|||
[[zh-hans:Display manager]] |
[[zh-hans:Display manager]] |
||
[[zh-hant:Display manager]] |
|||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|デスクトップ環境}} |
|||
{{Related|ウィンドウマネージャ}} |
|||
{{Related|ログイン時に X を起動}} |
{{Related|ログイン時に X を起動}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
[[Wikipedia:ja:Xディスプレイマネージャ|ディスプレイマネージャ]]、もしくはログインマネージャは、起動の最後に標準のシェルにかわって表示されるグラフィカルインターフェ |
[[Wikipedia:ja:Xディスプレイマネージャ|ディスプレイマネージャ]]、もしくはログインマネージャは、起動の最後に標準のシェルにかわって表示されるグラフィカルユーザーインターフェイスです。[[ウィンドウマネージャ]]と[[デスクトップ環境]]の数が多くあるように、様々な種類のディスプレイマネージャがあります。さらに、それぞれのマネージャをカスタマイズしたりテーマを選択したりすることが可能です。 |
||
== ディスプレイマネージャ一覧 == |
== ディスプレイマネージャ一覧 == |
||
=== コンソール === |
=== コンソール === |
||
| ⚫ | |||
* {{App|[[ |
* {{App|[[CDM]]|[[Bash]] で記述されたログインマネージャー。|https://github.com/evertiro/cdm|{{AUR|cdm}}}} |
||
* {{App|[[Console TDM]]|Bash だけで書かれた ''xinit'' の拡張。|https://github.com/dopsi/console-tdm|{{AUR|console-tdm}}}} |
|||
* {{App|[[nodm]]|自動ログイン用のディスプレイマネージャ(2017年以降はメンテナンスされていません)。|http://enricozini.org/sw/nodm/|{{Pkg|nodm}}}} |
|||
* {{App| |
* {{App|nodm|自動ログイン用のディスプレイマネージャ。2017 以降、開発中止。|https://github.com/spanezz/nodm|{{Pkg|nodm}}}} |
||
* {{App| |
* {{App|Ly|Linux と BSD のための TUI (ncurses ライクな) ディスプレイマネージャ。X と Wayland のセッションをサポートします。|https://github.com/nullgemm/ly|{{Pkg|ly}}}} |
||
* {{App| |
* {{App|tbsm|Bash セッションまたはアプリケーションランチャー。X と Wayland のセッションをサポートします。|https://loh-tar.github.io/tbsm/|{{AUR|tbsm}}}} |
||
* {{App|emptty|X と Wayland をサポートする TTY 上のシンプルな CLI ディスプレイマネージャー。|https://github.com/tvrzna/emptty/|{{AUR|emptty-git}}}} |
|||
* {{App|loginx|getty/login/xinit の組み合わせ。ユーザフレンドリーな curses ui。|https://sourceforge.net/projects/loginx/|{{AUR|loginx}}}} |
|||
* {{App|Lemurs|Rust で書かれた、Linux 用 TUI ディスプレイマネージャ。X、Wayland、TTY シェルのセッションをサポートします。|https://github.com/coastalwhite/lemurs|{{AUR|lemurs-git}}}} |
|||
=== グラフィカル === |
=== グラフィカル === |
||
* {{App|[[Enlightenment|Entrance]]|EFL ベースのディスプレイマネージャ、実験段階。|http://enlightenment.org/|{{AUR|entrance-git}}}} |
|||
| ⚫ | |||
* {{App|[[KDM]]|[[KDE]] のディスプレイマネージャ (開発終了)。|https://www.kde.org/|{{AUR|kdebase-workspace}}}} |
|||
| ⚫ | |||
* {{App|[[LXDM]]|[[LXDE]] のディスプレイマネージャ。LXDE とは別個に使うことも可能。|https://sourceforge.net/projects/lxdm/|{{Pkg|lxdm}}}} |
|||
* {{App|MDM|GDM 2 のフォーク。|https://github.com/linuxmint/mdm|{{AUR|mdm-display-manager}}}} |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
* {{App|[[Entrance]]|[[Enlightenment]] のディスプレイマネージャ。非常に実験的で、適切な systemd サポートがありません。|https://github.com/Obsidian-StudiosInc/entrance|{{AUR|entrance-git}}}} |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
=== ログインデーモン === |
=== ログインデーモン === |
||
* {{App|[ |
* {{App|[[greetd]]|コンソールの greeter とグラフィカルな greeter の両方をサポートするログインデーモン。|https://git.sr.ht/~kennylevinsen/greetd|{{Pkg|greetd}}}} |
||
==ディスプレイマネージャをロードする== |
== ディスプレイマネージャをロードする == |
||
グラフィカルログインを有効にするには、 |
グラフィカルログインを有効にするには、適切な systemd サービスを[[有効化]]してください。例えば、[[SDDM]] の場合、{{ic|sddm.service}} を有効にします。 |
||
これだけで動くはずですが、動かない場合、カスタム {{ic|default.target}} シンボリックリンクをリセットして、デフォルトの {{ic|graphical.target}} を指すようにする必要があるかもしれません。[[systemd#起動するデフォルトターゲットを変更]] を参照してください。 |
|||
# systemctl enable sddm |
|||
| ⚫ | |||
これだけで動くはずですが、動かない場合、手動で {{ic|default.target}} を設定するか、古いインストールを使います: |
|||
{{hc|$ |
{{hc|$ file /etc/systemd/system/display-manager.service| |
||
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service |
|||
}} |
|||
シンボリックリンクを削除すれば systemd は標準の {{ic|default.target}} (つまり {{ic|graphical.target}}) を使うようになります。 |
|||
# rm /etc/systemd/system/default.target |
|||
| ⚫ | |||
{{hc|$ ls -l /etc/systemd/system/display-manager.service| |
|||
[...] /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/sddm.service}} |
|||
=== systemd-logind を使う === |
=== systemd-logind を使う === |
||
ユーザーセッションの状態を確認するには |
ユーザーセッションの状態を確認するには ''loginctl'' を使います。サスペンドや外部デバイスのマウントなどの全ての [[polkit]] アクションはそのまま動きます。 |
||
$ loginctl show-session $XDG_SESSION_ID |
$ loginctl show-session $XDG_SESSION_ID |
||
| 78行目: | 61行目: | ||
== セッション設定 == |
== セッション設定 == |
||
多くのディスプレイマネージャは {{ic|/usr/share/xsessions/}} ディレクトリから利用できるセッションを読み込みます。このディレクトリには DM/WM のための標準の [https:// |
多くのディスプレイマネージャは {{ic|/usr/share/xsessions/}} ディレクトリから利用できるセッションを読み込みます。このディレクトリには DM/WM のための標準の [https://specifications.freedesktop.org/desktop-entry-spec/latest/ デスクトップエントリファイル] が入っています。一部のディスプレイマネージャは、[[Wayland]] 固有のセッションをリストアップするために、別のディレクトリ {{ic|/usr/share/wayland-sessions/}} を使用します。 |
||
ディスプレイマネージャのセッションリストにエントリを追加・削除するには、{{ic|/usr/share/xsessions/}} にある .desktop ファイルを必要に応じて作成・削除してください。典型的な .desktop ファイルは以下のようになります: |
ディスプレイマネージャのセッションリストにエントリを追加・削除するには、{{ic|/usr/share/xsessions/}} にある ''.desktop'' ファイルを必要に応じて作成・削除してください。典型的な ''.desktop'' ファイルは以下のようになります: |
||
[Desktop Entry] |
[Desktop Entry] |
||
Encoding=UTF-8 |
|||
Name=Openbox |
Name=Openbox |
||
Comment=Log in using the Openbox window manager (without a session manager) |
Comment=Log in using the Openbox window manager (without a session manager) |
||
| 89行目: | 71行目: | ||
TryExec=/usr/bin/openbox-session |
TryExec=/usr/bin/openbox-session |
||
Icon=openbox.png |
Icon=openbox.png |
||
Type= |
Type=Application |
||
===セッションとして ~/.xinitrc を実行=== |
=== セッションとして ~/.xinitrc を実行 === |
||
{{AUR|xinit-xsession}} をインストールすることで {{ic|.xinitrc}} をセッションとして実行することができるようになります。 |
|||
{{AUR|xinit-xsession}} をインストールすることで [[xinitrc]] をセッションとして実行することができるようになります。ディスプレイマネージャに対して {{ic|xinitrc}} をセッションとして設定してください。この時、{{ic|~/.xinitrc}} が[[実行可能属性|実行可能]]であることを確認してください。 |
|||
=== ウィンドウマネージャを使わずにアプリケーションを起動 === |
=== ウィンドウマネージャを使わずにアプリケーションを起動 === |
||
| 99行目: | 82行目: | ||
[Desktop Entry] |
[Desktop Entry] |
||
Encoding=UTF-8 |
|||
Name=Web Browser |
Name=Web Browser |
||
Comment=Use a web browser as your session |
Comment=Use a web browser as your session |
||
| 105行目: | 87行目: | ||
TryExec=/usr/bin/google-chrome --auto-launch-at-startup |
TryExec=/usr/bin/google-chrome --auto-launch-at-startup |
||
Icon=google-chrome |
Icon=google-chrome |
||
Type=Application |
|||
この場合、ログイン時に、{{ic|Exec}} で設定したアプリケーションがすぐに起動します。アプリケーションを閉じると、ログインマネージャに復帰します (DE/WM からログアウトしたときと同じ)。 |
この場合、ログイン時に、{{ic|Exec}} で設定したアプリケーションがすぐに起動します。アプリケーションを閉じると、ログインマネージャに復帰します (DE/WM からログアウトしたときと同じ)。 |
||
| 110行目: | 93行目: | ||
この方法で起動することを、ほとんどのグラフィカルアプリケーションは想定していないため、上手く行くように設定が必要になるかもしれません (ウィンドウマネージャが存在しないため、ウィンドウの移動やサイズ変更はできず、ダイアログも使えません。アプリケーションの設定ファイルでウィンドウの配置を設定しておかなくてはならないでしょう)。 |
この方法で起動することを、ほとんどのグラフィカルアプリケーションは想定していないため、上手く行くように設定が必要になるかもしれません (ウィンドウマネージャが存在しないため、ウィンドウの移動やサイズ変更はできず、ダイアログも使えません。アプリケーションの設定ファイルでウィンドウの配置を設定しておかなくてはならないでしょう)。 |
||
[[xinitrc#ウィンドウマネージャを使わずにアプリケーションを起動]]も参照。 |
[[xinitrc#ウィンドウマネージャを使わずにアプリケーションを起動]] も参照。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
| 118行目: | 101行目: | ||
ほとんどのディスプレイマネージャは {{ic|/etc/xprofile}}, {{ic|~/.xprofile}}, {{ic|/etc/X11/xinit/xinitrc.d/}} を実行します。詳しくは [[xprofile]] を見て下さい。 |
ほとんどのディスプレイマネージャは {{ic|/etc/xprofile}}, {{ic|~/.xprofile}}, {{ic|/etc/X11/xinit/xinitrc.d/}} を実行します。詳しくは [[xprofile]] を見て下さい。 |
||
=== 言語 |
=== ユーザセッションで使う言語を設定する === |
||
[https://freedesktop.org/wiki/Software/AccountsService/ AccountsService] を使用するディスプレイマネージャの場合、{{ic|/var/lib/AccountsService/users/$USER}} を編集することで |
[https://freedesktop.org/wiki/Software/AccountsService/ AccountsService] を使用するディスプレイマネージャの場合、{{ic|/var/lib/AccountsService/users/$USER}} を編集することでユーザセッションの[[ロケール]]を設定できます:{{hc|/var/lib/AccountsService/users/$USER|2= |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
''your_locale'' を {{ic|ja_JP.UTF-8}} といった値に置き換えて下さい。 |
''your_locale'' を {{ic|ja_JP.UTF-8}} といった値に置き換えて下さい。 |
||
または、[[D-Bus]] を使用してこれを実現できます: |
|||
ディスプレイマネージャを再起動することで変更が適用されます。 |
|||
{{ic|busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s ''your_locale''}} |
|||
ログアウトして再びログインし直せば、変更が適用されます。 |
|||
=== LUKS で自動ログイン時に Gnome Keyring / KDE KWalletを自動的に解除する === |
|||
systemd バージョン255 以降、[https://www.freedesktop.org/software/systemd/man/latest/pam_systemd_loadkey.html pam_systemd_loadkey] を使用することで、ユーザーのパスワードがシステムの LUKS パスフレーズと一致している場合に、GNOME Keyring や KWallet を解除できます。この機能を利用するには、ディスプレイマネージャで自動ログインを有効にする必要があります。 |
|||
== 既知の問題 == |
|||
== 参照 == |
|||
=== systemd との非互換性 === |
|||
* [https://kl.wtf/posts/2022/03/12/login-managers-an-introduction.html#pluggable-authentication-modules Login managers: An introduction] - Discusses implementation of a login manager |
|||
''影響がある DM: Entrance, MDM'' |
|||
{{TranslationStatus|Display manager|2025-02-09|778791}} |
|||
いくつかのディスプレイマネージャは [[PAM]] セッションのプロセスを再利用するため systemd と完全な互換性がありません。そのため二回目のログアウトで様々な問題が発生します: |
|||
* NetworkManager アプレットが動かない。 |
|||
* PulseAudio のボリュームが調整できない。 |
|||
* 他のユーザーで GNOME にログインできない。 |
|||
2025年2月9日 (日) 22:25時点における最新版
関連記事
ディスプレイマネージャ、もしくはログインマネージャは、起動の最後に標準のシェルにかわって表示されるグラフィカルユーザーインターフェイスです。ウィンドウマネージャとデスクトップ環境の数が多くあるように、様々な種類のディスプレイマネージャがあります。さらに、それぞれのマネージャをカスタマイズしたりテーマを選択したりすることが可能です。
ディスプレイマネージャ一覧
コンソール
- Console TDM — Bash だけで書かれた xinit の拡張。
- nodm — 自動ログイン用のディスプレイマネージャ。2017 以降、開発中止。
- Ly — Linux と BSD のための TUI (ncurses ライクな) ディスプレイマネージャ。X と Wayland のセッションをサポートします。
- tbsm — Bash セッションまたはアプリケーションランチャー。X と Wayland のセッションをサポートします。
- emptty — X と Wayland をサポートする TTY 上のシンプルな CLI ディスプレイマネージャー。
- loginx — getty/login/xinit の組み合わせ。ユーザフレンドリーな curses ui。
- Lemurs — Rust で書かれた、Linux 用 TUI ディスプレイマネージャ。X、Wayland、TTY シェルのセッションをサポートします。
グラフィカル
- Entrance — Enlightenment のディスプレイマネージャ。非常に実験的で、適切な systemd サポートがありません。
- LightDM — クロスデスクトップのディスプレイマネージャ、様々なツールキットを使って書かれたフロントエンドを使用できます。
- SLiM — 軽量でエレガントなグラフィカルログインのソリューション。2013 年以降、開発中止。systemd とは完全な互換性がありません。
- XDM — XDMCP をサポートした X ディスプレイマネージャ、ホストが選べる。
ログインデーモン
- greetd — コンソールの greeter とグラフィカルな greeter の両方をサポートするログインデーモン。
ディスプレイマネージャをロードする
グラフィカルログインを有効にするには、適切な 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_locale を ja_JP.UTF-8 といった値に置き換えて下さい。
または、D-Bus を使用してこれを実現できます:
busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s your_locale
ログアウトして再びログインし直せば、変更が適用されます。
LUKS で自動ログイン時に Gnome Keyring / KDE KWalletを自動的に解除する
systemd バージョン255 以降、pam_systemd_loadkey を使用することで、ユーザーのパスワードがシステムの LUKS パスフレーズと一致している場合に、GNOME Keyring や KWallet を解除できます。この機能を利用するには、ディスプレイマネージャで自動ログインを有効にする必要があります。
参照
- Login managers: An introduction - Discusses implementation of a login manager