在 CentOS 上配置 Compton 的完整步骤
一 环境准备与安装
- 确认会话类型:Compton 是 X11 的窗口合成器,不用于 Wayland。在 CentOS 上默认使用 Xorg,可直接使用;若登录到 Wayland 会话,请先切换到 Xorg。
- 安装命令(优先使用仓库包):
- 更新并启用 EPEL(如未启用):sudo yum update -y && sudo yum install -y epel-release
- 安装 Compton:sudo yum install -y compton
- 若仓库无可用版本,可从源码编译(示例):
- 安装编译依赖:sudo yum groupinstall -y “Development Tools”
- 安装图形依赖:sudo yum install -y mesa-libGL-devel mesa-libEGL-devel libX11-devel libXext-devel libXinerama-devel libXrandr-devel libXcursor-devel libXdamage-devel libXcomposite-devel libXxf86vm-devel
- 编译安装:git clone https://github.com/Compton/Compton.git && cd Compton && mkdir build && cd build && cmake … && make -j$(nproc) && sudo make install
二 配置文件与关键参数
- 创建配置目录与文件:mkdir -p ~/.config && nano ~/.config/compton.conf
- 基础示例(可按需调整):
- 后端与帧率:backend = “glx”;fps = 60
- 阴影:shadow = true;shadow-radius = 12;shadow-offset-x = 0;shadow-offset-y = 8;shadow-exclude = [“name = ‘Dmenu’”, “class_g = ‘Conky’”]
- 透明度与忽略规则:opacity-rule = [“90:class_g = ‘URxvt’”, “0.95:class_g = ‘Firefox’”];inactive-opacity = 0.95
- 同步与渲染:vsync = true;glx-no-stencil = true;glx-copy-from-front = false
- 多显示器:确保已用 xrandr 正确配置显示器布局(Compton 会自动适配)
- 应用配置:compton --config ~/.config/compton.conf(先 kill 旧进程再启动)
三 开机自启动与系统集成
- 使用 systemd 用户服务(推荐,避免权限与图形会话问题):
- 创建服务文件:nano ~/.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;Environment=DISPLAY=:0
- [Install] WantedBy=graphical-session.target
- 启用并启动:systemctl --user daemon-reload && systemctl --user enable --now compton.service
- 若使用登录管理器(如 GDM),确保会话为 Xorg,并在“启动应用程序”中避免重复启动
- 系统级服务(不推荐,易遇到会话/权限问题):创建 /etc/systemd/system/compton.service,ExecStart 指向 compton 可执行文件与配置,After=display-manager.service,并启用服务
四 验证与常见问题
- 验证运行状态:
- 查看进程:pgrep -x compton;查看日志:journalctl --user -u compton.service(或 compton --log-level=debug 前台运行)
- 观察窗口阴影、透明度、拖影、撕裂等现象是否改善
- 常见问题与优化:
- 性能优先:将 backend 设为 glx,必要时关闭阴影(shadow = false)或减少透明度规则
- 撕裂与卡顿:开启 vsync = true;若仍异常,尝试 glx-no-stencil、降低 fps
- 多显示器:用 xrandr --query 检查输出名与布局,必要时在显示管理器或 xrandr 中先行配置
- 资源限制:必要时用 cpulimit 限制 CPU 占用,例如:cpulimit -l 50 -p $(pgrep compton)
- 驱动与兼容性:确保显卡驱动正确安装并支持 OpenGL;在虚拟机或旧显卡上可改用 backend = “xrender” 以提升兼容性