我做了一个安静待在菜单栏里的 macOS 壁纸工具:Tono。
我一直觉得,桌面壁纸是一个很小但很影响心情的东西。
它不是刚需,也不应该变成每天要认真管理的任务。但每次打开电脑,桌面都是最先看到的地方。如果那张图刚好顺眼,工作开始前的状态会舒服一点;如果想换一张,有时候却要打开网页去精心挑选、下载图片、进系统设置、再给不同显示器分别调整,兴致很快就没了。
Tono 就是从这个很小的需求里长出来的。它是一款 macOS 菜单栏壁纸工具,目标很简单:安静地待在菜单栏里,让我更轻松地浏览、管理和切换桌面壁纸。

为什么还要做一个壁纸工具
市面上当然不缺壁纸软件,这也是我一开始犹豫的地方。后来真正让我动手的原因很简单:我想要一个自己能掌握的工具。
我用过一些同类产品,也看过不少用户反馈。大家抱怨的点其实很集中:有的应用长期不适配新系统,多屏下容易出问题;有的自动换壁纸不稳定,最后还是要手动点;有的界面做得很重,打开以后像进了一个内容平台;还有一些动态壁纸工具效果很好,但对电量和性能更敏感,放在笔记本上并不总是适合。
这些问题不代表同类产品不好,只是它们不是我想要的方向。我想要的是一个更小、更安静、更可控的工具。壁纸软件每天存在感不该太强,但它又会影响打开电脑后的第一眼,所以我想试着做一个更顺手,也更符合我自己审美的版本。
我对 Tono 的期待不是做一个很大的壁纸平台,也不是把一堆功能堆在主窗口里。它更像一个系统小组件:平时藏在菜单栏,需要时点开,看一眼,换一张,然后继续做自己的事。

我希望它安静地待在菜单栏里
Tono 没有把主窗口作为中心。打开后,它会常驻在 macOS 菜单栏里,点击图标就能展开壁纸弹层。
在这个弹层里,你可以浏览当前图源里的壁纸,点一下设为桌面,也可以右键下载到本地、复制来源链接、在浏览器中打开图片、打开摄影师主页,或者给喜欢的图点红心收藏。常用操作都在这个小弹层里完成,不需要跳进一个复杂的管理界面。

我也给它做了菜单栏右键菜单。这里可以快速切换数据源、壁纸范围、自动更换间隔、外观主题和主图信息层显示方式。比如我在外接显示器上工作时,经常只想把当前屏幕换掉,而不是把所有屏幕都改成同一张图,这个设置直接放在菜单栏里会顺手很多。

如果你希望它更像系统组件,也可以在设置界面中打开“开机时自动启动”和“隐藏 Dock 图标”。这样它不会一直占着 Dock,只在菜单栏留下一个入口。
图源不只是一组图片
Tono 现在支持几类图源:内置壁纸、Unsplash 在线图源、本地文件夹、收藏和历史记录。

内置壁纸是兜底图源。第一次打开应用,哪怕你还没有配置任何东西,也能先用起来。这个设计是为了避免一个尴尬场景:一个壁纸应用刚打开就让用户先去找 API Key 或导入文件夹,入口太重。
如果你配置了 Unsplash Access Key,可以直接在菜单栏里探索新的高清图片。Tono 会按 Unsplash 的规则追踪下载,不把这件事藏起来乱做。它也会处理加载状态和失败重试,避免一次网络不稳就把整个弹层卡住。
如果你已经有自己的壁纸文件夹,也可以把本地文件夹加进来。Tono 会通过 macOS 的安全权限访问这些文件夹,不需要你把图片全部复制到某个奇怪的位置。这点很重要,因为很多人其实早就有自己的壁纸库,只是缺一个轻量入口。
如何获取和配置 Unsplash Access Key
这里需要稍微解释一下,因为“配置 API Key”听起来像开发者才会做的事,但实际步骤并不复杂。

Unsplash 官方提供了开放 API。你需要先打开 Unsplash Developers,登录或注册账号,然后进入 Your apps 页面,点击 New Application,新建一个应用。

新建应用时,Unsplash 会让你确认 API 使用条款和 Guidelines。应用名称可以随便写一个自己能认出来的名字,比如 Tono Wallpaper。描述也不用复杂,写清楚是个人使用的 macOS 壁纸工具即可。

创建完成后,应用页面里会出现 Access Key 和 Secret Key。Tono 只需要 Access Key,不需要 Secret Key。把 Access Key 复制出来,回到 Tono 的设置页,在“图源”里找到 Unsplash Access Key 输入框,粘贴进去即可。Tono 会做基本校验,如果 Key 可用,之后就能在菜单栏里浏览 Unsplash 图片。

按 Unsplash 官方文档,新建应用一开始会处于 demo mode,初始限制是每小时 50 次请求。对个人壁纸浏览和偶尔自动更换来说,这通常够用。如果以后真的需要更高限额,可以再按 Unsplash 的说明申请 production mode。
历史、收藏和回到上一张
壁纸工具的核心操作看起来只有一个:设为壁纸。但真正用起来,很多小细节会决定它是不是顺手。
比如历史记录。很多时候我不是想找一张新图,而是想回到前几天用过的那张。Tono 会记录最近设过的壁纸,并提供一个历史 HUD。你可以用方向键或滚动切换,按回车重新应用,按 Esc 取消。

我把这个 HUD 做成独立的小浮层,而不是让你回到主界面里翻列表,是因为“回到上一张”本身应该是一个短动作。它更像音量 HUD 或输入法候选框,出现、选择、确认,然后消失。
收藏也走同一条思路。看到喜欢的图,点红心以后,它就会进入收藏。收藏不是只存一个链接,Tono 会尽量保存可复用的本地资产。你还可以导入和导出收藏,这样换机器或重装时,不至于从头再来。
图片加载、缓存和磁盘空间
壁纸应用很容易把缓存做成一笔糊涂账。缩略图、预览图、原图、下载文件、收藏文件,如果都混在一起,时间一长就不知道哪些可以删,哪些删了会影响历史和收藏。
Tono 里把这些路径分开处理。图片显示走自己的缓存,设为壁纸前会有可给系统读取的本地文件,收藏和历史里真正需要保护的资产会被标记出来。后台还有一个缓存维护服务,空间超过阈值后,会按最近访问时间清掉旧文件,同时避开收藏、历史和本地库里还需要保留的内容。
这类功能平时最好没有存在感。用户不应该每天手动清理壁纸缓存,也不应该因为清缓存把自己收藏过的图弄丢。
图片加载上,我也做了一些细节处理。比如远程图片会优先展示合适尺寸的预览,没加载出来之前用 BlurHash 过渡,缓存命中时再淡入。它不会让界面一直白着等原图,也不会为了看一个缩略图就直接拉最大图。
设置页只放真正需要设置的东西
Tono 的大多数高频操作都放在菜单栏里。设置页主要处理那些不该频繁改的东西:语言、开机启动、隐藏 Dock 图标、下载位置、Unsplash Access Key、本地文件夹、收藏导入导出和隐私说明。



Unsplash Key 会做输入规范化和有效性校验,不会因为前后多了空格就产生一堆伪变化。下载位置会保存安全书签,尽量在沙盒环境下维持权限。本地文件夹同理,添加以后会在后续启动时预热权限,减少下次访问时突然失效的概率。
这些细节写在文章里可能不显眼,但它们决定了一个工具能不能长期用。壁纸应用不应该每隔几天就让你重新授权一次,也不应该把下载目录、收藏文件和缓存目录混在一起。
我做了哪些克制
做 Tono 的时候,我一直提醒自己少做一点。
我没有做图片社区,也没有做复杂编辑器。裁剪、滤镜、分享动态这些功能当然都可以做,但它们会把一个菜单栏工具拖向另一个方向。我更想先把“找到一张图,并舒服地应用到桌面”这条路走顺。
我也没有做动态壁纸。动态壁纸很有吸引力,但它会带来另一套问题:电量、性能、播放状态、外接屏表现,以及用户是否真的愿意让桌面一直动起来。Tono 现阶段只做静态壁纸,因为我想让它更轻、更稳,也更适合长期待在后台。
隐私上,我也尽量让事情保持简单。设置和收藏保存在本机,本地文件夹通过系统权限访问。使用 Unsplash 时,设备会直接请求 Unsplash 接口,受它自己的隐私政策约束。设为壁纸所需的图片会暂存在专用目录里,供 macOS 读取。
为什么它是付费软件
Tono 会采用买断制,价格是 18 元,大概是一顿饭的钱。
这个价格不是为了把它做成一门多大的生意,更多是希望覆盖 Apple 开发者账号和后续维护成本。作为个人开发者,我不奢求靠它赚钱,但如果你刚好喜欢这个工具,也有余力支持一下,我会很感谢。
我知道现在很多小工具都在订阅化,但壁纸工具对我来说不适合做成一个长期订阅。它的价值应该很直接:你觉得它顺手,买断后就拿来用。后续我会继续维护和修问题,但不会把一个小工具包装成复杂服务。
它现在还处在比较早期的阶段,难免会有 bug 或者没照顾到的使用场景。如果你遇到问题,欢迎直接在App Store评论区反馈,我会尽快修。对我来说,付费不是把软件“卖完就结束”,而是给自己一个继续维护它的理由。
适合谁,以及接下来会继续打磨什么
如果你只是偶尔换一次壁纸,系统设置可能已经够用了。Tono 更适合这些人:
- 喜欢经常换桌面,但不想被壁纸软件打扰。
- 有自己的本地壁纸文件夹,希望从菜单栏里快速浏览和应用。
- 会用多显示器,希望能选择只改当前屏幕或同步所有屏幕。
- 喜欢 Unsplash 这类在线图源,但希望收藏和历史记录能留在本地。
- 偏好买断制,不想为一个小工具长期订阅。
- 喜欢原生 macOS 体验,希望工具能开机自启、隐藏 Dock,并安静待在菜单栏。
接下来我会继续把它打磨得更稳:修复早期版本里暴露出来的问题,优化菜单栏交互,补齐更多细节状态,也会根据反馈调整图源、本地管理和历史记录体验。
Tono 对我来说不是一个宏大的产品故事。它只是一个我希望自己每天都愿意用的小工具。如果你也想要一个安静、克制、能自己掌握的 macOS 壁纸工具,可以试试看。

