Linux Compton 透明度设置指南
一 配置文件与关键参数
- 配置文件位置:优先使用用户目录的 ~/.config/compton.conf;如全局配置存在,可参考 /etc/xdg/compton.conf。不存在时可创建:mkdir -p ~/.config && touch ~/.config/compton.conf。
- 全局窗口不透明度:使用 opacity(浮点,0.0–1.0,数值越小越透明)。示例:opacity = 0.85; 表示整体窗口 85% 不透明。
- 按窗口规则设置:使用 opacity-rule,支持按 class_g、name 等匹配,语法为 “透明度:匹配条件”。示例:opacity-rule = [“90:class_g ‘Firefox’”, “90:name ‘Terminal’”, “100:class_g ‘Xephyr’”]; 表示 Firefox 与终端 90%,Xephyr 100%。
- 背景/桌面透明度:使用 background-opacity(浮点,0.0–1.0)。示例:background-opacity = 0.9; 表示桌面背景 90% 不透明。
- 淡入淡出动画:使用 fade = true/false; fade-delta = 10; 控制透明度变化平滑度。
- 根窗口:如遇到桌面背景异常透明,可设置 ignore_root = true;。
- 启动方式:编辑完成后可用 compton --config ~/.config/compton.conf 测试,或 compton -b 后台常驻。
二 快速示例配置
# ~/.config/compton.conf
backend = "glx"
vsync = true
shadow = true
fade = true
fade-delta = 10
# 全局不透明度(0.0–1.0)
opacity = 0.88
# 背景透明度(0.0–1.0)
background-opacity = 0.92
# 按窗口设置
opacity-rule = [
"90:class_g 'Firefox'",
"90:name 'Terminal'",
"100:class_g 'Xephyr'"
]
# 忽略根窗口
ignore_root = true
- 应用方式:保存后执行 compton --config ~/.config/compton.conf(或 compton -b 后台运行)。
三 按应用与状态精细化控制
- 聚焦/未聚焦差异化:在 opacity-rule 中使用 focused 与 !focused 区分状态。示例:opacity-rule = [“90:name *? ‘VIM’ && focused”, “60:name *? ‘VIM’ && !focused”]; 表示 VIM 聚焦 90%、未聚焦 60%。
- 临时弹出层不透明:对 dmenu 等 override_redirect 窗口,可用 focus-exclude 排除,使其不受透明度影响。示例:focus-exclude = “x 0 && y 0 && override_redirect true”;。
四 命令行临时调整与生效方式
- 后台启动并指定配置:compton -b -c ~/.config/compton.conf。
- 热重载:先结束旧进程再启动新进程,例如 pkill compton && compton -b;如使用用户级 systemd:systemctl --user restart compton。
- 注意:部分桌面环境(如 GNOME)自带合成器,可能与 Compton 冲突,需先禁用自带合成器或调整其设置。
五 常见问题与排查
- 会话限制:Wayland 会话下 Compton 通常不可用,请切换到 Xorg 会话;Wayland 可考虑其他复合器。
- 性能与兼容性:显卡驱动需支持 OpenGL/GLX;如卡顿或异常,可尝试切换后端(如 backend = “xrender”)并减少阴影/动画。
- 桌面背景异常:启用 ignore_root = true 以忽略根窗口透明度影响。
- 规则不生效:先用 xprop 确认窗口的 WM_CLASS/WM_NAME,再调整 opacity-rule 的匹配条件。