如何自定义Linux Compton的渲染规则

自定义 Linux Compton 的渲染规则一 配置结构与生效方式配置文件采用 INI 语法,常用路径为:~/.config/compton.conf 或 /etc/xdg/compton.conf。也可通过命令行参数直接覆盖配置。修改后重启 Compton 生效,例如:先执行 pkill compton,再执行 compton –config ~/.config/compton.conf

自定义 Linux Compton 的渲染规则

一 配置结构与生效方式

  • 配置文件采用 INI 语法,常用路径为:~/.config/compton.conf/etc/xdg/compton.conf。也可通过命令行参数直接覆盖配置。修改后重启 Compton 生效,例如:先执行 pkill compton,再执行 compton –config ~/.config/compton.conf -b(后台运行)。若需开机自启,可将启动命令加入 ~/.xprofile~/.xinitrc

二 核心渲染规则配置

  • 下表汇总了与“渲染行为”最相关、最常用且可精细控制的规则类选项,便于按需组合使用:
规则类别 关键指令 作用与取值要点
合成后端 backend = “glx” 取值如 glxxrender 等;GPU 环境下优先 glx 获得更好性能与效果。
垂直同步 vsync = true/false“opengl-swc” 减少撕裂;根据驱动与显示器支持选择开启方式。
窗口透明度 opacity = 0.95active-opacity / inactive-opacityopacity-rule = [“90:class_g=‘Firefox’”, “100:class_g=‘Xephyr’”] 全局或按窗口设置不透明度;opacity-rule 用“权重:匹配条件”定制。
阴影渲染 shadow = trueshadow-radius / shadow-offset-x / shadow-offset-y / shadow-opacityshadow-exclude = [“name = ‘Notification’”, “class_g = ‘Conky’”] 控制阴影强度与范围;对通知、桌面组件等排除阴影更美观。
背景模糊 blur-background = trueblur-background-frame / blur-background-fixedblur-kern = “3x3box”blur-background-exclude = [“window_type = ‘dock’”, “window_type = ‘desktop’”] 对背景或特定窗口做模糊;可排除面板、桌面等不需要模糊的层。
淡入淡出 fading = truefade-delta / fade-in-step / fade-out-stepfade-exclude = [] 窗口出现/消失的过渡动画;对特定窗口禁用可避免干扰。
性能相关 glx-no-stencil / glx-fbo / glx-damage / unredir-if-possible 细粒度开关以降低开销或优化重绘;遇到渲染异常时可逐项尝试。

三 规则编写语法与匹配条件

  • 匹配条件写法:使用窗口属性进行匹配,常见键包括 class_g(通用类)、name(窗口名)、window_type(如 dockdesktopnotification 等)。示例:“class_g = ‘Firefox’”“name = ‘Terminal’”“window_type = ‘dock’”。可在规则前加权重用于优先级控制(如 opacity-rule)。
  • 规则列表:多数“排除/包含”类选项为数组,使用方括号与逗号分隔,例如:
    • shadow-exclude = [“name = ‘Notification’”, “class_g = ‘Conky’”]
    • blur-background-exclude = [“window_type = ‘dock’”, “window_type = ‘desktop’”]
  • 条件运算符:支持等于、正则匹配等,例如 class_g ?= ‘Notify-osd’(正则匹配类)。编写时注意引号与逗号的正确使用,避免语法错误。

四 实战示例

  • 目标:全局轻微透明;FirefoxTerminal 分别设定不透明度;通知Conky 无阴影;Dock/桌面 不做背景模糊;启用淡入淡出与垂直同步;使用 glx 后端。
  • 配置片段(保存为 ~/.config/compton.conf):
    backend = "glx"
    vsync = true
    fading = true
    fade-delta = 5
    fade-in-step = 0.03
    fade-out-step = 0.03
    
    # 全局与按窗口的不透明度
    opacity = 0.92
    active-opacity = 1.0
    inactive-opacity = 0.9
    opacity-rule = [
      "90:class_g = 'Firefox'",
      "88:name = 'Terminal'"
    ]
    
    # 阴影
    shadow = true
    shadow-radius = 12
    shadow-offset-x = -15
    shadow-offset-y = -15
    shadow-opacity = 0.5
    shadow-exclude = [
      "name = 'Notification'",
      "class_g = 'Conky'",
      "class_g ?= 'Notify-osd'"
    ]
    
    # 背景模糊
    blur-background = true
    blur-background-frame = false
    blur-background-fixed = false
    blur-kern = "3x3box"
    blur-background-exclude = [
      "window_type = 'dock'",
      "window_type = 'desktop'"
    ]
    
    # 可选:性能相关
    glx-no-stencil = true
    glx-fbo = true
    glx-damage = true
    unredir-if-possible = true
    
  • 使配置生效:
    pkill compton
    compton --config ~/.config/compton.conf -b
    

    如需开机自启,将启动命令加入 ~/.xprofile~/.xinitrc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1452746.html

(0)
派派
上一篇 2025-11-16
下一篇 2025-11-16

发表回复

登录后才能评论