「LXDM」

LXDM,LXDE桌面环境的轻量级“显示管理器”(Display Manager,简称DM)。LXDM的界面由GTK+2实现。
显示管理器(或者叫登录管理,就是常见的系统登录界面)有很多的实现,比如:GDM、KDM、LightDM、XDM等等。

LXDM Version 0.5.3,从sourceforge上看,最后一次的更新时间是2016-11-29。

章节列表

  1. 界面简介
  2. 相关程序及配置文件
  3. LXDM配置及lxdm.conf配置文件
  4. 使用技巧和小方法
  5. 主题获取与定制

界面简介

下面是 LXDM 的截图:

当从“Session列表”中选择“Default”时,会加载默认的“Session”。什么意思呢?这里的Session列表就是界面中的“Desktop”,而“Session”指的是“窗口管理器”(Window Manager,比如FVWM、Fluxbox、Openbox等)。默认的“窗口管理器”可以在lxdm.conf中设置。关于lxdm.conf配置文件下面会有介绍。注意:用户设置优先于全局设置。

相关程序及配置文件

LXDM相关的一些文件如下(这其中省略了一些.mo、图片等不重要的文件):
/etc/init.d/lxdm
/etc/insserv.conf.d/lxdm
/etc/logrotate.d/lxdm
/etc/lxdm-environment
/etc/lxdm:保存了LXDM相关的配置文件

  • LoginReady,shell脚本,当LXDM准备好显示“登录窗口”时,以root权限执行改脚本。
  • PreLogin,shell脚本,在登录用户之前,以root身份运行。
  • PostLogin,shell脚本,在登录后,立即以登录用户的权限运行。
  • PostLogout,shell脚本,在退出后,立即以退出用户的权限运行。
  • PreReboot,shell脚本,重启LXDM之前运行。
  • PreShutdown,shell脚本,退出LXDM之前运行。
  • Xsession,系统范围的X session配置文件,通常不需要编辑,也没有必要除非你知道自己在做什么。
  • lxdm.conf,主配置文件,在它的注释中很好解释了各个参数。

/etc/pam.d/lxdm
/lib/systemd/system/lxdm.service
/usr/bin/lxdm-config,
/usr/lib/lxdm/lxdm-greeter-gdk
/usr/lib/lxdm/lxdm-greeter-gtk
/usr/lib/lxdm/lxdm-numlock
/usr/lib/lxdm/lxdm-session
/usr/sbin/lxdm,用于执行lxdm-binary的脚本;
/usr/sbin/lxdm-binary,是实际的DM,-d指定以守护进程运行。
/usr/share/doc/lxdm/copyright
/usr/share/lxdm,LXDM中UI配置相关文件:
/usr/share/lxdm/config.ui
/usr/share/lxdm/lxdm.glade

/usr/share/lxdm/themes,保存主题文件

Industrial/greeter-gtk3.ui

Industrial/greeter.ui

Industrial/gtk.css

Industrial/gtkrc

Industrial/index.theme

Industrial/some_image…

LXDM配置及lxdm.conf配置文件

lxdm-config
LXDM提供了一个用于配置的GUI程序lxdm-config,配置的参数依旧是写入/etc/lxdm/lxdm.conf

手动编辑配置文件
配置文件位于/etc/lxdm/lxdm.conf,是非常经典的ini文件格式。各个属性的含义在注释里已经解释的很清楚了:

[base]

## 设置可以自动登录的用户。注意:自动登录只在启动后有效。如果注销,仍然需要输入登录信息。
## 由于是自动登录帐号,所以要确保两件事请:设置了autologin,设置了默认的session
## 注意:autologin=和登录名之间不能有空格。
autologin=username_to_autologin

## 在等待一段时间后自动登录。
## 在这种情况下,启动登录屏幕后,会等待timeout指定的时间后才自动登录。
## 取值必须大于等于5,单位为秒。
timeout=10

## 当没有全局配置时,默认使用的会话或桌面。
## 这对“没有可见会话选择框的主题”以及“使用自动登录时遇到问题”很有用。
##
## 要为单个用户定义首选会话,只需$HOME下的〜/.dmrc,内容如下:
## [Desktop]
## Session=xfce
session=/usr/local/bin/startxfce4

## uncomment and set to set numlock on your keyboard
# numlock=0

## set this if you dont want to put xauth file at ~/.Xauthority
# xauth_path=/tmp

# not ask password for users who have empty password
# skip_password=1

## greeter used to welcome the user
greeter=/usr/local/libexec/lxdm-greeter-gtk

[server]
## arg used to start xserver, not fully function
# arg=/usr/bin/X -background vt1
arg=/usr/bin/X
# uncomment this if you really want xserver listen to tcp
# tcp_listen=1
# uncoment this if you want reset the xserver after logout
reset=1

[display]

## 欢迎界面使用的gtk主题
gtk_theme=Clearlooks

## 设置背景图
bg=/usr/share/backgrounds/default.png

## if show bottom pane
bottom_pane=1

## 是否显示语言选择菜单(界面中的“Language”),0:不显示;1:显示;
lang=1

## if show keyboard layout select control
keyboard=1

## 欢迎界面的主题,即在/usr/share/lxdm/themes下的文件夹的名字
theme=demo

transparent_pane=1
bg=#000000000000

[input]

[userlist]
## 是否显示用户列表
disable=1

## whitelist user
white=

## blacklist user
black=

其实还一个文件,位于/var/lib/lxdm/lxdm.conf,该文件中保存了最后使用的选项。此文件在LXDM卸载后不会被删除,如果要删除所有LXDM使用选项的痕迹,必须手动删除。

使用技巧和小方法

多用户和切换用户

LXDM允许多用户同时登录到不同的tty。以下命令用于允许其他用户登录而不注销当前用户:

lxdm -c USER_SWITCH

注意:当新用户登录时,新的会话会在位于tty7的的下一个tty上。例如,user1登录并发出USER_SWITCH命令,现在user2登录。User2将在tty7上,而User1则变到tty1上。

高级的Session配置

用户登录后,LXDM将依次source以下文件:

/etc/profile

~/.profile

/etc/xprofile

~/.xprofile

这些文件可用于设置会话环境变量并启动必须设置某些环境变量的服务,以便会话中的客户端能够使用该服务,如ssh-agent。有关详细信息,请参阅Xprofile

请注意,LXDM不会source /.xinitrc,因此从使用.xinitrc的DM(如SLiM)迁移过来的用户需要将其设置移动到其他地方,比如~/.xprofile。如果非要使用~/.xinitrc,可以在/etc/lxdm/PostLogin文件中添加:source ~/.xinitrc。还有一点LXDM不会source ~/.bash_profile。

LXDM还使用.Xresources、.Xkbmap、.Xmodmap。有关LXDM如何使用“系统范围”和“每用户”的配置文件来配置会话的详细信息,请参阅/etc/lxdm/Xsession文件。

对黑背景的闪屏修复

当使用默认LXDM中theme=Industrial和自定义黑色背景时,可能在LXDM启动之前有一个短亮的闪光。这是由所选主题的bg_color属性引起的。为了避免这个问题,修改gtk_theme=Adwaita为Adwaita-dark或者LXDM中的另一个”无闪平滑黑暗“过渡到黑主题。

头像(face icon)

可以在每个用户的基础上选择一个96×96的图(jpg或png)代替默认图标。只需将目标图像复制或创建符号链接到$HOME/.face。gnome-control-center软件包提供了一些适用于lxdm屏幕的默认图标,位于/usr/share/pixmaps/faces

主题的获取与定制

LXDM中的主题/usr/share/lxdm/themes下。默认情况下,LXDM只有一个Industrial主题。此主题的背景文件wave.svg,如果要显示svg图,确保安了装librsvg。

获取主题
lxdm-themes(AUR)提供6个额外的主题。 Archlinux,ArchlinuxFull,ArchlinuxTop,Arch-Dark,Arch-Stripes和IndustrialArch。lxdm-git还提供了ArchStripes和ArchDark主题。可以通过编辑lxdm.conf中的theme属性来切换LXDM主题。

主题开发
主题的支持是基于“gtkrc style”和“GtkBuilder xml UI definition”。不需要GTK+以外的技术,这个新功能不需要额外的库。目前LXDM中附带了从GDM中移植过来的Industrial主题。目前,LXDM使用gtk pixmap引擎来完成其主题,但是将来将会使用gtk-css-engine来简化主题开发。

参考文献

https://wiki.archlinux.org/index.php/LXDM
https://wiki.manjaro.org/index.php/LXDM_Configuration
https://wiki.lxde.org/en/LXDM
https://blog.lxde.org/2010/01/22/lxdm-is-nowthemeable/
https://developer.gnome.org/gtk2/stableGtkSettings.html
Homepage: https://wiki.lxde.org/en/LXDM