温馨提示×

怎样在Compton中配置多显示器

小樊
38
2025-11-16 11:00:00
栏目: 编程语言

Compton 多显示器配置指南

一 核心要点

  • Compton 原生支持多显示器,无需特殊开关;关键在于先用 xrandr 正确布局各显示器,再让 Compton 在该 X11 会话中运行即可。
  • 显示器的连接名称(如 eDP-1、HDMI-1、DP-1)可通过 xrandr --query 查看;布局完成后再启动 Compton,合成器会自动应用到所有已连接的输出。

二 快速步骤

  1. 安装 Compton
    • Debian/Ubuntu:sudo apt-get update && sudo apt-get install compton
    • CentOS/RHEL:sudo yum install -y compton
  2. 用 xrandr 配置多屏布局(示例)
    • xrandr --query(确认输出名)
    • xrandr --output HDMI-1 --auto --right-of eDP-1
    • xrandr --output DP-1 --auto --right-of HDMI-1
  3. 创建基础配置文件
    • mkdir -p ~/.config && nano ~/.config/compton.conf
  4. 启动 Compton 测试
    • compton -c ~/.config/compton.conf
  5. 设置开机自启动(任选其一)
    • 窗口管理器/会话自启:例如在 Openbox 的 autostart 中加入 Exec=/usr/bin/compton -c ~/.config/compton.conf
    • systemd 用户服务:创建 ~/.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=graphical-session.target
      然后执行:systemctl --user daemon-reload && systemctl --user enable --now compton

三 配置文件要点

  • 选择合成后端:backend = “glx”;(常见且兼容性较好;若出现异常可尝试 xrender)
  • 常用性能与渲染项:
    • glx-no-stencil = true;(减少不必要的模板操作)
    • glx-copy-from-front = true;(在某些驱动/场景下可减少撕裂或提升性能)
    • glx-damage = true; damage = true;(基于损伤区域重绘,提升效率)
  • 阴影与透明:
    • 多屏下建议按需排除不需要阴影的窗口,例如:
      shadow-exclude = [ “class_g ‘Desktop’”, “class_g ‘Gnome-terminal’”, “class_g ‘Firefox’” ];
    • 若更注重性能,可临时关闭阴影:shadow = false;
  • 多显示器与规则:
    • 一般无需在配置中逐屏罗列;Compton 会作用于当前 X 会话的所有输出。
    • 如需按输出或类做差异化效果,可使用 opacity-rule 等功能进行细粒度控制。

四 常见问题与排查

  • 屏幕撕裂或卡顿:尝试切换 backend(glx/xrender)、开启/关闭 vsync、关闭阴影(shadow = false),并确认 glx-damage/damage 为 true。
  • 多屏阴影/透明度异常:通过 shadow-exclude 精确排除不需要阴影的窗口或类,减少跨屏合成开销。
  • 未生效或只在一块屏上工作:先确认 xrandr 布局已正确(–right-of/–left-of/–above/–below),再重启 Compton;如使用 systemd,注意区分系统级与用户级服务(用户会话请用 --user)。
  • 开机未自启:若使用 systemd 用户服务,确保会话目标为 graphical-session.target 并已执行 enable --now;若通过会话自启,确认 autostart 条目已存在且路径正确。

0