ElegantClipboard

Y-ASLantMIT活跃维护

一款用 Rust 写的本地离线剪贴板管理器,主打低占用、高性能和高度自定义,界面现代,适合想要快速、不联网的剪贴板历史工具的人。

An elegant and fast clipboard. 低占用、高性能、现代化、高度自定义,本地化离线剪贴板。

v1.2.10发布于 2026-10-09 05:52 UTC486star +1 / 7 天20fork同步于 2026-11-10 23:57 UTC

怎么上手

由 README 提炼,执行前请确认
just run    # 或 cargo run -p elegant-clipboard-gpui --locked
硬件要求按 README 说明

README 未说明显存要求;Linux 运行需可用图形会话与 Vulkan 驱动,不要在无显示服务的 SSH 会话中启动 GUI。Windows 需 10/11 x64 + MSVC,macOS 需 Xcode Command Line Tools。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Rust 和 GPUI 写的本地离线剪贴板管理器,低占用、可高度自定义,跨三平台共用界面

一款用 Rust 写的本地离线剪贴板管理器,主打低占用、高性能和高度自定义,界面现代,适合想要快速、不联网的剪贴板历史工具的人。

核心能力

  • 采集文本、URL、HTML/RTF、图片和文件路径并支持搜索
  • 保真回贴:按黑名单全量捕获原生格式,复制时随主格式写回
  • 大格式转 zstd 压缩的内容寻址 blob,随保留策略自动回收
  • 序列粘贴:多选记录后用全局推进键逐条粘贴到原窗口
  • 独立悬停预览浮层,透明穿透不抢焦点,支持图片缩放

容易踩的坑

需 Rust 1.98 或更高版本,检查与打包还需 PowerShell 7;Linux 需先装一长串系统依赖(GTK3、Vulkan、xkbcommon、Wayland 等);Linux Wayland 需 compositor 支持 data-control 协议,全局快捷键、自动粘贴和来源识别不可用;macOS 自动粘贴需授予辅助功能权限;实机验收目前只覆盖 Windows,macOS 与 Linux 仍需本机验收

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.2.10
  1. v1.2.10ElegantClipboard v1.2.10最新正式版2026-10-09 · 2026-10-09 05:52 UTC
    • fix: WebView2 运行时更新后,已加载版本与可用版本不同或收到原生版本更新事件时只记录日志,不再单独触发应用重启、恢复通知或阻止设置、翻译、预览和编辑窗口创建,避免每十分钟重复重启并最终熔断。https://github.com/Y-ASLant/ElegantClipboard/issues/160
    • fix: 使用 WebView2 官方版本比较忽略 beta、dev、canary 渠道后缀,避免将相同数字版本误判为版本变化。https://github.com/Y-ASLant/ElegantClipboard/issues/166
    • fix: 可用版本查询失败不再阻止窗口创建;版本未知、查询失败或比较失败时保留恢复计数,不把无法确认的状态当作检查成功。
    • fix: 进程崩溃、连接断开、窗口就绪超时等真实故障继续保留自动恢复。恢复计数跨启动保留,最多允许两次自动恢复,不再因十分钟计数过期而循环重启;成功版本检查且未安排恢复时清理旧计数,记录与清理互斥,避免丢失刚写入的恢复次数。
    • perf: 清空搜索、重置窗口状态或切换筛选时取消被替代的搜索防抖,减少重复列表查询。
    • perf: WebDAV 配置加载后不再无变化写回,同步类型只保存改变的子项;通用设置只保存变化字段,避免重复应用自启动和管理员启动开关。保存成功后更新基线,失败字段保留后续重试,保存期间的新修改按顺序处理。
    • chore: 补充运行时更新、恢复计数、搜索请求合并及设置保存的回归测试;简化资源状态逻辑并清理冗余测试与临时截图。
  2. v1.2.9ElegantClipboard v1.2.92026-10-05 · 2026-10-05 14:55 UTC
    查看更新说明
    • fix: 文件和缓存图片在卡片加载、窗口再次显示及打开右键菜单时重新检查资源;超出预览大小限制也不再跳过有效性检查。原文件失效时可使用仍存在的暂存副本,资源确实不可用时显示「已失效」并禁用依赖该资源的操作。
    • fix: 复查和虚拟滚动重新挂载时保留上次状态标签,减少「已失效/检测中」闪烁,但检查期间不使用旧结果放行资源操作;检查失败显示未知状态,过期响应不覆盖新条目状态。
    • fix: 预览加载或解码失败与文件失效分开提示;文件仍存在时可以另存为或定位,不再因预览失败而禁用这些操作。
    • fix: 复制、粘贴、路径粘贴、合并粘贴和快捷键在修改剪贴板、隐藏窗口或发送按键前检查内容与资源。合并中缺失或损坏的条目不再被静默省略;另存为和资源管理器定位重新解析条目的当前资源,而非使用界面缓存路径。
    • fix: Windows 不支持写回的空原始格式、空虚拟文件内容及不支持的多虚拟文件合并会在写入前明确报错,不再报告虚假成功。资源存在与剪贴板格式可写回是独立判断,不支持复制格式的已有文件仍可保存或定位。
    • fix: 等待、失败和取消不再显示成功反馈;另存为取消单独处理,键盘删除失败保留选择。主操作已成功但后续排序或刷新失败时分别提示,不把已完成的操作改报失败。
    • fix: 用户操作错误提供简体中文、繁体中文和英文原因;原生诊断细节不直接展示,后台和已有行内错误不重复弹窗。快捷键失败在可见主窗口提示,窗口隐藏时使用系统通知。
    • fix: 操作出错后仍恢复剪贴板监控;粘贴按键发送失败时恢复原本可见的窗口,不抢焦点或改变锁定状态。
    • fix: 修复 Windows DIB V4/V5 图片解码,保留位图头、颜色掩码和调色板信息;真实剪贴板访问错误不再被当作成功或空内容吞掉。
    • feat: 关于页新增三语「全新 2.0 重构版本 · GPUI」链接,通过默认浏览器打开 GPUI 分支。本版仍为 Tauri + React 1.x,不切换应用架构。
  3. v1.2.8ElegantClipboard v1.2.82026-10-02 · 2026-10-02 10:06 UTC
    查看更新说明
    • fix: 修复 Shift+Insert 粘贴未标记独立 Insert 扩展键而导致 Shift 状态丢失;检查 SendInput 返回值,并在注入失败时释放本次补按的修饰键 https://github.com/Y-ASLant/ElegantClipboard/issues/149
    • fix: 浏览器复制单张图片时按图片记录,保留带文字内容的富文本优先策略 https://github.com/Y-ASLant/ElegantClipboard/issues/163
    • fix: 应用内更新使用标准 UAC 提权启动安装器,取消授权或启动失败时保留当前会话 https://github.com/Y-ASLant/ElegantClipboard/issues/156
    • fix: Scoop 更新保留用户数据目录 https://github.com/Y-ASLant/ElegantClipboard/issues/153
    • fix: WebDAV 纯文本同步不再上传图片、文件和应用图标
    • fix: 历史数量清理从实际删除记录收集图片与暂存文件,保留其它分组或受保护条目仍引用的资源
    • fix: 数据导入先完整解包并验证 SQLite,再提交数据库与资产;打开失败或安装中断时恢复原数据,导出包含嵌套暂存文件
    • fix: 数据目录迁移使用 SQLite Backup API,重启时补齐最终快照后才切换配置,并重定位托管资产路径
    • fix: WebDAV 媒体索引读取失败时停止更新和清理,拒绝非法 hash、扩展名及文件名构成的越界路径
    • fix: CF_HTML 偏移切入 UTF-8 字符时返回格式错误,避免异常剪贴板内容导致程序退出
    • fix: 剪贴板捕获按顺序处理独立内容;重试期间重新校验来源、暂停状态与剪贴板序列,丢弃不稳定快照
    • fix: 捕获后合并刷新权威轻量列表,同步已淘汰记录与组合筛选,避免旧响应污染新视图及完整正文长期驻留
    • chore: 更新有安全公告的前后端依赖;CI 增加生产前端构建和剪贴板 HTML 解析回归检查
    • test: 移除依赖机器负载的固定耗时断言和模拟数组操作测试;真实格式化性能改由 npm run bench 单独测量,功能回归保持确定性
    • chore: 更新现有兼容范围内的前后端依赖(React 19.3、Tauri 2.12.1、Radix UI、Tailwind CSS 4.3.3、Playwright 1.63);保留 TypeScript 6、Vitest 4、jsdom 29 与本地 clipboard-rs 分叉
    • chore: 配套 Tauri 2.12 同步 Windows/windows-core 0.62 与 webview2-com 0.39,避免不同 COM 绑定版本造成类型不兼容;上游依赖更新移除 unic-* 停止维护告警
    • fix: 自定义 NSIS 模板适配新版 Tauri 的 Restart Manager 进程检查,加载所需宏并传入安装目录下可执行文件的完整路径,修复安装包生成失败
    • ci: Clippy 与本地 make check 改为仅将正确性 lint 作为错误门禁,保留普通警告输出;编译错误、格式检查和测试失败仍阻断验收
  4. v1.2.7ElegantClipboard v1.2.72026-08-09 · 2026-08-09 16:06 UTC
    查看更新说明
  5. v1.2.6ElegantClipboard v1.2.62026-07-26 · 2026-07-26 03:55 UTC
    查看更新说明
    • fix: 修复 WebDAV 同步设置大小限制后,其他设备仍能看到无内容的破损条目 https://github.com/Y-ASLant/ElegantClipboard/issues/132
    • fix: WebDAV 同步媒体下载完成后自动刷新列表,无需重启即可看到图片预览
    • fix: 远程桌面(mstsc/RustDesk 等)复制文件时正确显示文件名
    • fix: WebDAV 同步媒体完整性校验,拒绝无对应文件的孤立记录
    • fix(i18n): 系统托盘菜单与设置窗口标题支持多语言,语言切换不再丢失暂停/快捷键状态

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    ElegantClipboard

    English | 中文

    ElegantClipboard 是使用 Rust、GPUI 和 gpui-kit 构建的原生剪贴板管理器,Windows、macOS 和 Linux 共用界面与数据服务,系统集成分别实现。当前分支只有 GPUI 应用,不需要 Node.js、WebView 或 Tauri。

    功能

    • 采集并搜索文本、URL、HTML/RTF、图片及文件路径
    • 保真回贴:其余原生格式(含应用自定义格式)按内置黑名单全量捕获,复制历史记录时随主格式一并写回;大格式转内容寻址 blob 存储(zstd 压缩),随删除和保留策略自动回收,备份包含 blob
    • 去重与合并:相同纯文本再以 HTML/RTF 复制时并入既有条目;重复复制默认移到列表顶部,也可在数据设置改为各存一条;复制后 300ms 确认窗口过滤瞬时碎片(可在数据设置关闭);条目备注可编辑并参与搜索
    • 富文本按单一格式(纯文本/HTML/RTF)复制或粘贴到原窗口,缺少所选格式时报错不降级;纯文本支持转换后复制/粘贴(去首尾空白、去换行、大小写);粘贴后恢复原剪贴板可在设置开启(默认关闭)
    • 序列粘贴:多选记录后逐条粘贴到原窗口,由全局推进键(默认 Ctrl+Shift+G)逐条送出,队列耗尽自动结束,离开面板或复制/删除会取消队列
    • HTML 条目在悬停预览窗口渲染富文本排版(含本地图片),列表保持纯文本摘要;图片既可按图片粘贴到聊天窗口,也可按文件粘贴到资源管理器
    • 首次启动在新数据目录提供三步引导:选择语言、查看并录制快捷键、配置主题与开机启动;演示记录隔离存放,不影响真实历史;设置 → 关于可重看引导
    • 设置按常规、显示、外观、数据、应用过滤、音效、快捷键和关于分类:可分别启停各类型的历史采集(至少保留一种)、按规则或运行中应用过滤来源、配置复制与粘贴音效
    • 分组与条目管理:收藏、置顶,分组可新建、重命名、删除和排序;卡片两侧区域拖拽排序、多选批量删除与清理历史;卡片预览行数、时间格式、字符数、大小与来源显示均可配置
    • 独立悬停预览:透明、鼠标穿透且不抢焦点的浮层,优先显示在主窗口侧边;Ctrl+滚轮缩放图片或滚动文本,离开来源卡片即关闭;普通文件只保存原始路径,原件移动或删除后提示路径失效
    • 界面:简体中文/English、明暗主题、组件圆角选项、毛玻璃/云母/不透明背景材质(按平台能力提供)、窗口置顶/点击外部隐藏/唤出位置;无边框主窗口可按住搜索框上方握柄拖动,向下滚动后可一键返回顶部;快速粘贴默认关闭,槽位与粘贴键、受控/连贴投递节奏均可自定义(默认受控,连贴适合按住 Alt 连按数字)
    • 数据管理:备份导出为 GPUI ZIP,支持恢复 GPUI/旧版备份或导入旧数据库到独立空目录;按分组配置数量与天数保留上限,保护收藏与置顶;全局快捷键显隐切换、系统托盘、开机启动、暂停采集和单实例唤回

    已知限制:HTML 预览中引用 http(s) 的远程图片不加载;编辑 HTML 条目保存后降级为纯文本;图片回贴的临时文件位于数据目录 image_tmp/,启动时自动清扫。

    Windows 实现和历史验收详见 Windows GPUI 状态。

    平台差异

    平台集成与限制
    Windows剪贴板原生格式、热键、托盘、OLE 拖放、受控粘贴与 DWM 材质
    macOSCarbon 热键、菜单栏托盘、LaunchAgent 登录启动、AppKit 拖放;自动粘贴使用 Cmd+V,需授予辅助功能权限,不支持 Shift+Insert;来源应用为前台应用的尽力归因;材质支持模糊,不支持 Mica
    Linux X11X11 热键、XTEST 粘贴、XInput2 外部点击、XDND 拖放、XDG 自动启动;来源优先按 selection owner 的 XRes PID 识别,无法确定时保持未知;需要支持相应扩展的 X server
    Linux Wayland需要 compositor 的 data-control 协议,不退回 XWayland 采集;全局快捷键、自动粘贴、来源识别和精确定位不可用;保留内部排序及文件/图片拖出;重复复制完全相同内容无法被识别为新事件

    Linux 托盘需要 StatusNotifier/XEmbed 宿主(GNOME 通常需要 AppIndicator 扩展);音效需要 paplay(pulseaudio-utils),链接和文件定位需要 xdg-open / dbus-send。macOS 使用系统 open / afplay。

    项目按三平台编译,但实机验收目前只覆盖 Windows(原生窗口与隔离剪贴板往返已验证);macOS 与 Linux 的桌面交互、权限和打包产物仍需本机验收。

    工程结构

    crates/
      clipboard-core/      数据模型、SQLite、查询、备份与业务规则
      clipboard-platform/  共享剪贴板服务及 Windows/macOS/Linux 系统集成
      clipboard-gpui/      GPUI 应用入口、状态与界面
    scripts/               打包与验证辅助脚本
    docs/                  架构决策、功能状态和验收证据
    

    依赖方向:clipboard-gpui -> clipboard-platform -> clipboard-core;核心层不依赖 GPUI 或系统 API。Rust 源文件(含示例与测试)不得超过 640 物理行,由 just check 与 CI 强制执行。模块职责见工程文档。

    从源码运行

    要求:

    • Windows 10/11 x64 + MSVC;或 macOS + Xcode Command Line Tools;或 Linux + 下列系统依赖
    • Rust 1.98 或更高版本,当前系统的原生工具链
    • 检查及打包需要 PowerShell 7(pwsh)
    • just(可选,用于下文的快捷命令)

    macOS 先运行 xcode-select --install。Ubuntu 24.04 开发依赖:

    sudo apt-get update
    sudo apt-get install build-essential clang cmake pkg-config libssl-dev libgtk-3-dev libayatana-appindicator3-dev libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev libvulkan-dev libx11-xcb-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb-randr0-dev libasound2-dev libudev-dev mesa-vulkan-drivers xdg-utils dbus-x11 pulseaudio-utils
    

    Linux 运行需要可用的图形会话及 Vulkan 驱动,不要在无显示服务的 SSH 会话中启动 GUI。

    just run    # 或 cargo run -p elegant-clipboard-gpui --locked
    

    默认数据目录:

    平台路径
    Windows%LOCALAPPDATA%\ElegantClipboard
    macOS~/Library/Application Support/ElegantClipboard
    Linux$XDG_DATA_HOME/elegantclipboard(默认 ~/.local/share/elegantclipboard)

    旧版本数据目录和开机启动项不自动搬迁;最新 1.x 的历史可导入旧数据库或旧版 ZIP。启动时清理历史 staged 文件副本及其数据库引用,保留原始路径。--data-dir 显式指定后原样使用:

    cargo run -p elegant-clipboard-gpui --locked -- --no-monitor --data-dir .\target\gpui-check
    

    诊断日志

    诊断日志默认关闭,可在常规设置开启。日志写在数据目录下的 logs(每次启动一个独立会话目录),记录版本、进程、启停、显示器坐标与 DPI、窗口及悬停预览生命周期。

    • application.log 按大小轮转(4 MiB × 3 份),panic.log 记录 panic 的线程、位置和堆栈
    • 不记录剪贴板正文、搜索词、图片像素或分组名称;错误消息和堆栈可能含本机路径,分享前请检查
    • 系统强制结束、断电及 fail-fast 可能绕过 panic hook——没有 panic.log 不代表没有崩溃;如遇闪退请保留对应会话目录,并附 Windows「事件查看器 → Windows 日志 → 应用程序」中的错误记录

    Windows 管理员启动

    仅 Windows 提供「以管理员身份启动」(常规设置):经 UAC 重启为提权进程,用于监听并向其他提权应用(部分游戏、终端)粘贴;拒绝 UAC 则按普通权限继续运行。

    构建与验证

    just check
    just test
    just build
    

    Release 可执行文件为 target/release/elegant-clipboard-gpui[.exe]。

    打包:

    平台命令产物
    Windowsjust packagex64 ZIP 与 NSIS 安装包(需本机安装 NSIS 3)
    macOSjust package-unixad-hoc 签名的 .dmg
    Linuxjust package-unix.tar.gz、.deb、.rpm(需 dpkg-dev 和 rpm)

    打包必须在对应平台本机进行;产物写入 target/packages/。macOS 未做公证,首次启动如被拦截可在「隐私与安全性」选择"仍要打开"。安装包卸载不删除历史数据。不提供自动更新。

    版本管理

    .\scripts\bump-version.ps1 2.0.1
    

    脚本更新根 Cargo 工作区版本和锁文件;发布标签必须与 Cargo 版本一致,例如 v2.0.1。版本记录见 变更日志。

    许可证

    MIT License