Compiz/配置
本文详细介绍了 Compiz 的高级配置。假定您已成功安装 Compiz 并具有基本的工作配置。有关安装、基本配置和故障排除的信息,请参阅 Compiz 文章。
设置存储选项
配置后端
- 根据您安装的软件包,并非所有 Compiz 后端都可用。
- GConf 后端已从 Compiz 0.9.12 中删除 (修订 3991)。
默认情况下,Compiz 将其配置设置存储在纯文本文件 ~/.config/compiz-1/compizconfig/Default.ini
中。在 CCSM 中,这被称为平面文件配置后端。
Compiz 也可以将其设置存储在 GSettings 或 GConf 数据库中。要更改 Compiz 保存其设置的方式,请打开 CCSM 并单击左侧列中的首选项选项卡。然后从后端下的列表中选择所需的后端。
您也可以通过编辑 ~/.config/compiz-1/compizconfig/config
文件手动更改后端。
编辑以下行
backend = ini
- ini = 平面文件配置后端
- gsettings = GSettings 配置后端
- gconf = GConf 配置后端
编辑并保存文件后,更改将立即生效。无需注销。
配置文件
配置文件允许您轻松地在不同的 Compiz 设置集之间切换。要创建新配置文件,请打开 CCSM 并单击首选项选项卡。在配置文件下,单击加号添加新配置文件或减号删除配置文件。在 CCSM 中所做的所有更改都将写入当前配置文件。
配置文件特定于您正在使用的后端。例如,如果您正在使用 GSettings 后端,那么您创建的任何新配置文件都将是 GSettings 配置文件。如果您切换到不同的后端,则您当前的配置文件将无法工作,您将自动切换到该后端可用的配置文件。
窗口装饰主题
Emerald
许多 Emerald 主题可在 compiz-themes.org 上下载。可以使用 emerald-theme-manager 程序安装、选择、删除和编辑 Emerald 主题。对于下载的主题,解压缩 tarball,然后使用主题管理器中的导入选项安装它。
Emerald 主题存储在两个位置
/usr/share/emerald/themes
-- 系统~/.emerald/themes
-- 用户
当前选定的 Emerald 主题被复制到 ~/.emerald/theme
目录中。
Emerald 设置(如窗口按钮脉冲)可以在 emerald-theme-manager
中配置,并写入 ~/.emerald/settings.ini
文件。
GTK 窗口装饰器
GTK 窗口装饰器可以编译为支持 Metacity 或 Marco 窗口管理器(取决于 Compiz 版本)。如果它使用此支持编译,则 Metacity 或 Marco 使用的主题也将被 GTK 窗口装饰器使用。如果 GTK 窗口装饰器未使用 Metacity 或 Marco 支持编译,则将使用内置的回退主题。
许多 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 上游 (版本 0.8.10 及更高版本) 提供的 Compiz 中包含的 GTK 窗口装饰器可以使用 Marco 支持进行编译。假设已编译此支持,请使用以下命令更改 Marco 主题
$ gsettings set org.mate.Marco.general theme theme-name
原始 Compiz 上游 (版本 0.8.9 及更低版本) 提供的 Compiz 中包含的 GTK 窗口装饰器可以使用 Metacity (版本 2) 支持进行编译。此 GTK 窗口装饰器版本期望主题被定义为 GConf 设置。假设已编译此支持,请使用以下命令更改 Metacity 主题
$ gconftool-2 -s /apps/metacity/general/theme -t string theme-name
KDE 窗口装饰器
可以使用 KDE systemsettings 面板下载、安装和管理 Kwin 主题。
工作区和视口
与许多其他窗口管理器不同,Compiz 不使用多个工作区。相反,它使用一个工作区,但将其拆分为多个称为视口的部分。有关更多信息,请参阅 [1]。
视口的数量和布局可以在 CCSM -> 常规选项 -> 桌面尺寸中配置。更改水平虚拟尺寸将更改一行中视口的数量。更改垂直虚拟尺寸将添加或删除视口行。
如果您正在使用桌面立方体插件,您将无法使用通过增加垂直虚拟尺寸添加的视口行。要利用多行视口,请改用桌面墙插件。
键盘快捷键
以下是 Compiz 的默认键盘快捷键列表。
- 切换窗口 =
Alt+Tab
。 - 切换到下一个桌面 =
Ctrl+Alt+←
。 - 切换到上一个桌面 =
Ctrl+Alt+→
。 - 移动窗口 =
Alt+Left click
。 - 调整窗口大小 =
Alt+Right click
。
更详细的列表可以在 Compiz wiki 的 CommonKeyboardShortcuts 中找到,或者您可以随时查看插件的配置。
可以使用 CCSM 中的命令插件添加额外的快捷键。
边缘绑定
除了鼠标和按键绑定外,Compiz 还可以将命令分配给涉及屏幕边缘的某些操作,例如:将窗口拖动到屏幕边缘。例如:旋转立方体插件有一个选项,如果将窗口拖动到屏幕边缘,则切换到下一个视口。通常可以通过 CCSM 禁用边缘绑定,方法是取消选中插件设置部分中的边缘翻转选项,或禁用相关插件的绑定部分中屏幕图标旁边的操作。
插件
几乎所有 Compiz 功能都是使用插件实现的。必须启用某些插件才能实现标准窗口管理器功能 - 请参阅 Compiz#Enabling important plugins。此处讨论提供超出标准窗口管理功能的额外功能的插件。
Grid
如果您想并排比较两个窗口,方法是将它们拖到屏幕边缘,类似于 Windows 7 中引入的“Aero Snap”功能,请在 CCSM 中启用 Grid 插件。如果您正在使用桌面墙或旋转立方体插件,则禁用该插件部分中的边缘翻转选项,以确保窗口在拖动到屏幕边缘时不会移动到下一个桌面。
- CCSM 中标记为捕捉窗口的插件仅为屏幕边缘增加了阻力。它不会调整拖动到屏幕边缘的窗口的大小。
- Compiz 0.8 中的 Grid 插件不支持通过将窗口拖动到屏幕边缘来调整窗口大小。只能通过使用键盘快捷键来比较窗口。
Scale
Scale 插件提供了一个选项,用于查看当前视口中所有窗口的缩略图,类似于 KDE 中的“Present Windows”功能或 GNOME Shell 中的“Overview Mode”。启用插件后,可以通过将鼠标光标移动到屏幕的右上角来访问视图。可以在插件设置部分的绑定选项卡中配置活动角。
Widget Layer
Widget Layer 插件允许您将某些窗口定义为小部件。小部件窗口显示在屏幕的单独“层”上。当小部件层隐藏时,所有定义为小部件窗口的窗口都将图标化。默认情况下,小部件层使用 F9
键显示和隐藏。
要将窗口定义为小部件,请打开 CCSM 并导航到 Widget Layer 插件。单击行为选项卡,然后单击小部件窗口字段旁边的加号按钮。在出现的对话框中,从类型菜单中选择窗口标题。在值字段中,输入您希望定义为小部件的窗口的标题,例如:galculator。
屏幕放大
有两个 Compiz 插件可以提供放大功能。第一个是 Magnifier,它的作用很像放大镜(矩形框内的所有内容都将被放大)。可以通过在 CCSM 中启用插件并按 Super+m
来使用放大镜。
另一个插件称为增强桌面缩放。启用此插件后,按 Super
键并滚动鼠标中键将放大鼠标光标下方的桌面部分。
崩溃处理程序
最好在 CCSM 中启用崩溃处理程序插件。此插件确保,如果由于任何原因,Compiz 无法随会话启动或在会话期间的某个时刻崩溃,则将转储崩溃日志,并启动备用窗口管理器。要在发生崩溃时指定可以替换 Compiz 的窗口管理器,请单击崩溃处理程序插件,然后勾选启动其他窗口管理器选项。然后,在窗口管理器命令行字段中,输入启动所选窗口管理器的命令,例如:xfwm4 --replace
。
不使用 CCSM 配置 Compiz
Compiz 不必通过 CCSM 进行配置。可以通过直接编辑配置文件来更改设置。对于平面文件配置文件,这意味着对 ~/.config/compiz-1/compizconfig/Default.ini
文件或类似文件进行编辑更改。对于 GSettings 或 GConf 配置文件,这意味着使用 gsettings 或 gconftool-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 schema 都是可重定位的。这意味着需要提供路径以及 schema 名称本身 - 在这种情况下,Compiz 配置文件的路径,例如:
:/org/compiz/profiles/Default/plugins/
。 - 安装 Compiz 插件的 schema 并不能保证插件本身已安装。
列出所有可用的 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 插件 schema
$ 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']"
参见
- Compiz Wiki,(wiki 未维护)
- Compiz-Themes.org,包括 Emerald 主题、Metacity 主题、Kwin 主题等