Difference between revisions of "Display manager (简体中文)"

From ArchWiki
Jump to: navigation, search
(Update category.)
(Update translation.)
Line 14: Line 14:
 
[[zh-hant:Display manager]]
 
[[zh-hant:Display manager]]
 
{{Related articles start (简体中文)}}
 
{{Related articles start (简体中文)}}
{{Related|Desktop environment}}
 
{{Related|Window manager}}
 
 
{{Related|Start X at login}}
 
{{Related|Start X at login}}
 
{{Related articles end}}
 
{{Related articles end}}
Line 27: Line 25:
  
 
* {{App|[[CDM]]|控制台显示管理器|https://github.com/ghost1227/cdm|{{AUR|cdm-git}}}}
 
* {{App|[[CDM]]|控制台显示管理器|https://github.com/ghost1227/cdm|{{AUR|cdm-git}}}}
* {{App|[[Console TDM]]|扩展自xinit,由纯粹的Bash脚本编写的|http://code.google.com/p/t-display-manager/|{{AUR|console-tdm-git}}}}
+
* {{App|[[Console TDM]]|扩展自xinit,由纯粹的Bash脚本编写的|https://github.com/dopsi/console-tdm|{{AUR|console-tdm}}}}
* {{App|[[nodm]]|支持自动登录的简单显示管理器。|http://enricozini.org/sw/nodm/|{{Pkg|nodm}}}}
+
* {{App|[[nodm]]|支持自动登录的简单显示管理器。|https://github.com/spanezz/nodm|{{Pkg|nodm}}}}
 +
* {{App|[[Ly]]|实验阶段的 ncurses 显示管理器。|https://github.com/cylgom/ly|{{AUR|ly-git}}}}
  
 
=== 图形界面 ===
 
=== 图形界面 ===
  
* {{App|[[Enlightenment|Entrance]]|一个基于EFL的窗口管理器, 高度不稳定|http://enlightenment.org/|{{AUR|entrance-git}}}}
 
 
* [[GDM]]: [[GNOME (简体中文)|GNOME]] 显示管理器 。http://projects.gnome.org/gdm/{{Pkg|gdm}}
 
* [[GDM]]: [[GNOME (简体中文)|GNOME]] 显示管理器 。http://projects.gnome.org/gdm/{{Pkg|gdm}}
* KDM: [[KDE (简体中文)|KDE]]4 显示管理器 ({{AUR|kdebase-workspace}})(已经停止开发,请使用[[SDDM]]).
 
 
* [[LightDM]]:跨桌面的显示管理器,可以使用各种前端写的任何工具。http://www.freedesktop.org/wiki/Software/LightDM{{Pkg|lightdm}}||{{AUR|lightdm-bzr}}{{Broken package link|package not found}}
 
* [[LightDM]]:跨桌面的显示管理器,可以使用各种前端写的任何工具。http://www.freedesktop.org/wiki/Software/LightDM{{Pkg|lightdm}}||{{AUR|lightdm-bzr}}{{Broken package link|package not found}}
 
* [[LXDM]]: [[LXDE (简体中文)|LXDE]] 显示管理器 (独立于桌面环境) ({{Pkg|lxdm}})
 
* [[LXDM]]: [[LXDE (简体中文)|LXDE]] 显示管理器 (独立于桌面环境) ({{Pkg|lxdm}})
 
* {{App|MDM|使用在Linux Mint中的显示管理器,GDM2的分支项目。|https://github.com/linuxmint/mdm|{{AUR|mdm-display-manager}}}}
 
* {{App|MDM|使用在Linux Mint中的显示管理器,GDM2的分支项目。|https://github.com/linuxmint/mdm|{{AUR|mdm-display-manager}}}}
* [[SDDM]]:基于QML的显示管理器,替代KDE4的KDM,推荐搭配Plamsa5或LXQt使用。https://github.com/sddm/sddm{{Pkg|sddm}}
+
* [[SDDM]]:基于QML的显示管理器,替代 KDE4 的 KDM,推荐搭配 Plamsa5 或 LXQt 使用。https://github.com/sddm/sddm{{Pkg|sddm}}
* [[SLiM]]: 简单登录管理器 ({{Pkg|slim}})  {{Warning|slim登录管理器已经停止开发,不推荐使用}}
 
* [[wdm]]: WINGs 显示管理器 ({{AUR|wdm}})
 
 
* {{App|[[XDM]]|X 显示管理器支持XDMCP(适合服务器的宿主机).|http://www.x.org/archive/X11R7.5/doc/man/man1/xdm.1.html|{{Pkg|xorg-xdm}}}}
 
* {{App|[[XDM]]|X 显示管理器支持XDMCP(适合服务器的宿主机).|http://www.x.org/archive/X11R7.5/doc/man/man1/xdm.1.html|{{Pkg|xorg-xdm}}}}
  
Line 52: Line 47:
 
启用 [[SDDM]] 后, {{ic|/etc/systemd/system/}} 应该创建 {{ic|display-manager.service}} 软链接,可以用 {{ic|--force}} 覆盖已有链接。
 
启用 [[SDDM]] 后, {{ic|/etc/systemd/system/}} 应该创建 {{ic|display-manager.service}} 软链接,可以用 {{ic|--force}} 覆盖已有链接。
  
{{hc|$ ls -l /etc/systemd/system/display-manager.service|
+
{{hc|$ file /etc/systemd/system/display-manager.service|
[...] /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/sddm.service}}
+
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service
 +
}}
  
 
=== 使用 systemd-logind ===
 
=== 使用 systemd-logind ===
Line 67: Line 63:
 
要新建会话,可以在 {{ic|/usr/share/xsessions/}} 中新建 ''.desktop'' 后缀的文件,文件示例:
 
要新建会话,可以在 {{ic|/usr/share/xsessions/}} 中新建 ''.desktop'' 后缀的文件,文件示例:
 
  [Desktop Entry]
 
  [Desktop Entry]
Encoding=UTF-8
 
 
  Name=Openbox
 
  Name=Openbox
 
  Comment=Log in using the Openbox window manager (without a session manager)
 
  Comment=Log in using the Openbox window manager (without a session manager)
Line 73: Line 68:
 
  TryExec=/usr/bin/openbox-session
 
  TryExec=/usr/bin/openbox-session
 
  Icon=openbox.png
 
  Icon=openbox.png
  Type=XSession
+
  Type=Application
  
 
===运行 ~/.xinitrc 会话 ===
 
===运行 ~/.xinitrc 会话 ===
 
 
安装 {{AUR|xinit-xsession}} 后会在显示管理器中提供一个运行 .xinitrc 会话的选项。
+
安装 {{AUR|xinit-xsession}} 后会在显示管理器中提供一个运行 .xinitrc 会话的选项。在显示管理器中选择 {{ic|xinitrc}} 作为会话,请确保 {{ic|~/.xinitrc}} 具有执行权限。
  
 
=== 没有窗口管理启动应用程序 ===
 
=== 没有窗口管理启动应用程序 ===
Line 84: Line 79:
  
 
  [Desktop Entry]
 
  [Desktop Entry]
Encoding=UTF-8
 
 
  Name=Web Browser
 
  Name=Web Browser
 
  Comment=Use a web browser as your session
 
  Comment=Use a web browser as your session
Line 90: Line 84:
 
  TryExec=/usr/bin/google-chrome --auto-launch-at-startup
 
  TryExec=/usr/bin/google-chrome --auto-launch-at-startup
 
  Icon=google-chrome
 
  Icon=google-chrome
 +
Type=Application
  
 
登录后,程序会立即执行 {{ic|Exec}} 中的设定。关闭程序后,会和退出登录一样,将会回到显示管理器。大部分图形程序都不支持此环境,窗口无法移动或改变大小。
 
登录后,程序会立即执行 {{ic|Exec}} 中的设定。关闭程序后,会和退出登录一样,将会回到显示管理器。大部分图形程序都不支持此环境,窗口无法移动或改变大小。
Line 102: Line 97:
 
=== 设置语言 ===
 
=== 设置语言 ===
  
显示管理器使用[http://freedesktop.org/wiki/Software/AccountsService/ AccountsService]设置 [[locale]] ,设置位置是 {{ic|/var/lib/AccountsService/users/$USER}}:
+
使用[http://freedesktop.org/wiki/Software/AccountsService/ AccountsService]的显示管理器可以设置用户会话的 [[locale]],设置位置是 {{ic|/var/lib/AccountsService/users/$USER}}:
  
 
  [User]
 
  [User]
 
  Language=''your_locale''
 
  Language=''your_locale''
  
''your_locale'' 位置替换为locale变量,例如: {{ic|en_GB.UTF-8}}.
+
''your_locale'' 位置替换为locale变量,例如: {{ic|en_GB.UTF-8}}. 重启显示管理器使变更生效。
重启显示管理器使变更生效。
 
 
 
== 已知问题==
 
 
 
=== 与systemd 不兼容===
 
 
 
受影响的有DMs, MDM
 
 
 
一些显示管理器与systemd不兼容,因为它们会重复使用PAM会话进程,这在二次登录时会引起很多问题,例如:
 
* 网络管理程序不工作,
 
* 音量不能调节,
 
* 其它用户登录GNOME失败。
 

Revision as of 06:09, 13 July 2018

翻译状态: 本文是英文页面 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(适合服务器的宿主机).
http://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 中的设定。关闭程序后,会和退出登录一样,将会回到显示管理器。大部分图形程序都不支持此环境,窗口无法移动或改变大小。

参阅 xinitrc#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. 重启显示管理器使变更生效。