这两天花了很多精力(睡眠不足,并且因为和老婆交流时间减少而被骂^_^),终于搞定了Linux下的3D桌面特效,因为在网上介绍在FC5环境下同时成功配置好这几种环境(Xgl、Compiz、Beryl)的资料还很少,所以很费了些力气。现在我的FC5既可以启动compiz也可以运行beryl,感觉效果很好。下面是我截的几张图,前几张是compiz下的,后一张是beryl下的特效,当然很多特效是无法用截图来表现的,要自己体会才行。我没用过Vista,不知道它的3D效果如何,有机会要把二者比较一下!
朋友是不是看着眼馋了,别急,下面我就介绍一下自己安装的经验。
先介绍一下我的环境,系统是FC5 2.6.18-1.2257 Gnome,ATI Radeon X600 系列显卡,256M显存。Intel PentiumD 2.8G处理器,1G内存。
先总结一下是如何安装Xgl+Compiz的,以下介绍内容的来源请参见wiki网站。
Xgl是基于OpenGL绘图操作的XServer。Compiz是一种opengl组合和窗口管理器。Xgl与Compiz组合一起能够实现很Cool的3D效果。
一、要先看看你的显示是否支持Xgl。
网站上有支持显卡列表。看了一下,我的显卡位列其中,当然了去年7月份刚买的DELL,应该是很不错的,怎么能不支持呢?
二、安装显卡的驱动程序,因为FC5自带的驱动可能无法开启3D效果。
说明:本文假设你在root用户下运行,如果登录的是其它用户,请在每个命令前先进入root用户。(su)
下面介绍ATI显卡的驱动安装方法,如果是其它显卡,请参见faq网站上的介绍。
yum install kmod-fglrx
重启系统,再以root用户登录
激活驱动:
ati-fglrx-config-display enable
启动系统,新的显卡驱动就激活了。
问题:
(1)如果在运行yum安装时显示未找到安装包,可能与你的fc5内核太老有关系,需要先更新内核,当然也可以运行命令:
yum install xorg-x11-drv-fglrx kmod-fglrx
它会检查依赖关系,自动更新内核,安装驱动。
(2)如果你的机器是intel的主板,要通过进行以下步骤:
gedit /etc/X11/xorg.conf
然后在文件中找到:Driver "fglrx"
在紧接这一行的后面新加一行:Option "UseInternalAGPGART" "no"
(3)如果在安装驱动后不能启动Gnome窗口了,启动时显示错误信息,就可以Ctrl+Alt+F5键进入命令行模式,然后以root用户登入,运行下面的命令:
ati-fglrx-config-display disable
先屏蔽掉显卡驱动,等后面的安装全部成功后再启动驱动。
也可以在机器刚启动到grub界面,选linux菜单不回车,输入a键,在出现的字串最后加“空格S”回车,就可启动linux到单用户命令行模式,再屏蔽驱动。
三、安装Xgl+Compiz
安装Fedaro Xgl库源:
rpm -Uvh http://fedoraxgl.tuxfamily.org/repository/fedora-xgl-repository-1.0-3.noarch.rpm
导入GPG Key:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-AL-CAPCOM
安装Xgl和Compiz包:
yum --enablerepo=fedora-xgl install compiz xorg-x11-server-Xgl
说明:在运行这一步时如果出错,提示:“Package xorg-x11-server-Xgl-x.xxx.x-x.ix86.rpm is not signed”;这就要将文件/etc/yum.repos.d/fedora-xgl.repo(gedit /etc/yum.repos.d/fedora-xgl.repo)中所有的 “gpgcheck=1 ”改为“gpgcheck=0”。然后再重新运行上面安装Xgl+Compiz包的命令。
然后可运行下面的命令检查一下系统:
gnome-xgl-info
说明:
会显示如下所示的内容:
G ATI Technologies
1 kmod-fglrx is installed for the kernel release 1.2257.fc5
1 -accel glx:pbuffer -accel xv:pbuffer
第一行代表你的显卡对Xgl的支持状态:G(ood), B(ad), S(low), or U(nknown)。
第二行代表你的显卡驱动是否安装以及对3D的支持:0-未安装;1-安装。
第三行代表Xgl是否运行和兼容性:0-未运行;1-已运行。
下一步就是激活Xgl:
gnome-xgl-switch --enable-xgl --auto
系统提示时,选y(es)即可,机器会自动重启。
说明:
如果在重启后不能启动Gnome窗口了,启动时显示错误信息,就可以Ctrl+Alt+F5键进入命令行模式,然后以root用户登入,运行下面的命令:
gnome-xgl-switch --disable-xgl
先屏蔽掉Xgl,等找到问题所在并解决成功后的再重新启动Xgl。
遇到其它问题可以到opensuse网站: http://en.opensuse.org/Xgl_Troubleshooting 或 gentoo wiki网站上: http://gentoo-wiki.com/HOWTO_XGL/Troubleshooting找答案。当然,问题可能会遇到不少,不过不要气馁朋友们,只要认真学习查找就能解决!
如果启动Xgl成功,Compiz会自动启动,但也能配置Compiz的启动方式,可以运行下面的命令:
gnome-session-properties
也可以从:菜单->桌面->首选项->更多首选项->会话,进入。在“启动程序”标签里,对“/usr/bin/gnome-compizrc ”进行控制,(删除、禁用、编辑、添加)。这里设定的程序就相当于Windows注册表中的自启动项。
然后可以用下面的命令进行compiz配置:
gset-compiz
当然也可以从:菜单->桌面->首选项->更多首选项->Configure Tool for Compiz,进入。Compiz中有很多插件可以设定,并且可以产生很cool的3D效果。简单介绍和一些快捷键使用请参见本文最后的附录,Compiz的其它功能请朋友自己的摸索。
安装Beryl
前面已经总结了安装Xgl和Compiz的过程,在我的机器上已经可以正常且较稳定地实现3D桌面。但到网上查了一下,beryl可能会得到更好的3D效果,于是决定再装一下beryl。
到官方网站上查了一下,上面只有FC6的yum安装方法,如果系统是FC6的朋友可以不用看下面的内容,直接按照网站上的介绍轻松安装即可。但是我的系统是FC5,试运行yum install beryl-xgl没有找到包,到其它地方我也没找到包源。于是决定自己编译。
第一种方法(推荐):
一、首先下载源文件包:
svn co svn://svn.beryl-project.org/beryl/branches/beryl-0.2/
二、编译包:
推荐使用下载下来的安装脚本:makeall。
cd beryl-0.2
说明:假设你的包下载到当前目录/beryl-0.2目录下。
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
或:
export PKG_CONFIG_PATH="/usr/lib/pkgconfig"
说明:配置环境变量,如果下面的所有工作都在一个终端中运行,以后就不用再运行这一行命令了,如果不在一个终端就要在每个终端运行编译命令前都要加这一行,根据你编译后的库存放路径的不同取上面两个命令之一。
./makeall
说明:如果和我的运行环境一样(FC5+GNOME+ATI+XGL),请在makeall前将beryl-0.2/beryl-core/autogen.sh中的(gedit autogen.sh):
$srcdir/configure --enable-maintainer-mode "$@"
改为:
$srcdir/configure --enable-maintainer-mode –enable-xgl "$@"
否则,不会生成beryl-xgl程序,不能出现3D效果。切记!
如果编译某个包时发生错误,会退出,处理完成错误后,再重新运行上面的命令。
如果一切编译顺利的话(当然这样的情况非常少,总会有些问题,不用急,遇到问题可以到我的文章后面找,大部分都会有答案),就可以用以下命令:
Beryl-manager
启动beryl就开启3D桌面了,也可以从菜单栏->应用程序->系统工具->Berykl Manager,来启动。Beryl的具体使用,在这里就不多说了,请朋友们自己去体验。
三、编译时可能遇到的问题:
(1)运行makeall脚本时,可能会提示intltool库的版本太低,可以到网址上下载包,然后将其安装(./configue && make && make install)。
(2)在编译beryl-core时可能会提示Xcomposite库的版本太低,beryl要求>=0.3版。这样就要先装Xcomposite库。可以到这个地址下载libXcomposite包。但libXcomposite包又要求装compositeproto。因此必须先下载compositeproto包,并将这两个包的编译安装如下:
compositeproto:
./autogen.sh --prefix=/usr
./make
./make install
libXcomposite:
./autogen.sh --prefix=/usr
./make
./make install
(3) 在安装emeral时,如果发生某些变量未定义(例如:WNCK_WINDOW_STATE_ABOVE)要先安装libwnck2.14.1以上版本库编译安装方法同上。
(4)在安装beryl-setting-bindings前先要下载库Pyrex-0.9.5.1a.tar.gz。然后解压并到解压后的目录下使用下面的命令安装:
python setup.py install
当然,我在编译的时候以上几个问题全都遇到了,好不容易才解决了(可能我是Linux新手水平低的缘故吧!)。但可能您还会遇到其它问题,这就要自己到网站查资料解决。例如:对于heliodor包我就没有安装成功,但可能不影响使用beryl,只有以后有时间再装了。
第二种方法,是直接到beryl的官方网站(http://www.beryl-project.org/releases.php)去下载各个压缩包然后再编译,这样可以节省从开源网站上下载的时间。
官方包最新是0.1.9999.1版(也就是0.2RC1版),包括:
beryl-core-0.1.9999.1.tar.bz2
beryl-manager-0.1.9999.1.tar.bz2
beryl-plugins-0.1.9999.1.tar.bz2
beryl-plugins-unsupported-0.1.9999.1.tar.bz2
beryl-plugins-vidcap-0.1.9999.1.tar.bz2
beryl-settings-0.1.9999.1.tar.bz2
beryl-settings-bindings-0.1.9999.1.tar.bz2
beryl-settings-simple-0.1.9999.1.tar.bz2
emerald-0.1.9999.1.tar.bz2
emerald-themes-0.1.9999.1.tar.bz2
heliodor-0.1.9999.1.tar.bz2
这些包可以不用全部下载,必须的几个包请见后面的列表。但有一个问题就是在上面的压缩包中都没包含autogen.sh安装脚本,所以相应的脚本还是要到(http://svn.beryl-project.org/beryl/branches/beryl-0.2)上下载,如果直接运行./configure来配置可能会有些问题。每个包的编译安装方法都相同:
./autogen.sh --prefix=/usr
./make
./make install
因为各个包之间可能会有相互依赖关系,所以编译的时间一定要注意顺序,我看了makeall文件,应该按照下面的顺序进行编译安装:
1) beryl-core
2) beryl-plugins
3) beryl-settings-bindings
4) beryl-settings
5) beryl-manager
6) emerald
7) emerald-themes
8) aquamarine
9) heliodor
以上这列表中的aquamarine不用装,这是KDE下的支持包,我们是在GNOME环境下运行的。
如果必须包都编译安装成功,就可以用:
beryl-manager
来运行beryl了。
还有一点注意的是,在运行beryl前要停止compiz,方法是运行命令:
gnome-session-properties
在窗口的“启动程序”标签里将gnome-compizrc删除,使compiz不再自动运行,然后再重启机器。以后还可以使用beryl-manager在beryl、compiz、gnome几个窗口管理器中来回切换。
就写到这里吧,休息,休息一会儿!
附:Compiz各种插件说明和快捷键
* Cube 提供一个可旋转的虚拟立方体,它的每个面都是一个桌面。
* Decoration 为窗口装饰提供支持,例如半透明的窗口边框、桌面和窗口的阴影。
* Fade 给窗口和其他GUI部件提供淡入淡出效果。
* Gconf 在 gconf 注册信息为 compiz 及其插件保存设置
* Minimize 对窗口最大化/最小化过程进行渲染。
* Move 允许窗口从立方体的一个面移到另一个面。
* Place 展开时将窗口摆在合适的位置。
* Resize 允许调整窗口大小。
* Rotate 允许在立方体各个面上旋转切换。
* Scale 使选择需要的窗口更快捷。
* Switcher 使用Alt-Tab切换窗口实现胶片预览效果。
* Water 使鼠标指针在屏幕上起波纹,仿佛在水中。
* Wobbly 拖动/调整大小/移动窗口时实现凝胶效果。
* Zoom 放大/缩小屏幕某部分,同时可以滚动。
* Trailfocus 可以改变非当前窗口的亮度、饱和度和不透明度。
* Transset 将预设的透明度赋予所有程序。
* Miniwin 允许用户为某窗口创建一个图标,显示主窗口图片,并可以单击调出主窗口。
* Dock 可以替代窗口的停靠栏,类似于mac的dock。
* Enhanced Switcher 显示最小化窗口和全部工作域的窗口。
* Neg 允许用户使用键盘快捷键转动任意一个窗口, 提供更好的可读性。
* State 设置菜单和工具提示的透明度。
* BS 此插件允许设置每个窗口的亮度(Shift+滚轮)和饱和度(Ctrl+滚轮)。
* Widget
默认基本快捷键
* 打开主菜单 = Alt + F1
* 运行 = Alt + F2
* 显示桌面 = Ctrl + Alt + d
* 最小化当前窗口 = Alt + F9
* 最大化当前窗口 = Alt + F10
* 关闭当前窗口 = Alt + F4
* 截取全屏 = Print Screen
* 截取窗口 = Alt + Print Screen
默认特殊快捷键
* 窗口展示 = F12
* 切换窗口 = Alt + Tab
* 旋转3D桌面 = Ctrl + Alt + 左/右箭头(也可以把鼠标放在标题栏或桌面使用滚轮切换)
* 旋转3D桌面( 活动窗口跟随) = Ctrl + Shift + Alt + 左/右箭头
* 手动旋转3D桌面 = Ctrl + Alt + 左键单击并拖拽桌面空白处
* 窗口透明/不透明 = possible with the “transset” utility or Alt + 滚轮
* 放大一次 = 超级键 + 右击
* 手动放大 = 超级键 + 滚轮向上
* 手动缩小 = 超级键 + 滚轮向下
* 移动窗口 = Alt + 左键单击
* 移动窗口时贴住边框 = 左键开始拖动后再 Ctrl + Alt
* 调整窗口大小 = Alt + 中击
* Bring up the window below the top window = Alt + middle-click
* 动态效果减速 = Shift + F10
* 水纹 = 按住 Ctrl+超级键
* 雨点 = Shift-F9
* 桌面展开= Ctrl + Alt + 下箭头,然后按住 Ctrl + Alt 和左/右箭头选择桌面
* 将鼠标移到屏幕的右上角(或用pause键),可以使当前打开的窗口缩小排列以供选择。
注:
“超级键”指键盘上的“Win”键;
beryl的快捷键和Compiz的有很多相同,但特效插件可能更多一些,请朋友们自己试验一下;
在beryl或Compiz环境下跑Java app可能会有问题,如事个app窗口就剩一个title bar了,窗口中的控件和菜单等的都消失了。这可能是Java的一个bug。可以通过把
AWT_TOOLKIT=MToolkit加到/etc/environment里,来解决。或是运行Java程序前先运行:export AWT_TOOLKIT=MToolkit;
另外,我发现在beryl或compiz环境下,如果进入待机状态,屏幕会down掉,不知是什么原因?