跳转至内容

SLiM

来自 ArchWiki

本文或本章节已过时。

原因:官方软件包现在将 slim-fork 视为上游。 (请在 Talk:SLiM 讨论)
警告 SliM 项目已被废弃 (最后发布于 2013 年),并且与 systemd (包括 logind 会话) 不完全兼容。请考虑使用其他 显示管理器startx

SLiM 是 **S**imple **L**ogin **M**anager 的缩写。SLiM 轻量且易于配置,依赖项最少,并且不依赖于 GNOMEKDE 桌面环境。因此,它有助于为也喜欢使用轻量级桌面 (如 Xfce, OpenboxFluxbox) 的用户构建轻量级系统。

安装

安装 slim 软件包。

配置

注意 SLiM 不再支持在启用多个会话的情况下使用“默认”会话。这在尝试注销并重新登录到同一会话时最为明显。

SLiM 可以通过在 /etc/slim.conf 中使用 sessiondir /usr/share/xsessions/ 来自动检测已安装的桌面环境和窗口管理器。那些从 1.3.6-2 版本之前升级的用户必须相应地修改 /etc/slim.confxinitrc。请参阅下文。

启用 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

启用自动登录

注意 必须首先将 SLiM 设置为使用单一桌面环境以及默认用户名。
警告
  • 不要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.confcurrent_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.pngbackground.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 密钥环将在登录时不会自动解锁。这将导致依赖于密钥环的应用程序,如 Chrome/Chromium 和 NetworkManager,出现异常 (请参阅 https://bbs.archlinux.org/viewtopic.php?id=167579)。

要与自定义会话中的 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 支持并解决了此问题。

提示 同样,在 Unicode 环境下,如果您计划本地化连接处理程序 (例如 reboot_msg"Reboot system...") 在 /etc/slim.conf 或主题中,此补丁允许您正确显示消息。

30 位彩色 X 导致崩溃

xorg.conf 的 Screen 部分包含 DefaultDepth 30 时,Slim 会立即在 _XPutPixel32() libX11 函数中崩溃,该函数由 Image::createPixmap() 调用。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.