Display manager (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Display_manager翻译。上次翻译日期:2015-12-28。如果英文版本有所更改,则您可以帮助同步翻译。

显示管理器或登录管理器是一个在启动最后显示的图形界面。和窗口管理器一样,显示管理器有很多种。通常每个显示管理器都能进行一些定制。

显示管理器列表

注意: 如果使用 桌面环境,应该尽量使用对应的显示管理器。

控制台

  • CDM — 控制台显示管理器
https://github.com/ghost1227/cdm || cdm-gitAUR
  • Console TDM — 扩展自xinit,由纯粹的Bash脚本编写的
https://github.com/dopsi/console-tdm || console-tdmAUR
  • nodm — 支持自动登录的简单显示管理器。
https://github.com/spanezz/nodm || nodm
  • Ly — 实验阶段的 ncurses 显示管理器。
https://github.com/cylgom/ly || ly-gitAUR

图形界面

https://github.com/linuxmint/mdm || mdm-display-managerAUR
  • SDDM:基于QML的显示管理器,替代 KDE4 的 KDM,推荐搭配 Plamsa5 或 LXQt 使用。https://github.com/sddm/sddmsddm
  • XDM — X 显示管理器支持XDMCP(适合服务器的宿主机).
https://www.x.org/archive/X11R7.5/doc/man/man1/xdm.1.html || xorg-xdm

加载显示管理器

通过启动登录管理器(或称显示管理器),即可进行图形界面登录。目前,Arch 提供了 GDMSLiMXDMLXDMLightDMsddm 的 systemd 服务文件。以 SDDM 为例,配置开机启动:

# systemctl enable sddm.service

执行上述命令后,登录管理器应当能正常工作了。如果不是的话,可能是default.target 没有指向graphical.target

启用 SDDM 后, /etc/systemd/system/ 应该创建 display-manager.service 软链接,可以用 --force 覆盖已有链接。

$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service

使用 systemd-logind

可使用 loginctl 来查看用户会话的状态。所有 PolicyKit 操作,如挂起系统、挂载外部驱动器,都无需配置即可使用。

$ loginctl show-session $XDG_SESSION_ID

会话配置

多数显示管理器会读取 /usr/share/xsessions/ 目录已获取可用的会话列表,此目录中包含各个 DM/WM 的标准 桌面文件

要新建会话,可以在 /usr/share/xsessions/ 中新建 .desktop 后缀的文件,文件示例:

[Desktop Entry]
Name=Openbox
Comment=Log in using the Openbox window manager (without a session manager)
Exec=/usr/bin/openbox-session
TryExec=/usr/bin/openbox-session
Icon=openbox.png
Type=Application

运行 ~/.xinitrc 会话

安装 xinit-xsessionAUR 后会在显示管理器中提供一个运行 .xinitrc 会话的选项。在显示管理器中选择 xinitrc 作为会话,请确保 ~/.xinitrc 具有执行权限。

没有窗口管理启动应用程序

您也可以启动没有窗口修饰、桌面或窗口管理器的会话。例如要启动 google-chromeAUR,在/usr/share/xsessions/中创建web-browser.desktop

[Desktop Entry]
Name=Web Browser
Comment=Use a web browser as your session
Exec=/usr/bin/google-chrome --auto-launch-at-startup
TryExec=/usr/bin/google-chrome --auto-launch-at-startup
Icon=google-chrome
Type=Application

登录后,程序会立即执行 Exec 中的设定。关闭程序后,会和退出登录一样,将会回到显示管理器。大部分图形程序都不支持此环境,窗口无法移动或改变大小。

参阅 xinit#Starting applications without a window manager.

提示和技巧

自动启动

许多显示管理器都查询配置文件 /etc/xprofile, ~/.xprofile/etc/X11/xinit/xinitrc.d/。 更多细节,见xprofile

设置语言

使用AccountsService的显示管理器可以设置用户会话的 locale,设置位置是 /var/lib/AccountsService/users/$USER:

[User]
Language=your_locale

your_locale 位置替换为locale变量,例如: en_GB.UTF-8. 重启显示管理器使变更生效。