在 CentOS 上稳定运行 Compton 的实用指南
一 环境准备与前提
- 确认会话类型:Compton 是 X11 的合成器,Wayland 会话下无法正常工作。请在登录界面选择 GNOME on Xorg / X11,或切换到 Xfce、MATE、i3 等基于 X11 的会话。
- 更新系统与显卡驱动:确保系统已更新,并安装适配你显卡的驱动(如 Intel/AMD 的开源驱动或 NVIDIA 专有驱动),以获得稳定的 OpenGL 支持。
- 安装基础编译与图形依赖(如计划从源码构建):
sudo yum update -y
sudo yum groupinstall -y “Development Tools”
sudo yum install -y mesa-libGL mesa-libEGL libX11-devel libXext-devel libXrender-devel libXrandr-devel libXcursor-devel libXi-devel libXinerama-devel libXcomposite-devel libxdamage-devel libxcb-devel cmake make git
以上可显著降低启动崩溃与渲染异常的概率。
二 安装 Compton
- 方式 A(推荐,尽量使用发行版仓库):
- 启用 EPEL:sudo yum install -y epel-release
- 安装:sudo yum install -y compton(或 dnf install -y compton)
- 方式 B(仓库无包或需新特性时,从源码构建):
git clone https://github.com/chris-rudmin/compton.git
cd compton && mkdir build && cd build
cmake … && make -j$(nproc)
sudo make install
- 方式 C(CentOS 8+ 可用 Snap):
sudo yum install -y snapd && sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install compton --classic
安装完成后可用 compton --version 验证可执行文件是否就绪。
三 配置要点与最小可用配置
- 配置文件位置:优先使用用户级 ~/.config/compton.conf;如需全局生效可用 /etc/compton.conf。
- 最小可用配置示例(保存为 ~/.config/compton.conf):
backend = “glx”
vsync = true
shadow = true
shadow-radius = 6
shadow-offset-x = -3
shadow-offset-y = -3
shadow-exclude = [ “class_g = ‘GtkWindow’”, “class_g = ‘MatePanel’”, “class_g = ‘Xfce4-panel’” ]
fade = true
fade-delta = 10
unredirected-fullscreen = true
glx-no-stencil = true
glx-copy-from-front = false
use-damage = true
log-level = “warn”
log-file = “/tmp/compton.log”
说明:
- 使用 glx 作为后端,开启 vsync 减少撕裂;对全屏应用启用 unredirected 提升游戏/视频性能。
- 通过 shadow-exclude 忽略面板等无阴影需求的元素,减少渲染负担。
- 将 log-file 指向临时目录便于排错(生产可改为 ~/.cache/compton.log)。
四 自启动与系统集成
-
会话级自启动(最稳,避免与显示管理器冲突):
- GNOME Xorg:在“启动应用程序”中加入命令:compton --config ~/.config/compton.conf
- Xfce:设置“会话和启动”→“应用程序自启动”添加上述命令
- i3:在 ~/.config/i3/config 的 exec 段加入:exec --no-startup-id compton --config ~/.config/compton.conf
-
systemd 用户服务(可选,便于日志与自动重启):
创建文件:~/.config/systemd/user/compton.service
[Unit]
Description=Compton Compositor
After=graphical-session.target
[Service]
ExecStart=/usr/bin/compton --config %h/.config/compton.conf
Restart=always
Environment=DISPLAY=:0
[Install]
WantedBy=graphical-session.target
启用:systemctl --user daemon-reload && systemctl --user enable --now compton.service
提示:若使用系统级服务,请设置 User=你的用户名 并置于 After=display-manager.service,但更推荐会话级自启动以避免与登录会话竞争。
五 稳定性排错与优化
- 会话与驱动:确认使用 Xorg;优先使用开源驱动或官方 NVIDIA 驱动,避免因 OpenGL 初始化失败导致崩溃。
- 日志与定位:启动时加上 –log-level debug --log-file /tmp/compton.log,检查是否有 EGL/GLX 初始化失败、X11 错误等关键信息。
- 兼容性与资源:
- 与 GNOME/KDE/Xfce 等桌面环境可能存在兼容差异,必要时调整 shadow-exclude、fade、unredirected-fullscreen 等选项。
- 低配机器上适当降低阴影、关闭淡入淡出或限制帧率,减少 CPU/内存 占用。
- 快速自检:
- 查看进程:ps aux | grep compton
- 查看日志:tail -n50 /tmp/compton.log
- 验证效果:打开带阴影/透明度的应用(如终端、浏览器),观察是否正常渲染与无撕裂。