温馨提示×

linux compton如何多屏

小樊
48
2026-10-03 19:21:00
栏目: 智能运维

在 Linux 下使用 Compton(或已停止维护,常见继任者为 picom) 做多屏(多显示器)合成,核心思路是:让它覆盖所有屏幕 / 指定屏幕的 X Root 窗口区域。下面分情况说明。


一、确认你用的是 compton 还是 picom

很多发行版里:

  • compton:旧版
  • picom:新版(命令通常是 picom,配置兼容 compton)

下面以 compton / picom 通用配置 说明。


二、最常见情况:多屏拼接成一个大桌面(Xinerama / RandR)

如果你用 xrandr 把多个屏幕拼在一起(例如 HDMI + eDP),默认 compton 就已经覆盖所有屏幕,一般无需特殊设置。

检查

xrandr

如果看到:

Screen 0: minimum ...
eDP-1 connected 1920x1080+0+0
HDMI-1 connected 1920x1080+1920+0

说明是一个 Screen,compton 默认全屏生效。


三、显式指定多屏(推荐做法)

在 ~/.config/compton.conf 或 ~/.config/picom.conf 中:

# 使用 xinerama(多屏)
xinerama = true;

# 或者更现代的方式(RandR)
use-damage = true;

如果你只想在某几块屏启用(高级):

# 指定显示输出(picom 支持)
output = "eDP-1";
# output = "HDMI-1";

⚠️ 旧版 compton 对 output 支持不好,picom 更稳。


四、多个独立 X Screen(少见)

如果你的多屏是:

Screen 0: eDP-1
Screen 1: HDMI-1

(不是 xrandr 拼起来的)

那么:

  • 一个 compton 实例只能管一个 Screen
  • 需要启动多个实例:
compton --display :0.0 &
compton --display :0.1 &

五、常见坑

1. 透明窗口只在一块屏有效

原因:

  • 用了旧 compton
  • 没开 xinerama

解决:

xinerama = true;

2. 鼠标阴影错位

shadow = true;
shadow-exclude = [
  "name = 'Notification'"
];

3. 多屏性能差

backend = "glx";
vsync = true;

六、推荐配置示例(多屏通用)

xinerama = true;
backend = "glx";
vsync = true;
shadow = true;
fade = true;

七、调试命令

compton --diagnostics
# 或
picom --diagnostics

如果你愿意,可以告诉我:

  • 发行版(Arch / Ubuntu / Debian)
  • 显卡(Intel / NVIDIA / AMD)
  • xrandr 输出

我可以给你一份完全适配你机器的配置。

0 踩