CentOS 上 Compton 的配置与系统兼容性要点
一 支持现状与版本选择
- Compton 是 X11 的窗口合成器,不用于 Wayland。在 CentOS 7 上通常可安装运行,但可能遇到依赖与库版本差异;CentOS 8 已停止维护,建议迁移到 CentOS Stream 8/9 或其他受支持的发行版;CentOS Stream 为滚动更新,兼容性需结合当期仓库验证。另需注意 Compton 开发已不再积极维护,遇到难以解决的兼容与稳定性问题时,可考虑替代方案 picom。同时,CentOS 7 已于 2024 年底停止支持,长期维护与安全更新不再覆盖,生产环境应优先规划升级路线。
二 安装与启用步骤
- 准备仓库与更新
- 安装 EPEL 仓库:sudo yum install -y epel-release
- 更新系统:sudo yum update -y
- 安装 Compton
- 使用 YUM 安装:sudo yum install -y compton
- 配置文件路径
- 用户级:~/.config/compton.conf
- 系统级:/etc/compton.conf 或 /etc/xdg/compton.conf
- 手动启动与验证
- 启动:compton -c ~/.config/compton.conf
- 查看日志:tail -n 50 ~/.cache/compton/compton.log
- 设置开机自启动(systemd 用户会话)
- 建议以登录用户方式启用,创建文件 ~/.config/systemd/user/compton.service:
[Unit]
Description=Compton Window Composer
After=graphical-session.target
[Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf
Restart=on-failure
[Install]
WantedBy=graphical-session.target
- 启用与启动:
systemctl --user daemon-reload
systemctl --user enable --now compton.service
- 说明
- 不建议以系统级服务在 multi-user.target 直接启动 Compton(它需要访问用户会话的 X11/Wayland 显示),更稳妥的做法是使用用户级服务或在登录会话中启动。
三 兼容性要点与常见问题处理
- 显示系统与桌面环境
- Compton 仅适用于 X11;在 GNOME/KDE/Xfce 等桌面中,可能与内置合成器或窗口管理器存在冲突,建议先关闭桌面自带合成功能再启用 Compton。
- 显卡驱动与加速
- 确保安装并启用正确的 显卡驱动(如 NVIDIA 专有驱动、AMDGPU 等),否则可能导致黑屏、撕裂或高 CPU 占用。可用 nvidia-smi、lspci -k | grep -A2 -i “VGA” 检查驱动状态与加载情况。
- 依赖与库版本
- 常见依赖包括 xprop、xrandr 等;不同版本库差异可能引发兼容性问题。遇到奇怪崩溃或渲染异常,先确认依赖完整与版本匹配。
- 日志与排错
- 查看 Compton 日志:cat ~/.cache/compton/compton.log 或 tail -n 50 ~/.cache/compton/compton.log
- 查看系统日志:journalctl -xe、/var/log/messages、dmesg
- 必要时用 killall compton 后重启,或在终端前台运行以观察输出。
- 已知冲突
- 部分在线游戏的内核级反作弊可能与合成器冲突,出现闪退或封禁风险时建议临时关闭 Compton。
四 推荐配置示例与调优建议
- 基础稳定配置(适合大多数 X11 会话)
backend = "glx"
vsync = "opengl-swc" # 或 "opengl";若撕裂明显再尝试 "xrender"
fps = 60
shadow = true
shadow-radius = 12
shadow-offset-x = -15
shadow-offset-y = -15
shadow-exclude = [
"class_g = 'Conky'",
"class_g = 'Polybar'",
"class_g = 'Yakuake'",
"_NET_WM_WINDOW_TYPE@:a = 'dock'",
"_NET_WM_WINDOW_TYPE@:a = 'tooltip'"
]
fading = true
fade-delta = 10
focus-exclude = [ "class_g = 'slop'" ]
unredirect-drawable-windows = true
glx-no-stencil = true
glx-copy-from-front = false
glx-fbo = true
- 调优要点
- 若出现撕裂:优先启用 vsync(opengl-swc 或 opengl),再考虑切换到 xrender 后端测试。
- 若出现高 CPU:关闭 fading,减少 shadow 与模糊,降低 fps,或将 backend 调整为 xrender。
- 多显示器:使用 xrandr 验证输出名称与布局,必要时在配置中针对特定输出做阴影/淡入淡出排除。
五 替代方案与迁移建议
- 由于 Compton 维护不活跃,推荐迁移到 picom,其在 CentOS Stream 等较新环境中通常具备更好的兼容性与问题修复速度。迁移时可直接复用大部分配置项,仅需按 picom 文档微调即可。