Compton处理透明度问题的核心方法
Compton作为Linux系统下的X11窗口合成器,通过配置参数、规则匹配及命令行调整等方式实现窗口透明度控制,以下是具体处理步骤及技巧:
在调整透明度前,需确保系统环境满足要求:
sudo apt update && sudo apt install compton);sudo ubuntu-drivers autoinstall安装官方驱动,确保OpenGL/GLX功能正常。Compton的主配置文件通常位于~/.config/compton.conf(若不存在则手动创建)。关键参数如下:
alpha:全局透明度值(范围0.0~1.0,0.0为完全透明,1.0为完全不透明),例如alpha = 0.7表示全局70%透明度;shadow-opacity:阴影透明度(不影响窗口本身),例如shadow-opacity = 0.5表示阴影半透明;backend:建议设置为glx(支持更多特效,如模糊),例如backend = "glx"。修改后保存文件,重启Compton使设置生效(pkill compton && compton -b)。
启动Compton时通过--alpha参数直接指定透明度,例如:
compton --alpha 0.6
此方式无需修改配置文件,但重启Compton后会恢复默认值。
通过opacity-rule参数可根据窗口属性(类名、标题、状态)设置精细化透明度,是Compton处理透明度的核心功能。语法示例如下:
opacity-rule = [
"90:class_g = 'Firefox'", # Firefox窗口保持90%不透明(避免网页内容模糊);
"85:class_g = 'Alacritty'", # Alacritty终端85%不透明(保证文字可读性);
"0:name *= 'zoom'", # Zoom视频会议窗口完全透明(减少遮挡);
"60:name *? 'terminal' && !focused" # 非聚焦的终端窗口60%透明(突出当前工作窗口);
];
关键说明:
class_g:匹配窗口类名(如Firefox、Alacritty),可通过xprop | grep -i class命令获取(点击目标窗口即可显示);name:匹配窗口标题(如包含“Zoom”的窗口);focused/!focused:匹配窗口是否处于聚焦状态(如终端窗口聚焦时更清晰,非聚焦时更透明)。使用focus-exclude参数排除顶部面板、通知中心等不需要透明的窗口,避免影响操作体验。例如:
focus-exclude = "x 0 && y 0 && override_redirect true"
此配置会排除屏幕左上角的dmenu窗口(常见于窗口管理器)。
结合bg-blur参数开启背景模糊,使透明窗口后的内容更具层次感(需显卡支持)。配置示例如下:
backend = "glx"; # 必须使用GLX后端(支持模糊效果);
glx-no-stencil = true; # 优化模糊性能;
bg-blur = true; # 开启背景模糊;
模糊半径可通过bg-blur-radius参数调整(如bg-blur-radius = 5px)。
使用transset-df工具(通常包含在xorg-transset包中)实时调整窗口透明度。例如:
transset-df 0.7
运行后点击目标窗口,即可将其透明度设置为70%。需提前安装工具(sudo apt install xorg-transset)。
shadow-radius(阴影半径)或关闭bg-blur;picom(Compton的 fork,支持更多现代特性)或Wayland原生合成器。