「SDDM」の版間の差分
細 (→設定: 「Qt」をリンクに) |
|||
(2人の利用者による、間の23版が非表示) | |||
15行目: | 15行目: | ||
:''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 で動作します。}} |
+ | {{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}} もインストールしてください。 |
そして[[ディスプレイマネージャ#ディスプレイマネージャをロードする]]にしたがってブート時に SDDM を起動させます。 |
そして[[ディスプレイマネージャ#ディスプレイマネージャをロードする]]にしたがってブート時に SDDM を起動させます。 |
||
27行目: | 27行目: | ||
SDDM のデフォルト設定ファイルは {{ic|/usr/lib/sddm/sddm.conf.d/default.conf}} に存在します。設定を変更するときは {{ic|/etc/sddm.conf.d/}} に設定ファイルを作成してください。利用可能なオプションは {{man|5|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}}) も存在します。 |
+ | ({{grp|plasma}} グループに含まれている) {{pkg|sddm-kcm}} パッケージをインストールすることで Plasma のシステム設定から GUI で SDDM を設定できます。[[Qt]] ベースの設定エディタ ({{AUR|sddm-config-editor-git}}) も存在します。 |
[[systemd]] によって制御されている環境では、SDDM がデフォルトで {{ic|systemd-logind}} を使ってセッションを管理するため、何も設定しなくても問題なく動作します。そのため、パッケージをインストールした時に設定ファイルは作成されません。SDDM にはデフォルト設定のサンプル設定ファイルを生成するコマンドがあるので、必要であれば使って下さい: |
[[systemd]] によって制御されている環境では、SDDM がデフォルトで {{ic|systemd-logind}} を使ってセッションを管理するため、何も設定しなくても問題なく動作します。そのため、パッケージをインストールした時に設定ファイルは作成されません。SDDM にはデフォルト設定のサンプル設定ファイルを生成するコマンドがあるので、必要であれば使って下さい: |
||
40行目: | 40行目: | ||
[Autologin] |
[Autologin] |
||
User=john |
User=john |
||
− | Session=plasma |
+ | Session=plasma |
}} |
}} |
||
− | 上の設定だと、システムが起動した時に {{ic|john}} ユーザーで KDE Plasma セッションが起動します。利用できるセッションのタイプは {{ic| |
+ | 上の設定だと、システムが起動した時に {{ic|john}} ユーザーで KDE Plasma セッションが起動します。利用できるセッションのタイプについては、X 用は {{ic|/usr/share/xsessions/}} で、Wayland 用は {{ic|/usr/share/wayland-sessions/}} でわかります。 |
− | |||
− | {{Warning|設定を誤ると、あなたのノートパソコンへの物理的なアクセスを手に入れた攻撃者が自動ログインを使って、たやすくデスクトップを破壊してしまう可能性があります。自動ログインは他の認証プロンプトによってシステムが保護されているときにだけ有効にしてください。例: パスフレーズによる [[dm-crypt|root ファイルシステムの暗号化]]。}} |
||
KDE Plasma の自動ログインを使用した場合、セッションのロックは利用できなくなります [https://github.com/sddm/sddm/issues/306]。 |
KDE Plasma の自動ログインを使用した場合、セッションのロックは利用できなくなります [https://github.com/sddm/sddm/issues/306]。 |
||
51行目: | 49行目: | ||
以下のスクリプトを追加することで KDE のスクリーンセーバーを自動的に有効化することが可能です: |
以下のスクリプトを追加することで KDE のスクリーンセーバーを自動的に有効化することが可能です: |
||
− | + | #!/bin/sh |
|
− | /usr/bin/ |
+ | /usr/bin/dbus-send --session --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock & |
− | exit 0 |
||
=== ログイン時に KDE Wallet のロックを解除 === |
=== ログイン時に KDE Wallet のロックを解除 === |
||
74行目: | 71行目: | ||
SDDM のデフォルトのテーマディレクトリは {{ic|/usr/share/sddm/themes/}} です。作成したカスタムテーマはこのディレクトリのサブディレクトリに追加することができます。サブディレクトリの名前はテーマの名前と合わせる必要があります。インストールされているファイルを参考に自分自身のテーマを作成してみてください。 |
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'' |
||
+ | }} |
||
==== テーマのテスト (プレビュー) ==== |
==== テーマのテスト (プレビュー) ==== |
||
122行目: | 128行目: | ||
=== HiDPI の有効化 === |
=== HiDPI の有効化 === |
||
− | |||
− | {{note|[[HiDPI]] のサポートはバージョン 0.15 から問題が発生しています [https://github.com/sddm/sddm/issues/894]。}} |
||
以下のファイルを作成してください: |
以下のファイルを作成してください: |
||
{{hc|/etc/sddm.conf.d/hidpi.conf|2= |
{{hc|/etc/sddm.conf.d/hidpi.conf|2= |
||
− | [ |
+ | [Wayland] |
+ | EnableHiDPI=true |
||
+ | |||
+ | [X11] |
||
EnableHiDPI=true |
EnableHiDPI=true |
||
}} |
}} |
||
+ | |||
+ | === 仮想キーボードを有効化する === |
||
+ | |||
+ | {{pkg|qt5-virtualkeyboard}} をインストールしてください。 |
||
+ | |||
+ | 以下のファイルを作成してください: |
||
+ | |||
+ | {{hc|/etc/sddm.conf.d/virtualkbd.conf|2= |
||
+ | [General] |
||
+ | InputMethod=qtvirtualkeyboard |
||
+ | }} |
||
+ | |||
+ | これで、SDDM は仮想キーボードを開くボタンをログインスクリーンの左下の角に表示するようになります。 |
||
=== 指紋認証の利用 === |
=== 指紋認証の利用 === |
||
136行目: | 156行目: | ||
{{Note|作業前に指紋登録がなされていることを確認してください。指紋リーダーへの対応は不完全であり、この方法ではパスワードのみでのログインは不可能なようです。}} |
{{Note|作業前に指紋登録がなされていることを確認してください。指紋リーダーへの対応は不完全であり、この方法ではパスワードのみでのログインは不可能なようです。}} |
||
− | SDDM では [[fprint]] を利用した指紋認証が可能です。{{Pkg|fprint}} をインストールし指紋署名を登録したのち、 |
+ | SDDM では [[fprint]] を利用した指紋認証が可能です。{{Pkg|fprint}} をインストールし指紋署名を登録したのち、{{ic|/etc/pam.d/sddm}} の先頭に以下の行を加えてください: |
− | {{ic|/etc/pam.d/sddm}} の先頭に {{ic|auth sufficient pam_fprintd.so}} を加えてください。 |
||
+ | {{hc|/etc/pam.d/sddm| |
||
− | {{Tip|KDE のロックスクリーンで動作させるには、この行を {{ic|/etc/pam.d_kde}} の先頭に加えてください。 |
||
+ | 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 セクションの先頭に以下を加えてください: |
また、ロックスクリーンではパスワード認証と指紋認証のいずれか片方を使うこともできます。auth セクションの先頭に以下を加えてください: |
||
− | {{hc|/etc/pam.d/kde |
+ | {{hc|/etc/pam.d/kde| |
auth sufficient pam_unix.so try_first_pass likeauth nullok |
auth sufficient pam_unix.so try_first_pass likeauth nullok |
||
auth sufficient pam_fprintd.so |
auth sufficient pam_fprintd.so |
||
}} |
}} |
||
− | + | 1行目が先の {{ic|/etc/pam.d/sddm}} の対応する設定と異なることがわかります。KDE のロックスクリーンは KWallet の pam モジュールを実行する必要がないからです。}} |
|
パスワード欄を空にして {{ic|Enter}} キーを押すと、指紋認証が開始されます。 |
パスワード欄を空にして {{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が表示されず、カーソルのみの黒画面 === |
||
+ | |||
+ | 利用可能なディスクの空き領域が存在しない場合、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 バグレポート])。[[乱数生成]]にエントロピープールを大きくする方法があります。 |
||
=== ログイン後にフリーズする === |
=== ログイン後にフリーズする === |
||
169行目: | 245行目: | ||
=== ユーザーが greeter に表示されない === |
=== ユーザーが greeter に表示されない === |
||
− | {{Warning|{{ic|UID}} が高すぎたり低すぎるユーザーは基本的に[[ディスプレイマネージャ]]から認識されないようになっています。}} |
+ | {{Warning|{{ic|UID}} が高すぎたり低すぎるユーザーは基本的に[[ディスプレイマネージャ]]から認識されないようになっています [https://systemd.io/UIDS-GIDS/]。}} |
− | SDDM はデフォルトで UID が 1000 から |
+ | SDDM はデフォルトで UID が 1000 から 60000 の間のユーザーしか表示しません (ちなみに、この値はコンパイル時に {{ic|/etc/login.defs}} を参照して決まります)。使用したいユーザーの UID がこの値を下回っていたり上回っている場合、範囲を修正する必要があります。 |
+ | |||
+ | 例えば、UID が 501 の場合、設定ファイルで以下のように変更して最小の UID を下げて、またシステムユーザが使用するシェルを隠してください: |
||
{{hc|/etc/sddm.conf.d/uid.conf|2= |
{{hc|/etc/sddm.conf.d/uid.conf|2= |
||
[Users] |
[Users] |
||
− | HideShells=/sbin/nologin,/bin/false |
+ | HideShells=/usr/bin/nologin,/sbin/nologin,/bin/false,/usr/bin/git-shell |
+ | MinimumUid=500 |
||
− | # 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 |
||
+ | [[systemd-homed]] で使われるような高い UID の場合は、最大の 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}} |
||
+ | MaximumUid=60513 |
||
+ | }} |
||
=== SDDM が US キーボードのレイアウトしかロードしない === |
=== SDDM が US キーボードのレイアウトしかロードしない === |
||
225行目: | 304行目: | ||
[Theme] |
[Theme] |
||
EnableAvatars=false |
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 と合わせて使われる。
目次
- 1 インストール
- 2 設定
- 3 トラブルシューティング
- 3.1 greeterが表示されず、カーソルのみの黒画面
- 3.2 SDDM が greeter を表示するのに時間がかかる
- 3.3 ログイン後にフリーズする
- 3.4 SDDM が tty7 ではなく tty1 で起動する
- 3.5 ユーザーが greeter に表示されない
- 3.6 SDDM が US キーボードのレイアウトしかロードしない
- 3.7 ユーザーアイコンが表示されない
- 3.8 画面解像度が低すぎる
- 3.9 ホームディレクトリが autofs の場合にロード時間が長い
- 3.10 X authority (aka MIT-MAGIC-COOKIE) file
- 3.11 複数スクリーンの設定で greeter が重複する
インストール
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 を解除することが保証されます。
パスワード欄を空にして 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
以下の内容を 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-virtualkeyboard や maliit-keyboard を使う場合)、以下のように --inputmethod
フラグに適切なキーボードを指定して、kwin_wayland
コマンドに追加してください(必要に応じて、maliit-keyboard
を qtvirtualkeyboard
に置き換えてください):
/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 に表示されない
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