SDDM (简体中文)
Simple Desktop Display Manager (SDDM) 是 KDE Plasma 桌面环境推荐的 显示管理器。
维基百科 介绍:
- Simple Desktop Display Manager (SDDM) 是用于 X11 和 wayland 视窗系统的显示管理器(图形登录界面)。SDDM 完全使用 C++11 编写并支持通过 QML 改变主题。对于KDE Plasma 5,KDE 选择了 SDDM 作为 KDE Display Manager 的接替者。
安装
安装 sddm 软件包。对于 KDE Config Module,可选安装 sddm-kcm 软件包。
然后根据 Display manager (简体中文)#加载显示管理器 的说明配置 SDDM 在系统引导时启动。
配置
SDDM 的默认配置文件为 /usr/lib/sddm/sddm.conf.d/default.conf
。要修改配置,请在 /etc/sddm.conf.d/
目录下创建配置文件。详见 sddm.conf(5) 以获得所有配置选项。
sddm-kcm 软件包 (包含在 plasma 用户组) 提供了一个图形用户界面以在 Plasma 系统设置中配置 SDDM。AUR 中也有基于 Qt 的配置软件 sddm-config-editor-gitAUR。
一切东西都应该开箱即用,自从 Arch Linux 使用 systemd 后,SDDM 默认使用 systemd-logind
以进行会话管理。
自动登录
SDDM 通过它的配置文件来支持自动登录,例如:
/etc/sddm.conf.d/autologin.conf
[Autologin] User=john Session=plasma.desktop
此配置使得在系统启动后自动以用户 john
开启一个 KDE Plasma 会话。X 的会话类型位于 /usr/share/xsessions/
, wayland 的会话类型位于 /usr/share/wayland-sessions/
。
目前尚不支持自动登录 KDE Plasma 的同时锁定会话 [2]
你可以添加一个脚本,在 KDE 自动启动时激活屏幕保护程序以作为一个解决方案:
#!/bin/sh /usr/bin/dbus-send --session --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock &
登录后自动解锁 KDE 钱包
详见 KDE Wallet (简体中文)#在登录时自动解锁 Kwallet。
主题设置
在 [Theme]
小节更改主题设置。如果您使用 Plasma 的系统设置,主题可能会显示预览。
设置 breeze
以获得 Plasma 默认主题。
AUR 有一些可用的主题,例如 archlinux-themes-sddmAUR。
当前主题
通过 Current
的值设置当前主题,例如 Current=archlinux-simplyblack
。
编辑主题
默认 SDDM 主题目录为 /usr/share/sddm/themes/
。你可以添加你的自制主题到该目录下一个单独的子目录中。注意 SDDM 要求这些子目录的名字要与主题的名字一致。可以通过研究已安装的文件来更改或创建属于你的主题。
测试(预览)主题
如果需要,你可以预览一个 SDDM 主题。如果你想知道一个主题看起来怎么样,或是想要编辑一个主题后在不必登出的情况下观察改动的效果,那么这将会非常有用。你可以运行下面的命令:
$ sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze
这应该为所有已连接的显示器打开一个新窗口以显示主题的预览。
鼠标光标
要设置鼠标光标的主题,将 CursorTheme
设置成您喜欢的光标主题。
合法的 Plasma 鼠标光标主题有 breeze_cursors
,Breeze_Snow
和 breeze-dark
。
用户图标(头像)
SDDM 对于每个用户从相应的 ~/.face.icon
目录下读取 PNG 图片格式的用户图标(即“头像”),或者从 SDDM 配置文件中由 FacesDir
为所有用户定义的共有位置。配置设置可以通过修改 /etc/sddm.conf
文件被直接替换,更好的方法是创建一个位于 /etc/sddm.conf.d/
下的文件来修改,例如 /etc/sddm.conf.d/avatar.conf
。
要使用 FacesDir
选项来确定头像位置,即在配置文件中 FacesDir
所确定的位置为每一个用户放置一个 PNG 图片,命名如 username.face.icon
。FacesDir
默认的路径为 /usr/share/sddm/faces/
。你可以更改默认 FacesDir
目录以合乎你的要求。下面是一个例子:
/etc/sddm.conf.d/avatar.conf
[Theme] FacesDir=/var/lib/AccountsService/icons/
另一个选项是放置一个名为 .face.icon
的 PNG 图片到你的家目录下。在这种情况下,您不用对任何 SDDM 配置文件进行更改。不过,您仍需确定 sddm
用户可以读取这些 PNG 图片作为用户图标。
~/.face
而 ~/.face.icon
是链接到图像文件的符号链接。如果用户的图标是符号链接,你需要为目标文件设置恰当的文件权限。为了 设置合适权限 运行:
$ setfacl -m u:sddm:x ~/ $ setfacl -m u:sddm:r ~/.face.icon
你可以通过运行下列命令 检查权限:
$ getfacl ~/ $ getfacl ~/.face.icon
数字锁
如果你想强制启用数字锁,在 [General]
小节设置 Numlock=on
。
旋转显示
DPI 设置
有时位于“显示管理器”级别设置正确的显示器 DPI 是很有用的。[3] 你需要在 ServerArguments
字符串的末尾加上参数 -dpi your_dpi
例如:
/etc/sddm.conf.d/dpi.conf
[X11] ServerArguments=-nolisten tcp -dpi 94
启用 HiDPI
创建 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
的开始位置添加一行 auth sufficient pam_fprintd.so
。
/etc/pam.d/kde
的开始位置。如果你现在在空密码区域按下回车,那么指纹识别器应该开始工作了。
故障排除
只有空白屏幕和光标,但没有欢迎界面
使用 df -h
命令检查您的磁盘空间。如果没有足够的空间,欢迎界面会崩溃。
如果磁盘空间足够,那么这个问题可能源于此 bug。切换 到另一个 TTY 来 重启 SDDM。
SDDM 出现欢迎界面前的加载时间过长
内核熵池过小会造成长时间的 SDDM 加载过程(Bug report)。详见 Random number generation 扩大内核熵池的建议。
登录后挂起
尝试移除 ~/.Xauthority
文件后不重启再次登入。重启会再次创建该文件即该问题依旧存在。
SDDM 在 tty1 启动而不是 tty7
SDDM 根据 systemd 的规定 在 tty1 启动图形会话。如果您更喜欢老派的 tty1 到 tty6 皆预留为文本终端,更改 MinimumVT
变量的默认值,其位于 [X11]
小节下:
/etc/sddm.conf.d/tty.conf
[X11] MinimumVT=7
一个或多个用户没有出现在欢迎界面
UID
范围应该大体上不会暴露给 Display manager (简体中文)。SDDM 默认会显示 UID 在 1000 到 65000 范围内的用户,如果想要显示的用户的 UID 小于这个范围,那么您就不得不更改这个范围。比如,对于 UID 为 501时,可以修改:
/etc/sddm.conf.d/uid.conf
[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 # Maximum user id for displayed users MaximumUid=65000 # Minimum user id for displayed users MinimumUid=500 #My UID is 501
用户头像未显示在 greeter 上
如果用户数量超过 DisableAvatarsThreshold 参数,或者如果完全没有启用 EnableAvatars 参数所控制的头像,则该头像不会显示在 greeter 上。为了避免这种情况,请在 sddm 配置中添加以下几行:
/etc/sddm.conf.d/avatars.conf
[Theme] EnableAvatars=true # enable avatars DisableAvatarsThreshold=7 # set the threshold for the number of users. Avatars are not shown if this threshold is exceeded.
SDDM 只加载 US 键盘布局
SDDM 加载的键盘布局被确定在 /etc/X11/xorg.conf.d/00-keyboard.conf
文件中。您可以通过 localectl set-x11-keymap
命令以生成此配置文件。详见 Keyboard configuration in Xorg。
设置仅在 SDDM 中设置而不在后续会话中设置的键盘布局的另一种方法是在 SDDM 的启动脚本(位于 /usr/share/sddm/scripts/Xsetup
)中调用 setxkbmap 命令。有关示例,请参见 Xorg/Keyboard configuration#Using setxkbmap。
SDDM 可能也会错误地显示为 US 布局,但在您开始输入您的密码时立即切换到正确的键盘布局 [4]。此 bug 看起来不是来自 SDDM,而是 libxcb (version 1.13-1 as of 2018) [5]。
屏幕分辨率过低
此问题可能源于显示屏 HiDPI 的使用破坏了 EDID [6]。如果你 启动了 HiDPI,尝试关掉它。
如果上述方法失败了,您可以尝试在 Xorg 配置文件中设置您的显示尺寸:
/etc/X11/xorg.conf.d/90-monitor.conf
Section "Monitor" Identifier "<default monitor>" DisplaySize 345 194 # in millimeters EndSection
自动挂载家目录的加载时间过长
SDDM 默认会访问 ~/.face.icon
文件以尝试显示用户头像。如果您的家目录采用自动挂载的文件系统(autofs),例如如果您使用 dm-crypt,这将会使之等待 60 秒,直到自动挂载的文件系统(autofs)返回此目录不能被挂载。
您可以通过编辑 /etc/sddm.conf
文件以关闭头像功能:
/etc/sddm.conf
[Theme] EnableAvatars=false