Compton是一款轻量级窗口合成器,主要用于X11环境(部分版本支持Wayland),可实现窗口阴影、透明度、淡入淡出等视觉效果,同时保持较低的系统资源占用,适合搭配i3、Openbox等轻量级窗口管理器或GNOME、KDE等桌面环境使用。
确保系统已更新至最新版本,并安装必要依赖(以CentOS 7/8为例):
sudo yum update -y # CentOS 7
# 或 sudo dnf update -y # CentOS 8+
sudo yum groupinstall -y "Development Tools" # 安装开发工具链
sudo yum install -y cmake git libX11-devel libXext-devel libXrender-devel libXi-devel libXrandr-devel libXinerama-devel libXcursor-devel libXcomposite-devel libxdamage-devel libxtst-devel # 安装依赖库
sudo yum install -y compton # CentOS 7
# 或 sudo dnf install -y compton # CentOS 8+
git clone https://github.com/compton/compton.git
cd compton
mkdir build && cd build
cmake .. # 配置编译选项
make # 编译
sudo make install # 安装至系统目录
Compton的默认配置文件路径为~/.config/compton.conf
(用户级配置),若文件不存在可手动创建。系统级配置文件通常位于/etc/compton.conf
,但建议优先使用用户级配置。
以下是一个兼顾视觉效果与性能的基础配置(适用于X11环境):
# 后端选择(glx适用于X11,wayland适用于Wayland,优先选glx)
backend = "glx";
# 阴影设置
shadow = true; # 启用阴影
shadow-offset-x = 5; # 阴影水平偏移量
shadow-offset-y = 5; # 阴影垂直偏移量
shadow-radius = 15; # 阴影模糊半径
shadow-color = "rgba(0, 0, 0, 0.3)"; # 阴影颜色(RGBA格式)
# 阴影排除规则(避免某些窗口显示阴影,如Firefox、对话框)
shadow-exclude = [
".*", # 默认排除所有窗口
"[class='^Firefox$']", # 排除Firefox
"[class='^Chromium$']", # 排除Chromium
"[title='.*Firefox.*']", # 排除标题包含Firefox的窗口
"[title='.*Chromium.*']" # 排除标题包含Chromium的窗口
];
# 透明度设置
alpha-mode = "screen"; # 透明度模式(screen适用于大多数场景)
alpha-ignores = [
"[class='^Firefox$']", # 排除Firefox的透明度
"[class='^Chromium$']" # 排除Chromium的透明度
];
inactive-opacity = 0.9; # 非活动窗口透明度(0~1,1为不透明)
active-opacity = 1.0; # 活动窗口透明度
# 性能优化
vsync = true; # 启用垂直同步(减少屏幕撕裂)
frame-rate = 60; # 帧率限制(默认0为无限制,建议设为显示器刷新率)
glx-no-stencil = true; # 禁用模板缓冲区(提升性能)
glx-copy-from-front = true; # 从前面复制像素(减少渲染开销)
选项 | 作用 | 推荐值 |
---|---|---|
backend |
合成后端(glx/xrender/wayland),glx性能最佳,wayland适用于Wayland会话 | glx(X11)、wayland(Wayland) |
shadow |
是否启用窗口阴影 | true/false |
shadow-exclude |
排除阴影的窗口规则(支持正则表达式) | 排除浏览器、对话框等 |
alpha-mode |
透明度模式(none/screen/overlay),screen适用于大多数场景 | screen/none |
inactive-opacity |
非活动窗口透明度 | 0.8~0.9 |
vsync |
是否启用垂直同步(减少屏幕撕裂) | true |
frame-rate |
帧率限制(0为无限制) | 60(匹配显示器刷新率) |
backend-option |
后端特定选项(如glx-no-stencil、glx-copy-from-front) | 根据需求调整 |
通过命令行启动Compton(需指定配置文件路径):
compton -c ~/.config/compton.conf # 使用自定义配置文件
# 或 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/your_username/.config/compton.conf # 替换为你的配置文件路径
Restart=on-failure # 失败时自动重启
User=your_username # 替换为你的用户名
[Install]
WantedBy=multi-user.target # 多用户模式下启动
保存后执行以下命令启用并启动服务:
sudo systemctl daemon-reload # 重新加载Systemd配置
sudo systemctl enable compton # 启用开机自启动
sudo systemctl start compton # 立即启动Compton
查看Compton运行状态:
systemctl status compton # 查看服务状态
journalctl -u compton -f # 实时查看日志(调试用)
若出现卡顿,可通过以下方式优化:
shadow = false;
inactive-opacity = 1.0;
frame-rate = 30;
backend = "xrender";
wlr-compositor
或picom
(Compton的fork,支持Wayland)。exec --no-startup-id compton
以启动Compton。若遇到问题,可通过以下命令查看详细日志:
compton --verbose > /tmp/compton.log 2>&1 & # 输出日志至/tmp/compton.log
journalctl -u compton -f # 查看Systemd日志
通过以上步骤,可在CentOS上完成Compton的安装与配置,实现窗口视觉效果的优化。根据实际硬件配置与使用需求,可进一步调整配置选项以平衡效果与性能。