顯示管理器
顯示管理器(或登錄管理器)通常是一個在啟動過程結束時代替默認 shell 顯示的圖形用戶界面。與窗口管理器和桌面環境類似,顯示管理器也有很多實現。每個顯示管理器通常都能進行一定程度的定製。
顯示管理器列表[編輯 | 編輯原始碼]
控制台[編輯 | 編輯原始碼]
- CDM — 用 Bash 編寫的登錄管理器。
- Console TDM — 用 Bash 編寫的 xinit 擴展。
- nodm — 用於自動登錄的顯示管理器(自 2017 年以來不再維護)。
- Ly — 用於 Linux 和 BSD 的 TUI(類似 ncurses)顯示管理器。支持 X 和 Wayland 會話。
- tbsm — Bash 會話或應用程式啟動器。支持 X 和 Wayland 會話。
- emptty — TTY 上的簡單 CLI 顯示管理器,支持 X 和 Wayland。
- loginx — 帶有友好 curses 用戶界面的 getty/login/xinit 組合。
圖形界面[編輯 | 編輯原始碼]
- Entrance — Enlightenment 顯示管理器。
- LightDM — 跨桌面顯示管理器,可以使用任何工具包編寫的各種前端。
- XDM — 支持 XDMCP 的 X 顯示管理器,適合伺服器主機。
登錄守護進程[編輯 | 編輯原始碼]
- greetd — 支持控制台和圖形歡迎程序的登錄守護程序。
加載顯示管理器[編輯 | 編輯原始碼]
要啟用圖形登錄,啟用適當的 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
中設置的應用程式將立即啟動。關閉應用程式後,會和註銷桌面環境或窗口管理器一樣回到登錄管理器。
需要注意的是大部分圖形程序都不支持此環境,因此可能需要手動調整或忍受限制(沒有窗口管理器,所以不要期望能夠移動或調整任何窗口,包括對話框;不過,也許可以在應用程式的配置文件中設置窗口幾何形狀)。
提示與技巧[編輯 | 編輯原始碼]
自動啟動[編輯 | 編輯原始碼]
大多數顯示管理器都會 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 區域
註銷然後重新登錄以使更改生效。