Compton是一款轻量级窗口合成器(Compositor),主要用于X11/Wayland环境下实现窗口阴影、透明度、淡入淡出等视觉效果,提升桌面体验。在CentOS中,Compton并非默认安装,需通过包管理器手动安装。
sudo yum update -y # CentOS 7
sudo dnf update -y # CentOS 8/Stream
sudo yum install compton -y
sudo dnf install compton -y
compton --version # 查看Compton版本
Compton的配置文件分为系统级(影响所有用户)和用户级(仅影响当前用户):
/etc/compton.conf
(需root权限修改);~/.config/compton.conf
(推荐,无需root,优先级高于系统级)。若用户级配置文件不存在,可通过以下命令创建:
mkdir -p ~/.config
touch ~/.config/compton.conf
Compton的配置文件采用键值对格式,以下是常用参数的详细说明(按功能分类):
参数 | 类型 | 说明 | 推荐值 |
---|---|---|---|
backend |
字符串 | 指定合成后端,决定图形渲染方式: • glx :基于OpenGL,性能最佳(适用于大多数桌面环境,如GNOME、KDE);• xrender :基于X11,兼容性更好(适用于旧版系统);• wayland :适用于Wayland显示服务器(需Compton版本支持)。 |
glx (首选) |
vsync |
布尔/字符串 | 同步垂直刷新率,避免屏幕撕裂: • true /sync :启用同步(流畅但可能有延迟);• false :禁用同步(流畅但可能撕裂)。 |
sync (平衡流畅与延迟) |
glx-no-stencil |
布尔 | 禁用模板缓冲区,减少GPU内存占用(适用于集成显卡)。 | true (集成显卡推荐) |
glx-copy-from-front |
布尔 | 从前景缓冲区复制到背景,提升窗口移动性能。 | true |
参数 | 类型 | 说明 | 示例/推荐值 |
---|---|---|---|
shadow |
布尔 | 是否启用窗口阴影效果。 | false (禁用可提升性能) |
shadow-exclude |
数组 | 排除不需要阴影的窗口(正则表达式匹配): • 排除所有窗口: [".*"] ;• 排除特定应用(如Firefox): [".*Firefox.*"] 。 |
[".*", ".*Firefox.*", ".*GIMP.*"] |
opacity-rule |
数组 | 定义窗口透明度规则(格式:"属性 = 值, 透明度" ):• 属性可选: CLASS (窗口类名)、TITLE (窗口标题)、NAME (窗口名称);• 透明度范围: 0.0 (完全透明)~1.0 (完全不透明)。 |
["CLASS = 'Firefox'", "opacity = 0.9", "CLASS = 'GIMP'", "opacity = 0.8"] |
fade |
布尔 | 是否启用窗口淡入淡出效果(如最小化、最大化)。 | true |
fade-delta |
浮点数 | 淡入淡出动画速度(单位:秒),值越小动画越快。 | 0.05 (快速) |
参数 | 类型 | 说明 | 推荐值 |
---|---|---|---|
unredirect |
布尔 | 是否启用窗口重定向(优化全屏应用性能,如游戏、视频): • true :全屏应用时停止合成(释放GPU资源);• false :始终合成(兼容性好)。 |
false (兼容性优先) |
alpha-threshold |
浮点数 | 透明度阈值,低于此值的像素将被视为完全透明(优化复杂透明效果的性能)。 | 0.05 |
log-level |
字符串 | 设置日志级别(调试用): • debug :详细日志(用于排查问题);• info :常规信息(默认);• error :仅错误信息。 |
info (日常使用) |
使用配置文件启动:
compton -c ~/.config/compton.conf
前台运行(查看实时日志):
compton -c ~/.config/compton.conf -f
sudo nano /etc/systemd/system/compton.service
写入以下内容(替换为用户级配置文件路径):
[Unit]
Description=Compton Compositor
After=display-manager.service
[Service]
ExecStart=/usr/bin/compton -c ~/.config/compton.conf
Restart=on-failure
User=$USER
[Install]
WantedBy=multi-user.target
sudo systemctl enable compton.service # 开机自启动
sudo systemctl start compton.service # 立即启动
systemctl status compton.service # 查看运行状态
若Compton无法正常启动,可通过以下命令查看详细日志:
compton -c ~/.config/compton.conf --verbose 2> ~/compton.log
日志文件路径:~/compton.log
(可根据内容调整配置)。
shadow = false
、opacity = false
;backend = "glx"
且显卡驱动已正确安装;cpulimit
工具限制Compton的CPU占用(如cpulimit -l 50 -p $(pgrep compton)
)。以下是一个针对CentOS优化的Compton配置文件(用户级):
# 后端设置(优先选择glx)
backend = "glx";
# 阴影效果(禁用以提升性能)
shadow = false;
# 排除阴影的窗口(如Firefox、GIMP)
shadow-exclude = [".*Firefox.*", ".*GIMP.*"];
# 窗口透明度规则(Firefox透明度90%,GIMP透明度80%)
opacity-rule = [
"CLASS = 'Firefox'",
"opacity = 0.9",
"CLASS = 'GIMP'",
"opacity = 0.8"
];
# 淡入淡出效果(启用,速度适中)
fade = true;
fade-delta = 0.05;
# 同步垂直刷新率(避免撕裂)
vsync = "sync";
# 禁用模板缓冲区(节省GPU内存)
glx-no-stencil = true;
# 从前景复制到背景(提升窗口移动性能)
glx-copy-from-front = true;
# 日志级别(常规信息)
log-level = "info";
通过以上配置,可在CentOS上实现流畅的窗口合成效果,同时兼顾性能与视觉体验。根据实际桌面环境(如GNOME、KDE)和应用需求,可调整参数以获得最佳效果。