温馨提示×

linux compton如何多屏配置

小樊
34
2026-09-18 22:13:06
栏目: 智能运维

在 Linux 下使用 Compton(或其活跃分支 Picom)进行多屏(多显示器)配置,核心思路是:

  1. 让 Compton 知道有哪些屏幕(Xinerama / RandR)
  2. 为每个屏幕指定不同的参数(可选)
  3. 避免透明 / 阴影在跨屏时异常

下面按常见使用场景说明。


一、基础:Compton 默认已支持多屏

如果你使用 Xorg + Xinerama / RandR(如 xrandr 配置的多屏):

✅ Compton 默认就能在多屏下工作
只需要正常启动:

compton &

或(推荐):

picom &

二、多屏常见配置示例(~/.config/compton.conf)

1️⃣ 最简单多屏配置

backend = "glx";
vsync = true;

shadow = true;
shadow-exclude = [
  "fullscreen"
];

fade = true;

✅ 适用于:扩展屏 / 复制屏


2️⃣ 排除某些屏幕上的窗口(按显示器)

Compton 不能直接按“屏幕编号”配置,但可以用 窗口属性 + 位置 排除。

例如:只在主屏显示阴影

shadow-exclude = [
  "_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'",
  "x <= 1920"  # 第二屏从 x=1920 开始
];

三、多屏 + 不同 DPI / 缩放(HiDPI + 普通屏)

情况:

  • 屏幕1:4K(缩放 2x)
  • 屏幕2:1080p(缩放 1x)

推荐配置

backend = "glx";
xrender-sync-fence = true;

⚠️ 注意:

  • Compton 不负责缩放
  • 缩放由 xrandr 或 wlroots / Wayland 处理
  • Compton 只处理合成 & 透明

四、多屏下常见问题 & 解决

❌ 问题 1:第二屏透明异常 / 闪烁

✅ 解决:

backend = "xrender";

或:

backend = "glx";
glx-no-stencil = true;

❌ 问题 2:全屏视频跨屏黑边

unredir-if-possible = true;

并在视频播放器使用全屏


❌ 问题 3:多屏下阴影出现在错误位置

shadow-offset-x = 0;
shadow-offset-y = 2;
shadow-exclude = [
  "fullscreen"
];

五、启动方式(多屏环境)

使用 xrandr 设置多屏后启动

xrandr --output DP-1 --mode 2560x1440 --left-of eDP-1
compton &

六、Compton 已停止维护(建议)

✅ 强烈建议使用 Picom(Compton 分支):

sudo apt install picom
picom --config ~/.config/picom.conf

Picom 对多屏、HiDPI、模糊更好。


七、总结

需求 建议
多屏基本透明 Compton 默认支持
不同屏不同效果 用窗口规则 / 位置
HiDPI 多屏 用 Picom + xrandr
视频全屏 unredir-if-possible
Wayland 不用 Compton

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

  • 桌面环境(i3 / bspwm / KDE / XFCE)
  • 显卡(Intel / NVIDIA / AMD)
  • 是否是 HiDPI

我可以给你一份完全可用的多屏配置。

0 踩