温馨提示×

Linux Compton配置中透明度效果如何调整

小樊
42
2025-12-29 19:44:45
栏目: 智能运维

Linux Compton 透明度调整指南

一 配置文件方式与核心参数

  • 配置文件位置:创建或编辑文件 ~/.config/compton.conf。示例片段:
    # 全局默认透明度(0.0~1.0,数值越大越不透明)
    opacity: 0.9
    
    # 按窗口规则设置透明度(语法: "<透明度>:<匹配条件>")
    opacity-rule = [
      "90:class_g 'Firefox'",
      "90:name 'Terminal'",
      "100:class_g 'Xephyr'"
    ];
    
    # 排除特定窗口(如 dmenu 覆盖层保持不透明)
    focus-exclude = "x 0 && y 0 && override_redirect true";
    
    要点:
    • 数值采用浮点 0.0~1.0;也可用 0~100(如 90 表示 90% 不透明)。
    • 规则匹配常用字段:class_g(按应用类)、name(按窗口名)、type(窗口类型)、focused/!focused(聚焦/非聚焦)。
    • 若需聚焦窗口更清晰,可写:opacity-rule = [ “0.5:type *”, “0.8:class_g * focused”, “0.5:class_g * !focused” ];。

二 命令行方式与快速测试

  • 前台运行加载配置:compton -c ~/.config/compton.conf
  • 后台常驻:compton -b -c ~/.config/compton.conf
  • 快速全局透明度测试(示例):compton -b -r 0.5 -i 0.8
    • 说明:部分版本中 -r 用于设置全局透明度,-i 用于设置聚焦窗口透明度;不同构建可能参数名不同,建议优先使用配置文件方式以获得稳定可控的效果。

三 运行时动态调节窗口透明度

  • 使用 xprop 写入 _NET_WM_WINDOW_OPACITY(32 位 ARGB,A 通道取值 0~255)。示例将窗口设为 50% 不透明:
    1. 获取窗口 ID:xprop | grep WM_CLASS 或 xwininfo
    2. 设置透明度(示例窗口 ID 为 0x3a00007):
      xprop -id 0x3a00007 -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0x7FFFFFFF
      
      其中 0x7FFFFFFF ≈ 255 的 A 通道(约 50% 不透明)。也可结合脚本按窗口类批量设置。

四 常见问题与排错

  • 与桌面环境合成器冲突:如 GNOME/KDE 自带合成器,可能与 Compton 冲突,需在其设置中关闭自带合成或改用兼容方案。
  • 驱动与性能:确保显卡驱动支持 OpenGL/GLX;透明度与阴影会增加 GPU/CPU 负担,老旧硬件可适当降低透明度或关闭阴影。
  • 规则不生效排查:
    • 用 xprop 确认窗口的 WM_CLASS/WM_NAME 是否与规则一致(class_g 对“类”,name 对“窗口名”)。
    • 检查是否被 focus-exclude 或窗口的 override_redirect 属性排除。
    • 修改配置后重启 Compton:pkill compton && compton --config ~/.config/compton.conf。

0