如何在CentOS中配置Compton以支持多显示器
首先确保系统已更新,并安装Compton及其依赖项。根据CentOS版本选择对应的包管理器(CentOS 8及以上推荐使用dnf,7及以下使用yum):
# CentOS 8/Stream 9+(使用dnf)
sudo dnf update -y
sudo dnf install -y compton
# CentOS 7及以下(使用yum)
sudo yum update -y
sudo yum install -y compton
Compton的主配置文件位于用户主目录下的.config/compton.conf,需手动创建或修改:
mkdir -p ~/.config
nano ~/.config/compton.conf
在配置文件中添加以下基础配置(适用于多显示器场景):
# 使用GLX渲染引擎(支持硬件加速,多显示器必备)
backend = "glx";
# 关闭窗口阴影(提升多显示器性能,避免阴影计算开销)
shadow = false;
# 排除特定应用的阴影(可选,如Firefox等浏览器)
shadow-exclude = [
".*",
"[class='.*Firefox']",
"[title='.*Firefox']"
];
# 关闭透明度混合(进一步提升性能)
alpha-mode = "none";
alpha-ignores = [
".*",
"[class='.*Firefox']",
"[title='.*Firefox']"
];
# 启用GLX优化选项(减少渲染延迟)
glx-no-stencil = true;
glx-copy-from-front = true;
shader-file = null;
shader-frag = null;
shader-vert = null;
# 留空xrandr参数(由xrandr独立配置显示器布局)
xrandr-args = "";
说明:多显示器环境下,关闭阴影和透明度可显著降低Compton的资源占用,避免因特效导致的卡顿。
Compton本身不直接管理显示器物理布局,需通过xrandr工具设置显示器连接方式(扩展/复制/环绕)。
查看当前显示器信息:
xrandr --query
输出示例:
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 287mm
DP-1 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 510mm x 287mm
eDP-1 connected primary 1920x1080+3840+0 (normal left inverted right x axis y axis) 310mm x 170mm
(注:HDMI-1、DP-1为外接显示器,eDP-1为笔记本内置屏幕)
设置扩展模式(推荐):
将HDMI-1放在内置屏幕右侧,DP-1放在HDMI-1右侧(三屏横屏扩展):
xrandr --output HDMI-1 --auto --right-of eDP-1
xrandr --output DP-1 --auto --right-of HDMI-1
其他常见模式:
xrandr --output HDMI-1 --auto --same-as eDP-1
xrandr --output DP-1 --auto --same-as eDP-1
xrandr --output HDMI-1 --auto --right-of eDP-1
xrandr --output DP-1 --auto --right-of HDMI-1
xrandr --output HDMI-1 --set "Monitor Orientation" "right"
提示:--auto表示自动选择显示器最佳分辨率,--right-of/--left-of/--above/--below用于指定相对位置。
通过配置文件启动Compton,确保其读取多显示器设置:
compton -c ~/.config/compton.conf
说明:若启动时出现黑屏、闪烁等问题,可通过-D 1参数开启调试模式(查看日志):
compton -c ~/.config/compton.conf -D 1
为避免每次登录都手动启动Compton,可创建systemd服务:
sudo nano /etc/systemd/system/compton.service
添加以下内容(替换为你的实际配置文件路径):
[Unit]
Description=Compton Window Composer
After=display-manager.service # 确保在显示管理器启动后运行
[Service]
ExecStart=/usr/bin/compton -c /home/你的用户名/.config/compton.conf # 替换为你的家目录路径
Restart=on-failure # 失败时自动重启
[Install]
WantedBy=multi-user.target # 多用户模式下启动
启用并启动服务:
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl enable compton.service # 开机自启动
sudo systemctl start compton.service # 立即启动
验证服务状态:
systemctl status compton.service
若显示“active (running)”,则表示Compton已成功启动。
compton-trans命令(若有),或通过桌面环境的“进程管理器”查看Compton进程是否存在。journalctl查看Compton日志:journalctl -u compton.service -b # 查看本次启动的日志
backend "glx",改用backend "xrender"(软件渲染,兼容性更好,但性能较差);或添加--backend xcb参数。shadow、opacity),增加glx-no-stencil和glx-copy-from-front为true。compton --debug查看详细错误信息。通过以上步骤,你可以在CentOS系统中成功配置Compton以支持多显示器,提升窗口管理的视觉效果和体验。