天天看點

LightDM詳細介紹什麼是LightDM配置添加系統鈎子求助!我看不到我的桌面報告問題

本文的對目前我們的業務應用開發最值得關注的是隐藏使用者清單、設定手動登入、通過LightDM的機制讓使用者自動登入。

什麼是LightDM

LightDM是運作在Debian系列作業系統上的桌面顯示管理器,它的全名是Light Display Manager,表面含義是輕量級桌面顯示管理器。它是FreeDesktop工程的一部分。FreeDesktop是一個緻力于Linux和其他類Unix上的X視窗系統的桌面環境之間的互操作性和基礎技術共享的項目,由Red Hat公司的Havoc Pennington于2000年3月創立。官方網站是:https://www.freedesktop.org。最初的名稱叫XDesktopGroup(X桌面工作組),其縮寫"XDG"在現在的桌面開發的工作中仍然經常被用到。Ubuntu 16.04 LTS版本使用LightDM作為預設的視窗管理器。

配置

配置檔案

LightDM配置由下列位置的檔案提供:

/usr/share/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf
           

最新版本的LightDM把過時的配置節

SeatDefaults

替換為

Seat:*

系統提供的配置儲存在

/usr/share/lightdm/lightdm.conf.d/*.conf

,普通使用者不可編輯。系統管理者可以使用配置檔案

/etc/lightdm/lightdm.conf.d/*.conf

/etc/lightdm/lightdm.conf

覆寫系統配置。舉例來說,如果你想覆寫系統配置的預設會話配置(

/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

提供),那麼你可以建立一個檔案

/etc/lightdm/lightdm.conf.d/50-myconfig.conf

,寫入如下代碼:

[Seat:*]
user-session=mysession
           

有一個示例配置檔案展示了LightDM可能識别的所有的配置,它壓縮儲存在:

/usr/share/doc/lightdm/lightdm.conf.gz

這裡還有一個額外的配置檔案:

/etc/lightdm/users.conf

。但是如果

AccountsService

在你的系統上運作,那麼這個配置檔案将被忽略。如果你不确定配置檔案是否已被忽略,可以運作:

ps -aef | grep -i AccountsService

常見配置

隐藏使用者清單

預設配置下,Ubuntu系統的Unity Greeter(或者一些其它系統的Greeter)展示所有可能的使用者帳号清單。如果你想禁用這個功能(可能你有太多的使用者或者基于安全考慮),使用以下配置。

[Seat:*]
greeter-hide-users=true
           

你也許需要顯式啟用手動登入以配合這個特性。

允許手動登入

預設配置下,Ubuntu系統的Unity Greeter(或者一些其它系統的Greeter)不允許使用者手動輸入使用者名登入到系統。你可以用以下配置啟用它:

[Seat:*]
greeter-show-manual-login=true
           

禁止臨時帳戶登入

臨時帳戶名是Guest。預設情況下LightDM允許你用Guest以臨時使用者的身份登入到會話中,進而進入系統,禁用方法是:

[Seat:*]
allow-guest=false
           

設定自動登入

要設定系統自動啟動并登入的使用者,設定

autologin-user

。如果設定了

autologin-user-timeout

,那麼greeter将在自動登入發生之前顯示這麼多秒。在此期間如果存在使用者操作逾時将會取消。配置如下:

[Seat:*]
autologin-user=username
autologin-user-timeout=delay
           

如果你想設定自動登入到臨時帳戶會話可設定:

autologin-guest=true
           

改變預設的會話

預設的會話是由session packages(這是一個LightDM專有名詞,沒想到合适的翻譯)提供的配置

/usr/share/lightdm/lightdm.conf.d/

設定的。如果你需要覆寫這些,你可以設定:

[Seat:*]
user-session=name
           

配置中的

name

指的是位于

/usr/share/xsessions/*.desktop

的以

.dekstop

擴充名結尾的檔案的名稱。

修改greeter

預設的greeter是由greeter packages(這是一個LightDM專有名詞,沒想到合适的翻譯)提供的位于

/usr/share/lightdm/lightdm.conf.d/

的配置設定的。如果你需要覆寫這些,你可以設定:

[Seat:*]
greeter-session=name
           

配置中的

name

指的是位于

/usr/share/xgreeters/*.desktop

的以

.dekstop

擴充名結尾的檔案的名稱。

背景圖檔

LightDM不配置Greeter外觀。合适的greeter做這個配置。Unity Greeter 預設展示目前選中的使用者的背景圖檔。設定預設的背景圖檔,停止編輯

/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema

開關,使用配置:

[com.canonical.unity-greeter]
draw-user-backgrounds=false
background='/foo/wallpaper.png'
           

并且運作

sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

以應用這些設定。

對于LightDM GTK+ greeter,編輯

/etc/lightdm/lightdm-gtk-greeter.conf

,修改

background=/usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.png

background

的值改為自己想要的圖檔。

添加系統鈎子

Hook一般譯作鈎子。

如查你需要在X伺服器和使用者的會話在啟動、停止時進行一些特殊的行為,你可以參考以下配置設定一些指令:

[Seat:*]
display-setup-script=command
display-stopped-script=command
greeter-setup-script=command
session-setup-script=command
session-cleanup-script=command
session-wrapper=command
greeter-wrapper=command
           

其中

greeter-wrapper

display-stopped-script

配置不被Ubuntu 12.04 LTS版本支援。

display-setup-script

display-setup-script

在X伺服器啟動後、使用者會話/greeter程式運作之前運作。如果需要在X伺服器中配置任何特殊内容,請設定此選項。它作為root運作。如果該指令傳回錯誤代碼,則X伺服器将停止。

display-stopped-script

display-stopped-script

在X伺服器退出後以root身份運作。

greeter-setup-script

greeter-setup-script

是在greeter開始前運作的。它作為root運作。如果該指令傳回一個錯誤代碼,引導程式将無法啟動(這将導緻LightDM停止)。

session-setup-script

session-setup-script

在使用者會話開始之前運作。如果這個指令傳回一個錯誤,會話将不會啟動(使用者傳回到一個greeter界面)。

session-cleanup-script

session-cleanup-script

在greeter或者使用者會話停止時運作,以root身份運作。

session-wrapper

session-wrapper

是為會話運作的指令。此指令作為使用者運作,需要執行參數中傳遞的指令以完成會話的運作。如果需要為使用者會話進行特殊設定,請使用此選項。注意,預設值是

lightdm-session

”`,是以如果需要覆寫該設定,應該連結到該設定。

greeter-wrapper

greeter-wrapper

 是一個運作greeter的指令行。它相當于greeter的

session-wrapper

求助!我看不到我的桌面

graphics stack

(圖形堆棧)中很多事情都可能出錯。如果你看不到任何圖形或者損壞的圖檔,下列嘗試也許可以幫助你:

  1. 你可以按

    ctrl+alt+f1

    得到文本終端
  2. 檢查LightDM的日志,位于

    /var/log/lightdm

  3. 停止LightDM,運作

    sudo systemctl stop lightdm

  4. 嘗試再次啟動LightDM:

    sudo systemctl start lightdm

  5. 如果你有另外一個顯示管理器,你可以去啟動它,比如運作:

    sudo systemctl start gdm

  6. 你可以設定預設的顯示管理器,運作

    sudo dpkg-reconfigure lightdm

  7. 檢查系統的最新更新日期,特别是視訊驅動。
  8. 檔案記錄這個BUG。如果您不确定原因在哪裡(

    lightdm

    /

    unity-greeter

    /

    unity

    /

    X

    /

    kernel

    ),那麼針對lightdm的檔案和錯誤将被篩選和重新配置設定(譯者注:意思是多試幾次,縮小問題範圍)。

報告問題

存檔一個BUG可以從終端運作下面的指令行:

ubuntu-bug lightdm

所有合适、合法的資訊、日志都會添加到錯誤報告中。

繼續閱讀