顯示管理器 - Arch Linux 中文维基

跳至內容

# 顯示管理器

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Display manager，最近一次同步於 2026-02-21，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- 登錄時自動啟動 X

顯示管理器（或登錄管理器）通常是一個在啟動過程結束時代替默認 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 || ly包

- tbsm — Bash 會話或應用程式啟動器。支持 X 和 Wayland 會話。

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

- emptty — TTY 上的簡單 CLI 顯示管理器，支持 X 和 Wayland，用Go編寫。

  https://github.com/tvrzna/emptty/ || emptty包

- loginx — 帶有友好 curses 用戶界面的 getty/login/xinit 組合。

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

- Lemurs — TUI顯示管理器，用Rust編寫。支持 X、Wayland 和 TTY shell 會話。

  https://github.com/coastalwhite/lemurs || lemurs包

- lidm — 完全彩色且可定製的 TUI 顯示管理器，由 C 語言製作。

  https://github.com/javalsai/lidm || lidmAUR

### 圖形界面

- 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包

- Plasma 登錄管理器 — Plasma 登錄管理器；設計為SDDM的繼任者。

  https://invent.kde.org/plasma/plasma-login-manager/ || plasma-login-manager包

- 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 || greetd包

## 加載顯示管理器

要在啟動時啟用圖形登錄，請啟用相應的 systemd 服務：

- GDM — `gdm.service`
- LightDM — `lightdm.service`
- LXDM — `lxdm.service`
- Plasma 登錄管理器 — `plasmalogin.service`
- SDDM — `sddm.service`
- SLiM — `slim.service`

- XDM — `xdm.service`

注意：如果安裝了 xdm-archlinux，請啟用 xdm-archlinux.service
警告：只應啟用一個顯示管理器服務。

如果默認啟動目標是`graphical.target`，應能開箱即用。如果沒有，可能需要重置自定義`default.target`符號連結，指向默認`graphical.target`。參見 systemd#更改開機默認啟動目標。

啟用顯示管理器服務後，應在 `/etc/systemd/system/` 中設置符號連結`display-manager.service`。你可能需要用`--force`來覆蓋舊的符號連結。

    $ /etc/systemd/system/display-manager.service

    /etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/display-manager.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#在沒有窗口管理器的情況下啟動應用程式。

## 提示與技巧

### 自動啟動

大多數顯示管理器都會提供 `/etc/xprofile`、`~/.xprofile` 和 `/etc/X11/xinit/xinitrc.d/`。有關詳細信息，請參閱 xprofile。

### 為用戶會話設置語言

使用 AccountsService 的顯示管理器可以通過以下編輯設置用戶會話的區域：

    /var/lib/AccountsService/users/$USER

    [User]
    Language=your_locale

其中your_locale的值類似 `zh_CN.UTF-8`。

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

GNOME和KDE用戶也可以在GNOME或KDE設置中設置語言。

註銷然後重新登錄以使更改生效。

## 用LUKS自動登錄時自動解鎖GNOME Keyring/KDE KWallet

這篇文章的某些內容需要擴充。

原因：原因：這個功能只適用於SD加密嗎？ (在 討論：顯示管理器 中討論)

自 systemd 版本 255 起，pam_systemd_loadkey 可用於解鎖 GNOME/Kwallet Keyring，前提是用戶密碼與系統的 LUKS 密碼短語相符。要實現這一點，你需要在顯示管理器中啟用自動登錄。

# 參見

- 登錄管理器：入門介紹——討論登錄管理器的實現

分類：​

- 圖形用戶界面
- 軟體列表

顯示管理器
新增話題