Releases: YunyuVv/AppLaunchpad
Releases · YunyuVv/AppLaunchpad
Release list
v0.4.2
Changelog
本文件只放「当次要发布的版本」的说明(不含历史)。发布前把新版本条目写在这里,供 release-gh.sh 作为 Release 说明使用;完整历史见 CHANGELOG-ALL.md。
v0.4.2
- 性能优化(图标缓存与内存):
- 图标磁盘缓存持久化:重启 / 缓存淘汰后从磁盘毫秒级读取,根治「过一段时间首开卡」。
- 应用列表字典化 O(1) 查找,消除翻页主线程每页约 21k 次字符串比较导致的卡顿。
show()削减同步税:setFrame display:false+presentationOptions判等守卫;冷缓存主动预热当前页 + 相邻页。- 修复图标缓存内存暴涨(曾飙到 ~6GB):改用
NSBitmapImageRep真实像素缩放 + 准确 cost + 预热并发上限 8;图标位图 192px 并对 NSCache 收紧,进程内存稳定在 ~110MB。
- 新增「扫描目录」设置面板:可在设置中查看 / 添加 / 删除自定义 App 扫描目录,改动后立即重新扫描生效。
- 扫描规则贴合原生启动台:移除
LSUIElement过滤(Docker Desktop 等菜单栏 App 现在可显示);/System/Applications目录下全部应用均显示,用户目录仍过滤真正无界面的后台守护进程。
v0.4.1
- 根除冷启动首屏 / 翻页卡顿:
IconCache.cachedIcon改为纯查询缓存——未命中返回nil,绝不在主线程同步取图标 / 离屏缩放;未命中项改由AppIconView.task(await IconCache.shared.icon)与FolderThumbnailView的异步 loader 后台补齐。图标预热prewarm优先级由.utility提升到.userInitiated,并去掉loadApps/refreshApps外层冗余的Task.detached(.utility)包裹,缩短冷启动到图标就绪的窗口。代价:极端情况下(冷启动且预热未完成即翻页)极少数图标先显示占位、后淡入,优于「卡一下」。
v0.4.0
- 扫描阶段跳过同步 Spotlight:App 显示名先用 bundle 本地化名即时显示,系统中文名(Photos→「照片」等)在后台异步补查就绪后自动刷新。
- 图标预缩放后缓存:首屏与翻页直接命中缓存、不在主线程做磁盘 IO。
v0.3.0
- 导入原生 macOS 启动台布局:设置页「布局」新增两个互斥胶囊开关——「使用原生 macOS 启动台布局」与「使用本项目默认布局」。开启「原生」即从系统启动台数据库(只读)导入顺序与文件夹结构,覆盖前自动备份当前布局,可随时还原。
- 导入绝不丢 App:保序重流后,自动把本机已安装、但原生库未收录的 App(如后续安装、包裹型 App)追加到末页;导入后新安装的 App 由应用监听
/Applications自动补全,无需再次手动导入。 - 失败不影响现有功能:无数据库 / 解析异常 / 空结果都只返回错误、不写入布局,搜索、拖拽、翻页等完全不受影响;sqlite 以只读方式打开,对系统数据零风险。
- App 体积零增长:用系统自带
import SQLite3(动态链接 macOS 自带的libsqlite3.dylib),不打包任何第三方库、也不把 8.5MB 原生数据库打进 App。
v0.2.1
- 分发方案修正:未签名的
install.command被 Gatekeeper 拦截(弹窗只有"完成 / 移到废纸篓",没有"仍要打开"按钮,无法放行),改为 DMG 内附README.txt,三步安装:① 拖 AppLaunchpad.app 到 /Applications;② 终端执行sudo xattr -r -d com.apple.quarantine /Applications/AppLaunchpad.app;③ 首次打开点"打开"。首次启动后到 系统设置 → 隐私与安全性 → 辅助功能 中开启 AppLaunchpad(全局快捷键 ⌥+Space 必需)
v0.4.1
Changelog
本文件只放「当次要发布的版本」的说明(不含历史)。发布前把新版本条目写在这里,供 release-gh.sh 作为 Release 说明使用;完整历史见 CHANGELOG-ALL.md。
v0.4.1
- 根除冷启动首屏 / 翻页卡顿:
IconCache.cachedIcon改为纯查询缓存——未命中返回nil,绝不在主线程同步取图标 / 离屏缩放;未命中项改由AppIconView.task(await IconCache.shared.icon)与FolderThumbnailView的异步 loader 后台补齐。图标预热prewarm优先级由.utility提升到.userInitiated,并去掉loadApps/refreshApps外层冗余的Task.detached(.utility)包裹,缩短冷启动到图标就绪的窗口。代价:极端情况下(冷启动且预热未完成即翻页)极少数图标先显示占位、后淡入,优于「卡一下」。
v0.4.0
- 扫描阶段跳过同步 Spotlight:App 显示名先用 bundle 本地化名即时显示,系统中文名(Photos→「照片」等)在后台异步补查就绪后自动刷新。
- 图标预缩放后缓存:首屏与翻页直接命中缓存、不在主线程做磁盘 IO。
v0.3.0
- 导入原生 macOS 启动台布局:设置页「布局」新增两个互斥胶囊开关——「使用原生 macOS 启动台布局」与「使用本项目默认布局」。开启「原生」即从系统启动台数据库(只读)导入顺序与文件夹结构,覆盖前自动备份当前布局,可随时还原。
- 导入绝不丢 App:保序重流后,自动把本机已安装、但原生库未收录的 App(如后续安装、包裹型 App)追加到末页;导入后新安装的 App 由应用监听
/Applications自动补全,无需再次手动导入。 - 失败不影响现有功能:无数据库 / 解析异常 / 空结果都只返回错误、不写入布局,搜索、拖拽、翻页等完全不受影响;sqlite 以只读方式打开,对系统数据零风险。
- App 体积零增长:用系统自带
import SQLite3(动态链接 macOS 自带的libsqlite3.dylib),不打包任何第三方库、也不把 8.5MB 原生数据库打进 App。
v0.2.1
- 分发方案修正:未签名的
install.command被 Gatekeeper 拦截(弹窗只有"完成 / 移到废纸篓",没有"仍要打开"按钮,无法放行),改为 DMG 内附README.txt,三步安装:① 拖 AppLaunchpad.app 到 /Applications;② 终端执行sudo xattr -r -d com.apple.quarantine /Applications/AppLaunchpad.app;③ 首次打开点"打开"。首次启动后到 系统设置 → 隐私与安全性 → 辅助功能 中开启 AppLaunchpad(全局快捷键 ⌥+Space 必需)
v0.4.0
Changelog
本文件只放「当次要发布的版本」的说明(不含历史)。发布前把新版本条目写在这里,供 release-gh.sh 作为 Release 说明使用;完整历史见 CHANGELOG-ALL.md。
v0.3.1
- 首屏 / 翻页卡顿大幅缓解:扫描阶段不再同步查询 Spotlight 系统中文名(Photos→「照片」等),改用 bundle 本地化名即时显示,系统中文名在后台异步补查就绪后自动刷新;图标改为预缩放后缓存,首屏与翻页直接命中缓存、不在主线程做磁盘 IO。
v0.3.0
- 导入原生 macOS 启动台布局:设置页「布局」新增两个互斥胶囊开关——「使用原生 macOS 启动台布局」与「使用本项目默认布局」。开启「原生」即从系统启动台数据库(只读)导入顺序与文件夹结构,覆盖前自动备份当前布局,可随时还原。
- 导入绝不丢 App:保序重流后,自动把本机已安装、但原生库未收录的 App(如后续安装、包裹型 App)追加到末页;导入后新安装的 App 由应用监听
/Applications自动补全,无需再次手动导入。 - 失败不影响现有功能:无数据库 / 解析异常 / 空结果都只返回错误、不写入布局,搜索、拖拽、翻页等完全不受影响;sqlite 以只读方式打开,对系统数据零风险。
- App 体积零增长:用系统自带
import SQLite3(动态链接 macOS 自带的libsqlite3.dylib),不打包任何第三方库、也不把 8.5MB 原生数据库打进 App。
v0.2.1
- 分发方案修正:未签名的
install.command被 Gatekeeper 拦截(弹窗只有"完成 / 移到废纸篓",没有"仍要打开"按钮,无法放行),改为 DMG 内附README.txt,三步安装:① 拖 AppLaunchpad.app 到 /Applications;② 终端执行sudo xattr -r -d com.apple.quarantine /Applications/AppLaunchpad.app;③ 首次打开点"打开"。首次启动后到 系统设置 → 隐私与安全性 → 辅助功能 中开启 AppLaunchpad(全局快捷键 ⌥+Space 必需)
v0.3.0
Changelog
本文件只放「当次要发布的版本」的说明(不含历史)。发布前把新版本条目写在这里,供 release-gh.sh 作为 Release 说明使用;完整历史见 CHANGELOG-ALL.md。
v0.3.0
- 导入原生 macOS 启动台布局:设置页「布局」新增两个互斥胶囊开关——「使用原生 macOS 启动台布局」与「使用本项目默认布局」。开启「原生」即从系统启动台数据库(只读)导入顺序与文件夹结构,覆盖前自动备份当前布局,可随时还原。
- 导入绝不丢 App:保序重流后,自动把本机已安装、但原生库未收录的 App(如后续安装、包裹型 App)追加到末页;导入后新安装的 App 由应用监听
/Applications自动补全,无需再次手动导入。 - 失败不影响现有功能:无数据库 / 解析异常 / 空结果都只返回错误、不写入布局,搜索、拖拽、翻页等完全不受影响;sqlite 以只读方式打开,对系统数据零风险。
- App 体积零增长:用系统自带
import SQLite3(动态链接 macOS 自带的libsqlite3.dylib),不打包任何第三方库、也不把 8.5MB 原生数据库打进 App。
v0.2.1
- 分发方案修正:未签名的
install.command被 Gatekeeper 拦截(弹窗只有"完成 / 移到废纸篓",没有"仍要打开"按钮,无法放行),改为 DMG 内附README.txt,三步安装:① 拖 AppLaunchpad.app 到 /Applications;② 终端执行sudo xattr -r -d com.apple.quarantine /Applications/AppLaunchpad.app;③ 首次打开点"打开"。首次启动后到 系统设置 → 隐私与安全性 → 辅助功能 中开启 AppLaunchpad(全局快捷键 ⌥+Space 必需)
v0.2.1
Changelog
本文件只放「当次要发布的版本」的说明(不含历史)。发布前把新版本条目写在这里,供 release-gh.sh 作为 Release 说明使用;完整历史见 CHANGELOG-ALL.md。
v0.2.1
- 分发方案修正:未签名的
install.command被 Gatekeeper 拦截(弹窗只有"完成 / 移到废纸篓",没有"仍要打开"按钮,无法放行),改为 DMG 内附README.txt,三步安装:① 拖 AppLaunchpad.app 到 /Applications;② 终端执行sudo xattr -r -d com.apple.quarantine /Applications/AppLaunchpad.app;③ 首次打开点"打开"。首次启动后到 系统设置 → 隐私与安全性 → 辅助功能 中开启 AppLaunchpad(全局快捷键 ⌥+Space 必需)
v0.2.0
Changelog
v0.2.0
- 搜索结果分页:仿系统启动台,搜索结果超过一页时可翻页;支持触控板/鼠标滚轮滑动、方向键(←→跨列、↑↓跨行、到页边界自动翻页)、底部圆点导航,解决之前 app 显示不全、翻不到的问题
- 一键安装脚本
install.command:DMG 内新增安装脚本,挂载后双击即可自动安装到/Applications/AppLaunchpad.app并去除隔离属性(需输入管理员密码);装完按提示首次启动右键「仍要打开」即可(未签名 app 的必经步骤) - 设置窗口入口优化:Dock 图标、状态栏菜单、⌘, 三种方式均可稳定打开并前置设置窗口
- 固定下载地址:
https://github.com/YunyuVv/AppLaunchpad/releases/latest/download/AppLaunchpad.dmg永远指向最新版,发版后无需更换链接
v0.1.0
- 搜索结果分页(仿系统启动台,解决超过一页无法翻页 / app 显示不全)
- GitHub Actions 未签名 DMG 自动打包工作流
- 开源发布(GPL v3)
v0.1.0
未签名 DMG(开源技术人分发版)。
下载后请执行:
然后右键 AppLaunchpad.app → 打开 → 点「仍要打开」;
首次启动后到 系统设置 → 隐私与安全性 → 辅助功能 中打开 AppLaunchpad(全局快捷键 ⌥+Space 必需)。