温馨提示×

Compton如何实现多屏显示配置

小樊
37
2025-11-22 10:55:29
栏目: 编程语言

Compton多屏显示配置指南

一 前置准备

  • 确认环境为 X11(Compton 是 X11 合成器,不适用于 Wayland 会话)。
  • 安装 Compton(发行版仓库或源码皆可)。
  • xrandr 正确连接并摆放多显示器,记录输出名(如 eDP-1、HDMI-1、DP-1)。示例:
    • 查看连接:xrandr --query
    • 扩展摆放:xrandr --output HDMI-1 --auto --right-of eDP-1
      这些步骤是后续 Compton 多屏生效的基础。

二 配置思路与关键点

  • 多显示器无需在 Compton 里逐一“指定每个屏幕”,Compton 会自动识别 xrandr 已连接的输出;关键在于使用合适的合成后端与刷新率,并按需做阴影、透明度、VSync 等调优。
  • 常用配置要点:
    • 选择后端:优先 backend = “glx”(OpenGL 加速);若驱动/硬件受限,可退回 xrender
    • 帧率与同步:设置 fps-limit(如 60);vsync 根据显卡与显示器选择(true/false 均可实测)。
    • 阴影与性能:对特定类/标题做 shadow-exclude,必要时关闭阴影以提效。
    • 透明度与模糊:按需启用 opacity-rule、背景模糊等。
      这些选项在多屏下能显著影响流畅度与视觉一致性。

三 最小可用配置示例

  • 将以下内容保存为 ~/.config/compton.conf,并按你的显示器名与需求微调:
    • 说明:无需逐屏配置;通过 xrandr 摆放好后,Compton 会自动应用到所有输出。
    • 建议先用最小配置验证,再逐步开启特效。
# 基本
backend = "glx"
vsync = true
fps-limit = 60

# 阴影(可按需精简)
shadow = true
shadow-radius = 4.0
shadow-opacity = 0.45
shadow-exclude = [
  "class_g = 'Gnome-terminal'",
  "class_g = 'konsole'",
  "class_g = 'xterm'"
]

# 透明度示例(可选)
opacity-rule = [
  "80:class_g = 'Gnome-terminal'",
  "90:class_g = 'Firefox'"
]

# 修复常见渲染问题
glx-no-stencil = false
glx-copy-from-front = false
glx-damage = true
damage = true
  • 启动测试:compton -b -c ~/.config/compton.conf(-b 为后台运行)。

四 启动与自启动

  • 会话自启动(推荐,适用于大多数 Openbox/i3 等 WM):
    • 在 WM 的 autostart 中写入:compton -b -c ~/.config/compton.conf
    • 或创建桌面文件:~/.config/autostart/compton.desktop(Exec=/usr/bin/compton -b -c ~/.config/compton.conf)。
  • Systemd 用户服务(无显示管理器或需用户级管理时):
    • 建议以用户服务运行:创建 ~/.config/systemd/user/compton.service

    • 内容示例:
      [Unit]
      Description=Compton Compositor
      After=graphical-session.target

      [Service]
      ExecStart=/usr/bin/compton -b -c %h/.config/compton.conf
      Restart=on-failure

      [Install]
      WantedBy=graphical-session.target

    • 启用:systemctl --user enable --now compton.service

  • 系统级服务(不推荐与用户会话并存,易产生两个合成器实例):如需使用,After 应设为 display-manager.service 或 graphical.target,并指定 User=用户名。
  • 验证:
    • 查看进程:pgrep -x compton
    • 查看日志:journalctl --user -u compton.service(或 systemctl --user status compton.service)。

五 多屏常见问题与优化

  • 撕裂与卡顿:开启 vsync(或尝试关闭对比);将 fps-limit 设为显示器刷新率(如 60);优先 backend = “glx”
  • 阴影跨屏异常/性能:对不需要阴影的窗口类加入 shadow-exclude;必要时将 shadow = false
  • 透明度/模糊开销:对大量窗口或低性能 GPU,减少 opacity-rule 与模糊范围。
  • 新显示器热插拔:先通过 xrandr 调整布局,再重启 Compton(或发送 SIGHUP:pkill -HUP compton)。
  • 多屏 DPI/缩放差异:Compton 不负责缩放,缩放应在 xrandr 或桌面环境设置中统一;若出现字体/渲染异常,优先检查各输出的缩放与刷新率一致性。

0