Compiz
根据维基百科
- Compiz 是一个用于 X Window 系统的合成窗口管理器,它使用 3D 图形硬件为窗口管理创建快速合成桌面效果。诸如最小化动画或立方体工作区之类的效果以可加载插件的形式实现。
安装
Compiz 有两个版本,0.8 系列(用 C 编写)和 0.9 系列(用 C++ 完全重写)。这两个系列都在积极开发中。Compiz 0.9 由 Compiz Maintainers 在 Launchpad 上开发,而 Compiz 0.8 由 Compiz Reloaded 项目在 GitLab 上开发。这两个系列不能并排安装。
0.9 系列
- Compiz — 带有 CCSM、插件和 GTK 窗口装饰器的 OpenGL 合成窗口管理器。
0.8 系列
必需
- Compiz Core — OpenGL 合成窗口管理器。
强烈推荐
- CompizConfig Settings Manager — Compiz 的图形设置管理器。
- https://gitlab.com/compiz/ccsm || ccsmAUR[broken link: 软件包未找到]
- Compiz Fusion Plugins Main — Compiz 的主要插件集合。
- Compiz Fusion Plugins Extra — Compiz 的额外插件集合。
可选
- Compiz Fusion Plugins Experimental — 实验性 Compiz 插件(在 0.8.12 版本之前称为 Plugins Unsupported)。
附加
- Emerald — 用于 Compiz 的独立窗口装饰器。
- Emerald Themes — Emerald 窗口装饰器的额外主题。
- Fusion Icon — 一个托盘小程序,用于启动 Compiz 和动态切换窗口管理器和装饰器。
- Compiz Manager — 用于启动 Compiz 的包装脚本。
- Simple CCSM — 简化的 Compiz 0.8 图形设置管理器。
开始使用
启用重要插件
在启动 Compiz 之前,您应该激活一些插件以提供基本的窗口管理器行为,否则您将无法拖动、缩放或关闭任何窗口。重要的插件列在下面
- 窗口装饰 - 提供窗口边框,请参阅 #窗口装饰。
- 移动窗口。
- 调整窗口大小。
- 放置窗口 - 配置窗口放置选项。
- 应用程序切换器 - 提供一个
Alt+Tab
切换器 - 有许多替代应用程序切换器插件,例如:Shift Switcher、Static Application Switcher 等。并非所有插件都使用Alt+Tab
快捷键绑定。
要能够切换到不同的视口,您需要启用以下插件之一
- 桌面立方体 & 旋转立方体 - 提供旋转立方体,每个面都是不同的视口。
- 桌面墙 - 视口彼此相邻排列 - 动画类似于 Cinnamon 和 GNOME Shell 中的工作区切换动画。
- Expo - 当鼠标移动到左上角时,创建所有视口和窗口的视图 - 此插件可以单独使用,也可以与前两个插件中的任何一个结合使用。
窗口装饰
窗口装饰器是为窗口提供边框的程序。与 Kwin 或 Xfwm 等仅提供一个装饰器的窗口管理器不同,Compiz 用户可以选择三个装饰器:GTK 窗口装饰器、KDE 窗口装饰器和 Emerald。GTK 窗口装饰器和 KDE 窗口装饰器包含在 Compiz 源代码中,可以在构建 Compiz 时选择性地编译。另一方面,Emerald 是一个单独的独立装饰器。CCSM 中的窗口装饰插件必须勾选,否则不会启动任何窗口装饰器。
- 选择装饰器
将要启动的窗口装饰器在 CCSM -> 效果 -> 窗口装饰 -> 命令 下指定。默认命令是 compiz-decorator,这是一个脚本,它将尝试查找 emerald 和 gtk-window-decorator 可执行文件(如果您使用的是 Compiz 0.9,则还会查找 kde4-window-decorator 可执行文件)。然后,它将根据脚本中指定的搜索顺序和条件(例如会话检测)启动找到的第一个装饰器。请注意,Compiz 0.8 提供的脚本与 Compiz 0.9 提供的脚本有很大不同,因此行为可能会有所不同。
compiz-decorator 命令可以替换为上面列出的可执行文件之一。如果您发现您首选的装饰器未启动,请尝试将 --replace
开关附加到命令,例如:emerald --replace
。
Compiz 启动
compiz --replace ccp
[2]您可以使用以下命令启动 Compiz
$ compiz --replace
有关更多选项,请参阅 compiz --help
。
Fusion Icon
要使用 Fusion Icon 启动 Compiz,请执行以下命令
$ fusion-icon
为确保 fusion-icon 随后启动 Compiz,请右键单击面板中的图标,然后转到选择窗口管理器。如果尚未选择 Compiz,请选择它。
在桌面环境中自动启动 Compiz
请参阅 桌面环境#使用不同的窗口管理器。
将 Compiz 用作独立窗口管理器
使用显示管理器启动会话
可以从显示管理器启动独立的 Compiz 会话。对于大多数显示管理器 - 例如 LightDM - 所需的只是在 /usr/share/xsessions
中创建一个执行 compiz(如果需要命令行选项)或 fusion-icon 的 .desktop
文件。请参阅您的显示管理器的文章。有关创建 .desktop
文件的信息,请参阅 桌面条目。
使用显示管理器时自动启动程序
当从显示管理器启动 Compiz 会话时,您可以使用 xprofile 文件来启动程序。另一种选择是让 /usr/share/xsessions
中的 .desktop
文件不直接执行 compiz,而是执行一个脚本,该脚本启动您希望启动的程序并启动 Compiz。
使用 startx 启动会话
可以使用 startx 启动 Compiz 会话。在您的 .xinitrc
文件中定义 compiz 或 fusion-icon。有关更多详细信息,请参阅 xinitrc 文章。
允许用户关机/重启
请参阅 Allow users to shutdown#使用 systemd-logind:您可以使用 CCSM 中的 Commands 插件为 systemctl 命令分配键盘快捷键。
技巧与诀窍
恢复原生窗口管理器
您可以使用以下命令切换回桌面环境的默认窗口管理器
wm_name --replace
例如使用 kwin、metacity 或 xfwm4 代替 wm_name。
启用 Alt+F2 运行对话框
- GNOME 面板
在 CCSM 中启用 Gnome Compatibility 插件。
- MATE 面板
有两种方法可以在 Compiz 中启用 MATE 面板的运行对话框。您可以
- 在 CCSM 中启用 MATE Compatibility 插件(对于缺少 MATE 插件的旧版本 Compiz,请使用 Gnome Compatibility 插件)。
- 使用 CCSM 中的 Commands 插件将以下命令映射到
Alt+F2
组合键。
mate-panel --run-dialog
- LXDE 面板
使用 CCSM 中的 Commands 插件将以下命令映射到 Alt+F2
组合键。
lxpanelctl run
- Xfce Appfinder
当 Compiz 在 Xfce 会话中使用时,运行对话框(由 xfce4-appfinder 提供)应该无需干预即可工作。如果您在独立的 Compiz 会话中使用 Xfce Appfinder,请使用 CCSM 中的 Commands 插件将以下命令映射到 Alt+F2
组合键。
xfce4-appfinder --collapsed
- 其他运行对话框
使用 CCSM 中的 Commands 插件将您选择的运行对话框的命令映射到 Alt+F2
组合键。
移除最大化窗口的标题栏
启动 CCSM 并导航到 Window Decoration 插件。然后在装饰窗口字段中,将 any
更改为 !state=maxvert
。[3]
故障排除
缺少 GLX_EXT_texture_from_pixmaps
ATI 显卡
ATI 显卡上 GLX_EXT_texture_from_pixmap 的一个可能问题是显卡只能间接渲染它。如果是这样,您必须将选项传递给您的 libgl,如下所示
LIBGL_ALWAYS_INDIRECT=1 compiz --replace &
Intel 芯片
使用以下命令启动 Compiz(每次都必须使用此命令)。
LIBGL_ALWAYS_INDIRECT=true compiz --replace --sm-disable &
在使用 NVIDIA 闭源驱动时 Compiz 启动时没有窗口边框
首先,确保您的窗口装饰器设置配置正确 - 请参阅 #窗口装饰。如果窗口边框仍然没有启动,请尝试将 Option "AddARGBGLXVisuals" "True" 和 Option "DisableGLXRootClipping" "True" 添加到您的 /etc/X11/xorg.conf.d/20-nvidia.conf
中的 "Screen" 部分。如果窗口边框仍然无法加载,并且您在 /etc/X11/xorg.conf.d/
中的其他位置使用了其他选项,请尝试注释掉它们,仅使用上述 ARGBGLXVisuals 和 GLXRootClipping 选项。
在使用 NVIDIA 闭源驱动从挂起到内存恢复时黑屏
如果您在恢复时收到带有响应光标的黑屏,请尝试禁用同步到垂直空白。为此,请打开 CCSM,导航到 OpenGL 插件,然后取消选中同步到垂直空白选项。
性能强大的显卡性能低下
NVIDIA 和 Intel 芯片:如果一切配置正确,但某些效果仍然性能低下,请尝试禁用 CCSM > 通用选项 > 显示设置 > 检测刷新率,而是手动选择一个值。
仅 NVIDIA 芯片:使用检测刷新率时刷新率不足可能是由于默认启用的名为 DynamicTwinView 的选项,该选项在准确报告您的显卡和显示器支持的最大刷新率方面起作用。您可以通过将以下行添加到 /etc/X11/xorg.conf.d/20-nvidia.conf
的 "Device" 或 "Screen" 部分来禁用 DynamicTwinView,然后重启您的计算机
Option "DynamicTwinView" "False"
使用 NVIDIA 显卡时屏幕闪烁
要修复此行为,请创建以下文件
/etc/modprobe.d/nvidia.conf
options nvidia NVreg_RegistryDwords="PerfLevelSrc=0x2222"
视频撕裂
如果您在使用 Compiz 时遇到视频撕裂,请尝试在 CCSM 中启用 Workarounds 插件。启用后,确保在 Workarounds 中启用以下选项:Force complete redraw on initial damage、Force full screen redraws (buffer swap) on repaint。
如果您使用的是Intel 显卡,并且上述解决方法无法修复视频撕裂,请参阅 Intel graphics#撕裂。
另请参阅 #性能强大的显卡性能低下。
Fusion Icon 启动失败
如果您从命令行获得如下输出
$ fusion-icon
* Detected Session: gnome * Searching for installed applications... Traceback (most recent call last): File "/usr/bin/fusion-icon", line 57, in <module> from FusionIcon.interface import choose_interface File "/usr/lib/python2.5/site-packages/FusionIcon/interface.py", line 23, in <module> import start File "/usr/lib/python2.5/site-packages/FusionIcon/start.py", line 36, in <module> config.check() File "/usr/lib/python2.5/site-packages/FusionIcon/util.py", line 362, in check os.makedirs(self.config_folder) File "/usr/lib/python2.5/os.py", line 172, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/home/andy/.config/compiz'
问题出在 ~/.config/compiz/
的权限上。要修复它,请使用
# chown -R username /home/username/.config/compiz/
Alt+F4 快捷键绑定不起作用 (Xfce)
如果 Compiz 在登录时替换了 Xfwm4,则可能导致 Alt+F4
快捷键绑定变得无法使用。为避免此问题,请确保仅在登录时启动 Compiz - 请参阅 Xfce#使用不同的窗口管理器。
选择主题时 Emerald 崩溃
您可能会发现,在选择某些主题(尤其是使用旧引擎的主题)时,Emerald 会崩溃。如果发生这种情况,请在 Emerald 主题管理器中选择另一个主题,然后运行命令 emerald --replace
。
Compiz 运行时没有系统提示音
您可能会发现,如果 Compiz 正在运行,系统提示音(例如在 GNOME 或 MATE 终端中在行首按退格键时播放的滴答声)将不会响起。请参阅以下上游错误报告。
PulseAudio 用户可以强制 PulseAudio 处理系统提示音作为一种解决方法,请参阅 PulseAudio#X11 Bell Events。
启用 Gnome Compatibility 插件 (GSettings 后端) 时 Compiz 崩溃
如果您正在使用 GSettings 后端,您可能会发现,如果您尝试启用 Gnome Compatibility 插件,Compiz 会崩溃。为了在使用 GSettings 后端时启用此插件,您需要打开 CCSM 并导航到首选项。在标题集成下,取消选中标记为启用集成到桌面环境的框。取消选中此选项后,您应该可以启用 Gnome Compatibility 插件。
窗口在取消最小化时失去焦点
您可能会发现,某些窗口(例如 Chromium 窗口)在取消最小化时会失去焦点。请参阅以下上游错误报告。一种可能的解决方案是启用 Workarounds 插件中的保留最小化窗口的预览选项。
Compiz 运行时弹出窗口偏移
您可能会发现,对于放置在屏幕底部的面板,弹出窗口会偏移几个像素,从而使窗口看起来漂浮在面板上方。已知此问题会影响 Xfce 和 KDE,并且可能也会影响其他桌面。下面列出了一些可能修复某些情况的解决方法。
- 将面板放在屏幕顶部而不是底部 - 这应该在大多数情况下都有效。
- 禁用 Place Windows 插件 - 这对于 Xfce Whisker Menu 插件有效,但可能在其他地方无效。
- 使用固定窗口放置来确定窗口的位置。这可以从 Place Windows 插件中设置。例如,对于 Whisker Menu,指定标题为 Whisker Menu 的窗口应出现在 (-1, -1) 处。
有关更多信息,请参阅以下上游错误报告。
Alt-Tab 切换器没有背景 (Emerald)
您可能会发现,当也使用 Emerald 时,Alt-Tab
切换器(由 staticswitcher 或 switcher 插件提供)具有完全透明的背景。这会使窗口缩略图与它们后面的桌面背景难以区分。从 Compiz 0.9.12 开始 (修订版 3975) 一种解决方法可用。在 CCSM 中,导航到应用程序切换器或静态应用程序切换器,具体取决于您正在使用的插件。对于前者,背景设置位于通用下,对于后者,设置位于外观下。找到设置后,确保选中设置背景颜色框。默认设置为深灰色,可以有选择地更改。
或者,使用 GTK 窗口装饰器而不是 Emerald,或使用不同的窗口切换器,例如 shift switcher。请注意,即使您正在使用 GTK 窗口装饰器,您仍然可以如上所述更改背景颜色。
启动时鼠标光标不可见或呈 X 形
已知问题
Compiz 0.8 中的插件在 Compiz 0.9 中不存在
为了完成 OpenGL ES 支持,Compiz 0.8 中流行的某些插件在 Compiz 0.9.8 及更高版本中被禁用。自那以后,一些禁用的插件已被重新启用;例如,Animations Add-On 插件已在 Compiz 0.9.13.0 版本中重新启用。其他当前禁用的插件如果收到此问题的补丁,也很有可能在未来的版本中重新启用。有关更多信息,请参阅 Compiz 0.9.8 发行说明。
同样,Compiz Plugins Unsupported(包含 Atlantis 等插件的软件包)在最近的 Compiz 0.9 版本中不可用。自 Compiz 0.9.5 以来,它尚未针对 Compiz 0.9 系列进行开发,并且不再成功构建。
Xfce 面板问题
Xfce 工作区切换器宽高比错误
当 Compiz 与 Xfce Panel 4.11 及更高版本一起使用时,工作区分页器将仅使用一个工作区的宽度,但会根据 Compiz 指定的视口数量将此空间划分为越来越小的条。可以通过将 xfce4-panel 替换为 xfce4-panel-compizAUR 来修复此问题,后者合并了此问题的补丁。有关更多信息,请参阅以下上游错误报告。
启用 D-Bus 插件时 Compiz 崩溃
如果与某些其他插件(例如 Cube 插件)结合使用,D-Bus 插件将导致 Compiz 崩溃。请参阅以下上游错误报告。
工作区分页器和窗口按钮问题
只有少数任务栏与 Compiz 的视口兼容。不兼容的面板和停靠栏可能会显示诸如在所有工作区中显示所有窗口按钮的问题,或者工作区分页器可能仅显示一个可用的工作区。已知以下面板兼容
- xfce4-panel(部分兼容,请参阅 #Xfce 面板问题)
- mate-panel
- gnome-panel
- cairo-dock
参见
- Launchpad 中的 Compiz
- GitHub 中的 Compiz
- Compiz 首页,包括 wiki 和论坛(网站和 wiki 未维护)
- 故障排除 - Compiz Wiki,(wiki 未维护)