温馨提示×

Compton配置文件解析:你需要知道的关键点

小樊
34
2025-12-29 19:53:59
栏目: 编程语言

Compton 配置文件解析的关键点

一 基础与环境

  • ComptonX11 的窗口合成器,在 Wayland 会话下通常不生效;常见渲染后端为 glx(或环境支持的 egl)与 xrender,驱动良好时优先 glx/egl 以获得更流畅的体验。
  • 配置文件常见路径:用户级 ~/.config/compton.conf(推荐),系统级 /etc/xdg/compton.conf;不存在可手动创建。
  • 配置语法支持两种风格(同一配置内不要混用):
    • 类 C 的键值对:key = value;(或 key value;);
    • 类 JSON 的块与数组:shadow-exclude { "class_g 'GtkMenu'"; }shadow-exclude = [ "class_g 'GtkMenu'", "class_g 'GtkDialog'" ];
  • 最小可用示例(保存为 ~/.config/compton.conf):
    backend = "glx";
    vsync = true;
    
    shadow = true;
    shadow-radius = 2;
    shadow-offset-x = 2;
    shadow-offset-y = 2;
    shadow-opacity = 0.5;
    
    fade = true;
    fade-delta = 10;
    
    background = "#000000";
    
    opacity-rule = [
        "90:class_g = 'Firefox'",
        "90:class_g = 'Alacritty'"
    ];
    
    shadow-exclude = [
        "class_g 'GtkMenu'",
        "class_g 'GtkDialog'",
        "class_g 'Notification'"
    ];
    
    以上键名与取值为常见用法,具体可用选项会随版本与构建略有差异。

二 关键参数速览

分类 参数 作用与取值要点
渲染与同步 backend 渲染后端:glx/egl(性能更佳,需驱动支持),xrender(兼容性更好)。
渲染与同步 vsync 垂直同步:true 减少撕裂但可能增加输入延迟;false 反之。
渲染与同步 frame-rate 合成刷新上限,例如 60,配合 vsync 使用。
阴影 shadow 是否启用阴影:true/false
阴影 shadow-radius / shadow-offset-x / shadow-offset-y / shadow-opacity 控制阴影模糊半径与偏移、不透明度(0.0–1.0)。
阴影 shadow-exclude 按窗口类/实例/EWMH 状态排除阴影(菜单、通知、Dock 等)。
淡入淡出 fade / fade-delta 启用淡入淡出与动画步长(毫秒),数值越小越顺滑、开销略增。
不透明度 opacity / opacity-rule 全局不透明度(0.0–1.0);按规则为指定应用设不透明度,如 "90:class_g = 'Firefox'"
背景与模糊 blur-background / blur-method / blur-size / blur-deviation 背景模糊开关、算法(如 gaussian)、半径与强度;是否可用取决于版本与构建。
排除合成 exclude 排除不需要参与合成的窗口(如 Conky、面板边框等)。
OpenGL 细节 glx-damage / glx-fbo / glx-no-stencil / glx-copy-from-front / glx-vsync 细粒度控制 OpenGL 渲染路径与同步策略,用于排障与性能微调。

三 启动与自启动

  • 手动启动与热重载:
    • 启动:compton --config ~/.config/compton.conf
    • 重启生效:pkill compton && compton --config ~/.config/compton.conf &
    • 后台模式:compton -b --config ~/.config/compton.conf &
  • Systemd 用户服务(推荐,避免权限与会话问题):
    • 创建文件:~/.config/systemd/user/compton.service
      [Unit]
      Description=Compton Compositor
      After=graphical-session.target
      
      [Service]
      ExecStart=/usr/bin/compton --config %h/.config/compton.conf
      Restart=always
      
      [Install]
      WantedBy=default.target
      
    • 启用并启动:systemctl --user daemon-reload && systemctl --user enable --now compton.service

四 性能优化与常见问题

  • 性能优化
    • 优先选择 glx/egl 后端;不需要时关闭 shadowfade 可显著降低开销;减少不必要的 opacity-rule/blur 规则。
    • 适度降低 blur-sizeframe-rate;遇到撕裂可开启 vsync,若对输入延迟敏感可在本机测试关闭后的效果。
    • 使用 exclude/shadow-exclude 排除通知、菜单、Dock、面板等不需要合成或阴影的元素;全屏游戏/视频可临时禁用合成以释放资源。
  • 故障排查
    • 配置错误导致黑屏/崩溃:在终端运行 compton 观察输出;或先用最小化配置逐项恢复。
    • 应用渲染异常(花屏、残影):切换 backend,或调整 glx-damage / glx-fbo / glx-no-stencil 等 OpenGL 选项。
    • 阴影异常:完善 shadow-exclude 规则,排除菜单、通知、Dock/面板等。
    • 版本差异:部分选项(如 bg_blurscreen_edge_blur)仅在特定构建中提供,若配置项不存在请先确认所用版本与构建配置。
    • 桌面环境差异:GNOME/KDE/Xfce 默认已有合成器,启用 Compton 可能与系统特效冲突,按需禁用系统合成器后再试。

0