Compton配置中调整透明度效果的方法
Compton的配置文件通常位于用户目录下的.config/compton.conf(如~/.config/compton.conf)。若文件不存在,可通过文本编辑器(如nano、vim)手动创建:
nano ~/.config/compton.conf
若无需永久修改,可直接在启动Compton时通过命令行参数设置透明度:
--opacity参数设置所有窗口的透明度(0=完全透明,1=完全不透明),例如:compton --opacity 0.7
-b(后台模式)和-r(背景透明度)参数,例如:compton -b -r 0.5 -i 0.8
其中-r 0.5设置背景透明度为50%,-i 0.8设置聚焦窗口的透明度为80%。通过修改配置文件可实现永久生效的透明度设置,关键参数如下:
opacity = 0.8
active-opacity = 0.9 # 聚焦窗口透明度(90%)
inactive-opacity = 0.6 # 非聚焦窗口透明度(60%)
通过opacity-rule参数针对不同应用或窗口类型设置差异化透明度,格式为["条件:透明度", ...]。常见场景示例:
opacity-rule = [
"90:class_g 'Firefox'", # Firefox浏览器窗口透明度90%
"85:class_g 'XTerm'", # XTerm终端窗口透明度85%
"80:class_g 'Alacritty'", # Alacritty终端窗口透明度80%
"0:name *= 'zoom'", # Zoom会议窗口完全透明(需谨慎使用)
"0.7:class_g 'Dunst'", # Dunst通知中心透明度70%
"100:class_g 'discord'" # Discord窗口不透明(避免遮挡内容)
]
class_g:匹配窗口的类名(如Firefox、XTerm),可通过xprop | grep -i class命令获取目标窗口的类名;name:匹配窗口的标题(如包含“zoom”的窗口);focused:匹配当前聚焦的窗口(如name *? 'Typora' && focused表示聚焦的Typora窗口)。若某些窗口(如桌面面板、dmenu)不需要透明,可通过focus-exclude参数排除:
focus-exclude = "x = 0 && y = 0 && override_redirect true"
该配置排除屏幕左上角(坐标0,0)且属性为override_redirect(无窗口管理器管理)的窗口(如dmenu)。
若需实时调整已运行窗口的透明度,可使用transset-df工具(需提前安装,通常包含在xorg-transset包中):
transset-df 0.8 # 将鼠标当前指向的窗口透明度设置为80%
安装命令(以Debian/Ubuntu为例):
sudo apt install x11-utils
修改配置文件或命令行参数后,需重启Compton使更改生效:
pkill compton && compton -b -c ~/.config/compton.conf
若使用systemd管理Compton服务(如部分发行版的用户级服务),可通过以下命令重启:
systemctl --user restart compton
opacity-rule将其排除;