优化 Compton(或它的继任者 picom)配置,核心在于平衡视觉效果与性能。Compton 是一个 X11 下的复合管理器,主要用于实现窗口透明、阴影、淡入淡出和撕裂消除。
以下是分步骤的优化指南,从基础到进阶,并附带一份针对**现代桌面(高性能)和老旧硬件(低性能)**的推荐配置。
由于 Compton 已停止维护,大多数发行版现在使用的是它的分支 picom。
picom --versioncompton,建议切换到 picom 以获得更好的性能和修复。默认配置文件通常位于:
~/.config/picom/picom.conf (推荐)/etc/xdg/picom.conf (全局配置)如果 ~/.config/picom/ 目录不存在,请手动创建并将示例配置复制过来:
mkdir -p ~/.config/picom
cp /etc/xdg/picom.conf ~/.config/picom/picom.conf
编辑 picom.conf,重点关注以下几个部分:
这是影响性能最大的因素。
backend = "glx";:性能最好。利用 GPU 进行渲染,适合绝大多数现代显卡(NVIDIA/AMD/Intel)。backend = "xrender";:兼容性最好,但性能较差。纯 CPU 渲染,适合非常老的显卡或遇到 GLX 崩溃时。glx。防止屏幕撕裂(Tearing)。
vsync = true;vsync_method = "none"; 并在 NVIDIA 设置中开启“Force Full Composition Pipeline”。vsync_method = "opengl-swc";阴影很耗性能,尤其是模糊(Blur)开启时。
shadow = false;# 关闭模糊以大幅提升性能
blur: {
method = "none";
}
窗口打开关闭时的动画。
fading = false;强制某些全屏应用(如游戏、视频播放器)不透明,避免不必要的计算。
opacity-rule = [
"100:class_g = 'Firefox' && focused",
"95:class_g = 'Firefox' && !focused",
"100:fullscreen"
];
适用于日常办公、写代码,有独立显卡或较新的核显。
# ~/.config/picom/picom.conf
backend = "glx";
vsync = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
# 阴影设置
shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-opacity = 0.5;
# 不给 dock 和 某些窗口加阴影
shadow-exclude = [
"class_g = 'Conky'",
"class_g = 'Polybar'",
"class_g = 'Rofi'",
"_GTK_FRAME_EXTENTS@:c"
];
# 透明度
inactive-opacity = 0.9;
active-opacity = 1.0;
frame-opacity = 1.0;
# 淡入淡出 (可选,如果觉得卡就关掉)
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
# 排除规则 (全屏应用不透明,提升游戏性能)
opacity-rule = [
"100:class_g = 'mpv'",
"100:fullscreen"
];
# 其他
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
适用于树莓派、旧笔记本或只想消除撕裂。
# ~/.config/picom/picom.conf
# 使用 xrender 或 glx (如果 glx 兼容)
backend = "xrender";
vsync = true;
# 关闭所有花哨效果
shadow = false;
fading = false;
inactive-opacity = 1.0;
corner-radius = 0;
# 模糊必须关闭
blur: {
method = "none";
}
# 只做最基本的合成
unredir-if-possible = true; # 全屏时绕过合成器(对游戏很重要)
/etc/X11/xorg.conf.d/20-intel.conf 中添加 Option "TearFree" "true"。nvidia-settings 中开启 Force Full Composition Pipeline,而不是单纯依赖 picom 的 vsync。picom --backend glx --vsync drm 或 opengl-swc。picom --log-level tracebackend = "xrender";。detect-rounded-corners 或 mark-wmwin-focused。根据你的桌面环境或窗口管理器(WM)不同,方法不同:
~/.config/i3/config 中添加 exec --no-startup-id picom~/.config/openbox/autostart 中添加 (picom &)~/.config/bspwm/bspwmrc 中添加 picom &在修改配置文件之前,你可以直接在终端运行以下命令来测试效果,无需重启 X11:
# 停止当前 picom
killall picom
# 测试 GLX 后端 + 无阴影
picom --backend glx --no-fading-openclose --no-dock-shadow --shadow-off &
# 测试 XRender 后端
picom --backend xrender &
总结建议:
glx 后端。shadow 和 fading。vsync 设置或显卡驱动设置。unredir-if-possible = true;(默认开启),这样全屏游戏会绕过 picom 以获得最大性能。