在 Ubuntu 上使用 Compton 进行多显示器设置
一 环境准备与多显示器布局
- 确认使用的是 X11(Compton 是 X11 合成器)。在 Wayland 会话中 Compton 不会生效。
- 安装 Compton(若尚未安装):
sudo apt update && sudo apt install compton
- 使用 xrandr 查看并排列多显示器,例如:
xrandr --output HDMI-1 --auto --right-of eDP-1
xrandr --output DP-1 --auto --right-of HDMI-1
以上命令会设置扩展模式并明确各屏相对位置,便于 Compton 正确合成多屏画面。
二 创建并编辑 Compton 配置
- 生成配置文件:
mkdir -p ~/.config && nano ~/.config/compton.conf
- 多显示器无需在配置里逐一“指定每个显示器”,Compton 会自动识别 X11 的屏幕布局;你只需选择合适的合成后端与特效策略。示例:
backend = “glx”
vsync = true
shadow = true
fade-in = 0.2
fade-out = 0.2
focus-exclude = [ “class_g = ‘Conky’” ]
opacity-rule = [ “90:class_g = ‘Gnome-terminal’”, “90:class_g = ‘Firefox’” ]
shadow-exclude = [ “class_g = ‘Gnome-terminal’”, “class_g = ‘Firefox’” ]
说明:
- 使用 backend “glx” 可获得更好的硬件加速;如出现撕裂可切换 vsync 策略(true/false/drm)。
- 通过 opacity-rule / shadow-exclude 为多屏下的特定应用设置透明度与阴影策略,提升观感与性能。
三 启动与开机自启动
- 手动测试:
compton -c ~/.config/compton.conf
- 图形会话自启动(推荐,适用于 GNOME/Openbox/i3 等):创建文件
~/.config/autostart/compton.desktop
内容:
[Desktop Entry]
Type=Application
Exec=/usr/bin/compton -c ~/.config/compton.conf
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Compton
Comment=Compton Window Composer
- 可选的系统级自启动(systemd 用户服务):
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/compton.service
内容:
[Unit]
Description=Compton Compositor
After=graphical-session.target
[Service]
ExecStart=/usr/bin/compton -c %h/.config/compton.conf
Restart=on-failure
[Install]
WantedBy=default.target
启用:
systemctl --user daemon-reload
systemctl --user enable --now compton.service
提示:若使用显示管理器登录,优先选择“会话级自启动”(autostart);systemd 用户服务在部分会话下可能启动过早。
四 多显示器常见问题与优化
- 画面撕裂或卡顿:将 vsync 调整为 true/false/drm 测试;性能不足时可临时关闭阴影(shadow = false)或降低透明度特效。
- 特定应用在多屏表现:通过 opacity-rule / shadow-exclude 精确控制窗口透明度与阴影,例如排除终端与浏览器以提升清晰度与性能。
- 多屏阴影与模糊:阴影计算是全局的,跨屏窗口可能出现边缘不一致;必要时对特定类应用禁用阴影或对特定屏幕区域做排除。
- 配置文件路径与语法:常见路径为 ~/.config/compton.conf;语法采用键值对或数组形式,注意引号和逗号。
- 排查建议:先仅保留必要特效,逐步加回;用 compton 命令行直接运行便于观察输出与错误信息。