在 CentOS 上配置 compton(现在多称为 picom)实现多屏(多显示器)透明/混成,核心要点是:
compton 本身支持多屏,不需要为每个屏单独跑一个进程,关键是 xrandr 布局和配置正确。
下面按步骤来。
compton 只支持 X11:
echo $XDG_SESSION_TYPE
如果是 wayland,需要退出到 X11 会话(CentOS 默认 GNOME 可切换)。
CentOS 一般没有官方包,可用 EPEL 或源码:
sudo yum install -y epel-release
sudo yum install -y compton
如果装不到:
sudo yum install -y libconfig-devel libXcomposite-devel libXdamage-devel libXrandr-devel
git clone https://github.com/chjj/compton
cd compton
make
sudo make install
xrandr
示例输出:
eDP1 connected 1920x1080+0+0
HDMI1 connected 1920x1080+1920+0
说明:
compton 会自动覆盖整个虚拟桌面(0,0 到 3840,1080)
~/.config/compton.conf
backend = "glx";
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
vsync = "opengl-swc";
shadow = true;
shadow-radius = 8;
shadow-offset-x = -4;
shadow-offset-y = -4;
shadow-opacity = 0.5;
fade = true;
fade-delta = 4;
opacity-rule = [
"90:class_g = 'URxvt'",
"95:class_g = 'Firefox'"
];
unredir-if-possible = true;
detect-rounded-corners = true;
✅ 不需要写多屏坐标
原因:
解决:
xrender-sync = true;
xrender-sync-fence = true;
或改用:
backend = "xrender";
unredir-if-possible = true;
如果还黑:
compton --unredir-if-possible &
compton 不支持 per-monitor DPI,只能:
xrandr --output eDP1 --scale 1x1
xrandr --output HDMI1 --scale 1.5x1.5
mkdir -p ~/.config/autostart
~/.config/autostart/compton.desktop
[Desktop Entry]
Type=Application
Exec=compton --config ~/.config/compton.conf
Hidden=false
X-GNOME-Autostart-enabled=true
Name=Compton
compton --config ~/.config/compton.conf -f --diagnostics
查看是否检测到多个 screen:
Multimonitor support: true
compton 已停止维护,建议用 picom:
git clone https://github.com/yshui/picom
cd picom
meson build
ninja -C build
sudo ninja -C build install
配置完全兼容。
如果你愿意,可以贴一下:
xrandr 输出我可以给你一份精确可用的 compton.conf。