跳转至内容

Compiz

来自 ArchWiki

根据 维基百科

Compiz 是一个用于 X Window 系统合成窗口管理器,它利用 3D 图形硬件来创建快速的桌面合成效果以进行窗口管理。各种效果(如最小化动画或工作区立方体)都是作为可加载插件实现的。

安装

目前有两种 Compiz 版本可用:使用 C 语言编写的 0.8 系列,以及使用 C++ 完全重写的 0.9 系列。两个系列都在活跃开发中。Compiz 0.9 由 Compiz 维护者在 Launchpad 上开发,而 Compiz 0.8 由 Compiz Reloaded 项目在 GitLab 上开发。这两个系列不能并存安装。

0.9 系列

注意 从 Compiz 0.9.8 开始,所有 Compiz 组件作为一个单一项目进行开发和分发。这意味着单个软件包即可提供所有 Compiz 组件。
  • Compiz — OpenGL 合成窗口管理器,包含 CCSM、插件和 GTK 窗口装饰器。
https://launchpad.net/compiz || compizAUR

0.8 系列

注意 GTK 窗口装饰器由 compiz-gtkAUR 提供,它是从 compiz-coreAUR 拆分出来的包。

必需

  • Compiz Core — OpenGL 合成窗口管理器。
https://gitlab.com/compiz/compiz-core || compiz-coreAUR

强烈推荐

  • Compiz Fusion Plugins Main — Compiz 的主要插件集合。
https://gitlab.com/compiz/compiz-plugins-main || compiz-fusion-plugins-mainAUR
  • Compiz Fusion Plugins Extra — Compiz 的额外插件集合。
https://gitlab.com/compiz/compiz-plugins-extra || compiz-fusion-plugins-extraAUR

可选

  • Compiz Fusion Plugins Experimental — Compiz 的实验性插件(在 0.8.12 版本之前称为 Unsupported 插件)。
https://gitlab.com/compiz/compiz-plugins-experimental || compiz-fusion-plugins-experimentalAUR

附加功能

注意 自 0.8.12 版本以来的 Emerald 和自 0.1.2 版本以来的 Fusion Icon 同时支持 Compiz 0.9 和 0.8。建议使用 Compiz 0.9 的用户使用较旧的 Emerald 0.9.5 版本切换到 Emerald 0.8.12 或 0.8 系列中的更高版本,因为 Emerald 0.9 不再活跃开发。
  • Emerald — Compiz 的独立窗口装饰器。
https://gitlab.com/compiz/emerald || emeraldAUR
  • Emerald Themes — Emerald 窗口装饰器的额外主题。
https://gitlab.com/compiz/emerald-themes || emerald-themesAUR
  • Fusion Icon — 一个托盘小工具,用于启动 Compiz 并即时切换窗口管理器和装饰器。
https://gitlab.com/compiz/fusion-icon || fusion-iconAUR
  • Compiz Manager — 用于启动 Compiz 的包装脚本。
https://gitlab.com/compiz/compiz-manager || compiz-managerAUR
  • Simple CCSM — 为 Compiz 0.8 提供的简化图形设置管理器。
https://gitlab.com/compiz/simple-ccsm || simple-ccsmAUR

启动

启用重要插件

提示 根据你安装 Compiz 的软件包不同,某些插件可能已经处于激活状态。

在启动 Compiz 之前,你应该激活一些插件以提供基本的窗口管理器行为,否则你将无法拖动、缩放或关闭任何窗口。重要插件列表如下:

  • 窗口装饰 (Window Decoration) - 提供窗口边框,参见 #窗口装饰
  • 移动窗口 (Move Window)。
  • 调整窗口大小 (Resize Window)。
  • 放置窗口 (Place Windows) - 配置窗口放置选项。
  • 应用程序切换器 (Application Switcher) - 提供 Alt+Tab 切换功能 - 有许多替代的应用程序切换器插件,例如:Shift Switcher、Static Application Switcher 等。并非所有插件都使用 Alt+Tab 快捷键。

为了能够切换到不同的视图端口 (viewports),你需要启用以下插件之一:

  • 桌面立方体和旋转立方体 (Desktop Cube & Rotate Cube) - 提供旋转立方体,每个面都是一个不同的视图端口。
  • 桌面墙 (Desktop Wall) - 视图端口并排排列 - 动画类似于 CinnamonGNOME Shell 中的工作区切换动画。
  • Expo - 当鼠标移动到左上角时,创建所有视图端口和窗口的视图 - 该插件可以单独使用,也可以与上述两个插件中的任意一个结合使用。

窗口装饰

提示 关于选择和管理主题的信息,参见:Compiz/Configuration#窗口装饰主题
注意 KDE 窗口装饰器与 KDE Plasma 5 不兼容。Compiz 0.8 上游在 2015 年 12 月从 Compiz Core 中移除了 KDE 窗口装饰器。[1]

窗口装饰器是为窗口提供边框的程序。与 Kwin 或 Xfwm 等仅提供单一装饰器的窗口管理器不同,Compiz 用户有三种选择:GTK 窗口装饰器、KDE 窗口装饰器和 Emerald。GTK 窗口装饰器和 KDE 窗口装饰器包含在 Compiz 源代码中,可以在构建 Compiz 时选择性编译。而 Emerald 是一个独立的装饰器。必须勾选 CCSM 中的“窗口装饰”插件,否则不会启动任何窗口装饰器。

选择装饰器

将要启动的窗口装饰器指定在 CCSM -> Effects(效果) -> Window Decoration(窗口装饰) -> Command(命令) 中。默认命令是 compiz-decorator,这是一个尝试定位 emeraldgtk-window-decorator 可执行文件(如果你使用 Compiz 0.9,还包括 kde4-window-decorator)的脚本。它将根据脚本中指定的搜索顺序和条件(例如会话检测)启动它找到的第一个装饰器。注意,Compiz 0.8 提供的脚本与 Compiz 0.9 提供的差异很大,因此行为可能不同。

可以将 compiz-decorator 命令替换为上述可执行文件之一。如果你发现你首选的装饰器没有启动,尝试在命令中添加 --replace 开关,例如:emerald --replace

Compiz 启动

注意 某些 Compiz 版本可能要求你在启动时手动加载 CCP 插件:compiz --replace ccp [2]

你可以使用以下命令启动 Compiz:

$ compiz --replace

更多选项请参阅 compiz --help

Fusion Icon

提示在桌面环境中自动启动 Compiz 时,可以将 fusion-icon 设置为默认命令而不是 compiz

要使用 Fusion Icon 启动 Compiz,请执行以下命令:

$ fusion-icon

为了确保 fusion-icon 启动 Compiz,右键单击面板中的图标并转到 select window manager(选择窗口管理器)。如果尚未选择,请选择 Compiz

在桌面环境中自动启动 Compiz

参见 桌面环境#自定义窗口管理器

将 Compiz 作为独立窗口管理器使用

使用显示管理器启动会话

可以从显示管理器启动独立的 Compiz 会话。对于大多数显示管理器(例如 LightDM),只需在 /usr/share/xsessions 中创建一个执行 compiz(如果需要,加上命令行选项)或 fusion-icon.desktop 文件即可。请参阅你使用的显示管理器的文章。有关创建 .desktop 文件的信息,请参阅 桌面条目

使用显示管理器时自动启动程序

当从显示管理器启动 Compiz 会话时,启动程序的一种方法是使用 xprofile 文件。另一种选择是让 /usr/share/xsessions 中的 .desktop 文件不直接执行 compiz,而是执行一个既启动你想要的程序又启动 Compiz 的脚本。

使用 startx 启动会话

Compiz 会话可以使用 startx 启动。在你的 .xinitrc 文件中定义 compizfusion-icon。详细信息请参阅 xinitrc 文章。

允许用户关机/重启

参见 允许用户关机#使用 systemd-logind:你可以使用 CCSM 中的 Commands(命令) 插件将 systemctl 命令分配给键盘快捷键。

技巧与提示

恢复原有的窗口管理器

你可以使用以下命令切回桌面环境默认的窗口管理器:

wm_name --replace

例如使用 kwinmetacityxfwm4 代替 wm_name

启用 Alt+F2 运行对话框

GNOME 面板

在 CCSM 中启用 Gnome Compatibility(Gnome 兼容性) 插件。

MATE 面板

有两种方法可以在 Compiz 中启用 MATE 面板的运行对话框。你可以:

  • 在 CCSM 中启用 MATE Compatibility(MATE 兼容性) 插件(对于缺少 MATE 插件的旧版 Compiz,请使用 Gnome Compatibility 插件)。
  • 使用 CCSM 中的 Commands(命令) 插件将以下命令映射到 Alt+F2 组合键。
mate-panel --run-dialog
LXDE 面板

使用 CCSM 中的 Commands(命令) 插件将以下命令映射到 Alt+F2 组合键。

lxpanelctl run
Xfce 应用程序查找器

当在 Xfce 会话中使用 Compiz 时,运行对话框(由 xfce4-appfinder 提供)应该可以直接工作,无需干预。如果你在独立的 Compiz 会话中使用 Xfce 应用程序查找器,请使用 CCSM 中的 Commands(命令) 插件将以下命令映射到 Alt+F2 组合键。

xfce4-appfinder --collapsed
其他运行对话框

使用 CCSM 中的 Commands(命令) 插件,将你选择的运行对话框的命令映射到 Alt+F2 组合键。

移除最大化窗口的标题栏

启动 CCSM 并导航到 Window Decoration(窗口装饰) 插件。然后在 Decoration Windows(装饰窗口) 字段中,将 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 启动后没有窗口边框

首先,确保你的窗口装饰器设置配置正确——参见 #窗口装饰。如果窗口边框仍然没有出现,请尝试在 /etc/X11/xorg.conf.d/20-nvidia.conf 的“Screen”部分添加 Option "AddARGBGLXVisuals" "True"Option "DisableGLXRootClipping" "True"。如果窗口边框仍然无法加载,且你在 /etc/X11/xorg.conf.d/ 中的其他地方使用了其他选项,请尝试注释掉它们,仅使用上述提到的 ARGBGLXVisuals 和 GLXRootClipping 选项。

使用 NVIDIA 闭源驱动从待机恢复后屏幕黑屏

如果你从待机恢复后屏幕变黑但光标仍有响应,请尝试禁用同步到垂直刷新 (Sync to VBlank)。要做到这一点,打开 CCSM,导航到 OpenGL 插件,并取消勾选 Sync to VBlank 选项。

高性能显卡表现不佳

NVIDIA 和 Intel 芯片:如果一切配置正确,但在使用某些效果时性能仍然很差,请尝试禁用 CCSM > General Options > Display Settings > Detect Refresh Rate,然后手动选择一个值。

仅限 NVIDIA 芯片:使用 Detect Refresh Rate 导致的刷新率不足可能是因为默认启用的 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 damageForce full screen redraws (buffer swap) on repaint

如果你正在使用 Intel 显卡且上述变通方法无法修复视频撕裂,请参阅 Intel 显卡#撕裂

另请参阅 #高性能显卡表现不佳

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 Theme Manager 中选择另一个主题,然后运行命令 emerald --replace

Compiz 运行时没有系统提示音

你可能会发现 Compiz 运行时系统提示音(例如在 GNOME 或 MATE 终端行首按下退格键时播放的滴声)不会响起。参见以下上游错误报告

PulseAudio 用户,作为一种变通方法,可以强制 PulseAudio 处理系统提示音,参见 PulseAudio#X11 铃声事件

启用 Gnome 兼容插件(GSettings 后端)时 Compiz 崩溃

如果你正在使用 GSettings 后端,你可能会发现如果你尝试启用 Gnome Compatibility(Gnome 兼容性) 插件,Compiz 会崩溃。为了在使用 GSettings 后端时启用此插件,你需要打开 CCSM 并导航到 Preferences(首选项)。在 Integration(集成) 标题下,取消勾选名为 Enable integration into the desktop environment(启用桌面环境集成) 的框。取消勾选此选项后,你应该可以启用 Gnome Compatibility 插件了。

取消最小化时窗口失去焦点

你可能会发现某些窗口(如 Chromium 窗口)在取消最小化时会失去焦点。参见以下上游错误报告。一种可能的解决方案是启用 Workarounds(变通方法) 插件中的 Keep previews of minimized windows(保留最小化窗口预览) 选项。

注意 如果你使用 Chrome/Chromium 浏览器并启用了此变通方法,你需要确保 Chrome 内部的 使用系统标题栏和边框 选项已启用。如果在使用 Compiz 的 Keep previews of minimized windows 变通方法时使用了 Chrome 自带的标题栏,那么当 Chrome 最小化时,下方的桌面将变得无响应。

Compiz 运行时弹出窗口发生偏移

你可能会发现放置在屏幕底部的面板的弹出窗口会偏移几个像素,导致窗口看起来浮在面板上方。已知此问题会影响 Xfce 和 KDE,也可能影响其他桌面。下面列出了一些可以修复某些情况的变通方法。

  • 将面板放置在屏幕顶部而不是底部——这在大多数情况下应该有效。
  • 禁用 Place Windows(放置窗口) 插件——这对 Xfce Whisker 菜单插件有效,但在其他地方可能无效。
  • 使用固定窗口放置来确定窗口位置。这可以在 Place Windows 插件中设置。例如,对于 Whisker 菜单,指定标题为 Whisker Menu 的窗口应出现在 (-1, -1) 位置。

有关更多信息,请参阅以下上游错误报告

Alt-Tab 切换器没有背景 (Emerald)

你可能会发现,当使用 Emerald 时,Alt-Tab 切换器(由 staticswitcher 或 switcher 插件提供)的背景完全透明。这使得很难将窗口缩略图与它们背后的桌面背景区分开来。从 Compiz 0.9.12(修订版 3975)开始,有一个变通方法可用。在 CCSM 中,导航到 Application Switcher(应用程序切换器)Static Application Switcher(静态应用程序切换器),具体取决于你使用的插件。对于前者,Background(背景) 设置位于 General(常规) 下;对于后者,设置位于 Appearance(外观) 下。找到设置后,确保勾选 Set background color(设置背景颜色) 框。默认颜色是深灰色,可以根据需要更改。

或者,使用 GTK 窗口装饰器代替 Emerald,或者使用完全不同的窗口切换器,例如 Shift Switcher。注意,即使你使用的是 GTK 窗口装饰器,你仍然可以按照上述说明更改背景颜色。

启动时鼠标光标不可见或变为 X 形

参见 光标主题#更改 X 形默认光标

已知问题

Compiz 0.8 中的插件在 0.9 中不可用

Compiz 0.8 中一些流行的插件在 Compiz 0.9.8 及更高版本中被禁用,以完善 OpenGL ES 支持。一些已禁用的插件此后已重新启用;例如,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 面板 4.11 及更高版本一起使用时,工作区寻呼器将仅使用一个工作区的宽度,但会将此空间划分为越来越小的条,具体取决于 Compiz 指定了多少视图端口。这个问题可以通过用 xfce4-panel-compizAUR 替换 xfce4-panel 来解决,该版本整合了一个针对此问题的补丁。有关更多信息,请参阅以下上游错误报告

启用 D-Bus 插件时 Compiz 崩溃

如果与 Cube(立方体) 插件等其他特定插件结合使用,D-Bus 插件会导致 Compiz 崩溃。参见以下上游错误报告

工作区寻呼器和窗口按钮问题

只有少数任务栏与 Compiz 的视图端口兼容。不兼容的面板和底座可能会出现问题,例如在所有工作区中显示所有窗口按钮,或者工作区寻呼器可能仅显示一个可用工作区。以下面板已知是兼容的:

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.