升级到 Ubuntu 9.10 后,在显示方面发生了好几次问题,之前解决了无法进入 XWindow 环境的问题。在更新过一次驱动程序后又遭遇到窗口丢失标题栏的问题。具体表现是窗口标题栏、边框都消失,也不相应 alt+f4、alt+tab 之类的视窗环境快捷键。开始时没有找到根本原因,只发现在 System->Preferences->Appearances 中 Visual Effects 变为 None,需要选择 Norma 或者 Extra 来激活 compiz 才能将恢复正常。每次启动 XWindow 之后都要如此操作,不但麻烦,而且还要重新选择 compiz 中自己需要的 plugin。
在网上搜索发现这个问题很早就出现,ubuntuforums.org 上有大把2007年的帖子在讨论这个问题。但是找到的各种方法都没有能够将我的系统恢复正常。不过这些方法应该也是一些必需的步骤。
最基础的是要安装驱动程序,我的笔记本是 nVidia 的显示卡,因此需要安装 nvidia-glx 相应的驱动程序。Ubuntu repository 中最新的驱动程序是 nvidia-glx-185,如果需要更新的驱动程序,可以添加相应的 apt repository:
sudo add-apt-repository ppa:nvidia-vdpau/ppa && sudo apt-get update
更新 apt 之后可以安装 nvidia-glx-190/195 版本的驱动程序。当然驱动程序不是版本越高越好,稳定性是首要考虑的因素,可以按照自己电脑的实际情况选择相应的版本。
安装驱动程序之后,还可能需要修改 /etc/X11/xorg.conf 文件,找到 Device section,例如:
Section "Device"
Identifier "nVidia Corporation NVIDIA Default Card"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 140M"
Option "RenderAccel" "true"
Option "AddARGBGLXVisuals" "True"
Driver "nvidia"
Option "NoLogo" "True"
EndSection
重点是标红的那行 Option。在网上还看到有方法这样添加:
sudo nvidia-xconfig --add-argb-glx-visuals -d 24
nvidia-xconfig 会把 option 添加到 Screen section,这种做法并不是很提倡,option 应该和相关的设备尽量放在一起比较好。
到以上步骤都是网上比较常见的解决方案,但是我经过以上的设置还是没有恢复出标题栏来。后来在 System->Preferences->Startup Applications 发现有一项 Compiz Tray Icon 启动名为 compiz-tray-icon 的程序,在 terminal 中尝试手动执行这条命领,发现系统中不存在 compiz-tray-icon!然后在进入 XWindow 后标题栏消失的情况下执行
pgrep -fl compiz
发现系统中根本不存在包含 compiz 名字的进程,因此确定是 compiz 未能正常启动。而 Startup Applications 中的 Compiz Tray Icon 可能是以前版本遗留下来的配置,在 9.10 中 compiz-tray-icon 却消失了。再调查一番,发现有一个替代的程序,叫做 fusion-icon,执行
apt-cache show fusion-icon
得到的软件描述是:
Description: tray icon to launch and manage Compiz Fusion
The OpenCompositing Project brings 3D desktop visual effects that
improve the usability and eye candy of the X Window System and provide
increased productivity.
.
This package contains a tray icon that allows you to easily enable, disable and
restart Compiz, and change the currently used window manager and/or window
decorator.
于是安装这个软件包
sudo apt-get install fusion-icon
并且在 Startup Applications 删除无效的 Compiz Tray Icon,添加新的一项 Fusion Icon

另为了使用 Emerald,在 CompizConfig Setting Manager 中启用 Windows Decoration,将 General->Command 设置为
emerald --replace
重新启动 XWindow,大功告成。