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 或桌面环境设置中统一;若出现字体/渲染异常,优先检查各输出的缩放与刷新率一致性。