#941·xbar

说明如何处理插件状态

作者: sellout创建于 2025年10月29日更新于 2025年10月29日

鉴于一些评论如 https://GitHub.com/matryer/xbar/issues/133#issuecomment-169642832https://GitHub.com/matryer/xbar/issues/609#issuecomment-784281354,似乎 xbar 根本不处理状态,而是让脚本直接进行文件 I/O。这并没有问题,但

  1. 我花了一段时间才发现这个问题;
  2. 我仍然不确定情况是否仅如此;
  3. 你可能有其他有用的建议。 我能想到的一些建议是:
  • “将文件放在 ~/.Application Support/xbar/plugin-state/<plugin-name>/” (或者可能是 …/xbar/cache/<plugin-name>/);
  • 或者,可能恰恰相反 - “不要将东西存储在 xbar 目录中”;
  • 根据 macOS 的功能和限制,这些位置可能会或多或少成功(例如,我不希望出现“my-script.py 要求完全访问文件系统”的通知)。

我的实际问题(如果有现有方法能够以某种方式解决我的用例)

(如果有现有方法能够以某种方式解决我的用例。)

在我的特定情况下,我有一个插件,每分钟从 Internet 获取数据。当它失败(比如,我旅行时笔记本电脑经常离线)时,我只会在菜单栏中看到一个错误消息。但是,它不需要持续获取数据 - 只有当 IP 地址自上次获取以来发生变化时。因此,我计划存储上次获取时的 IP 地址,以及获取的数据(即一个单一数字)。如果我们离线,我们只需使用上次获取时的最新数字,如果我们在线,则在 IP 地址不匹配时获取数据。