温馨提示×

如何利用Compton实现Linux桌面透明效果

小樊
31
2025-12-22 00:37:07
栏目: 智能运维

Compton 实现 Linux 桌面透明效果

一 环境准备与安装

  • 确认使用的是 X11 会话(Compton 是 X11 的窗口合成器,不适用于 Wayland)。
  • 在常见发行版安装 Compton:
    • Debian/Ubuntu 系:sudo apt update && sudo apt install compton
    • Fedora/RHEL 系:sudo dnf install compton
    • Arch 系:sudo pacman -S compton
  • 若提示找不到包,可安装社区维护的 fork 版本 picom(多数配置项与 Compton 兼容):sudo pacman -S picom 或发行版仓库中的 picom 包。

二 快速上手与最小配置

  • 生成配置文件:mkdir -p ~/.config && nano ~/.config/compton.conf
  • 最小可用示例(保存到 ~/.config/compton.conf):
    backend = "glx"
    vsync = true
    shadow = false
    opacity = 0.85
    ignore_root = true
    
  • 启动与热重载:
    • 前台调试:compton --config ~/.config/compton.conf
    • 后台常驻:compton --config ~/.config/compton.conf -b
    • 修改后重启:killall compton && compton --config ~/.config/compton.conf -b
  • 说明:开启 glx 后端可获得更好性能;opacity 为全局不透明度(取值 0.0–1.0,数值越小越透明);ignore_root=true 常用于避免桌面背景异常。

三 常用透明场景与配置要点

  • 按窗口类或标题设置透明度(精细控制):
    [opacity-rule]
    "90:class_g 'Firefox'"
    "90:name 'Terminal'"
    "100:class_g 'Xephyr'"
    
  • 排除特定窗口使其不透明(如弹出菜单、覆盖层):
    focus-exclude = "x 0 && y 0 && override_redirect true"
    
  • 启用背景模糊(需合成器支持,效果更柔和):
    [blur]
    method = "gaussian"
    size = 10
    deviation = 5.0
    
  • 提示:模糊与高透明度会增加 GPU/CPU 负担,可按设备性能适度调整或关闭阴影:shadow = false

四 桌面环境与自启动

  • 与桌面环境配合:
    • GNOME、KDE、Xfce 等自带合成器,可能与 Compton 冲突。建议在这些环境中关闭自带合成(如 GNOME 的“开启/关闭合成”),再启动 Compton。
    • KDE Plasma:可在“系统设置 → 工作区 → 窗口管理 → 窗口合成器”中选择或禁用内置合成器,改用 Compton。
  • 开机自启动(任选其一):
    • 会话自启动:将命令 compton --config ~/.config/compton.conf -b 加入桌面环境的“启动应用程序”。
    • systemd 用户服务(推荐,用户级):
      mkdir -p ~/.config/systemd/user
      nano ~/.config/systemd/user/compton.service
      
      写入:
      [Unit]
      Description=Compton Compositor
      After=graphical-session.target
      
      [Service]
      ExecStart=/usr/bin/compton --config %h/.config/compton.conf -b
      Restart=always
      
      [Install]
      WantedBy=graphical-session.target
      
      启用并启动:
      systemctl --user daemon-reload
      systemctl --user enable --now compton.service
      

五 故障排查与性能优化

  • 冲突与撕裂:若画面撕裂,开启 vsync=true;若性能不足,可尝试 vsync=false 并降低模糊/透明度复杂度。
  • 性能优化:优先使用 backend = “glx”;不需要时关闭 shadow;减少模糊半径与规则数量;必要时降低 frame-rate
  • 驱动与兼容性:确保显卡驱动支持 OpenGL/GLX;某些程序(如 dmenu)可通过 focus-exclude 保持不透明以避免遮挡。
  • 日志定位:调试阶段可临时提高日志级别,例如 compton --config ~/.config/compton.conf --log-level debug,根据输出调整配置。

0