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里面有一个默认主题。如果你会一些网页开发的话,可以尝试自己基于默认主题写点什么。此处就不再赘述了。

posted @ 2017-10-25 18:02 Aiden.Z 阅读(...) 评论(...) 编辑 收藏