Rust 原生的轻量剪贴板管理器。原始上游为 jimuzhe/dzc-slimpboard v0.3.1,我曾经在此基础上进行了大量修改,并以个人的方式将其完整迁移到了 Linux 上:qiyuanhuakai/dezirclip。但我受够了Tauri了。它看似使用性能最强的 Rust,实际上还是在运行一个高性能开销(能使我的n100增加80%占用)、无比巨大(内存占用200Mb,峰值可达600-800Mb)的 Webview。相比electron,它的跨平台兼容性也堪称糟糕(在 Linux 和Windows 上,同一套主题的观感是完全不同的)。所以我新开了这个项目,目标是在 Linux 上去掉 React/Tauri/WebView 所有的开销,并保留 TieZ 的紧凑视觉,我喜爱的macos风格与高频剪贴板工作流。
- 原生自绘 UI:
eframe/egui,无系统标题栏,自绘deziroslim顶栏可拖拽,支持圆角窗口、可切换应用边框和统一尺寸的 egui 手绘矢量工具图标。 - 字体默认优先使用个人喜好的
Maple Mono NF CN,自动回退 Noto / 思源 / WenQuanYi 等 CJK 字体;界面设置中可搜索系统字体并自定义“主要字体”和“备用字体”,缺字时自动走 egui fallback 链,内置 GNU Unifont 作为最后 Unicode 回退。 - Linux 剪贴板:
arboard轮询监听文本、富文本 HTML、图片和文件列表;文本自动识别 URL、代码、文件路径、图片/视频 data URL 等类型。文件条目写回时会尽力写入 GNOMEx-special/gnome-copied-files,并始终写入通用文件列表/text/uri-list,便于 Nautilus/Thunar/Dolphin/PCManFM 等 GUI 文件管理器粘贴。 - 持久化:
rusqlite+ bundled SQLite;默认数据目录为 XDG 数据目录下的deziroslim,并兼容读取旧myclipboard数据位置。 - 历史能力:搜索、类型过滤、标签过滤、置顶、删除、清空、标签编辑、左键/右键/Enter 按 TieZ 语义复制并粘贴。
deziroslim风格主界面:380×680 竖向剪贴板浮窗、紧凑标签胶囊、单列历史流、类型徽标、敏感内容遮罩、左/右/上三向贴边边条隐藏;富文本、图片和文件历史项悬停时提供内容预览浮层。- 表情包页面:顶部真实 emoji 按钮进入
表情包全页,使用 Twemoji SVG 渲染完整 Twemoji 集合,并按 Unicodeemoji-test.txt/ CLDR 权威分组显示;组内继续分页以避免大组卡顿。收藏 Tab 支持文件选择、拖放图片和粘贴 data URL 添加表情包,保存到当前数据库旁的emoji_favorites/目录,点击表情或收藏会直接写入剪贴板并粘贴。 - 符号页面:顶部
∑按钮进入符号全页,提供常用、箭头、数学、货币、框线、希腊、上下标/分数、技术、几何、块元素、标点/括号、星标/装饰、音乐/棋牌等 Unicode 符号,点击即可直接粘贴。 - 设置页面:顶部齿轮按钮进入全页设置,包含常规设置、快捷键设置、剪贴板设置、界面设置、默认打开程序、标签目录和数据管理;已接通项即时生效并持久化,字体选择支持可搜索下拉和系统字体重新扫描。
- macOS 视觉风格:
MacosTokens映射 TieZ CSS 变量为 Rust 常量,支持 Light/Dark/跟随系统 模式;设置页使用macos_toggle开关和macos_range_slider滑块。 - Linux 平台能力:X11 前台窗口识别、录制式全局快捷键(含鼠标中键)、StatusNotifierItem 系统托盘(支持热隐藏/重建)、窗口置顶、跟随鼠标呼出、四向边缘隐藏停靠、XDG 开机启动、可配置
xdotool粘贴方式、XDG 默认打开程序下拉。 - 音效:可在常规设置中启用复制/粘贴提示音、调整音量,并可单独关闭粘贴音效;Linux 下优先调用
aplay,再回退到paplay,不可用时静默降级。 - 简洁模式:隐藏复制时间,将标签和文本压缩到同一行,并仅在卡片悬停时显示操作工具栏;非简洁模式会保留复制时间和独立标签行,并在卡片标题元信息中显示来源应用,操作工具栏常显。
- 应用黑名单与私有模式:可配置应用黑名单(支持通配符匹配 WM_CLASS),在指定应用中复制时自动跳过记录;私有模式可通过快捷键(默认 Ctrl+Alt+P)一键切换,启用后暂停所有剪贴板捕获,状态栏显示锁定图标。
- Primary Selection 跟踪:X11 环境下通过 XFixes 扩展监听鼠标选区(PRIMARY selection),与剪贴板(CLIPBOARD)独立存储;选区条目标注
🖱️ 选区徽章,支持仅选区过滤;中键粘贴自动走 PRIMARY 通道。 - 正则 Actions 系统:基于正则表达式的自动化规则引擎,匹配剪贴板内容后可自动执行外部命令(如 URL 用浏览器打开、邮箱用邮件客户端打开);支持工具栏 ⚡ 按钮快速触发、右键上下文菜单集成、自动触发模式(5 秒撤销窗口);设置面板提供完整 CRUD、实时测试和测试运行。
- 导出/导入与自动备份:支持将全部历史、标签和设置导出为 JSON 文件,可从 JSON 文件导入(自动去重);关闭应用时可自动备份,保留份数可配置;数据管理面板含导出/导入/备份/立即备份/打开备份目录等操作。
- 模糊搜索:基于 nucleo-matcher 的高性能模糊搜索,支持拼写纠错(如
cllpboard匹配clipboard)和中文模糊匹配;搜索结果按相关度排序,匹配字符高亮显示;可在设置中切换回传统子串搜索。 - 数据库加密(默认启用):使用 AES-256-GCM 加密敏感条目;密钥通过系统 keyring(GNOME Keyring / KWallet)管理;标记为敏感的条目自动加密存储,读取时自动解密;支持批量加密/解密迁移,带 LRU 缓存优化读取性能。
- KDE Connect 同步:默认编译启用,支持与 Android 设备通过 KDE Connect 协议同步剪贴板;设置面板含启用开关、设备 ID 显示、已发现设备列表;通过手机端设备列表配对后双向同步,带 echo 防重复机制。
- 国际化(i18n):完整双语支持(zh-CN + en-US),754 个翻译键,100% 覆盖率;使用 rust-i18n v4,启动时自动检测系统语言,支持手动切换;所有用户可见字符串均通过
t!()宏引用,无硬编码。
从 release 下载对应平台和架构的安装包:
- Windows:
deziroslim-<版本>-windows-amd64-setup.exe或deziroslim-<版本>-windows-arm64-setup.exe。 - Linux:支持
amd64/aarch64的deb、rpm和AppImage。
cargo run
cargo dev # 等价于 cargo run --bin deziroslim -- dev
cargo ci # 串行运行 cargo fmt/check/test/clippy/i18n
cargo run -- --db-path /path/to/clipboard.db
DEZIROS_LIM_DB_PATH=/path/to/clipboard.db cargo run
cargo test # 局部调试可用;提交前优先 cargo ci
cargo build --releaseGUI 调试模式:
cargo dev
# 或显式转发参数
cargo run --bin deziroslim -- dev
# 兼容旧写法
cargo run -- --dev
# 或
DEZIROS_LIM_DEV=1 cargo run
# 兼容旧变量
MYCLIPBOARD_DEV=1 cargo run
# 或编译期启用
cargo run --features devtoolsdeziroslim 提供命令行工具 dzc-slim,可通过 Unix socket 与运行中的 GUI 实例通信。需要先启动 deziroslim 才能使用 dzc-slim。
# 列出最近的剪贴板记录
dzc-slim list
# 搜索历史
dzc-slim search "关键词"
# 将指定条目复制到剪贴板
dzc-slim paste 42
# 查看服务器状态(含 KDE Connect 同步状态)
dzc-slim status
# 切换置顶状态
dzc-slim pin 42
# 设置标签
dzc-slim tag 42 work important
# 删除条目
dzc-slim delete 42
# 添加新条目
dzc-slim add "要保存的文本"
# JSON 格式输出(适合脚本处理)
dzc-slim --json list
dzc-slim --json status | jq '.sync'配合 rofi/wofi 可实现键盘驱动的剪贴板选择器,详见 docs/rofi-script.sh 和 Sway/Hyprland 集成指南。
deziroslim ships with dzc-slim, a command-line tool that talks to a running GUI instance over a Unix domain socket. The deziroslim app must be running first.
# List recent clipboard entries
dzc-slim list
# Search history
dzc-slim search "query"
# Copy an entry to clipboard by ID
dzc-slim paste 42
# Show server status (including KDE Connect sync state)
dzc-slim status
# Toggle pin state
dzc-slim pin 42
# Set tags on an entry
dzc-slim tag 42 work important
# Delete an entry
dzc-slim delete 42
# Add a new entry
dzc-slim add "text to save"
# JSON output (for scripting)
dzc-slim --json list
dzc-slim --json status | jq '.sync'For rofi/wofi keyboard-driven clipboard picker integration, see docs/rofi-script.sh and the Sway/Hyprland integration guide.
原始 dzc-slimpboard 使用 React + Tauri 2 + WebView。deziroslim 对齐个人 qiyuanhuakai/dzc-slimpboard 分支中的主界面视觉和核心数据模型,并用 Rust 原生能力补齐文本/富文本/图片/文件剪贴板、X11 全局呼出、鼠标中键、点击/键盘粘贴流程、系统托盘、边缘停靠、默认打开应用设置、彩色 emoji/符号入口、音效、字体 fallback 和可配置数据位置。
KDE Connect 同步默认编译启用;无需额外 feature。Android 端 KDE Connect 没有通用二维码配对入口,请使用设备列表配对。
- 在 Android 手机安装 KDE Connect
- 启动 deziroslim,进入 设置 → 同步 面板
- 打开「启用 KDE Connect」开关
- 在手机 KDE Connect 的设备列表中选择 deziroslim,并确认配对请求
- 配对成功后,设备列表显示已连接设备名和状态
- 之后在任意一端复制文本,另一端剪贴板会自动同步
- Install KDE Connect on your Android phone
- Launch deziroslim, go to Settings → Sync panel
- Enable the "KDE Connect" toggle
- Select deziroslim from Android KDE Connect's device list and confirm the pairing request
- After pairing, the device list shows the connected device name and status
- From now on, copying text on either side automatically syncs to the other
注意 / Note: 同步依赖两个设备在同一局域网。敏感条目(已加密)同步前会提示确认。 Sync requires both devices on the same network. Sensitive (encrypted) entries prompt for confirmation before syncing.
deziroslim 现已支持国际化(i18n)。当前支持以下语言:
- 简体中文 (zh-CN) — 源语言,完整覆盖
- English (en-US) — 完整翻译
翻译文件位于 locales/ 目录:
locales/
├── zh-CN.yml # 源语言文件
└── en-US.yml # 英文翻译
欢迎贡献新的翻译或改进现有翻译:
-
添加新键:如果修改代码时新增了 UI 字符串,先在
locales/zh-CN.yml中添加,再同步到locales/en-US.yml -
添加新语言:在
locales/目录下创建 YAML 文件,命名格式为<语言代码>.yml(如ja-JP.yml),参考zh-CN.yml的键结构进行翻译 -
验证:运行以下命令检查一致性:
cargo ci # 或仅检查翻译键 bash scripts/i18n-check.sh
- 键名使用
section.subsection.label命名空间格式 - 所有字符串值使用
"双引号"括起 - 占位符使用 rust-i18n v4 的
%{placeholder}格式(如%{count}、%{err}) - en-US 文件中不能出现中文(CJK)字符