Files
Clipboard/README.md
2026-09-12 13:59:12 +08:00

100 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 剪贴板
基于 Electron 的轻量剪贴板管理器,灵感来自 [Ditto](https://github.com/sabrogden/Ditto)。
## 快速开始
环境要求Windows 10 / 11 · Node.js ≥ 18
```bash
npm install
npm start
```
启动后程序常驻系统托盘。复制任意文本或图片即自动记录;单击托盘图标唤出窗口,选中条目后双击或按回车写入系统剪贴板,再切到目标窗口 `Ctrl+V` 粘贴。
如安装时 `better-sqlite3` 编译失败,可安装 [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) 后执行 `npm run rebuild`
## 功能
- **自动记录**:默认每秒轮询系统剪贴板,文本和图片都自动入库
- **收藏**:独立 Tab 永久存放,源记录被删除后仍可复制,上限 1000 条
- **搜索**:实时过滤文本,支持中文子串
- **置顶**:点过「复制」的项自动置顶,避免被自动清理或「清空历史」误删
- **全局唤起**:默认 `Ctrl+Alt+V`,设置里可改或禁用
- **主题**6 套主题 + 5 种强调色,支持跟随系统
- **开机自启动**、单实例、窗口置顶切换
## 快捷键
全局:默认 `Ctrl+Alt+V` 唤起或隐藏历史窗口(设置中可更改或禁用)。
主窗口内:
| 快捷键 | 行为 |
| --- | --- |
| `↑` `↓` | 上下选择 |
| `PageUp` `PageDown` | 翻页 |
| `Home` `End` | 跳到首项或末项 |
| `Enter` | 复制当前选中项 |
| `1` ~ `9` | 直接复制对应项 |
| `Ctrl+L` | 聚焦搜索框 |
| `F5` | 刷新列表 |
| `Esc` | 清空搜索或隐藏窗口 |
| `F12` | 开发者工具 |
设置窗口:`←` / `→` 切换标签页,`Esc` 关闭。
## 数据存储
默认存放在 `D:\Clipboard Data`,独立于项目目录:
```
D:\Clipboard Data\
├── config.json
├── history.db
└── favorites.db
```
- D 盘不可用时自动降级到 `%USERPROFILE%\Clipboard Data`
- 设置 → 「更改…」可迁到其他位置;「打开文件夹」直达目录
- 启动前设 `CLIPBOARD_APP_DATA_DIR=D:\some\dir` 可临时覆盖
- 首次启动会自动从 `%USERPROFILE%\.clipboard-app` 迁移历史数据
## 开发
```bash
npm test # 单元测试(自动发现 test/*.test.js
npm run test:ui # UI 测试(需 Electron 窗口)
npm run test:all # 上面两套一起跑
npm run rebuild # 重新编译 better-sqlite3 到当前 Electron ABI
npm run build # 打包为 NSIS 安装包
npm run build:dir # 仅生成解压目录
```
测试由 `test/run.js` 自动发现,新增用例放入 `test/<name>.test.js` 即可。
## 常见问题
**点选条目后没有自动粘贴**
设计如此:只写入系统剪贴板,需手动 `Ctrl+V`。避免隐藏窗口导致的焦点闪烁。
**全局快捷键无效**
组合键被其他程序占用。在设置中更换档位,或释放占用方后重启。
**看不到托盘图标**
Windows 11 默认折叠托盘图标,需在「设置 → 系统 → 通知」中开启。
**数据库占用或损坏**
可直接删除 `D:\Clipboard Data` 下的 db 文件,重启后自动重建(配置和收藏数据除外)。
## 已知限制
- 不自动粘贴,必须手动 `Ctrl+V`
- 收藏上限 1000 条
## 致谢
- 灵感来自 [Ditto](https://github.com/sabrogden/Ditto)
- 开发者:[关济寰](https://www.guanjihuan.com/about)