温馨提示×

如何利用Compton改善CentOS的显示效果

小樊
37
2025-11-16 02:54:54
栏目: 智能运维

在 CentOS 上使用 Compton 提升显示效果

一 适用场景与准备

  • 适用对象:运行 Xorg 会话的 CentOS 7/8/Stream 桌面用户(如 GNOME Flashback、Xfce、i3、Openbox 等)。Compton 是 X11 的窗口合成器,提供阴影、透明度、淡入淡出与一定程度的模糊,能减少撕裂、提升视觉一致性。若使用 Wayland,Compton 不适用。建议先确认会话类型:echo $XDG_SESSION_TYPE。同时确保显卡驱动(如 NVIDIA/AMD/Intel)已正确安装,以获得更好的 OpenGL 加速效果。

二 安装与基础配置

  • 安装 Compton
    • CentOS 7:sudo yum install -y compton
    • CentOS 8/Stream:sudo dnf install -y compton
  • 准备配置文件(推荐用户级配置):mkdir -p ~/.config && nano ~/.config/compton.conf
  • 基础配置示例(先启用硬件加速与 vsync,其他按需增减)
    backend = "glx"
    vsync = true
    shadow = true
    fade = true
    unredirect = false
    alpha-threshold = 0.05
    
    [shadow]
    shadow-radius = 12
    shadow-offset-x = 1
    shadow-offset-y = 1
    shadow-opacity = 0.25
    
    [fade]
    in-scale = 0.9
    out-scale = 0.9
    
    [blur]
    method = gaussian
    size = 6
    deviation = 3.0
    
    shadow-exclude = [
      "class_g = 'Conky'",
      "class_g = 'Polybar'",
      "_NET_WM_WINDOW_TYPE@:a = 'desktop'",
      "_NET_WM_WINDOW_TYPE@:a = 'dock'",
      "_NET_WM_WINDOW_TYPE@:a = 'tooltip'"
    ]
    
    说明:
    • backend = "glx" 通常较 xrender 性能更好;vsync 可减少撕裂;shadow-exclude 用正则排除不需要阴影的窗口类型/程序。
    • 若某些程序出现透明/模糊异常,可在 shadow-excludefade-exclude 中追加其 class_g/title 规则以排除。

三 启动与自启

  • 手动启动(便于调试):compton --config ~/.config/compton.conf
  • 作为用户级 systemd 服务(推荐,避免权限与登录会话问题)
    1. 创建服务:nano ~/.config/systemd/user/compton.service
    2. 写入内容:
      [Unit]
      Description=Compton Window Composer
      After=graphical-session.target
      
      [Service]
      Type=simple
      ExecStart=/usr/bin/compton --config %h/.config/compton.conf
      Restart=always
      Environment=DISPLAY=:0
      
      [Install]
      WantedBy=default.target
      
    3. 启用并启动:
      systemctl --user daemon-reload
      systemctl --user enable --now compton.service
      
    4. 若使用登录管理器(如 GDM),确保会话类型为 Xorg,并在“启动应用程序”中避免重复启动 Compton。
  • 系统级服务(可选,适用于多用户或特定场景):创建 /etc/systemd/system/compton.service,将 ExecStart 指向你的配置文件,并在 [Unit] 中使用 After=display-manager.service;随后 systemctl daemon-reload && systemctl enable --now compton。注意服务用户与权限设置,避免以 root 运行图形会话。

四 性能优化与常见问题

  • 性能优化要点
    • 优先使用 OpenGL 后端(backend = "glx"),必要时开启 DRI3glx-no-stencil 以进一步降低开销(若出现渲染异常再逐项回退)。
    • 降低帧率与特效开销:如 vsync = trueframe_rate = 30shadow = falseblur { size = 0 },可显著减少 CPU/GPU 占用。
    • 排除不需要合成/阴影的窗口:如桌面、面板、工具提示、Dock 等,减少无效绘制。
    • 多显示器:先通过 xrandr --query 检查输出名(如 eDP-1/HDMI-1/DP-1),确保布局正确;Compton 会继承 Xrandr 的显示配置。
  • 常见问题排查
    • 屏幕撕裂:开启 vsync = true;若仍有撕裂,尝试切换 backend 或关闭/降低模糊与阴影。
    • 透明/模糊异常:在 shadow-exclude/fade-exclude 中排除对应程序;必要时将 alpha-threshold 调高(如 0.1)。
    • 启动失败或黑屏:检查日志输出(compton --config ~/.config/compton.conf 2> /tmp/compton.logjournalctl --user -u compton.service),逐项注释特效定位问题。
    • 资源占用偏高:减少阴影/模糊、降低 frame_rate、关闭不必要的动画与透明层。

0