Linux Compton 透明度优化指南
一 基础配置与生效方式
- 配置文件位置:优先使用**~/.config/compton.conf**,如不存在可创建;也可放在**/etc/xdg/compton.conf**。修改后需重启 Compton 生效。
- 三种设置方式:
- 配置文件:在文件内写入如opacity = 0.85;
- 命令行:启动时加**–opacity 0.85**(临时生效);
- 环境变量:在**~/.bashrc或~/.zshrc中导出如COMPTON_OPACITY=0.85**(是否生效取决于你的启动方式/包装脚本)。
- 应用与热重载:
- 先结束旧进程:killall compton
- 再启动新进程:compton --config ~/.config/compton.conf &
- 建议:每次只调整少量参数并逐项验证,便于定位问题。
二 关键参数与透明度关系
- 渲染后端:将backend = glx(OpenGL)通常较xrender性能更好;前提是显卡驱动正确安装并启用。
- 同步与帧率:设置vsync = true可减少撕裂但可能略降帧率;根据显示器刷新率与显卡能力权衡。
- 全局不透明度:使用opacity = 0.85(取值0.0–1.0,越小越透明);过高会显著增加合成负担。
- 背景模糊:启用blur-background = true并配合**blur-kern “3x3box”**或高斯核可提升观感;模糊是性能大户,谨慎使用。
- 阴影开销:shadow = true会带来明显开销;在追求性能时可关闭或精简阴影。
- 根窗口:设置ignore_root = true可避免某些桌面环境下的根窗口透明度异常。
- 刷新率上限:设置frame-rate = 60(或匹配显示器刷新率)避免无意义重绘。
三 按应用与窗口的精细化控制
- 窗口规则:在**[opacity-rule]**中为不同应用设定不同不透明度,例如:
- 90:class_g ‘Firefox’(Firefox 窗口 90%)
- 95:name ‘Terminal’(终端窗口 95%)
- 排除与忽略:通过shadow-exclude与alpha-ignores减少特定应用/窗口的阴影与透明计算,例如排除Firefox的阴影:
- shadow-exclude = [ “.*”, “[class’.*Firefox’]”, “[title’.*Firefox’]” ]
- 提示:规则越精细,越能降低不必要的透明度/模糊计算,从而提升流畅度。
四 性能优化与故障排查
- 精简特效:在追求性能的场景下,优先关闭或降低blur-background、shadow与高透明度的使用。
- 资源限制:必要时用cpulimit限制 Compton 的 CPU 占用,例如:cpulimit -l 50 -p $(pgrep compton)。
- 自启动与守护:使用systemd管理 Compton,确保登录即启动并在崩溃后自动重启:
- ExecStart=/usr/bin/compton --config ~/.config/compton.conf
- Restart=always
- 驱动与兼容性:若启用glx后出现异常,先检查显卡驱动;也可回退到xrender验证是否为驱动/硬件适配问题。
五 示例配置
# 基础与渲染
backend = glx
vsync = true
frame-rate = 60
# 透明度与背景
opacity = 0.88
ignore_root = true
blur-background = true
blur-kern = "3x3box"
# 阴影(可按需关闭以提性能)
shadow = false
# 按应用设置不透明度
[opacity-rule]
90:class_g 'Firefox'
95:name 'Terminal'
# 可选:排除 Firefox 的阴影以减少开销
shadow-exclude = [ ".*", "[class'.*Firefox']", "[title'.*Firefox']" ]
- 使用方法:保存为**~/.config/compton.conf**,执行killall compton && compton --config ~/.config/compton.conf &;如需自启动,按上文创建systemd服务单元。