Linux折腾记(十二):桌面美化那点事儿
各个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来设置主题。另外,可以通过访问网站来下载最新的主题和壁纸。对于gnome-shell,还可以安装extensions来扩展它的功能和进行美化,除了官方软件源中提供的extensions,还可以访问来查找最新的扩展。
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的效果,如下图:
我一般不喜欢桌面小部件,我工作的时候喜欢将窗口全屏,配合半透明背景效果就更好了。对于喜欢在桌面上添加更多元素的朋友,可以移步到这里:。这是ubuntu中文论坛上的一个帖子,楼已经盖得很高了,里面很多高手作品,值得学习。他们使用的工具是conky。
由于不想把这篇随笔搞得又臭又长,我已经尽量做到言简意赅了,但是为了把问题说清楚,仍然用了20多张图片,花了我几天的时间,希望大家喜欢。