PaperTodo
极简 Windows 桌面便签工具。让桌面上有几张安静、可用、不会打扰人的纸。WPF 原生,支持待办与 Markdown。——A minimalist Windows desktop sticky note tool. It puts a…
git clone https://github.com/snownico0722/PaperTodo.gitsnownico0722/PaperTodoPaperTodo · 一张纸
让桌面上有几张安静、可用、不打扰人的纸。
一个极简的 Windows 桌面便签工具,只用 WPF 原生实现,没有主窗口、没有账号、没有管理器。
官网:https://snownico0722.github.io/PaperTodo/
交流群:QQ 交流群:551612664——奇奇怪怪的魔法研究基地
语言:中文 | English
预览
| 纸片 |
|---|
![]() |
| Markdown 浏览 |
|---|
![]() |
| 胶囊模式 | 高级胶囊 |
|---|---|
![]() |
![]() |
| 纸片可折叠为小胶囊,减少桌面占用。 | 折叠胶囊自动贴到屏幕边缘,悬浮时滑出。 |
设计理念
- 纸片优先 — 每张纸都是独立窗口,直接放在桌面上,不需要打开管理界面。
- 即时使用 — 想记就写,完成就勾掉;所有内容都会自动保存。
- 无需管理 — 不做分类、标签、搜索、归档、同步、账号、统计、提醒。
- 原生实现 — 基于 WPF 原生控件,不是 Web 套壳,也没有 MSIX 的复杂权限。
- 交互优先 — 轻不只是性能,更是操作路径短、认知负担小、界面干扰少。
拒绝长出非必要的交互层级和视觉焦点负担。
项目特色
核心功能
- 多张独立纸片 — 每张纸是一个独立窗口,常用操作一两步就能完成,不用层层点开。
- 一个应用,两种纸片:
- 待办纸:一行一个事项,可以勾选、编辑、删除、清理已完成。
- 笔记纸:普通文本 + Markdown 语法高亮,支持三档渲染强度。
- 胶囊模式(默认启用)— 点击右上角折叠成小胶囊,减少桌面占用,需要时点击展开。
- 自动贴边排列(默认启用)— 折叠的胶囊会自动贴到屏幕边缘;支持多屏,拖动单个胶囊就能换边或挪到其他显示器。
- 脚本胶囊 — 笔记首行写入
!p/!power,把笔记内容当 PowerShell 脚本快捷运行。 - 待办关联笔记 — 把笔记拖到待办项上建立关联,之后可以直接打开关联的笔记。
- 笔记图片 — 粘贴、拖入或从菜单选图,都能插入本地图片。
- 数据本地保存 — 纸片内容自动保存到
data.json并保留备份;笔记图片存在单个note-assets.lmdb文件里,安全增量写入。
定制与集成
- 主题与配色 — 支持跟随系统 / 浅色 / 深色;提供暖纸、墨、林、霞四套配色方案。
- 字体与字号 — 系统默认 / 微软雅黑 / 等线,也可以放自定义字体文件;整体和分区字号、加粗、文字渲染都能调。
- 全局快捷键 — 可以在设置里绑定显示、隐藏、新建等功能,还有侧边胶囊队列的快捷键。
- 快捷参数启动:通过启动参数就能显示、隐藏、切换和新建纸片,方便配合快捷键工具或脚本调用。
- 多语言界面 — 中文、英文、日文、韩文,跟随系统语言。
- 开机自启动 — 可以随 Windows 启动在后台运行。
- 自定义图标 — 程序目录下放一个
PaperTodo.ico就会用它作为托盘图标,没有的话用内置图标。 - 桌面集成 — 支持 Windows 分屏贴靠;可以让展开的纸片不出现在 Alt+Tab / 任务视图或任务栏里。
纸片功能与操作手册
纸片
基本操作
- 移动与缩放 — 拖动标题栏移动;默认拖右下角调整大小,隐藏缩放把手时可拖动四边或四角
- 置顶:左上角图钉可以切换纸片是否置顶
- 新建:右上角可以新建待办纸和笔记纸
- 外部编辑器打开:点击
MD按钮,用外部编辑器打开当前笔记(后缀可自定义) - 设置标题:可以自定义纸片标题
- 分屏贴靠 — 支持 Windows 分屏贴靠;贴靠时会收起阴影和边距,移出后恢复
胶囊与贴边
- 折叠胶囊:纸片可以折叠成小胶囊,减少桌面占用,可以随时再次打开。
- 自动贴边:折叠后的胶囊会自动停靠在屏幕边缘,鼠标悬停时滑出。
- 多屏队列:可以把单个贴边胶囊拖到左侧、右侧或其他显示器,松手后自动加入对应屏幕边缘的队列。
- 收起全部:顶部主胶囊可以一键收起或展开全部贴边胶囊,也可以拖动调整所在队列的起始高度。
- 主胶囊菜单:主胶囊右键可以打开和托盘一样的功能菜单
- 展开与关闭区:可以设置展开时保留边缘胶囊、记住展开位置;可以在悬停时隐藏边缘关闭按钮;可以限制胶囊标题显示长度
待办 (Todo)
适合记当天任务、临时事项、桌面小清单。
基本操作
- 勾选完成 / 新增事项
- 拖动排序 — 按住右侧
≡手柄上下拖动 - 拖拽删除 — 把事项拖到底部删除
- 粘贴多行 — 会自动拆成多条事项,并清理常见的列表前缀
- 双击选中 — 双击待办文字可选中整条,方便复制或整段替换
- 视觉大小 — 设置里可选小 / 中 / 大
- 撤销 / 重做 —
Ctrl+Z/Ctrl+Y - 完成后自动清除 — 可在设置中开启;勾选完成的项会自动清掉
关联笔记:可以把一张笔记从顶栏拖到待办项上建立关联。关联后,待办项后面会显示打开入口
笔记纸 (Paper)
笔记纸不是 Markdown 编辑器,只是让一张纸能写得稍微清楚一点。
格式快捷键
Ctrl+B— 加粗。Ctrl+I— 斜体。Ctrl+K— 插入超链接。Ctrl+Z/Ctrl+Y— 撤销 / 重做。Ctrl + 滚轮— 按 10% 步进缩放正文文字(点击右下角百分比恢复 100%)。
支持的 Markdown:标题 #~######、加粗 **文本**、斜体 *文本*、删除线 ~~文本~~、无序列表 -、有序列表 1.、引用 >、分割线 --- / *** / ___、行内代码 `code`、代码块 ```、超链接 [文本](URL),以及少量单行内联 HTML 标签(b/strong/i/em/s/del/u/code/a href)。
本地图片
- 可以粘贴剪贴板图片、拖入图片文件,复制图片文件,或从菜单选图插入(含 WebP;系统不支持时会提示失败)
- 图片以独占行的内部
i:引用保存在本地note-assets.lmdb,不是网络图床 - 默认开启「自动压缩过大图片」:图片过大或边长过长时会尝试压缩后再导入
- 删除对应的 Markdown 引用就能去掉显示;配合撤销还能找回
不支持:表格、附件、网络图片、其他嵌入内容、块级 HTML、复杂块编辑器。
外部编辑:顶栏 MD 按钮可以用系统默认的 .md 编辑器打开临时文件
自定义后缀:顶栏 MD 按钮可以改成 .txt、.html、.bat 等系统已关联的后缀,由 Windows 关联程序处理临时文件。
脚本胶囊:笔记第一行写入 !p 或 !power 后,后续内容会作为 PowerShell 脚本运行。折叠成胶囊后显示闪电图标,左键运行,右键打开纸片继续编辑;使用 !pf 或 !powerf 可以投递到常驻 PowerShell 进程。
设置
设置窗口分为 基础行为 / 视觉 / 快捷键 三页;窗口内可以开 高级模式。
基础行为
- 开机自启动、普通悬浮提示、动画
- Markdown 渲染 — 笔记 Markdown 三档显示强度
- 顶栏按钮 — 可单独隐藏新建待办、新建笔记和外部打开
- 外部打开 — 自定义笔记临时文件后缀
- 胶囊 — 胶囊模式、自动贴边、展开时保留边缘胶囊、记住展开位置、显示主胶囊(收起全部)、再次点击边缘胶囊收回纸片;高级另有悬停时隐藏关闭按钮、标题字数上限、边缘标题最大长度
- 待办与笔记 — 完成后自动清除、关联笔记、显示名称、关联笔记显示长标题、已关联笔记是否显示为胶囊、关联脚本点击运行;高级另有 自动压缩过大图片
- 脚本胶囊(高级)— 优先 PowerShell 7、隐藏运行窗口、常驻进程
- 全屏置顶策略(高级)— 外部全屏时纸片和贴边胶囊是避让还是保持在上层
- 从窗口切换中隐藏纸片(高级)— 展开的纸片不出现在 Alt+Tab 与任务视图(并会隐藏任务栏图标)
- 从任务栏隐藏图标(高级)— 展开的纸片不出现在任务栏
视觉
- 主题与配色 — 跟随系统 / 浅色 / 深色;暖纸、墨、林、霞四套配色方案
- 缩放把手 — 标准(右下角不透明点阵)/ 柔和(右下角约 50% 透明点阵,默认)/ 隐藏(无点阵,可拖动纸片四边或四角缩放)
- 字体 — 系统默认 / 微软雅黑 / 等线;可放
papertodo.ttf/papertodo.otf;可选增强加粗(需同目录粗体文件,如papertodo_bold.ttf) - 字号与加粗 — 整体字号约 80%–120%;笔记 / 待办 / 标题 / 胶囊各自小中大(待办含更疏密的档位)与加粗
- 文字渲染 — 标准 / 柔和 / 锐利
- 图片标记显示(高级)— 始终显示 / 仅编辑时 / 始终隐藏
快捷键
- 可以为显示全部、隐藏全部、切换显隐、新建待办、新建笔记、退出绑定全局快捷键
- 快速启动侧边胶囊(默认关):左右队列 1–9 快捷打开边缘胶囊;可「打开到鼠标位置」;快捷键新建纸片也会放到鼠标附近
- 胶囊模式下 Esc 可以快速收回胶囊
托盘入口
PaperTodo 没有主窗口。托盘是唯一的全局入口。
托盘操作
- 双击托盘图标 — 显示并拉回全部纸片。
- 右键托盘图标 — 打开菜单(顶部显示当前版本号)。
- 设置 — 打开独立设置弹窗
- 列表工具栏 — 可以快速切换全部纸片显隐,并新建待办纸或笔记纸
- 主胶囊 — 贴边队列顶部的主胶囊也可以右键打开和托盘一样的功能菜单
- 删除纸片 — 列表行右侧
×先进入确认态,再选择「确认 / 取消」
启动参数
可以配置到外部快捷键工具、脚本或 Windows 快捷方式:
PaperTodo.exe --show 显示并拉回全部纸片
PaperTodo.exe --hide 隐藏全部纸片(程序继续在托盘运行)
PaperTodo.exe --toggle 有显示则隐藏全部,全部隐藏则显示
PaperTodo.exe --new-todo 新建一张待办纸
PaperTodo.exe --new-note 新建一张笔记纸
PaperTodo.exe --exit 保存状态并退出
PaperTodo.exe --language en-US 使用指定的默认界面语言启动
参数可以省略 --,并支持少量别名(比如 open = show,quit = exit)。
--language 支持 zh-CN、en-US、ja-JP、ko-KR 及区域变体,也可写成 --language=en-US;别名为 --lang 和 --default-language。只在主实例启动时决定本次界面语言,不会切换已在运行的实例,也不会写入 data.json。
程序已经在运行时再次带参数启动不会创建第二个进程,而是把命令转发给当前实例;无参数再次启动则显示并拉回全部纸片。
数据与文件
数据保存在程序目录下:
PaperTodo/
├─ PaperTodo.exe
├─ data.json 主数据文件
├─ data.backup.json 保存前备份,主文件损坏时用于恢复
├─ note-assets.lmdb 笔记图片资产文件
└─ PaperTodo.ico 可选:存在时优先作为自定义托盘图标,否则用内嵌图标
数据说明
编辑后会自动保存;正常写盘前会滚动备份到 data.backup.json。
异常退出时可能会写入 PaperTodo.crash.log 供排查,数据仍以 data.json 和备份为准。
程序目录还可以放置自定义字体:papertodo.ttf / papertodo.otf(可选 papertodo_bold 等粗体文件)。
⚠️ 不要把程序放在只读目录,否则可能无法保存数据。
备份或迁移数据前请先从托盘退出 PaperTodo,再复制这些文件。
下载与校验
GitHub Actions 构建两个 Windows x64 单文件 exe,直接作为 Release 发布:
...-self-contained.exe— 自包含 .NET Runtime。...-no-runtime.exe— 不带运行库(需要本机已安装 .NET)。
每个产物附带 Sigstore 签名(.sig / .crt)。
Release 发行说明从 CHANGELOG.md 自动提取对应 tag 的版本小节。
构建与依赖
dotnet build -c Release
本地打包只生成 no-runtime 单文件;云端 Release 会同时发布自包含版和 no-runtime 版。
- Windows / .NET 10 / WPF — 运行环境和 UI 框架。
- CMake / Visual Studio C++ 工具链 — 用来构建随程序打包的原生 LMDB 图片存储库。
- LMDB — 单文件、事务式的笔记图片资产存储。
- AvalonEdit — 笔记纸文本编辑和 Markdown 轻量高亮。
- Hardcodet.NotifyIcon.Wpf — 托盘图标和菜单。
其他
感谢 linux.do 社区。
Star 增长曲线
more like this
Scythe
SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.
JamSoft.AvaloniaUI.Dialogs
Provides the ability to show various dialogs and child windows in a DI injectable application dialog service ready to p…
tobira.nvim
Open the next door in your Vim journey — personalized command discovery based on your actual usage



