温馨提示×

如何在CentOS上稳定运行Compton

小樊
44
2025-12-09 19:50:41
栏目: 智能运维

在 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
    • 验证效果:打开带阴影/透明度的应用(如终端、浏览器),观察是否正常渲染与无撕裂。

0