Skip to content

ArkBar v0.6.3

Choose a tag to compare

@github-actions github-actions released this 24 Sep 07:04

🚀 ArkBar v0.6.3 更新说明

🌟 本次版本更新内容

  1. 空闲耗电明显下降:

    • 光标巡检改为自适应频率:原先固定 35ms(约每秒 29 次)不停轮询,现在光标远离刘海时降到 200ms、没有可见刘海时降到 250ms,光标靠近刘海瞬间立刻回到高频跟踪。空闲唤醒次数下降约 6 倍,菜单栏常驻时的 CPU 占用与耗电同步降低。
    • 多显示器更省:「所有显示器」模式下,光标位置查询从「每块屏各查一次」改为每轮只查一次。
  2. 拖动刘海更顺滑:

    • 拖动过程中不再以约每秒 125 次的频率向所有窗口重复广播并未发生变化的「靠边方向」事件。
    • 拖动时不再反复枚举显示器、也不再每帧写一条日志(改为位置真正变化时才记录)。
  3. 配额刷新更快、更省:

    • 请求并发化:TeamoRouter 的 7 个请求、火山方舟的席位与 token 请求改为并发发起,冷取最坏耗时从约 56 秒 / 100 秒降到约 8 秒 / 60 秒。
    • 缓存有效期对齐刷新周期:原缓存有效期(20~180 秒)短于后台刷新周期(5 分钟),导致每一轮都必然冷取;现在后台刷新命中缓存并异步校验。
    • Codex 会话统计只读文件尾部:原先会把每个会话文件整份读入内存,重度使用者单轮可达数百 MB。
    • 令牌读取增加进程内缓存:一次刷新从多次整文件读取降为一次。
  4. 启动更轻:

    • 悬浮刘海优先从本地缓存渲染,不再与设置窗口重复拉取同一批厂商用量(暖启动从约 10 次拉取降到 1 次)。
    • 活动状态探测延后 8 秒执行,避开启动时的磁盘 I/O 高峰。

🛠️ 修复的问题

  1. 更新下载可能永久卡住:

    • 下载用的 curl 只设了连接超时、没有总时长上限,轮询循环也没有兜底超时。遇到服务器中途停止发送数据会一直停在「正在下载…」,既不报错也不结束。现已加上 300 秒总超时与低速保护,超时会明确提示并终止。
  2. 外部命令出错时的进程与线程泄漏:

    • 等待外部命令出错时未回收子进程,两个输出读取线程也不会结束。现已补齐终止与回收。
  3. 设置窗口反复切换后「检查更新」会重复发请求:

    • 设置窗口的事件监听未在销毁时解绑,来回切换后一次点击会触发多次真实网络请求。现已正确解绑。
  4. 跨窗口缓存写入与重渲染放大:

    • 缓存写入改为去抖合并(一轮 5 次写合并为 1 次),接收端只更新真正变化的厂商,不再整体替换并全量重渲染。
  5. 日志与看门狗的开销:

    • 日志改为持有写入句柄、流式轮转(不再每条日志重开文件、轮转时不再整份读入内存)。
    • 看门狗巡检不再每轮重复构建窗口列表。

⚠️ macOS 首次打开提示“应用已损坏,无法打开”解决办法

由于开源项目未购买苹果商业开发者证书,从浏览器下载后 macOS Gatekeeper 会自动对应用添加隔离标记。
解决方法:打开系统自带「终端」(Terminal.app),复制并执行以下命令回车即可:

xattr -dr com.apple.quarantine /Applications/ArkBar.app

📦 安装包下载指引

  • macOS (Apple Silicon M1/M2/M3/M4 系列): ArkBar_*_aarch64.dmg
  • macOS (Intel 处理器): ArkBar_*_x64.dmg
  • Windows (64位安装包): ArkBar_*_x64-setup.exe (或 .msi)