LXDM

来自 Arch Linux 中文维基

这篇文章或章节的翻译不反映原文。

原因:Some sections are not translated, the original page has evolved a little since the last translation, the TranslationStatus is erroneous since a section removed in 2013 is still present here!(在 Talk:LXDM# 中讨论)

LXDM 是轻量级的 LXDE 桌面环境 使用的 显示管理器。界面使用 GTK+ 2.

LXDM 不支持 XDMCP 协议,要使用 XDMCP,请使用 LightDM.

安装[编辑 | 编辑源代码]

安装 lxdm 软件包或安装 GTK 软件包 lxdm-gtk3

或者安装AUR中的 lxdm-gitAUR.

启用 systemd 服务 lxdm.service

配置[编辑 | 编辑源代码]

警告: lxdm.conf 中必须包含语言选择控制,请设置 lang=1 否则 LXDM 会不停循环启动,无法载入会话。

LXDM 的配置文件都位于 /etc/lxdm。主配置文件是 lxdm.conf,注释非常详细。Xsession 是系统 X 会话配置文件,一般不需要修改。目录中的其他文件都是 bash 脚本,在 LXDM 发生相应事件时运行:

  1. LoginReady: 在 LXDM 准备显示登录窗口时以 root 权限运行。
  2. PreLogin: 用户登录前以 root 权限运行。
  3. PostLogin: 用户登录后以登录的用户运行。
  4. PostLogout: 用户注销后以用户权限运行。
  5. PreReboot: 通过 LXDM 重启时以 root 运行。
  6. PreShutdown: 通过 LXDM关机时以 root 运行。

登录时解锁密钥环[编辑 | 编辑源代码]

使用 gnome-keyring 等密钥管理器管理 ssh 密钥密码时,/etc/pam.d/lxdm 应该调整成允许用户在登录时解锁密钥,在文件中加入:

auth            optional        pam_gnome_keyring.so
session         optional        pam_gnome_keyring.so auto_start

默认会话[编辑 | 编辑源代码]

全局[编辑 | 编辑源代码]

要修改 LXDM 的默认会话或桌面环境,请编辑 /etc/lxdm/lxdm.conf 将下行配置:

session=/usr/bin/startlxde

例如 Xfce:

session=/usr/bin/startxfce4

例如 Openbox:

session=/usr/bin/openbox-session

例如 GNOME:

session=/usr/bin/gnome-session

例如 LXQt:

session=/usr/bin/xfwm4

在使用无法选择会话的主题或者登录有问题时,这个配置很有用。

分用户配置[编辑 | 编辑源代码]

要定义独立用户的会话,请编辑 ~/.dmrc 并定义会话。

例如:用户1要用 xfce4,用户2要用cinnamon,用户3要用GNOME:

用户1的设置:

[Desktop]
Session=xfce

用户2的设置:

[Desktop]
Session=cinnamon

用户3的设置:

[Desktop]
Session=gnome

自动登录[编辑 | 编辑源代码]

如果要不输入密码就自动登录一个用户,找到 /etc/lxdm/lxdm.conf 中的:

#autologin=dgod

取消前面的注释,并将dgod改成要自动登录的用户名。

注销行为[编辑 | 编辑源代码]

LXDM 有点让人意外的是用户注销时并不会清空用户的桌面背景和用户进程。如果要修改这个行为,请编辑 /etc/lxdm/PostLogout 为:

#!/bin/sh

# Kills all your processes when you log out.
killall --user $USER -TERM

# Set's the desktop background to solid black. Useful if you have multiple monitors.
xsetroot -solid black
注意: 这将会停止 tmux、urxvtd 等用户进程。

将 killall 命令替换为下列内容可以不停止 ssh 和 screen:

 ps --user $USER | egrep -v "ssh|screen" | cut -b11-15 | xargs -t kill

会话列表[编辑 | 编辑源代码]

要配置 LXDM 的会话列表,可以修改/usr/share/xsessions 中的 Desktop 文件,示例:

[Desktop Entry]
Encoding=UTF-8
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=XSession

提示和技巧[编辑 | 编辑源代码]

添加表情图标[编辑 | 编辑源代码]

一个96x96像素的图像(jpg或png格式)可以选择性地在每个用户上替代默认图标进行显示。只需将目标图像复制或使用符号链接到 $HOME/.facegnome-control-center 包提供了一些适用于lxdm屏幕的默认图标。 在安装该软件包后,在 /usr/share/pixmaps/faces 目录下查找。

注意: 用户不需要保留 gnome-control-center 包来使用这些图像。只需安装它,将它们复制到其他地方,然后卸载它即可。
注意: 用户的目录应该对其他人具有r-x权限,而.face文件对其他人应该有r--权限。但显然,这会带来安全和访问方面的影响,因为现在任何人都可以浏览你的主目录。
注意: 一个名为 lxdm-config 的图形化工具随lxdm一起提供,可以用于在主目录中放置 .face 文件,以及其他配置文件。

自动用户和切换用户[编辑 | 编辑源代码]

LXDM 可以让多个用户同时登录到不同 ttys,使用此用户可以自动以新用户登录,并保留老用户的会话:

$ lxdm -c USER_SWITCH
注意: 当新用户登录时,使用的是下一个tty。例如 tty7 上的用户甲登录并使用 USER_SWITCH 命令后,新登录的用户乙将会位于 tty8。

XScreenSaver 也支持此功能,参见 XScreenSaver#LXDM.

主题[编辑 | 编辑源代码]

LXDM 主题位于 /usr/share/lxdm/themes.

LXDM 仅提供了一个主题 Industrial. 要显示主题背景文件 wave.svg,请安装软件包 librsvg.

lxdm-themesAUR 提供了 6 个额外的主题:Archlinux, ArchlinuxFull, ArchlinuxTop, Arch-Dark, Arch-Stripes 和 IndustrialArch. lxdm-gitAUR 也提供了 ArchStripes 和 ArchDark(名字改了一下以避免冲突).

主题文件通过 /etc/lxdm/lxdm.conf 配置:

## the theme of greeter
theme=theme_name

要让 LXDM 使用 GTK 主题(位于 /usr/share/themes),在配置文件中设置:

## GTK theme
gtk_theme=gtk_theme_name

高级会话配置[编辑 | 编辑源代码]

用户登录后,LXDM 会按下面顺序引用全部文件:

  1. /etc/profile
  2. ~/.profile
  3. /etc/xprofile
  4. ~/.xprofile

这些文件可以设置会话的环境变量,启动必须的服务例如 ssh-agent. 详情请参考 Xprofile.

LXDM 不会 引用 ~/.xinitrc,所以如果需要从使用这些文件的显示管理器迁移到 LXDM,需要将设置移动到其它文件,例如 ~/.xprofile. LXDM 也不会引用 ~/.bash_profile.

如果还想使用 ~/.xinitrc,可以在 /etc/lxdm/PostLogin 中加入:

source ~/.xinitrc

LXDM 也会使用 .Xresources, .Xkbmap, 和 .Xmodmap. LXDM 系统配置和用户配置的详细状况可以参考 /etc/lxdm/Xsession[1]

问题处理[编辑 | 编辑源代码]

白闪[编辑 | 编辑源代码]

当使用默认的LXDM主题 theme=Industrial 和一个暗色背景图片(例如 bg=/usr/share/backgrounds/img.png)时,LXDM启动之前可能会出现短暂的明亮闪光。 这是由于所选 GTK+ 主题的 bg_color: 属性引起的。 为了避免这种情况,请将 gtk_theme=Adwaita 更改为 gtk_theme=Adwaita-dark 或其他暗色主题。