一、前置准备:安装Compton 在开始配置前,需先安装Compton。根据Linux发行版选择对应命令:
sudo apt update && sudo apt install comptonsudo dnf install comptonsudo pacman -S comptoncompton --version验证是否安装成功。二、配置Compton透明度效果
Compton的配置文件通常位于~/.config/compton.conf(若不存在,手动创建):
mkdir -p ~/.config touch ~/.config/compton.conf 使用文本编辑器(如nano)打开文件:
nano ~/.config/compton.conf 在配置文件中添加以下核心参数,控制全局或特定窗口的透明度:
opacity = 0.8; # 范围0.0(完全透明)~1.0(完全不透明),0.8表示80%透明 active-opacity = 1.0; # 活动窗口(当前聚焦的窗口)完全不透明 inactive-opacity = 0.5; # 非活动窗口50%透明 background-opacity = 1.0; # 1.0表示背景完全不透明(避免桌面图标/壁纸透明) window-blur = 10; # 窗口模糊程度(数值越大越模糊) shadow-exclude = ["^.*\\(Firefox\\)$", "^.*\\(GIMP\\)$"]; # 排除Firefox、GIMP等应用不显示阴影 border-radius = 5; # 窗口圆角半径(像素) border-width = 1; # 边框宽度(像素) border-color = rgba(0, 0, 0, 0.5); # 边框颜色(RGBA格式,黑色半透明) 通过opacity-rule参数,可针对不同应用或窗口类型设置个性化透明度。常用规则示例:
opacity-rule = [ "90:class_g 'Firefox'", # Firefox浏览器窗口90%透明 "90:name 'Terminal'", # 终端窗口(名称含"Terminal")90%透明 "100:class_g 'Xephyr'", # Xephyr虚拟窗口100%不透明(避免嵌套透明问题) "0:_NET_WM_STATE@:32a * '_NET_WM_STATE_HIDDEN'" # 隐藏窗口完全不透明(防止窗口隐藏时透明) ]; 规则说明:
class_g:匹配窗口的类名(如Firefox、Chrome);name:匹配窗口的标题名(如Terminal、VSCode);_NET_WM_STATE@:32a:匹配窗口状态(如隐藏窗口)。若某些窗口(如桌面面板、dmenu)需要保持完全不透明,可使用focus-exclude或shadow-exclude参数:
focus-exclude = "x 0 && y 0 && override_redirect true"; # 排除屏幕左上角的dmenu窗口(常见于窗口管理器) shadow-exclude = ["^.*\\(dmenu\\)$", "^.*\\(Polybar\\)$"]; # 排除dmenu、Polybar等面板应用不显示阴影 三、启动与验证Compton
保存配置文件后,通过以下命令启动Compton(需指定配置文件路径):
compton -c ~/.config/compton.conf 若需后台运行,添加&符号:
compton -c ~/.config/compton.conf & 为避免每次登录都手动启动,可将Compton添加到系统服务(推荐):
sudo nano /etc/systemd/system/compton.service 添加以下内容:
[Unit] Description=Compton Compositor After=graphical.target [Service] ExecStart=/usr/bin/compton -c ~/.config/compton.conf Restart=always [Install] WantedBy=graphical.target 保存后,启用并启动服务:
sudo systemctl enable compton sudo systemctl start compton 打开配置文件中设置透明度的应用(如Firefox、Terminal),观察窗口透明度是否符合预期。若效果未显现,可尝试重启桌面环境(如GNOME下按Alt+F2输入r回车)。
四、注意事项
glxinfo | grep "OpenGL"验证),否则Compton可能无法正常工作;window-blur数值或关闭模糊效果(window-blur = 0);picom(Compton的fork,支持Wayland)。