在 CentOS 上自定义 Compton 的“主题”
在 CentOS 上,Compton 的“主题”主要通过配置文件定义窗口的阴影、模糊、透明度、淡入淡出以及后端渲染等效果。Compton 本身不管理GTK/图标主题,颜色与图标需配合 **GTK 主题(如 Arc、Numix)**与窗口管理器主题共同调整,以获得一致的观感。
安装与准备
- 安装 Compton(若仓库未提供,可考虑使用较新的替代实现如 picom):
- CentOS 7/8(EPEL):sudo yum install compton
- CentOS Stream 8/9:sudo dnf install compton
- 准备配置目录与文件:mkdir -p ~/.config && nano ~/.config/compton.conf
- 选择渲染后端:优先 glx(性能与效果更佳);如无 OpenGL 支持,可退回 xrender。
- 建议同时准备一套 GTK 主题(如 Arc/Numix)以统一窗口装饰与控件颜色,使 Compton 效果与之匹配。
配置文件结构与关键选项
- 全局开关
- backend = “glx” 或 “xrender”
- vsync = true/false(减少撕裂)
- shadow = true/false(窗口阴影)
- fade = true/false(淡入淡出)
- opacity = 0.0–1.0(全局不透明度,0 为全透明,1 为不透明)
- ignore_root = true(忽略根窗口透明度,部分桌面环境需要)
- 阴影细节(示例值可按需微调)
- shadow-radius = 4
- shadow-offset-x = 2
- shadow-offset-y = 2
- shadow-opacity = 0.3
- 模糊(背景/区域)
- blur-background = true
- [blur]
- method = gaussian
- size = 10
- deviation = 5.0
- 窗口规则(按类/名称设置不透明度或排除阴影)
- [opacity-rule]
- “90:class_g ‘Firefox’”
- “95:name ‘Terminal’”
- shadow-exclude = [ “class_g = ‘gnome-terminal’”, “class_g = ‘konsole’” ]
- 备注
- 配置文件为 INI 格式,注意层级与逗号、引号等语法细节。
应用与开机自启
- 手动重启 Compton(当前会话生效)
- killall compton && compton --config ~/.config/compton.conf &
- 使用 systemd 用户服务(登录即启动,推荐)
- 创建服务文件:nano ~/.config/systemd/user/compton.service
- 写入示例:
- [Unit]
- Description=Compton Compositor
- After=graphical-session.target
- [Service]
- ExecStart=/usr/bin/compton --config %h/.config/compton.conf
- Restart=always
- [Install]
- 启用并启动:
- systemctl --user daemon-reload
- systemctl --user enable --now compton.service
- 若使用系统级服务(全用户/多会话),可将服务文件置于 /etc/systemd/system/compton.service 并以 root 管理(不推荐与用户会话混用)。
主题化与性能建议
- 主题化思路
- Compton 负责“效果层”(阴影、模糊、透明度);GTK/图标主题决定“控件与图标层”。两者配合才能实现统一风格。
- 选择深色/浅色 GTK 主题后,再微调 Compton 的 opacity/blur 与 shadow-opacity,避免文字可读性与层次感下降。
- 性能与稳定性
- 优先使用 glx 后端;如遇撕裂可开启 vsync,若出现卡顿可尝试关闭或改用 xrender。
- 谨慎使用大半径模糊与高透明度;对已知性能开销大的应用(如视频播放器、重载浏览器标签)可通过 shadow-exclude/opacity-rule 降低效果强度。