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 或其他暗色主題。