Repository navigation
Releases: amtoaer/lyrune
Release list
Lyrune v1.7.1
一个小更新:
- 每张排行榜卡片下面都会有一行“每周更新”的提示,过于重复影响观感,移除;
- 现在随机播放、循环模式会持久化,不再于每次启动重置;
- 随机播放、循环模式作为较常使用的功能,不应该过于强调开启状态,因此移除了开启时的常显背景与下方的圆点标记;
- 修改随机播放逻辑,现在会提前生成完整的随机队列而非每次切歌临时随机;
- 关闭循环并播放至最后一首时点击下一首,过去只有播放条会跳到末尾,现在还会终止音频播放并标记停止状态;
- 修复窗口关闭并重新从托盘打开后,输入框光标可能不再出现的问题。
What's Changed
- fix: 移除排行榜卡片的重复更新说明 by @amtoaer in #50
- fix: 持久化随机播放与循环模式 by @amtoaer in #51
- fix: 修改随机播放逻辑,修复队尾点击下一首时播放不中断的问题 by @amtoaer in #52
- fix: 修复窗口重建时输入框焦点、光标可能异常 by @amtoaer in #53
- fix: 减弱随机和循环按钮的选中样式 by @amtoaer in #54
Full Changelog: v1.7.0...v1.7.1
Lyrune v1.7.0
该版本引入了一些实用功能。
支持微信、QQ 登录,其中 QQ 额外支持快捷登录,可通过已登录的 QQ 账号直接鉴权
快捷登录来自 @sukanka 的 PR,感谢 ta 的贡献。
扫码登录部分,我发现 QQ 音乐、QQ、微信三个平台的二维码分辨率、边距都不统一,看起来很不协调。
因此我在客户端内引入了二维码库,先在客户端内扫出 url 再统一为 url 生成二维码,这样可以保证三个平台二维码样式统一,后续如果想的话还可以给二维码做些花里胡哨的样式(初版先保留普通黑白)。
一些简单的预览效果:
- QQ 快捷登录
- 扫码登录
主页引入每日三十首
调了半天样式,现在这样勉强看得过去。
引入排行榜
可通过点击主页推荐右上角进入排行榜。
样式完全参考了 QQ 音乐 Linux 客户端。要注意排行榜本来有六个,但其中一个是 MV 榜,程序无法支持。剩下五个不太好布局,就把一个不重要的“听歌识曲榜”干掉凑了个偶数,如果有用户真的需要的话可以提 issue,我再考虑五个怎么能优化排布。
同样支持了排行榜的选期功能:
BUG 修复
这版本修复了几个小 BUG:
- 输入框漏掉绘制,导致光标、输入字符不显示或者丢失渲染。
- 修复上一张旧歌词背景(单张)在过渡动画完毕后仍然参与绘制,并修复历史歌词背景图(累计)不释放的泄漏问题,由于每首歌仅泄漏 KB 级因此一直没有发现。
- 新版本检测部分,现在使用
releases/latest检测重定向目标而非检测 atom,这可以避免新版本处于构建中或还未写完 Release Note 的草稿状态时被提前检测到,更符合用户预期。
What's Changed
- fix: 更新 GPUI 补丁修复输入框漏绘 by @amtoaer in #43
- fix: 修复旧歌词背景仍然参与绘制且不释放的泄漏问题 by @amtoaer in #45
- feat: 支持排行榜相关功能 by @amtoaer in #46
- feat: 支持微信、QQ 扫码与快捷登录,新增每日 30 首推荐 by @amtoaer in #47
- fix: 通过正式发布重定向检查新版本 by @amtoaer in #48
Full Changelog: v1.6.0...v1.7.0
Lyrune v1.6.0
感谢 OpenAI,我的降智账号终于恢复了。(为什么是感谢?因为我半年的 pro 20x 是 codex for open source 送的,还要啥自行车)
在狠狠 push 了 astra xhigh fast mode 两天,用掉 pro 20x 的 70% 周额度后,新版本 Lyrune 已就绪。
代码重构和上游 UI 库更新
该版本使用 /goal 整理、重构了整个代码库,并拆分了过去复杂的 LyruneView 结构。现在的代码应该更具可维护性,过程中也做了一些小优化,日常使用应该会感觉流畅一些。
此外,GPUI 和 GPUI Component 已同步上游更新,引入了上游的优化和 bug 修复。
一般页的调整
这版本调整了一些页面的外观和行为,包括:
-
歌单中的时间列现在会固定右对齐,歌曲列和专辑列固定 1:1,不再允许用户手动调整而是跟随窗口宽度自适应变化。
recording_2026-10-15_18-22-42.mp4
-
专辑中的歌曲不再显示封面(因为专辑内的所有歌曲都使用专辑封面,没必要一个个重复显示)。
-
歌手页歌曲现在采用普通歌单的 Table(但隐藏了表头)而非使用单独的 List,统一 UI。
-
歌手页“歌曲”、“专辑”的“查看更多”按钮已被移除。作为替代,标题右侧引入了右箭头,点击可以进入该歌手歌曲、专辑的单独页面。这样可以用上虚拟列表,交互也更方便。
歌词页的调整
歌词页修改了配色逻辑和歌词间距处理。
配色逻辑
过去歌词、窗口控制按钮的配色逻辑是:
- 固定为歌曲封面叠加 40% 的主题背景色;
- 使用主题前景色做基础颜色,在所显示的区域取一个标志背景色,向黑、白两个方向过渡直到对比度满足可读性要求。
这听起来很合理,但实际会有不少问题。比如窗口控制按钮和歌词所处位置如果颜色差距较大,很可能会一边黑一边白;或者为了满足可读性要求拉高对比度,让前景色过于趋近黑、白而失去主题特征,反而看起来丑丑的。
在 #23 中我尝试处理了一下,期望优先浅色前景色可以帮助掩盖这些问题,但事实说明治标不治本,还是有很多场景会有不太合适的配色。
该版本我采用了一个相反的策略,将歌词、窗口控制按钮固定为主题前景色,动态调整的部分换成了背景色。具体来说:
- 引入一个可配置的最小主题背景色叠加比例,默认 40%;
- 程序从这个最小比例开始尝试叠加,直到封面背景色的彩度(可以简单理解为鲜艳程度)位于我们设定的上限以内,默认是 0.12;
- 保守地评估主题前景色和封面背景色的对比度,如果对比度低于我们设定的对比度,那么会通过降低封面背景色明度的方式提高对比度,默认是 4:1。
可以通过一个例子做对比:
| 之前 | 之后 |
|---|---|
![]() |
![]() |
可读性有明显提升。
歌词间距处理
过去我们总是为一行歌词预留相同的高度,无论它是否包含 ruby 或翻译,这导致歌词在华语歌曲显得尤其稀疏,视觉效果不好。
新版本我们为歌词引入了留白,并根据歌词主体之间的基础距离做布局。添加 ruby 或翻译时优先使用歌词主体的留白,如果不够会“撑开”一些额外的空间以保证间距,个人测试下来这样实现是最协调的。
同样可以做个对比:
| - | 之前 | 之后 |
|---|---|---|
| 华语 | ![]() |
![]() |
| 其他 | ![]() |
![]() |
零星的优化与修复
- 修复歌词页顶部几个像素高的小横条;
- 支持配置播放进度条的帧率;
- 按住播放进度条拖动不再停止歌词播放;
- 按住播放进度条拖动时如果鼠标偏离进度条,时间提示会继续显示而非直接消失。
What's Changed
- refactor: 重组应用与协议模块并完善缓存和异步状态处理 by @amtoaer in #37
- refactor: 拆分 LyruneView,优化界面刷新与资源缓存 by @amtoaer in #38
- feat: 完善歌手与专辑浏览,优化歌曲表格和卡片布局 by @amtoaer in #39
- fix: 调整歌词页的取色逻辑,修复歌词页上边缘黑边 by @amtoaer in #40
- feat: 行高间距考虑歌词内容 by @amtoaer in #41
- feat: 根据彩度与对比度自适应调整歌词背景混色 by @amtoaer in #42
Full Changelog: v1.5.0...v1.6.0
Lyrune v1.5.0
最近 ChatGPT 20x 账号被降智了,Astra 变成 Luna,难顶。
这是一次艰难的发版——由于上述降智问题,本就飘忽不定的代码质量变得更加扑朔迷离。在账号恢复并使用 /goal 全盘重构一波之前,恐怕我很难有耐心进行人工代码 review 了(x
该版本的主要变更有:
部分页面的 UI 调整
- 统一歌单和歌手的 header 布局
- 统一各页面的左右边距
- 移除搜索页和搜索栏重复的 title 部分
- 搜索页“单曲”换用和歌单相同的 table 而非 list
- ...
搜索页的滚动改进
搜索页的四个分类现在均采用虚拟列表,这应该可以略微改善滚动性能和占用。
此外现在搜索页历史会保存滚动位置,前进后退索引时会恢复滚动位置而非固定在开头。
引入加密歌曲处理
过去程序无法处理歌单中的加密歌曲(如视奸、兔子洞),搜索接口也不会返回这类加密歌曲。
新版本改用移动端搜索接口,现在可以正常搜索到加密歌曲:
并引入了对加密歌曲的流式播放支持:
出于版权保护的考虑,lyrune 仅会在缓存中保留原始加密音频,运行时请求 key 并在内存中解码。
优化音质选择与错误处理
包含两点:
- 用户指定的音质小于歌曲的最低音质时,程序会尝试使用歌曲最低音质
- 歌曲播放出现错误时,报错后会自动续播下一曲
引入自动更新检查
引入默认打开的自动更新检查,会在程序运行 3s 后检查是否存在新版,如存在则发送一条应用内通知。
用户可以在设置中手动触发更新检查,也可以关闭检查自动更新。
What's Changed
- feat: 微调页面,修改搜索页布局样式并为查询结果使用虚拟列表 by @amtoaer in #32
- feat: 支持加密音频播放,并使用移动端搜索接口 by @amtoaer in #28
- fix: 优化音质回退与播放错误跳过 by @amtoaer in #33
- feat: 增加自动检查更新 by @amtoaer in #34
Full Changelog: v1.4.1...v1.5.0
Lyrune v1.4.1
一个较小的 patch 版本,包括:
- 调整了歌词页的前景取色逻辑,现在会更倾向于使用可读性更好的白色。
- 修复歌单中存在本地歌曲时的报错。
- 支持可变字体,支持调整歌词字号与行间距,改善歌词页内进度条的流畅度(目前歌词页外和过去保持一致,后续会继续调整优化)。
- 音质弹框翻转顺序,由于框体向上展开,从下到上音质从低到高更合理一些。
- 尝试在 release 产物中加入 debian 系 deb、centos 系 rpm 和 arch 系 pkg.tar.zst 的预构建包,并调整编译参数优化构建产物大小。
What's Changed
- feat: 调整歌词背景前景色选择 by @amtoaer in #23
- fix: 跳过歌单中的本地歌曲 by @amtoaer in #25
- feat: 支持调整歌词字号与行间距,修复进度条与可变字体粗体 by @LangYa466 in #26
- chore: 增加多发行版产物,并自动更新 AUR by @amtoaer in #29
- fix: 反转播放音质菜单顺序 by @amtoaer in #30
New Contributors
- @LangYa466 made their first contribution in #26
Full Changelog: v1.4.0...v1.4.1
Lyrune v1.4.0
该版本引入的变更大都经过了我的常规 code review(可能是提升代码质量的第一步),主要包括:
支持客户端窗口装饰
引入“窗口装饰”设置,可选客户端窗口装饰,选择后应用会负责绘制窗口控制按钮、边框,并允许在标题区域、歌词页按住鼠标左键拖动窗口。
允许主题、托盘图标跟随系统亮暗色切换,并引入若干新主题
主题偏好、托盘图标选择为“系统”时,会跟随系统的亮暗色自动变化。
recording_2026-09-15_23-46-02.mp4
此外添加了几个主题。
播放音乐时抑制系统进入睡眠状态
在音乐播放时,程序会尝试通过 XDG Desktop Portal 或 systemd-logind 阻止系统进入睡眠状态。
尝试修复了 QQ 音乐的凭据刷新
QQ 音乐会返回 3 天有效的 key,过去由于刷新流程错误,每隔三天都会退出登录。
新版本尝试修复了这部分刷新流程,本地测试 QQ、微信渠道均能正确通过刷新(不过可能是因为刚登录就刷新的缘故,token 有效期并未后延),但总之比之前完全不能刷新要好得多。
发版后观望三天,有问题会继续修。
更多变更可参考下面的内容。
What's Changed
- 【CI】为 Lyrune 实现 AutoBuild AppImage by @Ne0W0r1d in #3
- feat: 支持客户端装饰 by @amtoaer in #12
- feat: 界面主题、托盘图标允许跟随系统亮暗色切换 by @amtoaer in #13
- fix: 修复切换歌曲时的 MPRIS 状态显示 by @amtoaer in #15
- feat: 歌曲播放时抑制系统睡眠 by @amtoaer in #14
- feat: 添加 Ayu Mirage、One Dark 等主题 by @amtoaer in #16
- feat: 优化错误通知展示 by @amtoaer in #17
- feat: 修复凭证刷新并改进凭据管理流程 by @amtoaer in #18
- feat: 优化歌词页展开、关闭的动画效果与性能 by @amtoaer in #20
- feat: 调整默认设置与列表分页样式 by @amtoaer in #21
- fix: 修复歌词页收起动画中歌词滚动暂停 by @amtoaer in #22
New Contributors
Full Changelog: v1.3.0...v1.4.0
Lyrune v1.3.0
该版本:
- 修复 Linux 下设置为自启动应用时托盘图标不注册的问题。
- 修改了一些鉴权行为,与上游的参考实现做对齐,并尽量根据错误码给出实际的错误信息。
- 添加了一项设置用于修改托盘图标的亮暗色。
目前主要功能已经实现,没有快速迭代的需求了,因此这个版本应该是最后一个 vibe 的版本,后续版本会逐步进行人工 review。
Full Changelog: v1.2.0...v1.3.0
Lyrune v1.2.0
图片 resize 持久化为缩略图再加载进内存,调整历史页、播放队列结构以复用底层数据。
另外将图片缓存、页面历史上限开放为设置,方便用户根据本机情况自行调整,较大的值会增加内存占用但可以减少加载。
在默认 36 张 / 10 页 的配置下,Lyrune 的内存在 htop 内占用可以稳定在 110M 以内。
Full Changelog: v1.1.0...v1.2.0
Lyrune v1.1.0
引入图片 LRU 淘汰策略,避免加载过的图片常驻内存。
现在程序内存不再随歌单图片的大量加载而线性增长,本地测试几乎不会超过 150M。
Full Changelog: v1.0.0...v1.1.0
Lyrune v1.0.0
Full Changelog: https://github.com/amtoaer/lyrune/commits/v1.0.0





