跳转至内容

Compiz/Configuration

来自 ArchWiki

本文档详细介绍了 Compiz 的进阶配置。假设您已经成功安装了 Compiz 并拥有一个基础、可用的配置。有关安装、基础配置和故障排除的信息,请查阅 Compiz 条目。

设置存储选项

配置后端

  • 根据您安装的软件包,并非所有的 Compiz 后端都可用。
  • GConf 后端已从 Compiz 0.9.12 版本中移除(修订版 3991)。

默认情况下,Compiz 将其设置存储在一个纯文本文件 ~/.config/compiz-1/compizconfig/Default.ini 中。在 CCSM 中,这被称为“平面文件配置后端”(Flat-file Configuration Backend)。

Compiz 也可以将其设置存储在 GSettings 或 GConf 数据库中。若要更改 Compiz 保存设置的方式,请打开 CCSM 并点击左侧栏的“首选项”(Preferences)选项卡。然后从“后端”(Backend)列表下选择您所需的后端。

您也可以通过编辑 ~/.config/compiz-1/compizconfig/config 文件来手动更改后端。

编辑以下行

backend = ini
  • ini = 平面文件配置后端
  • gsettings = GSettings 配置后端
  • gconf = GConf 配置后端

一旦编辑并保存该文件,更改将立即生效。无需注销。

配置文件

配置文件(Profiles)允许您在不同的 Compiz 设置集之间轻松切换。若要创建新配置文件,请打开 CCSM 并点击“首选项”选项卡。在“配置文件”下,点击加号以添加新配置文件,或点击减号以删除配置文件。在 CCSM 中所做的所有更改都将写入当前的配置文件中。

配置文件特定于您当前使用的后端。例如,如果您正在使用 GSettings 后端,那么您创建的任何新配置文件都将是 GSettings 配置文件。如果您切换到不同的后端,您当前的配置文件将无法工作,系统将自动切换到该后端可用的配置文件。

注意:如果您看到多个名为“Default”的配置文件,这很可能是因为您使用了多个后端,例如您拥有一个 ini 的默认配置文件,以及一个 GSettings 或 GConf 的默认配置文件。

窗口装饰主题

Emerald

提示:安装 Emerald 请参阅 Compiz#Extras
注意:某些主题在被选中时可能导致 Emerald 崩溃。请参阅 Compiz#Emerald crashes when selecting a theme

许多 Emerald 主题可在 compiz-themes.org 下载。Emerald 主题可以通过 emerald-theme-manager 程序进行安装、选择、删除和编辑。对于下载的主题,请解压 tarball,然后使用主题管理器中的“导入”(Import)选项进行安装。

Emerald 主题存储在两个位置

  • /usr/share/emerald/themes -- 系统级
  • ~/.emerald/themes -- 用户级

当前选中的 Emerald 主题会被复制到 ~/.emerald/theme 目录中。

诸如窗口按钮脉冲(window button pulse)之类的 Emerald 设置可以在 emerald-theme-manager 中配置,并写入 ~/.emerald/settings.ini 文件。

GTK 窗口装饰器 (GTK Window Decorator)

注意:Compiz 无需使用 GConf 或 GSettings 后端即可读取存储在 GConf 或 GSettings 数据库中的 Metacity 设置。

GTK 窗口装饰器可以编译为支持 Metacity 或 Marco 窗口管理器(取决于 Compiz 版本)。如果编译时包含此支持,Metacity 或 Marco 使用的主题也将被 GTK 窗口装饰器使用。如果未编译此支持,则会使用内置的后备主题。

许多 Metacity 主题可在 gnome-look.org 下载。下载后,应将其解压到类似 /usr/local/share/themes(针对 Metacity)或 ~/.themes(针对 Marco)的目录中。

Compiz 0.9

Compiz 0.9 提供的 GTK 窗口装饰器可以编译为支持 Metacity (版本 3)。假设已编译此支持,请使用以下命令更改 Metacity 主题

  • 在 GNOME Flashback 会话中

首先,确保主题类型已设置为 metacity

$ gsettings set org.gnome.metacity.theme type metacity

然后可以使用以下命令设置主题

$ gsettings set org.gnome.metacity.theme name theme-name
  • 在 MATE 会话中

使用以下命令

$ gsettings set org.mate.Marco.general theme theme-name
  • 在任何其他会话中

使用以下命令

$ gsettings set org.gnome.desktop.wm.preferences theme theme-name
Compiz 0.8

Compiz-Reloaded 上游提供的 Compiz 所包含的 GTK 窗口装饰器(版本 0.8.10 及更高)可以编译为支持 Marco。假设已编译此支持,请使用以下命令更改 Marco 主题

$ gsettings set org.mate.Marco.general theme theme-name

原始 Compiz 上游提供的 Compiz 所包含的 GTK 窗口装饰器(版本 0.8.9 及更低)可以编译为支持 Metacity (版本 2)。此版本的 GTK 窗口装饰器要求将主题定义为 GConf 设置。假设已编译此支持,请使用以下命令更改 Metacity 主题

$ gconftool-2 -s /apps/metacity/general/theme -t string theme-name

KDE 窗口装饰器

Kwin 主题可以使用 KDE 的“系统设置”(systemsettings)面板进行下载、安装和管理。

工作区与视口

注意:曾经在 CCSM -> “常规选项” -> “桌面尺寸”下有一个“桌面数量”(Number of Desktops)选项,可以与视口一起使用多个工作区(尽管这与许多 Compiz 插件如“立方体”不兼容)。截至 Compiz 0.9.11(修订版 3857),“桌面数量”选项已被移除。

与其他许多窗口管理器不同,Compiz 不使用多个工作区。相反,它使用一个工作区,但将其拆分为多个称为视口(viewports)的部分。有关更多信息,请参阅 [1]

视口的数量和布局可以在 CCSM -> “常规选项” -> “桌面尺寸”中进行配置。更改“水平虚拟尺寸”(Horizontal Virtual Size)将更改每行的视口数量。更改“垂直虚拟尺寸”(Vertical Virtual Size)将添加或删除视口行。

如果您正在使用“桌面立方体”(Desktop Cube)插件,您将无法使用通过增加“垂直虚拟尺寸”添加的视口行。若要利用多行视口,请改用“桌面墙”(Desktop Wall)插件。

键盘快捷键

以下是 Compiz 的默认键盘快捷键列表。

  • 切换窗口 = Alt+Tab
  • 切换到下一个桌面 = Ctrl+Alt+←
  • 切换到上一个桌面 = Ctrl+Alt+→
  • 移动窗口 = Alt+鼠标左键
  • 调整窗口大小 = Alt+鼠标右键

更详细的列表可以在 Compiz wiki 的 CommonKeyboardShortcuts 页面找到,或者您随时可以查看插件的配置。

额外的快捷键可以使用 CCSM 中的“命令”插件添加。

边缘绑定

除了鼠标和按键绑定外,Compiz 还可以将命令分配给涉及屏幕边缘的某些操作,例如:将窗口拖动到屏幕边缘。例如:“旋转立方体”插件有一个选项,当窗口被拖动到屏幕边缘时切换到下一个视口。边缘绑定通常可以通过 CCSM 禁用,方法是取消勾选插件设置部分中的“边缘翻转”(Edge Flip)选项,或在相关插件的“绑定”(Bindings)部分中禁用屏幕图标旁的操作。

插件

几乎所有的 Compiz 功能都是通过插件实现的。某些插件必须启用以实现标准的窗口管理器功能 - 请参阅 Compiz#Enabling important plugins。此处讨论的是提供超出标准窗口管理功能之外的额外功能的插件。

网格 (Grid)

如果您想通过将窗口拖动到屏幕边缘来并排比较两个窗口(类似于 Windows 7 中引入的“Aero Snap”功能),请在 CCSM 中启用“网格”(Grid)插件。如果您使用的是“桌面墙”或“旋转立方体”插件,请禁用该插件部分中的“边缘翻转”选项,以确保当窗口拖动到屏幕边缘时不会移动到下一个桌面。

提示
  • CCSM 中标记为“吸附窗口”(Snapping Windows)的插件仅增加了屏幕边缘的阻力。它不会调整拖动到屏幕边缘的窗口大小。
  • Compiz 0.8 中的“网格”插件不支持通过将窗口拖动到屏幕边缘来调整窗口大小。只能通过键盘快捷键来比较窗口。

缩放 (Scale)

“缩放”(Scale)插件提供了一种查看当前视口中所有窗口缩放缩略图的选项,类似于 KDE 中的“展示窗口”(Present Windows)功能或 GNOME Shell 中的“概览模式”(Overview Mode)。插件启用后,可以通过将鼠标光标移至屏幕右上角来访问此视图。活动角落可以在插件设置部分的“绑定”选项卡中进行配置。

Widget 层

“Widget 层”插件允许您将某些窗口定义为 Widget。Widget 窗口显示在屏幕的一个单独的“层”上。当 Widget 层隐藏时,所有定义为 Widget 的窗口都将被图标化。默认情况下,使用 F9 键显示和隐藏 Widget 层。

若要将窗口定义为 Widget,请打开 CCSM 并导航到“Widget 层”插件。点击“行为”(Behaviour)选项卡,点击“Widget 窗口”字段旁边的加号按钮。在出现的对话框中,从“类型”(Type)菜单中选择“窗口标题”(Window Title)。在“值”(Value)字段中输入您希望定义为 Widget 的窗口标题,例如:galculator

屏幕放大

有两个 Compiz 插件可以提供放大功能。第一个是“放大镜”(Magnifier),其作用就像放大镜一样(矩形框内的所有内容都将被放大)。可以通过在 CCSM 中启用该插件并按下 Super+m 来使用放大镜。

另一个插件称为“增强桌面缩放”(Enhanced Desktop Zoom)。当启用此插件后,按下 Super 键并滚动鼠标中键,将放大鼠标光标下的桌面部分。

崩溃处理程序

建议在 CCSM 中启用“崩溃处理程序”(Crash handler)插件。该插件可确保如果由于某种原因 Compiz 未能随会话启动或在会话期间崩溃,将转储崩溃日志并启动替代窗口管理器。若要指定在崩溃时可以替换 Compiz 的窗口管理器,请点击“崩溃处理程序”插件并勾选“启动其他窗口管理器”(Start Other Window Manager)选项。然后,在“窗口管理器命令行”字段中,输入启动所需窗口管理器的命令,例如:xfwm4 --replace

在不使用 CCSM 的情况下配置 Compiz

Compiz 不必通过 CCSM 进行配置。可以通过直接编辑配置文件来更改设置。对于平面文件配置文件,这意味着需要编辑 ~/.config/compiz-1/compizconfig/Default.ini 文件或类似文件。对于 GSettings 或 GConf 配置文件,这意味着使用 gsettingsgconftool-2 工具对 DConf 或 GConf 数据库进行更改。

平面文件配置示例

此配置示例的功能:

  • Ctrl+Alt+[小键盘数字] 排列当前窗口。
  • 左右下角显示任务栏。
  • 鼠标控制一切(输入除外)。
  • 一些视觉特效。
[core]
as_active_plugins = core;session;glib;grid;notification;workarounds;place;put;wall;regex;blur;dbus;fs;inotify;widget;animation;resize;text;mousepoll;obs;expo;fade;move;staticswitcher;mag;scale;scaleaddon;
s0_hsize = 2
s0_vsize = 2

[wall]
as_show_switcher = false
s0_edgeflip_dnd = true
as_flip_down_edge = 

[expo]
as_reflection = false
as_vp_brightness = 100.000000
as_expo_edge = 
as_expo_button = Button9
as_mipmaps = true
as_zoom_time = 0.150000
as_vp_distance = 0.000000

[scale]
as_initiate_edge = 
as_initiate_all_button = Button8
s0_darken_back = false
s0_opacity = 100
s0_overlay_icon = 0
s0_multioutput_mode = 1
as_show_desktop = false
s0_hover_time = 100
s0_spacing = 4
s0_timestep = 0.100000
s0_speed = 2.615500

[scaleaddon]
s0_window_highlight = true
s0_highlight_color = #ffffff08
s0_window_title = 0

[mag]
as_zoom_in_button = <TopEdge>Button4
as_zoom_out_button = <TopEdge>Button5
s0_mode = 2
s0_radius = 600

[place]
s0_multioutput_mode = 3
s0_mode = 2

[workarounds]
as_notification_daemon_fix = true
as_firefox_menu_fix = true
as_legacy_fullscreen = true
as_qt_fix = true
as_convert_urgency = true

[move]
as_opacity = 85 

[blur]
s0_filter = 1
s0_independent_tex = true
s0_mipmap_lod = 1.700000
s0_gaussian_radius = 7
s0_alpha_blur_match = (any) & !(class=Conky)

[put]
as_put_next_output_button = Button10
s0_speed = 10.441400
s0_timestep = 0.100000 

[obs]
s0_opacity_matches = type=dock | Tooltip | Menu | PopupMenu | DropdownMenu;(any) & !(class=Whaawmp.py | class=Gimp | class=Inkscape | class=Xfdesktop | class=Ristretto);
s0_opacity_values = 70;90;

[animation]
s0_close_effects = animation:Dream;animation:Fade;animation:Fade;
s0_open_effects = animation:Magic Lamp;animation:Fade;animation:Fade;
s0_focus_effects = animation:Dodge;
s0_open_durations = 150;100;100;
s0_close_durations = 150;100;100;
s0_minimize_durations = 150;
s0_shade_durations = 150;
s0_focus_durations = 150;

[widget]
s0_bg_brightness = 100
s0_fade_time = 0.250000
s0_match = type=Dock
as_toggle_edge = BottomLeft|BottomRight
s0_end_on_click = false

[staticswitcher]
s0_highlight_mode = 2
s0_highlight_rect_hidden = 2
as_next_key = Disabled
as_next_no_popup_key = <Alt>Tab
as_prev_all_key = Disabled

GSettings 配置

  • 大多数 Compiz 模式(schemas)是可重定位的。这意味着需要提供路径以及模式名称本身 - 在这种情况下,是 Compiz 配置文件的路径,例如::/org/compiz/profiles/Default/plugins/
  • 安装了 Compiz 插件的模式并不保证插件本身已安装。

列出所有可用的 Compiz 配置文件

$ gsettings list-recursively org.compiz | grep existing-profiles

显示活动的 Compiz 配置文件

$ gsettings list-recursively org.compiz | grep current-profile

设置活动的 Compiz 配置文件

$ gsettings set org.compiz current-profile profile-name

列出所有可用的 Compiz 插件模式

$ gsettings list-relocatable-schemas | grep org.compiz

查看 Compiz 插件的所有可用设置及其值(此示例将显示“静态应用程序切换器”的设置)

$ gsettings list-recursively org.compiz.staticswitcher:/org/compiz/profiles/Default/plugins/staticswitcher/

查看特定 Compiz 设置的值(此示例检查“静态应用程序切换器”中的“图标”选项是否启用)

$ gsettings get org.compiz.staticswitcher:/org/compiz/profiles/Default/plugins/staticswitcher/ icon

更改 Compiz 插件设置的值(这将禁用“静态应用程序切换器”中的图标)

$ gsettings set org.compiz.staticswitcher:/org/compiz/profiles/Default/plugins/staticswitcher/ icon false

使用 GSettings 启用或禁用 Compiz 插件

提示
  • 覆盖 active-plugins 值时,不要忘记在数组周围加上引号,例如 "['core']"
  • 如果您输入了无效的插件名称或未安装的插件名称,命令将无误执行,但无效的名称将自动从数组中移除。

需要两个步骤。首先,使用以下命令获取活动的 Compiz 插件列表

$ gsettings get org.compiz.core:/org/compiz/profiles/Default/plugins/core/ active-plugins

这将返回类似于下方的输出

['core', 'composite', 'opengl', 'compiztoolbox', 'decor', 'vpswitch', 'snap', 'mousepoll', 'resize', 'place', 'move', 'wall', 'grid', 'regex', 'imgpng', 'session', 'gnomecompat', 'animation', 'fade', 'workarounds']

复制并粘贴输出内容,并将其添加到设置活动插件的命令中,根据需要从数组中添加或删除插件。以下示例将启用“静态应用程序切换器”:

$ gsettings set org.compiz.core:/org/compiz/profiles/Default/plugins/core/ active-plugins "['core', 'composite', 'opengl', 'compiztoolbox', 'decor', 'vpswitch', 'snap', 'mousepoll', 'resize', 'place', 'move', 'wall', 'grid', 'regex', 'imgpng', 'session', 'gnomecompat', 'animation', 'fade', 'workarounds', 'staticswitcher']"

参见

© . 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.