Compton 配置文件解析的关键点
一 基础与环境
key = value;(或 key value;);shadow-exclude { "class_g 'GtkMenu'"; } 或 shadow-exclude = [ "class_g 'GtkMenu'", "class_g 'GtkDialog'" ];。backend = "glx";
vsync = true;
shadow = true;
shadow-radius = 2;
shadow-offset-x = 2;
shadow-offset-y = 2;
shadow-opacity = 0.5;
fade = true;
fade-delta = 10;
background = "#000000";
opacity-rule = [
"90:class_g = 'Firefox'",
"90:class_g = 'Alacritty'"
];
shadow-exclude = [
"class_g 'GtkMenu'",
"class_g 'GtkDialog'",
"class_g 'Notification'"
];
以上键名与取值为常见用法,具体可用选项会随版本与构建略有差异。二 关键参数速览
| 分类 | 参数 | 作用与取值要点 |
|---|---|---|
| 渲染与同步 | backend | 渲染后端:glx/egl(性能更佳,需驱动支持),xrender(兼容性更好)。 |
| 渲染与同步 | vsync | 垂直同步:true 减少撕裂但可能增加输入延迟;false 反之。 |
| 渲染与同步 | frame-rate | 合成刷新上限,例如 60,配合 vsync 使用。 |
| 阴影 | shadow | 是否启用阴影:true/false。 |
| 阴影 | shadow-radius / shadow-offset-x / shadow-offset-y / shadow-opacity | 控制阴影模糊半径与偏移、不透明度(0.0–1.0)。 |
| 阴影 | shadow-exclude | 按窗口类/实例/EWMH 状态排除阴影(菜单、通知、Dock 等)。 |
| 淡入淡出 | fade / fade-delta | 启用淡入淡出与动画步长(毫秒),数值越小越顺滑、开销略增。 |
| 不透明度 | opacity / opacity-rule | 全局不透明度(0.0–1.0);按规则为指定应用设不透明度,如 "90:class_g = 'Firefox'"。 |
| 背景与模糊 | blur-background / blur-method / blur-size / blur-deviation | 背景模糊开关、算法(如 gaussian)、半径与强度;是否可用取决于版本与构建。 |
| 排除合成 | exclude | 排除不需要参与合成的窗口(如 Conky、面板边框等)。 |
| OpenGL 细节 | glx-damage / glx-fbo / glx-no-stencil / glx-copy-from-front / glx-vsync | 细粒度控制 OpenGL 渲染路径与同步策略,用于排障与性能微调。 |
三 启动与自启动
compton --config ~/.config/compton.conf;pkill compton && compton --config ~/.config/compton.conf &;compton -b --config ~/.config/compton.conf &。[Unit]
Description=Compton Compositor
After=graphical-session.target
[Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf
Restart=always
[Install]
WantedBy=default.target
systemctl --user daemon-reload && systemctl --user enable --now compton.service。四 性能优化与常见问题
exclude/shadow-exclude 排除通知、菜单、Dock、面板等不需要合成或阴影的元素;全屏游戏/视频可临时禁用合成以释放资源。compton 观察输出;或先用最小化配置逐项恢复。