Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RustPaste

Local clipboard history for Windows and macOS (eframe/egui). Captures text, HTML, RTF, images, and file paths into SQLite; hotkey opens the list; selecting an item writes back and can auto-paste into the previous app.

Features

  • Kinds: text / html / rtf / image / files (new writes never use mixed; legacy mixed rows migrate)
  • Multi-viewport: Main history, Preferences, and Preview are separate egui viewports
  • Settings UI: Preferences binds the full settings.json model (capture, retention, actions, theme/i18n, backup entry, update, …)
  • Organize: Pin / note / groups via history API; kind filter + FTS search
  • Search: FTS5 over body + notes; filters for favorite/pin/group
  • Pin / note / groups: metadata updates do not bump reuse timestamps
  • Preview: Space opens a Preview viewport (HTML scripts stripped; no WebView)
  • Backup: .rustpastebak JSON bundle — plain merge/overwrite, or Argon2id + AES-256-GCM encrypted
  • i18n + theme: zh-CN / en-US via t(); Light/Dark/Auto mapped to egui Visuals
  • Onboarding: same-window first-run steps when onboarding.completed=false
  • Hotkey / autostart / Win+V: shortcuts.open_clipboard re-registered at startup; autostart preference; Win+V flag persisted (Windows hook best-effort)
  • Update check: optional feed parse; download-to-cache + open installer (no silent replace)
  • Drag-out: payload prep + macOS best-effort (degrades without panic)
  • Tray stay-resident; Esc / close hides to background

Default hotkeys: macOS Command+Shift+V, Windows Ctrl+Shift+V (overridable in settings).

Settings path

OS Typical data root
macOS ~/Library/Application Support/com.3minai.rustpaste/
Windows %APPDATA%\3minai\rustpaste\ (via directories crate)

Files: clips.db / clipboard_* tables, images/, config/settings.json.

Useful settings keys (camelCase JSON)

  • clipboard.filters.excludedAppIds — skip capture from these apps
  • clipboard.sensitive.* — JWT / AWS / private-key style detection
  • clipboard.content.deleteConfirm — false skips delete modal
  • clipboard.history.retention / maxCount — cleanup on startup
  • shortcuts.openClipboard / shortcuts.winV
  • appearance.theme / appearance.language
  • onboarding.completed
  • update.checkOnStartup

Backup

Export/import via rustpaste::backup (.rustpastebak). Corrupt or wrong-password imports fail without wiping the DB. Use placeholder passwords in tests only (test-password-placeholder).

Security & privacy

  • Local only — no cloud, no accounts
  • Logs must not include clipboard bodies, image pixels/PNG base64, or backup passwords
  • Docs/tests use placeholders only

Permissions

  • macOS: Accessibility for simulated paste; otherwise content stays on the clipboard for manual paste
  • After rename/re-sign, re-grant Accessibility for Bundle ID com.3minai.rustpaste

Exclusions (not in this parity pass)

  • Full OS RTF clipboard read (still stubbed on some paths)
  • Live Win+V OS hook (setting only)
  • Full OS drag-out UI (payload prep + #[ignore] manual)
  • Tauri/React UI rewrite

Develop

export PATH="$HOME/.cargo/bin:$PATH"
cargo fmt -- --check
cargo test --lib
cargo build
cargo run

macOS package

./scripts/package-macos-app.sh
open dist/rustpaste.app

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages