找不到好用的 Mac 便签,我干脆自己做了一个

摘要:DSticky 是一款专为 macOS 设计的轻量桌面便签。它不试图成为另一个庞大的知识库,而是把记录、提醒和临时待办留在当前工作现场:打开就写,需要时置顶,不需要时隐藏,完成后归档。

当我们想记下一句临时信息时,真正需要的通常不是文件夹、标签和复杂的分类体系,而是一张随手可用、始终在合适位置的便签。

DSticky 正是围绕这个场景设计的。它以"桌面上的临时工作层"为定位:每张便签都是独立窗口,可以跟随当前 Space,也可以显示在全屏应用上方;内容自动保存到本机,不需要注册账号。

本文以 DSticky v1.0.2 为准,完整介绍目前的产品功能、使用方式和背后的技术设计。

一、为什么不是另一个传统笔记软件

macOS 自带的备忘录更适合长期整理资料、建立文件夹和跨设备同步。DSticky 处理的是另一类需求:临时待办、会议中的一句提醒、稍后要用的代码、正在对照的数据,或者不希望被窗口遮住的信息。

两者并不冲突。备忘录负责沉淀,DSticky 负责让眼前的事情保持可见。

DSticky 的设计原则很简单:

  • 打开后直接输入,不先创建分类。
  • 一张便签对应一个独立窗口。
  • 常用操作直接放在便签顶栏。
  • 记录过程自动保存,尽量减少确认步骤。
  • 内容、图片、提醒和窗口位置全部保存在本机。

二、技术架构:Web 界面与 macOS 原生能力结合

DSticky 使用 Tauri v2 构建桌面外壳,界面层采用 React 和 TypeScript,核心数据与窗口调度由 Rust 负责。对于 Space、全屏辅助窗口和窗口层级等 macOS 特有能力,则通过 Objective-C 原生代码完成。

这套结构将职责拆成了三层:

  • React:便签、工具栏、提醒面板、偏好设置和归档界面。
  • Rust:本地数据、窗口生命周期、快捷键、提醒调度与文件校验。
  • macOS 原生桥接:Space 跟随、全屏显示、置顶层级和窗口交互。

产品最终以 Universal App 形式发布,同时支持 Apple Silicon 与 Intel Mac,最低系统版本为 macOS 11。

三、打开就写:每张便签都是独立窗口

首次启动 DSticky 时,应用会自动创建一张空白便签,并将输入焦点放到编辑区域。用户无需先填写标题或选择文件夹,直接输入即可。

每张便签都是一个独立的无边框窗口,支持:

  • 拖动到桌面的任意位置。
  • 从窗口四边和四角调整大小。
  • 同时打开多张便签并自由排列。
  • 自动记住窗口的位置与尺寸。
  • 外接显示器断开或屏幕布局变化后,自动将屏幕外的便签恢复到可见区域。

新建便签默认为黄色并处于置顶状态。连续新建时,窗口会按一定偏移依次出现,避免完全重叠。

输入内容后,编辑器会在短暂防抖后自动保存;窗口失去焦点、应用退出或便签执行其他操作前,也会主动刷新尚未写入的数据。底部状态会显示"保存中""已保存"或"保存失败"。

四、便签顶栏:所有常用操作都在一层

鼠标移到便签顶部即可使用主要操作,不需要跳转到设置页。

1. 移动便签

拖动顶部的移动区域即可调整窗口位置。便签的位置会随内容一起保存,下次启动时恢复。

2. 四种便签颜色

DSticky 提供黄色、薄荷绿、蓝色和粉色四种柔和配色。颜色可以随时切换,适合用简单的视觉方式区分待办、资料、代码或提醒事项。

3. 新建便签

点击加号即可立即创建另一张空白便签。创建前,当前便签未完成的内容会先保存。

4. 置顶与取消置顶

置顶后,便签会停留在其他普通窗口上方;取消置顶后,点击其他应用,便签会退回桌面层,减少对当前工作的遮挡。

5. 设置提醒

点击铃铛即可设置或修改提醒,具体功能会在后文单独介绍。

6. 暂时收起

收起只会隐藏当前便签,不会删除或归档内容。之后可从菜单栏选择"显示所有便签"重新显示。

7. 完成并归档

点击完成按钮后,便签会关闭并进入归档列表。操作完成后会短暂显示"撤销"提示,误操作时可以立即恢复。

8. 永久删除

删除与归档是两个不同的操作。删除会弹出二次确认,确认后移除便签及其本地图片附件,无法从归档列表恢复。

五、富文本编辑:从一句话到结构化内容

DSticky 的编辑器既可以保持纯文本般的轻量,也能在需要时承载更完整的内容结构。

1. 段落与标题

编辑器支持正文以及一级、二级、三级标题。可以通过工具栏切换,也可以使用常见的 Markdown 输入习惯快速创建标题。

2. 常用文字样式

支持以下文字格式:

  • 加粗
  • 斜体
  • 下划线
  • 删除线
  • 清除格式

格式按钮会同步显示当前光标位置的状态,方便判断某种样式是否已经启用。

3. 四种文字高亮

高亮提供黄色、绿色、蓝色和粉色,可用于标出重点、状态或不同类型的信息,也可以一键清除已有高亮。

4. 三种列表

支持无序列表、有序列表和待办清单。待办项可以直接勾选,并支持嵌套,适合拆分步骤、会议行动项或简单任务。

5. 行内代码与代码块

短变量、命令或文件名可以使用行内代码;多行内容则可以放入代码块。代码块支持 Tab 缩进,适合临时保存命令、SQL、配置片段或调试信息。

6. 链接

可以为选中文字添加网页或邮箱链接,也可以在没有选区时直接插入链接。未写协议的网址会自动补全为 HTTPS,粘贴链接时也能自动识别。

为避免不安全跳转,编辑器只允许 HTTP、HTTPS 和邮件链接。

7. 分隔线、撤销与重做

编辑器支持插入水平分隔线,用于划分内容区域;同时提供撤销、重做以及清除格式功能。

8. 自适应工具栏

便签变窄时,编辑工具栏会根据可用宽度自动收起低优先级按钮,并将它们放入"更多格式"菜单。悬停按钮时,还会显示对应功能、快捷键和 Markdown 写法。

六、常用 Markdown 输入与编辑快捷键

DSticky 不要求用户记忆 Markdown,但保留了常见的输入习惯。需要快速排版时,可以直接输入标题、列表、待办项和代码块标记。

常用快捷键如下:

功能 快捷键或 Markdown 输入
加粗 Command + B 或 **内容**
斜体 Command + I 或 *内容*
下划线 Command + U
删除线 Shift + Command + S 或 ~~内容~~
添加链接 Command + K
行内代码 Command + E 或反引号包裹内容
代码块 Command + Option + C 或输入三个反引号后按空格
正文 Command + Option + 0
一级至三级标题 Command + Option + 1/2/3,或输入 #、##、### 后按空格
无序列表 Shift + Command + 8 或输入 - 后按空格
有序列表 Shift + Command + 7 或输入 1. 后按空格
待办项 Shift + Command + 9 或输入 [ ] 后按空格
撤销 Command + Z
重做 Shift + Command + Z 或 Command + Y
清除格式 Command + \

七、本地图片:选择、粘贴和拖放都可以

图片不必先上传到图床。DSticky 支持通过文件选择器插入图片,也支持直接从剪贴板粘贴或拖入编辑区域。

目前支持 PNG、JPEG、WebP 和 GIF,单张图片最大 10 MB。插入后的图片可以:

  • 从四角等比例缩放。
  • 替换为另一张图片。
  • 从便签中删除。
  • 与文字、列表和代码内容混合排版。

图片会复制到 DSticky 的本地附件目录,便签正文只保存受管理的本地附件标识,不依赖远程地址。永久删除便签时,对应的附件目录也会一起清理。

从网页或其他应用粘贴富文本时,DSticky 会移除脚本、嵌入对象和不需要的属性,只保留适合便签的内容结构。

八、为 macOS 桌面设计:跟随 Space,也支持全屏

普通便签应用经常只停留在创建它的桌面。切换 Space 或进入全屏应用后,还需要回到原来的桌面查找内容。

DSticky 针对 macOS 的窗口机制做了原生适配:

  • 切换普通 Space 后,便签继续出现在当前桌面。
  • 进入全屏浏览器、编辑器或其他应用时,便签仍可保持可见。
  • 置顶便签会持续停留在工作内容上方。
  • 非置顶便签在切换到其他应用后会自动退后。
  • 多显示器布局发生变化时,会检查便签是否仍有可拖动区域位于屏幕内;完全移出可见区域时自动恢复。

这样,便签不再属于某一个固定桌面,而是跟随当前工作现场。

普通桌面:

全屏应用桌面:

九、提醒:把临时记录变成按时出现的行动

每张便签都可以独立设置提醒。内置三个快捷选项:

  • 15 分钟后
  • 1 小时后
  • 明天上午 9 点

也可以使用日期时间选择器指定任意未来时间。已有提醒支持修改或清除,便签底部会显示具体提醒时间;到期后则显示"提醒已到"。

提醒到点时,DSticky 会:

  1. 重新显示对应便签。
  2. 将窗口带到当前工作区域并请求用户注意。
  3. 发送 macOS 系统通知。

因此,便签即使暂时被收起,只要 DSticky 仍在运行,也不会错过提醒。

首次使用时,macOS 可能会请求通知权限。即使没有允许系统通知,到点后便签窗口仍会重新显示;允许通知则能同时收到通知中心提醒。

十、隐藏、归档与删除:三种不同的生命周期

为了避免所有操作都变成"删除",DSticky 将便签生命周期分成三种状态。

暂时隐藏

适合暂时清理桌面。内容仍处于使用中,可以通过"显示所有便签"立即找回。

完成并归档

适合已经处理完、但未来可能还要查阅的内容。归档后会出现约 4 秒的撤销提示,也可以稍后从"已归档的便签"窗口恢复。

归档列表会显示便签颜色、内容摘要和归档时间,并提供恢复与永久删除操作。

永久删除

适合确认不再需要的内容。无论从当前便签还是归档列表删除,系统都会要求二次确认;删除后无法恢复。

十一、菜单栏常驻与全局操作

DSticky 是菜单栏应用,不会长期占用 Dock 位置。点击菜单栏图标可以使用以下功能:

  • 偏好设置
  • 新建便签
  • 显示所有便签
  • 隐藏所有便签
  • 已归档的便签
  • 联系我们
  • 关于产品
  • 退出

"隐藏所有便签"适合演示、录屏或临时清空桌面;"显示所有便签"则会恢复所有尚未归档的便签。

应用启动时会恢复上次仍在使用的便签。如果所有活动便签都处于隐藏状态,DSticky 会显示其中一张,避免用户启动后看不到任何入口。

"联系我们"会打开官方社区页面,用户可以扫描开发者微信二维码,获取版本动态、使用技巧或提交问题反馈;窗口中也提供隐私政策入口。

十二、可自定义的全局快捷键

不打开菜单,也可以在任何应用中直接操作 DSticky。默认快捷键为:

功能 默认快捷键
新建便签 Option + 1
显示所有便签 Option + 2
隐藏所有便签 Option + 3

在"偏好设置 → 快捷键"中,点击某一项后直接按下新的组合即可完成录制。快捷键支持字母、数字、方向键、功能键和一部分符号,并要求至少包含一个修饰键。

设置页会检查重复组合、系统保留快捷键和不可用按键。用户也可以清空单项快捷键,或一键恢复默认设置。

十三、本地数据与隐私

DSticky 不要求注册账号,不包含广告、分析或用户跟踪服务,也不依赖云端同步。

以下信息均保存在 Mac 的应用数据目录:

  • 便签文本与富文本结构
  • 本地图片附件
  • 便签颜色、置顶和隐藏状态
  • 窗口位置与尺寸
  • 提醒时间与触发状态
  • 归档状态
  • 自定义快捷键

"偏好设置 → 数据"会显示正在使用和已经归档的便签数量,并提供"在 Finder 中显示"按钮,方便用户找到受应用管理的数据目录。

数据写入采用临时文件加替换的方式,降低写入中断导致数据损坏的风险。旧版数据首次升级时还会保留备份,以便迁移出现异常时排查和恢复。

本地优先并不意味着用户应该直接修改数据文件。富文本正文和附件之间存在引用关系,移动或手工编辑文件可能导致内容无法读取,因此建议只将目录用于备份。

十四、安装、更新与兼容性

DSticky 通过 Mac App Store 分发。官网的下载按钮会直接跳转到 App Store 产品页面,不提供独立 DMG,也不要求在终端执行安装命令。

当前版本支持:

  • macOS 11 或更高版本
  • Apple Silicon Mac
  • Intel Mac
  • 通过 Mac App Store 安装与接收后续更新

结语

DSticky 没有试图把桌面便签变成另一个复杂的信息管理系统。它关注的是记录发生的那一刻:少一次切换、少一个确认步骤,让重要内容留在视线里,并在合适的时间重新出现。

如果你需要长期整理和多设备同步,传统笔记工具依然更合适;如果你需要的是一张能跟随 Space、支持全屏置顶、可以提醒并且数据只留在本机的桌面便签,DSticky 就是为这个场景准备的。

在 Mac App Store 搜索"DSticky",即可获取最新版本。

相关推荐
程序员cxuan2 天前
讲真,智能路由这事儿,还得看基元律动
人工智能·后端·程序员
AI前端工程狮2 天前
用户点了「取消」,我的服务进程退出了
人工智能·程序员
得物技术2 天前
压测AI Agent 治理与评测调优实践
程序员·架构·测试
SimonKing2 天前
Workbuddy太占C盘空间了,写个迁移工具迁走10G的数据
java·后端·程序员
挖掘狂人2 天前
Token 都上双十一货架了,AI 电脑的账该怎么算?
大数据·程序员·ai编程
深蓝AI2 天前
26.1% 的 Agent 技能带漏洞:skills 霸榜 GitHub 当天,NVIDIA 和 OpenAI 同时掏出安检仪
人工智能·程序员
程序员cxuan3 天前
离谱,AI 大佬顺手搓了个 YouTube ,而我顺手给他搓了个中文插件
人工智能·后端·程序员
爱勇宝3 天前
Claude Fable 5.2 发布后,开发者该关注什么
程序员·ai编程
挖掘狂人3 天前
AI 把代码写得飞快,然后呢?聊聊我验收生成代码的一套流程
人工智能·程序员·ai编程
codigger3 天前
AI 把代码写得飞快,然后呢?聊聊我验收生成代码的一套流程
ai·程序员·编程·#人工智能