Difference between revisions of "XDM (简体中文)"
(Sync to English version.) |
(→XDM loops back to itself after login: Add systemd info.) |
||
Line 81: | Line 81: | ||
Make sure that the {{pkg|dbus}} package, available in the [[Official Repositories]] is [[pacman|installed]] and then make sure {{ic|dbus}} is included in the {{ic|[[Daemon#Starting_on_Boot|DAEMONS]]}} array in {{ic|/etc/[[rc.conf]]}}. | Make sure that the {{pkg|dbus}} package, available in the [[Official Repositories]] is [[pacman|installed]] and then make sure {{ic|dbus}} is included in the {{ic|[[Daemon#Starting_on_Boot|DAEMONS]]}} array in {{ic|/etc/[[rc.conf]]}}. | ||
+ | |||
+ | When using pure systemd with logind, instead of consolekit which is now deprecated, systemd will start dbus automatically. To use xdm use {{bc|# systemctl enable xdm.service}} or {{bc|# systemctl enable xdm-archlinux.service}} | ||
Also, make sure that you are actually starting your window manager, for example with the command {{ic|xmonad}} in {{ic|~/.xsession}}, and that {{ic|~/.xsession}} has the correct permissions of {{ic|774}}. | Also, make sure that you are actually starting your window manager, for example with the command {{ic|xmonad}} in {{ic|~/.xsession}}, and that {{ic|~/.xsession}} has the correct permissions of {{ic|774}}. |
Revision as of 04:16, 14 November 2012
Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end
来自 XDM 手册页:
- Xdm 能为本地和远程服务器提供一系列图形显示功能。xdm的设计满足图形显示的基本要求并遵循开放组织标准(XDMCPX Display Manager Control Protocol),即X显示管理协议。Xdm提供的功能与init, getty等以文本登录为主的程序相似:提供登录会话,获取用户名和密码,并将授权给予登录用户并提供工作会话。
XDM 提供了一个简单而又直观的图形登录界面。
Contents
安装
安装 XDM:
# pacman -S xorg-xdm xorg-xconsole
更改 .xsession 为可执行文件:
$ chmod 744 .xsession
除此之外, 你可以为XDM安装Arch Linux 主题(可选):
# pacman -S xdm-archlinux
参看 Display Manager 以获取详细信息。
设置墙纸
这里有些小贴士能让 XDM 变得美观些:
- 安装 Quick Image Viewer:
# pacman -S qiv
- 创建一个文件夹用于存放图片。 (例如
/root/backgrounds
或者/usr/local/share/backgrounds
)
- 把图片放进文件夹。如果你没有适合的墙纸可以看看www.digitablasphemy.com。
- 编辑
/etc/X11/xdm/Xsetup_0
. 改变xconsole
命令为:
/usr/bin/qiv -zr /root/backgrounds/*
- 编辑
/etc/X11/xdm/Xresources
. 添加/替换 下面字段:
xlogingreetFont: -adobe-helvetica-bold-o-normal--20------iso8859-1 xloginfont: -adobe-helvetica-medium-r-normal--14------iso8859-1 xloginpromptFont: -adobe-helvetica-bold-r-normal--14------iso8859-1 xloginfailFont: -adobe-helvetica-bold-r-normal--14------iso8859-1 xlogin*frameWidth: 1 xlogin*innerFramesWidth: 1 xlogin*logoPadding: 0 xlogin*geometry: 300x175-0-0
注释掉以下字段:
#xlogin*logoFileName: /usr/X11R6/lib/X11/xdm/pixmaps/xorg.xpm #xlogin*logoFileName: /usr/X11R6/lib/X11/xdm/pixmaps/xorg-bw.xpm
如想了解各字段的确切意义,可查阅xdm的手册页。
- 更新
/etc/pacman.conf
以确保所作的更改不会丢失:
~NoUpgrade = etc/X11/xdm/Xsetup_0 etc/X11/xdm/Xresources
以上的处理能让登录界面随机显示文件夹里地墙纸,并且登录会话在屏幕的右下方显示。
Multiple X sessions & Login in the window
With the Xdmcp enable, you can easily run multiple X sessions simultaneously on the same machine.
# X -query ip_xdmcp_server :2
This will launch the second session, in window you need xorg-server-xephyr
# Xephyr -query this_machine_ip :2
Troubleshooting
XDM loops back to itself after login
The current version of the xorg-xdm package, available in the Official Repositories is patched to register sessions with ConsoleKit by default. If ConsoleKit is not running, XDM will fail to succesfully launch an X session. D-Bus can be used invoke ConsoleKit when called upon by XDM.
Make sure that the dbus package, available in the Official Repositories is installed and then make sure dbus
is included in the DAEMONS
array in /etc/rc.conf
.
# systemctl enable xdm.serviceor
# systemctl enable xdm-archlinux.service
Also, make sure that you are actually starting your window manager, for example with the command xmonad
in ~/.xsession
, and that ~/.xsession
has the correct permissions of 774
.
XDM does not update login records
The vanilla config of XDM calls /etc/X11/xdm/GiveConsolve
for the startup of display :0, whereas otherwise it calls /etc/X11/xdm/Xstartup
. Since only the latter contains a call to /usr/bin/sessreg
, the login record /var/run/utmp
is not updated for a login on display :0. As a consequence, the output of who
does not necessarily list the user after login through XDM. This was already discussed in the bug report FS#26395.
As a simple fix, append the following line to /etc/X11/xdm/GiveConsole
:
exec /usr/bin/sessreg -a -w /var/log/wtmp -u /var/run/utmp -x /etc/X11/xdm/Xservers -l $DISPLAY -h "" $USER
This change also enables the getuser
function presented in Acpid to work.