SLiM
SLiM 是 **S**imple **L**ogin **M**anager 的缩写。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 密钥环将在登录时不会自动解锁。这将导致依赖于密钥环的应用程序,如 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 密钥环一起使用,请参阅 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 的组合存在一个 bug 或已知问题,导致系统无法正常关机,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 字符 (é, è, ç, à 等) 且系统的 区域设置 是 Unicode (例如 fr_FR.UTF-8),您将无法使用官方存储库中的软件包登录到您的会话 (Debian 上发现的 bug,bug#532060;NixOS 上发现的 bug,bug#29802)。
AUR 上提供的已修复版本 slim-unicodeAUR 带来了 Unicode 支持并解决了此问题。
reboot_msg 的 "Reboot system...") 在 /etc/slim.conf 或主题中,此补丁允许您正确显示消息。30 位彩色 X 导致崩溃
当 xorg.conf 的 Screen 部分包含 DefaultDepth 30 时,Slim 会立即在 _XPutPixel32() libX11 函数中崩溃,该函数由 Image::createPixmap() 调用。