Repository navigation
Home
MEKCCK edited this page Aug 15, 2026
·
3 revisions
Wayland 壁纸层上的音乐律动可视化 —— GPU 渲染 + QML 配置 + Lua 插件
- 快速开始 — 安装、运行、退出
- QML 配置 — 形状、三重环、星环、粒子、Widgets 全参数
- Widgets 详解 — 时钟/图片/圆环/条形频谱/专辑封面/模拟时钟
- Lua 插件 — 动态控制、频段变换、运行时调参
- 壁纸引擎 — 图片/视频壁纸、轮播、50+ 切换动画
- 多显示器 — 每屏独立渲染
- 常见问题 — FAQ
| 功能 | 说明 |
|---|---|
| 多重圆环 | 外环(频段律动)/ 中环(整体能量)/ 内环(低频 bass) |
| 形状系统 | ring / square / diamond / hexagon / triangle / star / flower,支持旋转、虚线 |
| 星环效果 | 连续半透明环带 + 密集粒子环绕 |
| 粒子系统 | burst / orbit / ring 三种模式,重力/阻力/淡入/闪烁/波动/自旋/拖尾 |
| Widgets | 时钟(数字/指针)、图片、圆环、条形频谱、专辑封面,自由放置 |
| 专辑封面 | MPRIS 实时读取当前播放歌曲封面,居中裁切方形 + 随乐伸缩 |
| 歌词 | 本地 LRC / QQ音乐 / Lrclib 在线获取,行级点亮高亮 + 上一/下一行 |
| 壁纸引擎 | 静态图片 / GStreamer 视频壁纸 / 多壁纸轮播,50+ GLSL 切换动画 |
| 条形频谱 | 经典均衡器效果,支持镜像、频段选择 |
| Lua 插件 | 动态增删 widget、运行时改配置、自定义频段算法 |
| 启动动画 | expand 展开,多种缓动(outCubic/outBack/elastic/bounce) |
| 多显示器 | 每台显示器独立渲染 |
| 音频 | PipeWire 监听默认输出 monitor(自动跟随耳机/音箱切换),实时 FFT |
┌─────────────────────────────────────────────┐
│ Lua 脚本层(可选) │
│ onUpdate / transformBands / pulse.* API │
└──────────────┬──────────────────────────────┘
│ 每帧调用
┌──────────────▼──────────────────────────────┐
│ Rust 内核 │
│ ├─ 音频:PipeWire monitor → FFT → 128 频段 │
│ ├─ 配置:QML 解析 → Config │
│ ├─ 渲染:wgpu (Vulkan) → wl-layer-shell │
│ ├─ 壁纸:图片/视频/轮播 + 50 种 GLSL 过渡 │
│ └─ Widgets:时钟/图片/封面/条形/圆环/歌词 │
└─────────────────────────────────────────────┘
- 语言:Rust + Lua(mlua)
- 渲染:wgpu 30(Vulkan 后端),全矢量 SDF + 抗锯齿
- 合成器接口:smithay-client-toolkit(wlr-layer-shell)
- 音频:cpal + realfft,PipeWire monitor 捕获
- 配置:自定义 QML 子集解析器
- 字体:rusttype(Noto Sans,3x 超采样)
- 图片:image crate(PNG/JPEG)
- 音乐:playerctl/MPRIS