1. 程式人生 > >Ubuntu 16.04 美化——使用者登入介面修改

Ubuntu 16.04 美化——使用者登入介面修改

Ubuntu 16.04 使用的全新的LightDM作為桌面管理器,預設使用Unity Greeter作為登入管理器。
本文就介紹一些有限的美化方法。
目前已知的個性化登入介面有四種辦法:

第一種是在”/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml”中直接修改各項值。

編輯好後儲存退出。
重新整理schemas

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

然後重啟lightdm服務

sudo systemctl restart lightdm

第二種,就是在”/usr/share/glib-2.0/schemas/”中建立一個名為”50_unity-greeter.gschema.override”的override檔案來定義各項值,達到覆蓋其值的效果。原理上同第一種是一樣 。

下面講具體的:
首先,終端裡輸入命令:

sudo gedit /usr/share/glib-2.0/schemas/50_unity-greeter.gschema.override

這裡得到一個空檔案,在檔案第一行寫入:

[com.canonical.unity-greeter]

然後,需要修改下面哪幾項,就將具體哪行程式碼另起一行插在後面就可以了。

一、修改登入介面背景圖片
面對著GDM海量的各種主題,LightDM使用者也最多隻能修改一下登入介面背景了。
修改登入介面背景圖片的程式碼是:

background = "你的圖片路徑"

其預設值是

background = "/usr/share/backgrounds/warty-final-ubuntu.png"

因此我建議,將自己喜歡的圖片sudo cp 到”/usr/share/backgrounds/”目錄下,然後把background路徑修改為”/usr/share/backgrounds/你的圖片.jpg”。
二、禁用使用者桌面背景
需要注意的是,剛剛我們定義的背景圖片優先順序預設低於當前正在登入使用者的桌面背景圖片,實際效果是該圖片一閃而過後被當前正在嘗試登入的使用者的桌面背景圖片覆蓋。如果將嘗試登入的使用者切換至Guest,該圖片才會出現。這裡我們可以通過禁止顯示任何使用者的自定義桌面背景來實現只顯示第一條中定義的登入背景。程式碼如下:

draw-user-backgrounds = false

三、修改登入介面底色
然而即便修改了登入介面背景圖片,每次系統載入進入登入介面的一瞬間,不論你的電腦配置有多麼的強大,不論你設定了什麼圖片作為登入介面背景,總是會有那麼若干秒出現Ubuntu 16.04標誌性的紫色背景,非常令人討厭。
修改背景顏色的程式碼是:

background-color = "#000000"

引號裡的顏色根據自己喜歡填入。
四、禁用登入聲音
下面的程式碼可以禁用登入介面載入成功時的那聲奇怪的鼓聲:

play-ready-sound = false

五、去除背景中的點狀網紋
登入介面的背景上會預設鋪一層點狀網紋,這個可以根據自己需求去除,具體程式碼是:

draw-grid = false

六、修改左下角的Ubuntu LOGO
我們可以嘗試使用各種有趣的圖片來模擬出不同的登入主題效果來,但是登入介面左下角的Ubuntu Logo有時候卻並不是我們想要的。修改的程式碼如下:

logo = "你的Logo路徑"

該項的預設值是:

logo = "/usr/share/unity-greeter/logo.png"

同樣,我建議,將自己喜歡的圖片sudo cp 到”/usr/share/unity-greeter/”目錄下,然後把logo路徑修改為”/usr/share/unity-greeter/你的logo.png”。
七、取消顯示主機名
登入介面左上角會預設顯示本主機的主機名,取消程式碼如下:

show-hostname = false

八、修改登入介面主題
如果你的桌面更換了GTK+主題,那麼最好登入介面也保持統一,雖然效果非常有限,僅限於右上角的幾個選單的樣式而已。具體程式碼是:

theme-name = "Flatabulous"

本人用的是Flatabulous主題,此處把Flatabulous換成你自己的主題名稱,大小寫敏感。

此處還可以修改圖示主題,DPI,選單欄指示器等專案,具體可以參閱我開篇所提到的”/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml”檔案中各項值,並通過本文的方法修改。

最終,你的50_unity-greeter.gschema.override檔案內容大概是這樣的:

[com.canonical.unity-greeter]
background = "/usr/share/backgrounds/my-background.jpg"
background-color = "#262626"
play-ready-sound = false
logo = "/usr/share/unity-greeter/my-logo.png"
draw-grid = false
show-hostname = false
theme-name = "Flatabulous"

編輯好後儲存退出。
重新整理schemas

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

如果該命令產生錯誤,可以觀察一下錯誤提示中具體是哪個檔案產生了錯誤,如果不是我們剛剛建立的50_unity-greeter.gschema.override,那麼直接無視就可以了。如果是的話,那麼仔細檢查一下語法和大小寫再重新刷一次上面的命令。產生的錯誤是不影響正常登入的,因為錯誤的相關行直接被ignore了。
最後重啟lightdm服務

sudo systemctl restart lightdm

注意,這兩種方式修改的效果優先順序是override檔案(第二種)>xml檔案(第一種)
個人在此建議使用第二種方式,既不會動原值,又幹淨利落。

第三種是安裝LightDM GTK+ Greeter settings

LightDM GTK+ Greeter也是一款登入管理器,安裝後會替代預設的Unity Greeter。這也就是說,一旦使用這款Greeter,第一種和第二種方法就無效了,因為前兩種方法調整的是Unity Greeter的配置,然而現在Unity Greeter已經不再工作了。
所幸的是,GTK+ Greeter是通過一個GUI工具來進行配置,調節起來相對簡單,可以配合各種GTK3 THEME。不幸的是,調整的幅度依然非常的有限。
安裝方法:

sudo apt-get install lightdm-gtk-greeter-settings

然後

sudo lightdm-gtk-greeter-settings

開啟GUI工具進行設定。(設定的內容儲存在/etc/lightdm/lightdm-gtk-greeter.conf)
設定完後重啟lightdm服務

sudo systemctl restart lightdm

注意事項1.0

如果本文中的前三種方法你混用了,並且搞的有些亂,有幾種方法可以清理一下。
1. 清理lightdm-gtk-greeter、lightdm-gtk-greeter-settings生成的配置檔案。

sudo apt purge lightdm-gtk-greeter lightdm-gtk-greeter-settings

或者是臨時禁用

sudo mv /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf.disabled
sudo mv /etc/lightdm/lightdm-gtk-greeter.conf /etc/lightdm/lightdm-gtk-greeter.conf.disabled

然後重啟lightdm服務

sudo systemctl restart lightdm
  1. 重灌unity-greeter,重置/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml檔案。
sudo apt install --reinstall unity-greeter
  1. 查詢是否自己有建立過其他override檔案造成了衝突。
grep -rn -e "com.canonical.unity-greeter" /usr/share/glib-2.0/schemas/

第四種、通過lightdm-webkit-greeter來進行個性化

lightdm-webkit-greeter是一款基於HTLM/CSS/JS的強大的登入管理器,同GTK+ Greeter一樣,安裝後會替代預設的Unity Greeter作為LightDM的登入管理器。同理,一旦安裝,第一種和第二種做出的修改就無效了。
然而非常可惜的是,ubuntu源裡lightdm-webkit-greeter的版本非常低,還停留在好幾年前的0.1.2。而目前lightdm-webkit-greeter最新的版本已經是2.0.0了。github上大量的lightdm-webkit-greeter-theme都是基於2.0版本的,甚至一些優秀的主題是基於更新的lightdm-webkit2-greeter。因此ubuntu根本用不了。
如果你仍然想安裝並學習,安裝的方式是:

sudo apt-get install lightdm-webkit-greeter

安裝後會生成目錄 /usr/share/lightdm-webkit/theme裡面有一個預設主題。如果你會一些網頁開發的話,可以嘗試自己基於預設主題寫點什麼。此處就不再贅述了。