如何在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以支持多显示器,提升窗口管理的视觉效果和体验。