Display manager (简体中文) - ArchWiki

Jump to content

相关文章

- Start X at login

翻译状态：本文是 Display manager 的翻译。上次翻译日期：2022-07-10。如果英文版本有所更改，则您可以帮助同步翻译。

显示管理器（或登录管理器）通常是一个在启动过程结束时代替默认 shell 显示的图形用户界面。与窗口管理器和桌面环境类似，显示管理器也有很多实现。每个显示管理器通常都能进行一定程度的定制。

## 显示管理器列表

### 控制台

- CDM — 用 Bash 编写的登录管理器。

  https://github.com/evertiro/cdm || cdmAUR

- Console TDM — 用 Bash 编写的 xinit 扩展。

  https://github.com/dopsi/console-tdm || console-tdmAUR

- nodm — 用于自动登录的显示管理器（自 2017 年以来不再维护）。

  https://github.com/spanezz/nodm || nodm

- Ly — 用于 Linux 和 BSD 的 TUI（类似 ncurses）显示管理器。支持 X 和 Wayland 会话。

  https://github.com/nullgemm/ly || lyAUR

- tbsm — Bash 会话或应用程序启动器。支持 X 和 Wayland 会话。

  https://loh-tar.github.io/tbsm/ || tbsmAUR

- emptty — TTY 上的简单 CLI 显示管理器，支持 X 和 Wayland。

  https://github.com/tvrzna/emptty/ || emptty-gitAUR

- loginx — 带有友好 curses 用户界面的 getty/login/xinit 组合。

  https://sourceforge.net/projects/loginx/ || loginxAUR

### 图形界面

- Entrance — Enlightenment 显示管理器。

  https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR

- GDM — GNOME 显示管理器。

  https://wiki.gnome.org/Projects/GDM || gdm

- LightDM — 跨桌面显示管理器，可以使用任何工具包编写的各种前端。

  https://github.com/CanonicalLtd/lightdm/ || lightdm

- LXDM — LXDE 显示管理器。可以独立于 LXDE 桌面环境使用。

  https://sourceforge.net/projects/lxdm/ || lxdm, lxdm-gtk3

- SDDM — 基于 QML 的显示管理器，KDM 的继任者；推荐用于 Plasma 和 LXQt。

  https://github.com/sddm/sddm || sddm

- XDM — 支持 XDMCP 的 X 显示管理器，适合服务器主机。

  xdm(8) || xorg-xdm

### 登录守护进程

- greetd — 支持控制台和图形欢迎程序的登录守护程序。

  https://git.sr.ht/~kennylevinsen/greetd || greetdAUR

## 加载显示管理器

要启用图形登录，启用适当的 systemd 服务。例如，对于 SDDM，启用 `sddm.service`。

这应该开箱即用。如果不是，可能需要重置自定义 `default.target` 符号链接以指向默认的 `graphical.target`。请参阅 systemd (简体中文)#更改开机默认启动目标。

启用 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 查看用户会话的状态。所有的 polkit 操作，如挂起系统、挂载外部驱动器，都开箱即用。

    $ loginctl show-session $XDG_SESSION_ID

## 会话配置

许多显示管理器会读取 `/usr/share/xsessions/` 目录来获取可用的会话列表。此目录中包含各个桌面环境或窗口管理器的标准桌面文件。一些显示管理器使用单独的 `/usr/share/wayland-sessions/` 来列出特定于 Wayland 的会话。

要向显示管理器的会话列表添加/删除条目，请根据需要在 `/usr/share/xsessions/` 中创建/删除 .desktop 文件。典型的 .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 (简体中文)#不启动窗口管理器，直接启动程序[损坏的链接：无效的章节]。

## 提示与技巧

### 自动启动

大多数显示管理器都会 source `/etc/xprofile`、`~/.xprofile` 和 `/etc/X11/xinit/xinitrc.d/`。有关详细信息，请参阅 xprofile。

### 为用户会话设置语言

使用 AccountsService 的显示管理器可以通过以下编辑设置用户会话的区域：

    /var/lib/AccountsService/users/$USER

    [User]
    Language=区域

区域 的值类似 `en_GB.UTF-8`。

也可以使用 D-Bus： `busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s 区域`

注销然后重新登录以使更改生效。

Categories:

- Graphical user interfaces (简体中文)
- Lists of software (简体中文)

Hidden category:

- Pages with broken section links