温馨提示×

如何用Compton配置实现透明度效果

小樊
46
2025-10-24 13:04:27
栏目: 编程语言

一、前置准备:安装Compton 在开始配置前,需先安装Compton。根据Linux发行版选择对应命令:

  • Debian/Ubuntu:sudo apt update && sudo apt install compton
  • Fedora:sudo dnf install compton
  • Arch Linux:sudo pacman -S compton
    安装完成后,通过compton --version验证是否安装成功。

二、配置Compton透明度效果

1. 创建/编辑配置文件

Compton的配置文件通常位于~/.config/compton.conf(若不存在,手动创建):

mkdir -p ~/.config touch ~/.config/compton.conf 

使用文本编辑器(如nano)打开文件:

nano ~/.config/compton.conf 

2. 基础透明度参数设置

在配置文件中添加以下核心参数,控制全局或特定窗口的透明度:

  • 全局透明度(所有窗口统一透明度):
    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格式,黑色半透明) 

3. 自定义窗口透明度规则(opacity-rule)

通过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:匹配窗口的类名(如FirefoxChrome);
  • name:匹配窗口的标题名(如TerminalVSCode);
  • _NET_WM_STATE@:32a:匹配窗口状态(如隐藏窗口)。

4. 排除特定窗口不透明

若某些窗口(如桌面面板、dmenu)需要保持完全不透明,可使用focus-excludeshadow-exclude参数:

focus-exclude = "x 0 && y 0 && override_redirect true"; # 排除屏幕左上角的dmenu窗口(常见于窗口管理器) shadow-exclude = ["^.*\\(dmenu\\)$", "^.*\\(Polybar\\)$"]; # 排除dmenu、Polybar等面板应用不显示阴影 

三、启动与验证Compton

1. 手动启动Compton

保存配置文件后,通过以下命令启动Compton(需指定配置文件路径):

compton -c ~/.config/compton.conf 

若需后台运行,添加&符号:

compton -c ~/.config/compton.conf & 

2. 设置开机自启动

为避免每次登录都手动启动,可将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 

3. 验证效果

打开配置文件中设置透明度的应用(如Firefox、Terminal),观察窗口透明度是否符合预期。若效果未显现,可尝试重启桌面环境(如GNOME下按Alt+F2输入r回车)。

四、注意事项

  • 显卡驱动:确保显卡驱动支持OpenGL和GLX(可通过glxinfo | grep "OpenGL"验证),否则Compton可能无法正常工作;
  • 桌面环境冲突:GNOME、KDE等桌面环境自带compositing管理器(如Mutter、KWin),可能与Compton冲突。需进入桌面环境设置,禁用自带compositing(如GNOME中“设置→外观→启用窗口效果”设为关闭);
  • 性能影响:透明度效果会增加显卡负载,老旧设备可能出现卡顿。可降低window-blur数值或关闭模糊效果(window-blur = 0);
  • Wayland兼容性:Compton仅支持X11会话,若使用Wayland(如GNOME默认会话),需更换为picom(Compton的fork,支持Wayland)。

0