「SDDM」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎設定: 「Qt」をリンクに)
(5人の利用者による、間の31版が非表示)
2行目: 2行目:
 
[[Category:ディスプレイマネージャ]]
 
[[Category:ディスプレイマネージャ]]
 
[[en:SDDM]]
 
[[en:SDDM]]
  +
[[fr:SDDM]]
 
[[ru:SDDM]]
 
[[ru:SDDM]]
[[zh-CN:SDDM]]
+
[[zh-hans:SDDM]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related2|Display Manager|ディスプレイマネージャ}}
+
{{Related|ディスプレイマネージャ}}
{{Related2|KDE|KDE}}
+
{{Related|KDE}}
 
{{Related articles end}}
 
{{Related articles end}}
 
[[Wikipedia:Simple Desktop Display Manager|Simple Desktop Display Manager]] (SDDM) は [[KDE|KDE 5]] の Plasma デスクトップで推奨されている[[ディスプレイマネージャ]]です。
 
[[Wikipedia:Simple Desktop Display Manager|Simple Desktop Display Manager]] (SDDM) は [[KDE|KDE 5]] の Plasma デスクトップで推奨されている[[ディスプレイマネージャ]]です。
12行目: 13行目:
 
Wikipedia より:
 
Wikipedia より:
   
:''Simple Desktop Display Manager (SDDM) は X11 と Wayland ウィンドウシステム向けのディスプレイマネージャ (グラフィカルログインプログラム) である。SDDM は C++11 によってスクラッチで書かれており QML によるテーマ機能をサポートしています。KDE ディスプレイマネージャの後継で KDE Frameworks 5, KDE Plasma 5, KDE Applications 5 と合わせて使われる。''
+
:''Simple Desktop Display Manager (SDDM) は X11 と Wayland ウィンドウシステム向けのディスプレイマネージャ (グラフィカルログインプログラム) である。SDDM は C++11 によってスクラッチで書かれており QML によるテーマ機能をサポートしてい。KDE ディスプレイマネージャの後継で KDE Frameworks 5, KDE Plasma 5, KDE Applications 5 と合わせて使われる。''
   
  +
{{Note|Wayland のサポートは完全ではありません [https://github.com/sddm/sddm/issues/440]。Wayland のセッションは認識されますが、SDDM 自体は X11 で動作します。SDDM 0.20 では完全な Wayland サポートが導入されます。[https://github.com/sddm/sddm/pull/1393]}}
== インストール ==
 
   
  +
== インストール ==
[[公式リポジトリ]]から {{Pkg|sddm}} パッケージを[[インストール]]してください。
 
   
  +
{{Pkg|sddm}} パッケージを[[インストール]]してください。任意で [[KDE#KCM|KConfig Module(KDE 設定モジュール)]] 用の {{Pkg|sddm-kcm}} もインストールしてください。
そして[[Display Manager#ディスプレイマネージャをロードする|ディスプレイマネージャ#ディスプレイマネージャをロードする]]にしたがってブート時に SDDM を起動させます。KDM から移行する場合は、以下を実行してください:
 
   
  +
そして[[ディスプレイマネージャ#ディスプレイマネージャをロードする]]にしたがってブート時に SDDM を起動させます。
{{hc |
 
# systemctl disable kdm && systemctl enable sddm |
 
Removed symlink /etc/systemd/system/display-manager.service.
 
Created symlink from /etc/systemd/system/display-manager.service to /usr/lib/systemd/sddm.service.}}
 
   
 
== 設定 ==
 
== 設定 ==
   
SDDM の設定ファイルは {{ic|/etc/sddm.conf}} す。オプションの全ては {{ic|man sddm.conf}} を見て下さい。
+
SDDM のデフォルト設定ファイルは {{ic|/usr/lib/sddm/sddm.conf.d/default.conf}} に存在します。設定を変更するときは {{ic|/etc/sddm.conf.d/}} に設定ファイルを作成してください。利用可能なオプションは {{man|5|sddm.conf}} を見て下さい。
   
  +
({{grp|plasma}} グループに含まれている) {{pkg|sddm-kcm}} パッケージをインストールすることで Plasma のシステム設定から GUI で SDDM を設定できます。[[Qt]] ベースの設定エディタ ({{AUR|sddm-config-editor-git}}) も存在します。
[[systemd|systemd]] によって制御されている環境では、SDDM がデフォルトで {{ic|systemd-logind}} を使ってセッションを管理するため、何も設定しなくても問題なく動作します。そのため、パッケージをインストールした時に設定ファイルは作成されません。SDDM にはデフォルト設定のサンプル設定ファイルを生成するコマンドがあるので、必要であれば使って下さい:
 
   
  +
[[systemd]] によって制御されている環境では、SDDM がデフォルトで {{ic|systemd-logind}} を使ってセッションを管理するため、何も設定しなくても問題なく動作します。そのため、パッケージをインストールした時に設定ファイルは作成されません。SDDM にはデフォルト設定のサンプル設定ファイルを生成するコマンドがあるので、必要であれば使って下さい:
# sddm --example-config > /etc/sddm.conf
 
  +
  +
# sddm --example-config > /etc/sddm.conf.d/sddm.conf
   
 
=== 自動ログイン ===
 
=== 自動ログイン ===
37行目: 37行目:
 
KDM と同じように、SDDM は設定ファイルによって自動ログインをサポートしています、例:
 
KDM と同じように、SDDM は設定ファイルによって自動ログインをサポートしています、例:
   
  +
{{hc|/etc/sddm.conf.d/autologin.conf|2=
{{hc|
 
  +
[Autologin]
1=/etc/sddm.conf|
 
2=[Autologin]
 
 
User=john
 
User=john
Session=plasma.desktop
+
Session=plasma
 
}}
 
}}
   
上の設定だと、システムが起動した時に {{ic|john}} ユーザーで KDE Plasma セッションが起動します。利用できるセッションのタイプは {{ic|ls /usr/share/xsessions/}} でわかります。
+
上の設定だと、システムが起動した時に {{ic|john}} ユーザーで KDE Plasma セッションが起動します。利用できるセッションのタイプについては、X 用は {{ic|/usr/share/xsessions/}} で、Wayland 用は {{ic|/usr/share/wayland-sessions/}} でわかります。
   
  +
KDE Plasma の自動ログインを使用した場合、セッションのロックは利用できなくなります [https://github.com/sddm/sddm/issues/306]。
{{Warning|設定を誤ると、あなたのノートパソコンへの物理的なアクセスを手に入れた攻撃者が自動ログインを使って、たやすくデスクトップを破壊してしまう可能性があります。自動ログインは他の認証プロンプトによってシステムが保護されているときにだけ有効にしてください。例: パスフレーズによる [[dm-crypt|root ファイルシステムの暗号化]]。}}
 
   
  +
以下のスクリプトを追加することで KDE のスクリーンセーバーを自動的に有効化することが可能です:
[https://github.com/sddm/sddm/issues/306 執筆時点]で、セッションをロックしているときに KDE Plasma に自動ログインすることはできません。
 
  +
  +
#!/bin/sh
  +
/usr/bin/dbus-send --session --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock &
  +
  +
=== ログイン時に KDE Wallet のロックを解除 ===
  +
  +
[[KDE Wallet#ログイン時に KDE ウォレットを自動的にアンロック]]を見てください。
   
 
=== テーマ設定 ===
 
=== テーマ設定 ===
   
 
テーマの設定は {{ic|[Theme]}} セクションで変更できます。
 
テーマの設定は {{ic|[Theme]}} セクションで変更できます。
  +
  +
デフォルトの Plasma テーマを使いたい場合 {{ic|breeze}} に設定してください。
  +
  +
{{AUR|archlinux-themes-sddm}} など、[[AUR]] から入手できるテーマもあります。
   
 
==== メインテーマ ====
 
==== メインテーマ ====
   
メインテーマは {{ic|Current}} で設定します。例: {{ic|1=Current=archlinux}}。
+
メインテーマは {{ic|Current}} で設定します。例: {{ic|1=Current=archlinux-simplyblack}}。
  +
  +
==== テーマの編集 ====
  +
  +
SDDM のデフォルトのテーマディレクトリは {{ic|/usr/share/sddm/themes/}} です。作成したカスタムテーマはこのディレクトリのサブディレクトリに追加することができます。サブディレクトリの名前はテーマの名前と合わせる必要があります。インストールされているファイルを参考に自分自身のテーマを作成してみてください。
  +
  +
==== テーマをカスタマイズ ====
  +
  +
設定ファイルの {{ic|theme.conf}} の設定をオーバーライドするためには、カスタムの {{ic|theme.conf.user}} ファイルを同じディレクトリに作成してください。例えば、テーマの背景を変更するには:
  +
  +
{{hc|head=/usr/share/sddm/themes/''name''/theme.conf.user|output=
  +
[General]
  +
background=''/path/to/background.png''
  +
}}
  +
  +
==== テーマのテスト (プレビュー) ====
  +
  +
必要であれば SDDM のテーマをプレビューすることができます。以下のようにコマンドを実行してください:
  +
  +
$ sddm-greeter --theme /usr/share/sddm/themes/breeze
  +
  +
新しいウィンドウが開いてテーマのプレビューが表示されます。
  +
  +
{{Note|プレビューモードでは、シャットダウンやサスペンド、ログインなどは出来ません。}}
   
 
==== マウスカーソル ====
 
==== マウスカーソル ====
   
 
マウスカーソルのテーマを設定したい場合は、{{ic|CursorTheme}} を使用したいカーソルテーマに設定してください。
 
マウスカーソルのテーマを設定したい場合は、{{ic|CursorTheme}} を使用したいカーソルテーマに設定してください。
  +
  +
[[Plasma]] で使用できるマウスカーソルのテーマの名前は: {{ic|breeze_cursors}}, {{ic|Breeze_Snow}}, {{ic|breeze-dark}}。
   
 
==== アバターの変更 ====
 
==== アバターの変更 ====
   
{{ic|username.face.icon}} という名前の png 画像をデフォルトディレクトリ {{ic|/usr/share/sddm/faces/}} に配置してください。もしくはデフォルトディレクトリを別のディレクトリに変更することもできます。例: {{ic|1=FacesDir=/var/lib/AccountsService/users/}}。
+
{{ic|username.face.icon}} という名前の png 画像をデフォルトディレクトリ {{ic|/usr/share/sddm/faces/}} に配置してください。もしくはデフォルトディレクトリを別のディレクトリに変更することもできます。例:
  +
  +
{{hc|/etc/sddm.conf.d/avatar.conf|2=
  +
[Theme]
  +
FacesDir=/var/lib/AccountsService/icons/
  +
}}
  +
  +
ホームディレクトリのルートに {{ic|.face.icon}} という名前の PNG 画像を置く方法もあります。ただし、{{ic|sddm}} ユーザーからファイルが読み込めるようにする必要があります。
  +
  +
{{Note|アバター画像がシンボリックリンクの場合、リンク先のファイルに適切なファイル権限を設定してください。[[#ユーザーアイコンが表示されない]]を参照。}}
   
 
=== Numlock ===
 
=== Numlock ===
70行目: 114行目:
 
Numlock を強制的に有効にしたい場合、{{ic|[General]}} セクションに {{ic|1=Numlock=on}} と設定してください。
 
Numlock を強制的に有効にしたい場合、{{ic|[General]}} セクションに {{ic|1=Numlock=on}} と設定してください。
   
=== 設定 GUI ===
+
=== ディスプレイの回転 ===
   
  +
[[Xrandr#設定]]を見てください。
* KDE Frameworks のシステム設定に SDDM 設定モジュールが含まれています。
 
  +
* Qt ベースの設定エディタを [[AUR]] の {{AUR|sddm-config-editor-git}} でインストールできます。
 
  +
=== DPI の設定 ===
  +
  +
ディスプレイマネージャからディスプレイの PPI 設定を適切に設定できると便利です。設定ファイルで "ServerArguments" パラメータの末尾に {{ic|-dpi ''your_dpi''}} を追加してください。例:
  +
  +
{{hc|head=/etc/sddm.conf.d/dpi.conf|output=
  +
[X11]
  +
ServerArguments=-nolisten tcp -dpi 94
  +
}}
  +
  +
=== HiDPI の有効化 ===
  +
  +
以下のファイルを作成してください:
  +
  +
{{hc|/etc/sddm.conf.d/hidpi.conf|2=
  +
[Wayland]
  +
EnableHiDPI=true
  +
  +
[X11]
  +
EnableHiDPI=true
  +
}}
  +
  +
=== 仮想キーボードを有効化する ===
  +
  +
{{pkg|qt5-virtualkeyboard}} をインストールしてください。
  +
  +
以下のファイルを作成してください:
  +
  +
{{hc|/etc/sddm.conf.d/virtualkbd.conf|2=
  +
[General]
  +
InputMethod=qtvirtualkeyboard
  +
}}
  +
  +
これで、SDDM は仮想キーボードを開くボタンをログインスクリーンの左下の角に表示するようになります。
  +
  +
=== 指紋認証の利用 ===
  +
  +
{{Note|作業前に指紋登録がなされていることを確認してください。指紋リーダーへの対応は不完全であり、この方法ではパスワードのみでのログインは不可能なようです。}}
  +
  +
SDDM では [[fprint]] を利用した指紋認証が可能です。{{Pkg|fprint}} をインストールし指紋署名を登録したのち、{{ic|/etc/pam.d/sddm}} の先頭に以下の行を加えてください:
  +
  +
{{hc|/etc/pam.d/sddm|
  +
auth sufficient pam_fprintd.so}}
  +
  +
パスワードか指紋認証のいずれか片方を使うためには、代わりに以下の行を {{ic|/etc/pam.d/sddm}} の先頭に加えてください:
  +
  +
{{hc|1=/etc/pam.d/sddm|2=
  +
auth [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so try_first_pass likeauth nullok
  +
auth sufficient pam_fprintd.so}}
  +
  +
KWallet は指紋リーダーを使ってロックを解除できないことに注意してください([[KDE Wallet#ログイン時に KDE ウォレットを自動的にアンロック]] をご覧ください)。しかし、1行目によりパスワードログインが自動的に KWallet を解除することが保証されます。
  +
  +
{{Tip|KDE のロックスクリーンで動作させるには、先と同じ行を {{ic|/etc/pam.d_kde}} の先頭に加えてください。
  +
  +
また、ロックスクリーンではパスワード認証と指紋認証のいずれか片方を使うこともできます。auth セクションの先頭に以下を加えてください:
  +
  +
{{hc|/etc/pam.d/kde|
  +
auth sufficient pam_unix.so try_first_pass likeauth nullok
  +
auth sufficient pam_fprintd.so
  +
}}
  +
  +
1行目が先の {{ic|/etc/pam.d/sddm}} の対応する設定と異なることがわかります。KDE のロックスクリーンは KWallet の pam モジュールを実行する必要がないからです。}}
  +
  +
パスワード欄を空にして {{ic|Enter}} キーを押すと、指紋認証が開始されます。
  +
  +
=== Wayland で動かす ===
  +
  +
SDDM は Wayland で rootless に動かすことができます。ただし、今のところ {{AUR|sddm-git}} パッケージを使っているときのみです。
  +
  +
新しい設定ファイルを {{ic|/etc/sddm.conf.d/}} ディレクトリに作成し、名前は {{ic|/etc/sddm.conf.d/10-wayland.conf}} のようにしてください。
  +
  +
そして、その新しいファイルに以下の内容を追加します:
  +
  +
{{hc|/etc/sddm.conf.d/10-wayland.conf|2=
  +
[General]
  +
DisplayServer=wayland
  +
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
  +
  +
[Wayland]
  +
CompositorCommand=}}
  +
  +
次に、SDDM を表示するための Wayland のコンポジター(例えば、[[KDE]] の KWin コンポジター)が必要です。{{ic|CompositorCommand}} へのパラメータとしてコンポジターのプログラムや関連する引数を入力します。
  +
  +
==== KDE / KWin ====
  +
  +
{{Warning|SDDM は KWin によって別のウインドウとして扱われるので、ログインすることによりそのウインドウを閉じることになります。ゆえに、'''ログアウト'''や'''ユーザの切り替え'''は望ましくない動作を引き起こします。}}
  +
  +
{{Tip|KDE Wayland のディスプレイの設定(e.g. モニターレイアウト, 解像度, etc)に対する如何なる変更も SDDM に対しては適用されません。設定を適用させるには、KDE の ''System Settings'' を開き、''Startup and Shutdown> Login Screen (SDDM)'' へ行き、"''Apply Plasma Settings...''" をクリックしてください。この操作を行うためには許可が必要です。}}
  +
  +
以下の内容を {{ic|CompositorCommand}} へのパラメータとして、先に作成した SDDM の設定ファイル(e.g {{ic|/etc/sddm.conf.d/10-wayland.conf}}) に追加してください:
  +
  +
{{hc|/etc/sddm.conf.d/10-wayland.conf|2=
  +
[Wayland]
  +
CompositorCommand=kwin_wayland --no-lockscreen}}
  +
  +
仮想キーボードのサポートを有効化するためには(例えば、{{pkg|qt5-virtualkeyboard}} や {{pkg|maliit-keyboard}} を使う場合)、以下のように {{ic|--inputmethod}} フラグに適切なキーボードを指定して、{{ic|kwin_wayland}} コマンドに追加してください(必要に応じて、{{ic|maliit-keyboard}} を {{ic|qtvirtualkeyboard}} に置き換えてください):
  +
  +
{{hc|/etc/sddm.conf.d/10-wayland.conf|2=
  +
[Wayland]
  +
CompositorCommand=kwin_wayland --no-lockscreen --inputmethod maliit-keyboard}}
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
  +
=== greeterが表示されず、カーソルのみの黒画面 ===
=== KDE Plasma でデスクトップ効果が使えない ===
 
  +
  +
利用可能なディスクの空き領域が存在しない場合、greeter はクラッシュします。{{ic|df -h}} でディスクの空き領域を確認してください。
  +
  +
ディスクの空き領域の問題でないとしたら、[https://github.com/sddm/sddm/issues/1179 バグ]のせいかもしれません。[[Getty#インストール|他の TTY に切り替えて]]、{{ic|loginctl unlock-session ''session_id''}} を実行するか、SDDM を[[Systemd#ユニットを使う|再起動]]してみてください。
  +
  +
=== SDDM が greeter を表示するのに時間がかかる ===
  +
  +
エントロピープールが小さいと SDDM のロードに長い時間がかかる可能性があります([https://github.com/sddm/sddm/issues/1036 バグレポート])。[[乱数生成]]にエントロピープールを大きくする方法があります。
  +
  +
=== ログイン後にフリーズする ===
   
  +
{{ic|~/.Xauthority}} を削除してみてください。
KDM から SDDM に移行して KDE Plasma 4 にログインすると、デスクトップ効果が無効になって、有効化できなくなることがあります。SDDM で誤って KDE Plasma を ''Failsafe'' モードで起動しているのが原因です。デスクトップ効果を有効にできない場合、一度ログアウトして、ログインする前に SDDM のセッションの選択を確認してください。
 
   
 
=== SDDM が tty7 ではなく tty1 で起動する ===
 
=== SDDM が tty7 ではなく tty1 で起動する ===
   
SDDM は [http://0pointer.de/blog/projects/serial-console.html systemd の慣習] にしたがって tty1 に一番目のグラフィカルセッションを起動します。tty1 から tty6 まではテキストコンソール用にするという、昔のやり方が良い場合は、以下を {{ic|sddm.conf}} に追加してください:
+
SDDM は [http://0pointer.de/blog/projects/serial-console.html systemd の慣習] にしたがって tty1 に一番目のグラフィカルセッションを起動します。tty1 から tty6 まではテキストコンソール用にするという、昔のやり方が良い場合は、設定ファイルで {{ic|[X11]}} セクションの {{ic|MinimumVT}} 変数を変更してください:
   
  +
{{hc|/etc/sddm.conf.d/tty.conf|2=
{{hc|
 
  +
[X11]
1=/etc/sddm.conf|
 
  +
MinimumVT=7
2=[XDisplay]
 
  +
}}
MinimumVT=7}}
 
   
 
=== ユーザーが greeter に表示されない ===
 
=== ユーザーが greeter に表示されない ===
   
  +
{{Warning|{{ic|UID}} が高すぎたり低すぎるユーザーは基本的に[[ディスプレイマネージャ]]から認識されないようになっています [https://systemd.io/UIDS-GIDS/]。}}
SDDM はデフォルトで UID が 1000 から 65000 の間のユーザーしか表示しません。使用したいユーザーの UID がこの値を下回っている場合、範囲を修正する必要があります。{{ic|sddm.conf}} を以下のように変更してください (例えば UID が 501 の場合):
 
   
  +
SDDM はデフォルトで UID が 1000 から 60000 の間のユーザーしか表示しません (ちなみに、この値はコンパイル時に {{ic|/etc/login.defs}} を参照して決まります)。使用したいユーザーの UID がこの値を下回っていたり上回っている場合、範囲を修正する必要があります。
{{hc|
 
1=/etc/sddm.conf|
 
2=[Users]
 
HideShells=/sbin/nologin,/bin/false
 
# Hidden users, this is if any system users fall within your range, see /etc/passwd on your system.
 
HideUsers=git,sddm,systemd-journal-remote,systemd-journal-upload
 
   
  +
例えば、UID が 501 の場合、設定ファイルで以下のように変更して最小の UID を下げて、またシステムユーザが使用するシェルを隠してください:
# Maximum user id for displayed users
 
MaximumUid=65000
 
   
  +
{{hc|/etc/sddm.conf.d/uid.conf|2=
# Minimum user id for displayed users
 
  +
[Users]
MinimumUid=500 #My UID is 501}}
 
  +
HideShells=/usr/bin/nologin,/sbin/nologin,/bin/false,/usr/bin/git-shell
  +
MinimumUid=500
  +
}}
  +
  +
[[systemd-homed]] で使われるような高い UID の場合は、最大の UID を上げてください:
  +
  +
{{hc|/etc/sddm.conf.d/uid.conf|2=
  +
[Users]
  +
MaximumUid=60513
  +
}}
  +
  +
=== SDDM が US キーボードのレイアウトしかロードしない ===
  +
  +
SDDM は {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}} で指定されたキーボードレイアウトをロードします。{{ic|localectl set-x11-keymap}} コマンドを使うことでこの設定ファイルを生成することが可能です。詳しくは [[Xorg でのキーボード設定]]を見て下さい。
  +
  +
最初キーボードレイアウトが US に表示され、パスワードを入力し始めるとすぐに適当なレイアウトに切り替わる場合もあります [https://github.com/sddm/sddm/issues/202#issuecomment-76001543]。これは SDDM のバグではなく {{Pkg|libxcb}} (バージョン 1.13-1) が原因です [https://github.com/sddm/sddm/issues/202#issuecomment-133628462]。
  +
  +
=== ユーザーアイコンが表示されない ===
  +
  +
SDDM はユーザーアイコンを {{ic|~/.face.icon}} から読み込みます。
  +
  +
SDDM ユーザーからファイルが読み込めるように権限を設定してください:
  +
  +
$ setfacl -m u:sddm:x ~/
  +
$ setfacl -m u:sddm:r ~/.face.icon
  +
  +
詳しくは [https://github.com/sddm/sddm#no-user-icon SDDM README: No User Icon] を参照。
  +
  +
=== 画面解像度が低すぎる ===
  +
  +
EDID の情報が壊れているディスプレイで [[HiDPI]] を使用した場合に発生する問題です [https://github.com/sddm/sddm/issues/692]。
  +
  +
[[#HiDPI の有効化|HiDPI]] を有効化している場合、HiDPI を無効にしてみてください。
  +
  +
無効にしても問題が解決しない場合、Xorg の設定ファイルでスクリーンのサイズを設定してください:
  +
{{hc|/etc/X11/xorg.conf.d/90-monitor.conf|2=
  +
Section "Monitor"
  +
Identifier "<default monitor>"
  +
DisplaySize 345 194 # in millimeters
  +
EndSection
  +
}}
  +
  +
=== ホームディレクトリが autofs の場合にロード時間が長い ===
  +
  +
SDDM はデフォルトでユーザーのアバターとして {{ic|~/.face.icon}} ファイルを使います。ホームディレクトリが [[autofs]] の場合 (例えば [[dm-crypt]] を使っている場合)、autofs がディレクトリをマウントできないと報告するまで SDDM は60秒間待機します。
  +
  +
{{ic|/etc/sddm.conf}} を編集することでアバターを無効化することができます:
  +
  +
{{hc|/etc/sddm.conf|2=
  +
[Theme]
  +
EnableAvatars=false
  +
}}
  +
  +
=== X authority (aka MIT-MAGIC-COOKIE) file ===
  +
  +
[https://github.com/sddm/sddm/issues/622]で詳細が言及されているように、SDDM は 認証ファイルのためにランダムな新しい UUID を使います。そのため、そのファイルを見つけるためにはスクリプトを使うことができます:
  +
  +
# find /var/run/sddm/ -type f
  +
  +
ログイン中のユーザーがいない時に [[x11vnc]] を開始する必要がある場合、このスクリプトが必要です。例えば:
  +
  +
# x11vnc -display :0 -auth "$( find /var/run/sddm/ -type f )"
  +
  +
=== 複数スクリーンの設定で greeter が重複する ===
  +
  +
複数スクリーンの設定で X モニターのレイアウトが正しく設定されずに greeter が重複することがあります。この問題を解決するためには、以下のスクリプトを追加して、sddm greeter のレイアウトを左から右に並べてください:
  +
  +
{{hc|/usr/share/sddm/scripts/Xsetup|2=
  +
for next in $(xrandr --listmonitors {{!}} grep -E " *[0-9]+:.*" {{!}} cut -d" " -f6); do
  +
[ -z "$current" ] && current=$next && continue
  +
xrandr --output $current --auto --output $next --auto --right-of $current
  +
current=$next
  +
done
  +
}}

2022年3月30日 (水) 07:21時点における版

関連記事

Simple Desktop Display Manager (SDDM) は KDE 5 の Plasma デスクトップで推奨されているディスプレイマネージャです。

Wikipedia より:

Simple Desktop Display Manager (SDDM) は X11 と Wayland ウィンドウシステム向けのディスプレイマネージャ (グラフィカルログインプログラム) である。SDDM は C++11 によってスクラッチで書かれており QML によるテーマ機能をサポートしている。KDE ディスプレイマネージャの後継で KDE Frameworks 5, KDE Plasma 5, KDE Applications 5 と合わせて使われる。
ノート: Wayland のサポートは完全ではありません [1]。Wayland のセッションは認識されますが、SDDM 自体は X11 で動作します。SDDM 0.20 では完全な Wayland サポートが導入されます。[2]

インストール

sddm パッケージをインストールしてください。任意で KConfig Module(KDE 設定モジュール) 用の sddm-kcm もインストールしてください。

そしてディスプレイマネージャ#ディスプレイマネージャをロードするにしたがってブート時に SDDM を起動させます。

設定

SDDM のデフォルト設定ファイルは /usr/lib/sddm/sddm.conf.d/default.conf に存在します。設定を変更するときは /etc/sddm.conf.d/ に設定ファイルを作成してください。利用可能なオプションは sddm.conf(5) を見て下さい。

(plasma グループに含まれている) sddm-kcm パッケージをインストールすることで Plasma のシステム設定から GUI で SDDM を設定できます。Qt ベースの設定エディタ (sddm-config-editor-gitAUR) も存在します。

systemd によって制御されている環境では、SDDM がデフォルトで systemd-logind を使ってセッションを管理するため、何も設定しなくても問題なく動作します。そのため、パッケージをインストールした時に設定ファイルは作成されません。SDDM にはデフォルト設定のサンプル設定ファイルを生成するコマンドがあるので、必要であれば使って下さい:

# sddm --example-config > /etc/sddm.conf.d/sddm.conf

自動ログイン

KDM と同じように、SDDM は設定ファイルによって自動ログインをサポートしています、例:

/etc/sddm.conf.d/autologin.conf
[Autologin]
User=john
Session=plasma

上の設定だと、システムが起動した時に john ユーザーで KDE Plasma セッションが起動します。利用できるセッションのタイプについては、X 用は /usr/share/xsessions/ で、Wayland 用は /usr/share/wayland-sessions/ でわかります。

KDE Plasma の自動ログインを使用した場合、セッションのロックは利用できなくなります [3]

以下のスクリプトを追加することで KDE のスクリーンセーバーを自動的に有効化することが可能です:

 #!/bin/sh
/usr/bin/dbus-send --session --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock &

ログイン時に KDE Wallet のロックを解除

KDE Wallet#ログイン時に KDE ウォレットを自動的にアンロックを見てください。

テーマ設定

テーマの設定は [Theme] セクションで変更できます。

デフォルトの Plasma テーマを使いたい場合 breeze に設定してください。

archlinux-themes-sddmAUR など、AUR から入手できるテーマもあります。

メインテーマ

メインテーマは Current で設定します。例: Current=archlinux-simplyblack

テーマの編集

SDDM のデフォルトのテーマディレクトリは /usr/share/sddm/themes/ です。作成したカスタムテーマはこのディレクトリのサブディレクトリに追加することができます。サブディレクトリの名前はテーマの名前と合わせる必要があります。インストールされているファイルを参考に自分自身のテーマを作成してみてください。

テーマをカスタマイズ

設定ファイルの theme.conf の設定をオーバーライドするためには、カスタムの theme.conf.user ファイルを同じディレクトリに作成してください。例えば、テーマの背景を変更するには:

/usr/share/sddm/themes/name/theme.conf.user
[General]
background=/path/to/background.png

テーマのテスト (プレビュー)

必要であれば SDDM のテーマをプレビューすることができます。以下のようにコマンドを実行してください:

$ sddm-greeter --theme /usr/share/sddm/themes/breeze

新しいウィンドウが開いてテーマのプレビューが表示されます。

ノート: プレビューモードでは、シャットダウンやサスペンド、ログインなどは出来ません。

マウスカーソル

マウスカーソルのテーマを設定したい場合は、CursorTheme を使用したいカーソルテーマに設定してください。

Plasma で使用できるマウスカーソルのテーマの名前は: breeze_cursors, Breeze_Snow, breeze-dark

アバターの変更

username.face.icon という名前の png 画像をデフォルトディレクトリ /usr/share/sddm/faces/ に配置してください。もしくはデフォルトディレクトリを別のディレクトリに変更することもできます。例:

/etc/sddm.conf.d/avatar.conf
[Theme]
FacesDir=/var/lib/AccountsService/icons/

ホームディレクトリのルートに .face.icon という名前の PNG 画像を置く方法もあります。ただし、sddm ユーザーからファイルが読み込めるようにする必要があります。

ノート: アバター画像がシンボリックリンクの場合、リンク先のファイルに適切なファイル権限を設定してください。#ユーザーアイコンが表示されないを参照。

Numlock

Numlock を強制的に有効にしたい場合、[General] セクションに Numlock=on と設定してください。

ディスプレイの回転

Xrandr#設定を見てください。

DPI の設定

ディスプレイマネージャからディスプレイの PPI 設定を適切に設定できると便利です。設定ファイルで "ServerArguments" パラメータの末尾に -dpi your_dpi を追加してください。例:

/etc/sddm.conf.d/dpi.conf
[X11]
ServerArguments=-nolisten tcp -dpi 94

HiDPI の有効化

以下のファイルを作成してください:

/etc/sddm.conf.d/hidpi.conf
[Wayland]
EnableHiDPI=true

[X11]
EnableHiDPI=true

仮想キーボードを有効化する

qt5-virtualkeyboard をインストールしてください。

以下のファイルを作成してください:

/etc/sddm.conf.d/virtualkbd.conf
[General]
InputMethod=qtvirtualkeyboard

これで、SDDM は仮想キーボードを開くボタンをログインスクリーンの左下の角に表示するようになります。

指紋認証の利用

ノート: 作業前に指紋登録がなされていることを確認してください。指紋リーダーへの対応は不完全であり、この方法ではパスワードのみでのログインは不可能なようです。

SDDM では fprint を利用した指紋認証が可能です。fprint をインストールし指紋署名を登録したのち、/etc/pam.d/sddm の先頭に以下の行を加えてください:

/etc/pam.d/sddm
auth 			sufficient  	pam_fprintd.so

パスワードか指紋認証のいずれか片方を使うためには、代わりに以下の行を /etc/pam.d/sddm の先頭に加えてください:

/etc/pam.d/sddm
auth 			[success=1 new_authtok_reqd=1 default=ignore]  	pam_unix.so try_first_pass likeauth nullok
auth 			sufficient  	pam_fprintd.so

KWallet は指紋リーダーを使ってロックを解除できないことに注意してください(KDE Wallet#ログイン時に KDE ウォレットを自動的にアンロック をご覧ください)。しかし、1行目によりパスワードログインが自動的に KWallet を解除することが保証されます。

ヒント: KDE のロックスクリーンで動作させるには、先と同じ行を /etc/pam.d_kde の先頭に加えてください。

また、ロックスクリーンではパスワード認証と指紋認証のいずれか片方を使うこともできます。auth セクションの先頭に以下を加えてください:

/etc/pam.d/kde
auth 			sufficient  	pam_unix.so try_first_pass likeauth nullok
auth 			sufficient  	pam_fprintd.so
1行目が先の /etc/pam.d/sddm の対応する設定と異なることがわかります。KDE のロックスクリーンは KWallet の pam モジュールを実行する必要がないからです。

パスワード欄を空にして Enter キーを押すと、指紋認証が開始されます。

Wayland で動かす

SDDM は Wayland で rootless に動かすことができます。ただし、今のところ sddm-gitAUR パッケージを使っているときのみです。

新しい設定ファイルを /etc/sddm.conf.d/ ディレクトリに作成し、名前は /etc/sddm.conf.d/10-wayland.conf のようにしてください。

そして、その新しいファイルに以下の内容を追加します:

/etc/sddm.conf.d/10-wayland.conf
[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell

[Wayland]
CompositorCommand=

次に、SDDM を表示するための Wayland のコンポジター(例えば、KDE の KWin コンポジター)が必要です。CompositorCommand へのパラメータとしてコンポジターのプログラムや関連する引数を入力します。

KDE / KWin

警告: SDDM は KWin によって別のウインドウとして扱われるので、ログインすることによりそのウインドウを閉じることになります。ゆえに、ログアウトユーザの切り替えは望ましくない動作を引き起こします。
ヒント: KDE Wayland のディスプレイの設定(e.g. モニターレイアウト, 解像度, etc)に対する如何なる変更も SDDM に対しては適用されません。設定を適用させるには、KDE の System Settings を開き、Startup and Shutdown> Login Screen (SDDM) へ行き、"Apply Plasma Settings..." をクリックしてください。この操作を行うためには許可が必要です。

以下の内容を CompositorCommand へのパラメータとして、先に作成した SDDM の設定ファイル(e.g /etc/sddm.conf.d/10-wayland.conf) に追加してください:

/etc/sddm.conf.d/10-wayland.conf
[Wayland]
CompositorCommand=kwin_wayland --no-lockscreen

仮想キーボードのサポートを有効化するためには(例えば、qt5-virtualkeyboardmaliit-keyboard を使う場合)、以下のように --inputmethod フラグに適切なキーボードを指定して、kwin_wayland コマンドに追加してください(必要に応じて、maliit-keyboardqtvirtualkeyboard に置き換えてください):

/etc/sddm.conf.d/10-wayland.conf
[Wayland]
CompositorCommand=kwin_wayland --no-lockscreen --inputmethod maliit-keyboard

トラブルシューティング

greeterが表示されず、カーソルのみの黒画面

利用可能なディスクの空き領域が存在しない場合、greeter はクラッシュします。df -h でディスクの空き領域を確認してください。

ディスクの空き領域の問題でないとしたら、バグのせいかもしれません。他の TTY に切り替えてloginctl unlock-session session_id を実行するか、SDDM を再起動してみてください。

SDDM が greeter を表示するのに時間がかかる

エントロピープールが小さいと SDDM のロードに長い時間がかかる可能性があります(バグレポート)。乱数生成にエントロピープールを大きくする方法があります。

ログイン後にフリーズする

~/.Xauthority を削除してみてください。

SDDM が tty7 ではなく tty1 で起動する

SDDM は systemd の慣習 にしたがって tty1 に一番目のグラフィカルセッションを起動します。tty1 から tty6 まではテキストコンソール用にするという、昔のやり方が良い場合は、設定ファイルで [X11] セクションの MinimumVT 変数を変更してください:

/etc/sddm.conf.d/tty.conf
[X11]
MinimumVT=7

ユーザーが greeter に表示されない

警告: UID が高すぎたり低すぎるユーザーは基本的にディスプレイマネージャから認識されないようになっています [4]

SDDM はデフォルトで UID が 1000 から 60000 の間のユーザーしか表示しません (ちなみに、この値はコンパイル時に /etc/login.defs を参照して決まります)。使用したいユーザーの UID がこの値を下回っていたり上回っている場合、範囲を修正する必要があります。

例えば、UID が 501 の場合、設定ファイルで以下のように変更して最小の UID を下げて、またシステムユーザが使用するシェルを隠してください:

/etc/sddm.conf.d/uid.conf
[Users]
HideShells=/usr/bin/nologin,/sbin/nologin,/bin/false,/usr/bin/git-shell
MinimumUid=500

systemd-homed で使われるような高い UID の場合は、最大の UID を上げてください:

/etc/sddm.conf.d/uid.conf
[Users]
MaximumUid=60513

SDDM が US キーボードのレイアウトしかロードしない

SDDM は /etc/X11/xorg.conf.d/00-keyboard.conf で指定されたキーボードレイアウトをロードします。localectl set-x11-keymap コマンドを使うことでこの設定ファイルを生成することが可能です。詳しくは Xorg でのキーボード設定を見て下さい。

最初キーボードレイアウトが US に表示され、パスワードを入力し始めるとすぐに適当なレイアウトに切り替わる場合もあります [5]。これは SDDM のバグではなく libxcb (バージョン 1.13-1) が原因です [6]

ユーザーアイコンが表示されない

SDDM はユーザーアイコンを ~/.face.icon から読み込みます。

SDDM ユーザーからファイルが読み込めるように権限を設定してください:

$ setfacl -m u:sddm:x ~/
$ setfacl -m u:sddm:r ~/.face.icon

詳しくは SDDM README: No User Icon を参照。

画面解像度が低すぎる

EDID の情報が壊れているディスプレイで HiDPI を使用した場合に発生する問題です [7]

HiDPI を有効化している場合、HiDPI を無効にしてみてください。

無効にしても問題が解決しない場合、Xorg の設定ファイルでスクリーンのサイズを設定してください:

/etc/X11/xorg.conf.d/90-monitor.conf
Section "Monitor"
        Identifier      "<default monitor>"
        DisplaySize     345 194 # in millimeters
EndSection

ホームディレクトリが autofs の場合にロード時間が長い

SDDM はデフォルトでユーザーのアバターとして ~/.face.icon ファイルを使います。ホームディレクトリが autofs の場合 (例えば dm-crypt を使っている場合)、autofs がディレクトリをマウントできないと報告するまで SDDM は60秒間待機します。

/etc/sddm.conf を編集することでアバターを無効化することができます:

/etc/sddm.conf
[Theme]
EnableAvatars=false

X authority (aka MIT-MAGIC-COOKIE) file

[8]で詳細が言及されているように、SDDM は 認証ファイルのためにランダムな新しい UUID を使います。そのため、そのファイルを見つけるためにはスクリプトを使うことができます:

# find /var/run/sddm/ -type f

ログイン中のユーザーがいない時に x11vnc を開始する必要がある場合、このスクリプトが必要です。例えば:

# x11vnc -display :0 -auth "$( find /var/run/sddm/ -type f )"

複数スクリーンの設定で greeter が重複する

複数スクリーンの設定で X モニターのレイアウトが正しく設定されずに greeter が重複することがあります。この問題を解決するためには、以下のスクリプトを追加して、sddm greeter のレイアウトを左から右に並べてください:

/usr/share/sddm/scripts/Xsetup
for next in $(xrandr --listmonitors | grep -E " *[0-9]+:.*" | cut -d" " -f6); do
  [ -z "$current" ] && current=$next && continue
  xrandr --output $current --auto --output $next --auto --right-of $current
  current=$next
done