SLiM
SLiM 是 Simple Login Manager 的首字母缩写。SLiM 轻量级且易于配置,需要的依赖项极少,并且不依赖 GNOME 或 KDE 桌面环境。因此,它有助于为喜欢使用轻量级桌面(如 Xfce、Openbox 和 Fluxbox)的用户构建轻量级系统。
安装
配置
SLiM 可以通过在 /etc/slim.conf
中使用 sessiondir /usr/share/xsessions/
自动检测已安装的桌面环境和窗口管理器。从 1.3.6-2 之前的版本升级的用户必须相应地修改 /etc/slim.conf
和 xinitrc。请参见下文。
启用 SLiM
启用 SLiM 服务 slim.service
。这假定之前已启用的显示管理器已被禁用。否则,请更改默认目标。
环境
F1
键循环选择可用的会话。要配置 SLiM 1.3.6-2(或更高版本)加载环境,请编辑 /etc/slim.conf
和 ~/.xinitrc
。
首先,编辑 /etc/slim.conf
:如果您仅使用单个环境,则可以注释掉 sessiondir /usr/share/xsessions/
。这将禁用自动检测已安装的环境
# Set directory that contains the xsessions. # slim reads xsession from this directory, and be able to select. # sessiondir /usr/share/xsessions/
如果您希望自动检测已安装的桌面环境,请保持该行未注释。
其次,编辑 xinitrc
$HOME/.xinitrc
#!/bin/sh if [ -d /etc/X11/xinit/xinitrc.d ] ; then for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do [ -x "$f" ] && . "$f" done unset f fi exec $1
设置默认用户名
SLiM 可以配置为自动设置所需的用户名,这样用户名将预先填写。默认情况下,密码字段也将被选中。在 /etc/slim.conf
中更改以下行
# default_user simone
取消注释此行,并将“simone”更改为您选择的用户名
default_user your username
启用自动登录
- 不要为 root 账户设置此项。
- 如果启用了自动登录,GNOME keyring 将不会在登录时自动解锁。这将导致依赖的应用程序(如 Chrome/Chromium 和 NetworkManager)行为异常(请参阅 https://bbs.archlinux.org/viewtopic.php?id=167579)。
编辑 /etc/slim.conf
以取消注释 auto_login
命令,并将 no
替换为 yes
auto_login yes
主题
安装 slim-themes 软件包。archlinux-themes-slim 软件包包含多个不同的主题 (slimthemes.png)。查看 /usr/share/slim/themes
目录以查看可用的主题。在 /etc/slim.conf
中的 current_theme
行中输入主题名称
#current_theme default current_theme archlinux-simplyblack
您可以在 Xorg 运行时预览主题
$ slim -p /usr/share/slim/themes/<theme name>
要关闭,请在“Login”行中键入“exit”并按 Enter 键。
可以在 AUR 中找到其他主题软件包。有关如何自定义主题或制作自己的主题,请参阅 主题文档。SLiM 不支持备用主题目录,因此建议为您的自定义主题创建软件包,以便 pacman 能够识别它。
自定义背景
SLiM 硬编码为从您的主题目录加载 background.png
或 background.jpg
(按该顺序)。只需覆盖相应的文件
# cp /path/to/new_background.jpg /usr/share/slim/themes/<theme_name>/background.jpg
双屏幕设置
您可以在 /usr/share/slim/themes/<your-theme>/slim.theme
中自定义 slim 主题,以将这些百分比值转换为像素值。框本身为 450 像素 x 250 像素
input_panel_x 50% input_panel_y 50%
转换为像素值
# These settings set the "archlinux-simplyblack" panel in the center of a 1440x900 screen input_panel_x 495 input_panel_y 325
# These settings set the "archlinux-retro" panel in the center of a 1680x1050 screen input_panel_x 615 input_panel_y 400
如果您的主题有背景图片,则应使用 background_style 设置(stretch、tile、center 或 color)以使其正确显示。
技巧与提示
更改光标
安装后,编辑 /etc/slim.conf
并取消注释该行
cursor left_ptr
这将为您提供一个正常的箭头光标。此设置将转发到 xsetroot -cursor_name
。您可以在 可能的光标名称 或 /usr/share/icons/your-cursor-theme/cursors/
中查找。
要更改登录屏幕上使用的光标主题,请参阅 光标主题#默认光标主题。
使 SLiM 与桌面壁纸相匹配
要在 SLiM 和桌面之间共享壁纸,请重命名使用的主题背景,然后从桌面壁纸文件创建到默认 SLiM 主题的链接
# mv /usr/share/slim/themes/default/background.jpg{,.bck} # ln -s /path/to/mywallpaper.jpg /usr/share/slim/themes/default/background.jpg
从 SLiM 关机、重启、休眠、退出、启动终端
您可以从 SLiM 登录屏幕关机、重启、休眠、退出甚至启动终端。为此,请在用户名字段中使用值,并在密码字段中使用 root 密码
- 要启动终端,请输入 console 作为用户名(默认为 xterm,必须单独安装... 编辑
/etc/slim.conf
以更改终端首选项) - 对于关机,请输入 halt 作为用户名
- 对于重启,请输入 reboot 作为用户名
- 要退出到 bash,请输入 exit 作为用户名
- 对于休眠,请输入 suspend 作为用户名。默认情况下禁用休眠,以 root 身份编辑
/etc/slim.conf
以取消注释suspend_cmd
行,并在必要时修改休眠命令本身(例如,将/usr/sbin/suspend
更改为sudo /usr/sbin/pm-suspend
)。
Splashy 导致的电源关闭错误
如果您使用 Splashy 和 SLiM,有时您无法从 GNOME、Xfce、LXDE 或其他桌面环境的菜单中关闭电源或重启。检查您的 /etc/slim.conf
和 /etc/splash.conf
;将 DEFAULT_TTY=7
设置为与 xserver_arguments vt07
相同。
电源关闭托盘图标失效
如果您的电源关闭托盘图标失效,可能是由于没有 root 权限。要使用 root 权限启动托盘图标,请确保让 SLiM 启动该程序。按如下方式编辑 /etc/slim.conf
sessionstart_cmd /path/to/tray/icon/program &
使用 SLiM 登录信息
默认情况下,SLiM 无法将登录信息记录到 utmp 和 wtmp,这会导致 who、last 等命令错误报告登录信息。要修复此问题,请按如下方式编辑您的 slim.conf
sessionstart_cmd /usr/bin/sessreg -a -l $DISPLAY %user sessionstop_cmd /usr/bin/sessreg -d -l $DISPLAY %user
自定义 SLiM 登录命令
您还可以使用 /etc/slim.conf
中的 sessionstart_cmd/sessionstop_cmd 来记录特定信息,例如 slim 使用的会话、用户或主题
sessionstop_cmd /usr/bin/logger -i -t ASKAPACHE "(sessionstop_cmd: u:%user s:%session t:%theme)" sessionstart_cmd /usr/bin/logger -i -t ASKAPACHE "(sessionstart_cmd: u:%user s:%session t:%theme)"
或者,如果您想在 slim 加载时播放歌曲(并且您已安装 beep 程序)
sessionstart_cmd /usr/bin/beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110
GNOME Keyring
请参阅 GNOME/Keyring#使用密钥环 以在自定义会话中使用 GNOME Keyring。
使用 SLiM 设置 DPI
Xorg 服务器通常会获取 DPI,但如果它没有获取,您可以将其指定给 SLiM。如果您在 /etc/X11/xinit/xserverrc
中使用参数 -dpi 96
设置 DPI,则它将不适用于 SLiM。要修复此问题,请将您的 slim.conf
从
xserver_arguments -nolisten tcp vt07
更改为
xserver_arguments -nolisten tcp vt07 -dpi 96
使用随机主题
使用 current_theme
变量作为逗号分隔的列表来指定要从中选择的集合。选择是随机的。
将整个会话移动到另一个 VT
如果未使用 tty 终端 3-6 并已注释掉(您可以使用 screen,因此只需要一个终端),请更改 /etc/slim.conf
以移动 X 服务器
xserver_arguments -nolisten tcp vt07
只需将 vt07 更改为例如 vt03,因为那里没有启动 agetty。
在登录时自动挂载加密的 /home
要在用户登录 SLiM 时自动挂载加密分区,请按如下方式配置 pam_mount
/etc/pam.d/slim
auth requisite pam_nologin.so auth required pam_env.so auth required pam_unix.so auth optional pam_mount.so account required pam_unix.so password required pam_unix.so password optional pam_mount.so session required pam_limits.so session required pam_unix.so session optional pam_mount.so session optional pam_loginuid.so session optional pam_ck_connector.so
更改键盘布局
编辑 /etc/X11/xorg.conf.d/10-evdev.conf
,找到以下部分,添加两个粗体行,并将 dvorak 替换为您首选的键盘映射
Section "InputClass" Identifier "evdev keyboard catchall" MatchIsKeyboard "on" MatchDevicePath "/dev/input/event*" Driver "evdev" # Keyboard layouts Option "XkbLayout" "dvorak" EndSection
屏幕锁定
Slim 包括 slimlock,一种屏幕锁定功能。要使用它,只需运行 slimlock。
Slimlock 从 /etc/slim.conf
及其自身的配置文件 /etc/slimlock.conf
读取一些配置。
要防止在锁定时进行 VT 切换,请在 slimlock.conf
中将 tty_lock 设置为 1。这也要求您具有对 /dev/console
的写入权限,并且 slimlock 具有 sys_sys_tty_config
功能。实现此目的的一种方法是将 slimlock 设置为 suid root
# chmod +4000 /usr/bin/slimlock # chown root: /usr/bin/slimlock
另一种方法是 setcap 并允许您的 uid 写入 /dev/console
。
# setcap cap_sys_tty_config+ep /usr/bin/slimlock # chmod o+rw /dev/console
您可以使用 xss-lock 自动锁定屏幕
$ xss-lock -- /usr/bin/slimlock &
已知问题
关机或重启停滞
SLiM、Xfce 和 systemd 的组合存在一个错误或已知问题,该问题不允许系统正常关机,并且 systemd 等待 SLiM 服务结束,但最终被终止。
当编辑 slim.service
时,以下行可能有助于加速关机过程
[Service] ExecStart=/usr/bin/slim -nodaemon Restart=on-failure TimeoutStopSec=5s IgnoreSIGPIPE=no ExecStop=/bin/kill -TERM -${MAINPID}
请参阅 FS#32380。
身份验证问题
如果您的密码包含非 ASCII 字符(é、è、ç、à 等),并且您系统的 locale 是 Unicode(例如 fr_FR.UTF-8
),您将无法使用官方存储库中的软件包登录到您的会话(在 Debian 上发现的错误,bug#532060 和 NixOS 上,bug#29802)。
在 AUR 上提供的修复版本带来了 Unicode 支持并解决了此问题:slim-unicodeAUR。
/etc/slim.conf
或主题中本地化您的连接处理程序,例如 reboot_msg
的 "Reboot system..."
,则此补丁允许您正确显示消息。