Compton 配置常见错误与解决方法
一 快速排查流程
ps -e | grep compton;启动:compton &。killall compton && compton --config ~/.config/compton.conf。二 常见错误与修复对照表
| 症状 | 常见原因 | 修复建议 |
|---|---|---|
| 启动失败或立即退出 | 配置文件语法错误(括号/引号/逗号缺失)、路径错误、使用了已移除/不支持的选项 | 使用默认配置验证:compton --config /usr/share/doc/compton/examples/compton.sample.conf;修正语法;将配置文件放到**~/.config/compton.conf或/etc/xdg/compton.conf**;移除已弃用/移除选项(见第三部分) |
| 黑屏、撕裂、卡顿或高占用 | 后端选择不当(glx/xrender)、VSync 与驱动/刷新率不匹配、渲染特性冲突 | 切换后端(如由glx改为xrender);将vsync设为布尔值true/false并配合refresh-rate调整;必要时减少模糊/淡入淡出等效果 |
| 阴影异常(缺失、穿透、裁剪错误) | 旧选项与新语法混用、未正确排除特定窗口类型 | 使用shadow-exclude与shadow-exclude-reg精确排除;用wintype为特定类型(如dock、popup_menu、dropdown_menu)设置阴影与透明度 |
| 透明度/模糊不生效 | opacity/alpha取值越界、规则未命中、被其它规则覆盖 |
确保透明度在0.0–1.0;使用opacity-rule精确匹配;检查是否有更高优先级的规则覆盖 |
| 特定应用渲染异常(白屏、闪烁、拖影) | GPU 驱动问题、合成特性与程序不兼容 | 更新显卡驱动;尝试禁用 GPU 加速(如某些版本支持--ignore-gpu);关闭背景模糊/淡入淡出或为该应用添加排除规则 |
| 找不到配置文件 | 文件未创建或放错目录 | 创建配置目录与文件:mkdir -p ~/.config && nano ~/.config/compton.conf;或复制示例配置到用户目录后再编辑 |
三 配置语法与弃用项修正
wintype:
no-dock-shadow → 使用shadow { wintype = dock; shadow = false; }menu-opacity → 使用wintype { popup_menu, dropdown_menu; opacity = 0.95; }vsync取值:现在为布尔值,使用vsync = true/false;旧值"none"虽被兼容解释为false,但后续版本将移除,需改为布尔。clear-shadow(已始终启用)、paint-on-overlay(已按需自动启用)、glx-swap-method(自v6起弃用)。shadow = true;wintype { dock; shadow = false; }wintype { popup_menu, dropdown_menu; opacity = 0.95; }vsync = false;backend = "xrender";opacity-rule = [ "99:class_g = 'Chromium'", "50:class_g = 'Dmenu'" ];四 性能与兼容性的实用调优
vsync设为true/false并配合refresh-rate(如0表示自动)以减少撕裂与卡顿。shadow-exclude、fade-exclude、opacity-rule精准排除。--ignore-gpu)或改用xrender后端。五 最小化可用配置示例
# 基本
backend = "xrender";
vsync = false;
refresh-rate = 0;
# 阴影
shadow = true;
shadow-radius = 5;
shadow-offset-x = 1;
shadow-offset-y = 1;
shadow-opacity = 0.3;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Dmenu'",
"class_g = 'Dunst'"
];
# 透明度与规则
inactive-opacity = 0.93;
active-opacity = 1.0;
alpha-step = 0.01;
opacity-rule = [
"99:class_g = 'Chromium'",
"50:class_g = 'Dmenu'"
];
# 效果开关
blur-background = false;
fading = false;
将以上保存为**~/.config/compton.conf**,用killall compton && compton --config ~/.config/compton.conf重启以验证效果。