各个Linux桌面发行版刚拿到手的时候,或多或少都有点儿不满意,对它们进行一些改造是必须的。网上不乏各种Linux桌面美化的教程和经验贴,对我们这些Linux爱好者来说都是很好的参考资料。进行桌面美化之前,请谨记以下几点:
1.桌面美化是一个仁者见仁、智者见智的事。有可能你认为很美的界面,别人认为土得掉渣;有可能你认为很炫的特效,别人认为华而不实。就拿我来说,我就不喜欢桌面小部件,不管是在电脑上还是在手机上。所以我的电脑桌面总是光秃秃,除了背景图片啥都没有。但是我喜欢将控制台窗口半透明化。所以,对本文所述,各读者可能都会有各自不同的意见,欢迎探讨。另外,我认为了解Linux桌面美化的机制比较重要。
2.桌面美化是一个很花时间的事。为了折腾我的Linux桌面系统,我不知道花了多少个日日夜夜。很多效果都需要亲自尝试,每一个设置都是改了又改。最终得到的结果可能只是一个比较初浅的美化。
3.桌面美化是一个很危险的事。虽然说Linux系统很健壮,但不代表着它的图形界面也可以任你折腾而不崩溃。我曾经多次将Ubuntu的图形界面弄坏,然后无法修复而不得不重新安装系统。因此,进行桌面美化前,请务必先备份系统或在虚拟机上尝试。否则后果自负。
4.桌面美化是一个要点儿运气的事。你用的硬件、软件都有可能决定某些软件是否能够正确地安装和运行。我的笔记本是Nvidia GT 720M显卡,安装显卡驱动很顺利,但是水纹特效怎么都出不来,相反,在我的虚拟机上,水纹特效运行很正常。
对于不同的桌面系统,其美化方式也不一样。我平时不用KDE,在折腾Fedora和Ubuntu的时候,用的都是Gnome桌面,而且都是用的Gnome 3,没有使用经典的Gnome 2。其中Fedora 20用的桌面管理器是Gnome-shell,而Ubuntu 14.04用的桌面管理器是Ubuntu Unity。我对Gnome-shell的美化做得比较少,所以本文的重点放在Ubuntu Unity。
我认为,桌面美化可以从以下几个方面着手:
1.主题和壁纸。不管对于哪个系统,这一点是通用的。在Fedora 20系统中,可以通过 yum list | grep theme 和 yum list | grep wallpaper 来查找官方软件源中提供的主题和壁纸,而在Ubuntu 14.04中,可以通过 sudo aptitude search theme 和 sudo aptitude search wallpaper 来查找官方软件源中提供的主题和壁纸。安装主题后,Fedora系统通过gnome-tweak-tool软件来设置主题,而Ubuntu使用unity-tweak-tool来设置主题。另外,可以通过访问网站http://gnome-look.org/来下载最新的主题和壁纸。对于gnome-shell,还可以安装extensions来扩展它的功能和进行美化,除了官方软件源中提供的extensions,还可以访问https://extensions.gnome.org/来查找最新的扩展。
2.字体。Linux桌面中的字体设置本身就是一个大麻烦。对于这一点,请参考拙作:Linux江湖04:Linux桌面系统字体配置要略 和 Linux江湖05:在 Ubuntu 14.10 中借用 Windows 字体。
3.桌面特效。这个是一个锦上添花的功能,没有也没关系。Ubuntu Unity桌面基于Compiz,通过适当的配置可以提供很炫的特效,而Fedora的gnome-shell就没有那么幸运了。不过gnome-shell的扩展机制非常强大,只要会JavaScript和CSS就可以为它制作主题,可以随便更改它的外观。对于博客园中众多的前端攻城狮来说,gnome-shell才是Linux桌面美化的天堂,虽然Linux之父说Gnome 3“凌乱得无法忍受”。
4.Dock。这个不用说,模仿苹果电脑的界面,瞬间让桌面效果提升一个档次。有大量的Dock软件可选,这里不赘述。
5.桌面小部件。一些精美的桌面小部件可以提供一些很实用的功能,同时也可以提高桌面的美化程度。由于我本人并不是特别喜欢桌面小部件,所以这一部分并不做特别介绍,但是在后面,我会给出一个链接,让别的高手展示一下如何使用conky来美化桌面。
先来简单说说Fedora中gnome-shell的美化。安装完系统后,我就对它自带的主题和壁纸不满意,然后,当然是安装新的主题和壁纸,再然后,安装一个gnome-tweak-tool,设置新的主题和壁纸,再然后设置字体,最后,由于Fedora默认安装的gnome-terminal不支持半透明背景,于是我就update了一下。下面是截图:
然后,就没有然后了,我并没有对Fedora的界面做更多的更改。其实,只要是会JavaScript和CSS,对gnome-shell的更改就会很容易。特别是gnome-shell提供了一个非常好用的JavaScript控制台LookingGlass,只需要按Alt+F2,然后运行lg命令,就可以弹出如下界面,直接输入JavaScript代码执行,按两次Tab键还有自动提示,还是半透明背景,你说爽不爽:
另外,可以通过修改/usr/share/gnome-shell/theme/gnome-shell.css文件来改变gnome-shell的外观。
下面来看看Ubuntu 14.04桌面的美化过程。下图中被我用红线圈出来的是需要用到的几个设置工具:
其中“启动应用程序”是系统自带的,可以设置某些软件在系统启动时自动运行。另外三个设置工具需要另外安装。最简单的是Unity Tweak Tool,它是Ubuntu系统中用来取代gnome-tweak-tool的工具,只需要运行 sudo apt-get install unity-tweak-tool 就可以安装。可以使用该工具来设置主题、字体等,如下图:
同时,可以使用该工具多开几个工作区,如下图:
Linux桌面的一个优势就是可以开启多个工作区,也可以称为多个桌面,其实是一样的。Ubuntu本身的桌面切换效果比较朴素,后面,可以通过Compiz提供的3D桌面功能设置出比较炫的切换效果。
工具NVIDIA X Server Settings一般是用不到的,但该工具的存在可以提示成功安装了显卡驱动,还可以进行双显卡切换。在Ubuntu中安装N卡的驱动比较简单,一个sudo apt-get install nvidia-331命令就搞定。(目前最新的驱动版本是nvidia-331,其它的版本就是后面的数字不同。)下图是该工具的运行效果:
在Ubuntu桌面上美化的重点是设置Compiz的效果。这里需要说一下Ubuntu Unity和Compiz的渊源。Compiz是Linux系统下3D桌面特效的代表作,但是因为开发者们理念的分歧,很快就分出了一个Beryl分支,Beryl发展了一段时间后,双方又觉得理念还是一致的,于是又合并成了新的Compiz Fusion,再过一段时间后,Compiz Fusion又恢复了原始的名字Compiz。而Ubuntu的Unity一开始是基于和gnome-shell相同的Mutter窗口管理器和Clutter图形工具库开发,在Ubuntu 10.10发布的那段时间,Compiz的主要开发者被Canonical雇佣,然后Ubuntu Unity开始移植到Compiz。所以,自Ubuntu 11.04之后,Ubuntu Unity桌面的基础就是Compiz。通过 pstree 命令可以验证,如下图:
系统安装好之后,Compiz就已经默认安装了,但是其设置软件CompizConfig Settings Manager需要另外安装,同时,Compiz的特效都是以插件的形式提供,所以还要安装compiz-plugins,如下图:
只有我用红线标出的两个软件包需要安装。其它的transitional dummy package是过渡版本,没有必要安装。然后就可以通过CompizConfig Settings Manager(简称CCSM)来设置Compiz的特效了。前面说过,桌面美化是一个危险的活儿,极其容易把图形界面弄死。所以在启动CCSM的时候,它会弹出友情提示:
而且从上面的截图可以看出,Ubuntu Unity也是一个Compiz的插件。所以,如果不想让图形界面死得太难看,一定要注意以下两点:
1.所有开启的插件都不能和Ubuntu Unity Plugin冲突,否则桌面系统分分钟死给你看。
2.所有的快捷键都不能和Ubuntu Unity Plugin的快捷键冲突。在这些特效插件中,容易和Ubuntu Unity Plugin发生快捷键冲突的是那几个窗口切换插件,因为窗口切换总共就那么几个快捷键组合,如Alt+Tab、Shift+Alt+Tab等,如果所有的插件都选择这几个快捷键,想不冲突都难。所以,在启用窗口切换特效的时候,一定要先设置好快捷键,然后再启用。
如果真的不小心把桌面搞崩溃了,可以先按Ctrl+Alt+F1切换到虚拟控制台1,然后登陆系统,再输入如下命令救命:
sudo rm -r .compizsudo killall gnome-shell
输入以上命令后,图形界面会以默认设置重启。然后继续折腾。
Compiz提供的功能很多,我认为有用的主要有以下几种:
1.桌面切换特效,也就是常说的3D桌面;
2.窗口切换特效,Compiz提供的窗口切换特效众多,但我只选择了一种;
3.其它锦上添花的特效,如火焰、烟花、水纹特效,窗口像果冻一样抖动的特效等,另外,我觉得注解特效也不错,可以让鼠标在屏幕上随便画,我上面的截图中的红线就是这么画出来的。
先来看看Ubuntu默认的桌面切换效果,按Alt+S快捷键即可显示所有桌面,其效果是非常朴素的,如下图:
设置好3D桌面后,按Ctrl+Alt+鼠标左键,左右移动鼠标即可以转动桌面立方体,效果如下图:
要达到这样的桌面切换效果,需要涉及到如下两张图中我特意标出来的插件:
其中,桌面立方体和旋转立方体插件是肯定要开启的,而且桌面立方体和Desktop Wall插件冲突,所以开启桌面立方体就必须禁用Desktop Wall,事实证明,这个可以禁用,不会引起系统崩溃。然后Cube Reflection and Deformation插件可以让桌面立方体更炫,可以去掉顶盖和底盖,也可以将桌面立方体更改为圆柱形和球形。最后,Wallpaper插件可以为每一个桌面设置一个单独的背景图片,为了能顺利加载各种格式的图片,所以把图像加载分类中的四个插件都启用了。
再来看看窗口切换特效。Ubuntu默认的窗口切换效果本来也不错,图标比较大,周围还有淡淡的光晕。按Alt+Tab可以在一个工作区内切换窗口,按Ctrl+Alt+Tab可以在所有工作区中切换窗口,如下图:
Compiz提供的窗口切换插件很多,但是我觉得比Ubuntu默认的切换效果更好看的基本上没有,所以我只选用了一种,我设置的快捷键为按Shift+Super+S开启窗口切换,然后按键盘上的左右键切换窗口,如下图:
效果还不错吧。我启用的是Shift Switcher插件,如下图:
由于不愿意想破脑袋去避免快捷键冲突,所以我只启用了一种窗口切换方式,它的快捷键设置如下图:
看完了桌面切换和窗口切换,再看看那些锦上添花的特效,下图中的这些插件就随便勾吧:
火焰特效,按Shift+Super+鼠标左键,就可以在桌面上画出亮闪闪的火焰,按Shift+Super+C清除,如下图:
烟花特效,按Super+Q开启,再按Super+Q关闭,如下图:
注解特效,按Alt+Super+鼠标左键就可以在桌面上乱写乱画,Alt+Super+K清除,前面的截图中我已经广泛地用该特效来画圈圈,所以就不截图了。
水纹特效,我的笔记本电脑上该特效出不来,虚拟机上可以。按Ctrl+Super开启,松开结束,按Shift+F8开启雨刮效果,再按一次取消,按Shift+F9开启雨点效果,再按一次取消。下面是我在虚拟机中扒出来的效果图:
为了美化桌面,Dock是少不了的。在Ubuntu中,使用Cairo-Dock就可以了。一个 sudo apt-get install cairo-dock 命令就搞定。然后使用前面提到的“启动应用程序”将Cairo-Dock设置为开机启动,如下图:
Dock的效果,如下图:
我一般不喜欢桌面小部件,我工作的时候喜欢将窗口全屏,配合半透明背景效果就更好了。对于喜欢在桌面上添加更多元素的朋友,可以移步到这里:http://forum.ubuntu.org.cn/viewtopic.php?f=94t=313031start=0。这是Ubuntu中文论坛上的一个帖子,楼已经盖得很高了,里面很多高手作品,值得学习。他们使用的工具是conky。
由于不想把这篇随笔搞得又臭又长,我已经尽量做到言简意赅了,但是为了把问题说清楚,仍然用了20多张图片,花了我几天的时间,希望大家喜欢。