Skip to content

TheHolyOneZ/ZClipboardManager

Repository files navigation

Clipboard Manager Screenshot

Clipboard Manager

A modern, cross-platform clipboard manager built with Tauri v2, React, and Rust.


Platform Tauri React Rust TypeScript License


Features

  • Real-time capture — monitors your clipboard every 500 ms using native OS APIs (no external tools required)
  • Text, URLs, code, HTML and images — automatically classifies every item by content type
  • Smart deduplication — SHA-256 hashing ensures the same content is never stored twice
  • Full-text search — debounced search across all stored items
  • Favorites — star items to pin them and protect them from pruning
  • One-click re-copy — hover any card and click Copy to restore it to the clipboard instantly
  • System tray — lives in your tray, always out of your way
  • Global shortcutCtrl+Shift+V (configurable) to summon the window from anywhere
  • Glassmorphism UI — translucent dark interface with platform-native blur effects
  • Platform-aware title bar — traffic lights on the left for macOS, slim controls on the right for Windows/Linux
  • Persistent history — SQLite database survives restarts, stores up to 2 000 items (configurable)

Platform Support

Feature Windows 10/11 macOS 12+ Linux (X11) Linux (Wayland)
Clipboard monitoring
Image capture
System tray
Global shortcut
Window blur / vibrancy ✅ Acrylic ✅ NSVisualEffect CSS fallback CSS fallback
Native title bar layout Right-side controls Left-side traffic lights Right-side controls Right-side controls

Linux note: The app uses arboard which communicates directly with X11 or Wayland — no xclip, xsel, or wl-clipboard installation required.


Getting Started

Prerequisites

Windows
macOS
# Xcode Command Line Tools
xcode-select --install

# Homebrew (if needed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Node.js and pnpm
brew install node
npm install -g pnpm

# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Linux — Debian / Ubuntu
sudo apt update
sudo apt install -y \
  libwebkit2gtk-4.1-dev build-essential curl wget \
  libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev

# Node.js via fnm
curl -fsSL https://fnm.vercel.app/install | bash
fnm use --install-if-missing 20
npm install -g pnpm

# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Linux — Arch / EndeavourOS / Manjaro
sudo pacman -S --needed \
  webkit2gtk-4.1 base-devel curl wget openssl \
  gtk3 libayatana-appindicator librsvg appmenu-gtk-module

sudo pacman -S nodejs npm
npm install -g pnpm

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Linux — Fedora / RHEL
sudo dnf install -y \
  webkit2gtk4.1-devel openssl-devel curl wget \
  libappindicator-gtk3-devel librsvg2-devel

sudo dnf install nodejs
npm install -g pnpm

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Build from Source

# 1 — Clone
git clone https://github.com/TheHolyOneZ/ZClipboardManager.git
cd ZClipboardManager

# 2 — Install JS dependencies  (pnpm — NOT npm)
pnpm install

# 3 — Development mode  (hot-reload frontend + Rust rebuild on change)
pnpm tauri dev

# 4 — Production build
pnpm tauri build

Output locations after pnpm tauri build:

Platform Location Format
Linux src-tauri/target/release/bundle/ .deb .rpm .AppImage
macOS src-tauri/target/release/bundle/ .dmg .app
Windows src-tauri/target/release/bundle/ .exe (NSIS) .msi

Usage

Action How
Open / close Ctrl+Shift+V from anywhere, or click the tray icon
Search Type in the search bar — results update as you type
Filter by type Click a category in the left sidebar
Copy an item Hover a card → click Copy
Favorite an item Hover a card → click the ⭐ button
Delete an item Hover a card → click the 🗑 button
Settings Click ⚙ in the title bar
Quit Right-click the tray icon → Quit

Configuration

Open Settings (⚙ in the title bar) to configure:

Setting Default Description
Max items stored 500 History size before oldest items are pruned (50–2000)
Global shortcut Ctrl+Shift+V Keyboard combination to toggle the window
Start minimized off Launch silently into the tray on login
Sound on capture off Play a click sound when a new item is saved

Database location:

Platform Path
Linux ~/.local/share/clipboard-manager/history.db
macOS ~/Library/Application Support/clipboard-manager/history.db
Windows %APPDATA%\clipboard-manager\history.db

Architecture

clipboard-manager/
├── src/                            # React + TypeScript frontend
│   ├── components/
│   │   ├── TitleBar.tsx            # Platform-aware title bar
│   │   ├── Sidebar.tsx             # Category filter navigation
│   │   ├── SearchBar.tsx           # Debounced search input
│   │   ├── ClipboardList.tsx       # Scrollable item list
│   │   ├── ClipboardCard.tsx       # Item card with hover actions
│   │   └── SettingsPanel.tsx       # Settings modal
│   ├── hooks/
│   │   ├── useClipboardHistory.ts  # Tauri event listener + CRUD
│   │   └── useSearch.ts            # Debounced search state
│   ├── styles/
│   │   ├── globals.css             # CSS custom properties + Inter font
│   │   └── glass.css               # Glassmorphism utility classes
│   └── types/clipboard.ts          # Shared TypeScript types
└── src-tauri/                      # Rust backend
    └── src/
        ├── main.rs                 # Entry point
        ├── lib.rs                  # Tauri setup: tray, shortcuts, vibrancy
        ├── clipboard_monitor.rs    # 500 ms polling → Tauri events
        ├── storage.rs              # SQLite CRUD (fully parameterized)
        └── commands.rs             # IPC commands exposed to frontend

Tech Stack

Layer Technology
Desktop runtime Tauri v2
Frontend React 19 + TypeScript 5
Build tool Vite 7
Package manager pnpm
Styling CSS Modules + custom glassmorphism design system
Icons Lucide React
Font Inter via @fontsource
Clipboard access arboard — native X11 / Wayland / AppKit / WinAPI
Database SQLite via rusqlite (bundled)
Hashing SHA-256 via sha2
Image encoding image crate
Window effects window-vibrancy

License

GPL-3.0 — see LICENSE for details. © TheHolyOneZ


Built with Tauri, React, and Rust

About

Modern cross-platform clipboard history manager — text, URLs, code & images. Built with Tauri v2, Rust & React. Global shortcut, favorites, smart search, system tray.

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors