CDM
CDM 是一个简约但功能齐全的替代品,可以替代如 显示管理器 (例如 SLiM、SDDM 和 GDM),它提供了一个快速、基于对话框的登录系统,且没有 X Window 系统的开销。CDM 使用纯 bash 编写,几乎没有依赖项,但支持多用户/会话,并且可以启动几乎任何桌面环境或窗口管理器。
安装
安装 cdmAUR 软件包或 cdm-gitAUR 软件包。
现在通过禁用它们的 systemd 服务,确保没有其他显示管理器启动。
例如,如果您正在使用 GDM,您需要禁用 gdm.service
。
无需为 CDM 启用 systemd 服务。相反,一个名为 zzz-cdm.sh
的脚本将被放置到 /etc/profile.d
中。当您登录到登录 shell 时,将运行此脚本(以及 /etc/profile.d
中的其余脚本)。但是,为了防止因配置错误而导致用户无法访问其桌面和虚拟终端的情况,该脚本会检查它正在哪个虚拟终端上运行,并且默认情况下仅在 tty1 上运行。
由于该脚本放置在全局 /etc/profile.d
目录中,因此 CDM 将为所有在 tty1 上登录的用户运行。如果您希望它仅为您运行,请从 /etc/profile.d/zzz-cdm.sh
中删除执行权限,并将该文件的内容复制到 bash 的 ~/.bash_profile
或 zsh 的 ~/.zprofile
中。
配置
您可以通过编辑 /etc/cdmrc
来配置 CDM。它有完整的文档记录,应该相对容易理解。您还可以通过将 /etc/cdmrc
复制到 $HOME/.cdmrc
来获得用户特定的配置文件。
菜单项
菜单项使用三个数组配置:binlist、namelist 和 flaglist。这些数组中项目的顺序很重要,索引相同的项目描述同一个菜单项。binlist 包含要执行的命令,namelist 包含菜单中显示的名称,而 flaglist 包含 binlist 中指定的程序类型,'X' 表示 X 会话,'C' 表示控制台程序。基本上,X 会话使用 startx 启动(binlist 中的项目是 startx 命令的参数),而控制台程序使用 exec 启动。
这里有一个示例配置
binlist=( "~/.xsession" # Launch your X session, "/bin/bash --login" # or just execute your shell, "/usr/bin/fbterm" # or start a frame buffer console, "/usr/bin/cdm ~/.submenu.cdmrc" # or go to a submenu :) ) namelist=("X session" Console FBTerm "Sub menu") flaglist=(X C C C)
主题
主题位于 /usr/share/cdm/themes
中,您只需将主题文件的完整路径传递给 dialogrc
变量即可
/etc/cdmrc
dialogrc=/usr/share/cdm/themes/cdm
主题语法非常直观,创建新主题的最佳方法是复制并编辑现有主题。
启动 X
您可以通过几种方式影响启动 X 服务器的过程 - 您可以指定 X 服务器将在哪个 tty 上启动(如果要在当前 tty 上运行 X 服务器,请指定数字或 'keep'),最后,您可以指定自定义的 X 服务器参数。
电源操作的自定义命令
如果您想为电源操作(如关机或重启)添加条目,您可以将它们包含在 binlist
数组中。有关详细信息,请参阅 systemd#电源管理。