โ๏ธ Rusty Clipboard: The Power Userโs Terminal-First Clipboard Manager for Windows 11
Tired of juggling multiple clipboard items across applications? Meet **rusty-clipboard*โa blazing-fast, terminal-native clipboard manager that brings Vim-like efficiency to your Windows workflow!* ๐
๐ฏ What Problem Does It Solve?
Every developer knows the pain: you copy a code snippet ๐, then an error message ๐จ, then a URL ๐... and suddenly your original content is gone forever. Traditional clipboard managers often feel clunky, requiring mouse interactions or disrupting your flow.
rusty-clipboard solves this with a fresh approach: terminal-first design + Vim-inspired navigation + Windows-native performance. Itโs like having a clipboard assistant that lives in your termiโฆ
โ๏ธ Rusty Clipboard: The Power Userโs Terminal-First Clipboard Manager for Windows 11
Tired of juggling multiple clipboard items across applications? Meet **rusty-clipboard*โa blazing-fast, terminal-native clipboard manager that brings Vim-like efficiency to your Windows workflow!* ๐
๐ฏ What Problem Does It Solve?
Every developer knows the pain: you copy a code snippet ๐, then an error message ๐จ, then a URL ๐... and suddenly your original content is gone forever. Traditional clipboard managers often feel clunky, requiring mouse interactions or disrupting your flow.
rusty-clipboard solves this with a fresh approach: terminal-first design + Vim-inspired navigation + Windows-native performance. Itโs like having a clipboard assistant that lives in your terminal, always ready but never intrusive! โจ
๐๏ธ Architectural Brilliance: Two Processes, One Mission
The secret sauce? Process separation! ๐ง rusty-clipboard splits responsibilities between two specialized components:
// Daemon (clipd) - The silent guardian
async fn main() -> Result<()> {
let clipboard_watcher = ClipboardWatcher::new();
let db = SqliteStore::new().await?;
let ipc_server = IpcServer::start().await?;
// Watch, capture, persist - all in the background
clipboard_watcher.run(db, ipc_server).await
}
// TUI (clipctl) - The elegant interface
fn main() -> Result<()> {
let app = App::new()?;
let mut terminal = Terminal::new()?;
// Render, search, interact - with zero impact on capture
terminal.draw(|f| ui::draw(f, &app))?;
}
This separation means your clipboard history never disappears, even if the UI crashes or you restart it! ๐ The daemon (clipd) runs continuously, while the TUI (clipctl) launches on-demand with a simple F12 hotkey.
โก Core Features That Will Blow Your Mind
๐จ Beautiful, Information-Rich Terminal UI
Forget boring text lists! rusty-clipboard delivers a visually stunning TUI experience:
- Multiple Color Themes ๐: Choose from Nord (default), Dracula, Tokyo Night, or Gruvboxโeach carefully crafted for optimal readability
- Smart Syntax Highlighting ๐ป: Automatically detects and highlights code in 10+ languages including Rust, Python, JavaScript, and Go
- Rich Text Rendering ๐: Renders markdown-style formatting with headers, bullet points, and inline code blocks
- Colored Icon System ๐ฏ: Different colors for text (๐), URLs (๐), images (๐ผ๏ธ), and documents (๐)
๐ Vim-Style Navigation & Search
If you love Vim, youโll feel right at home! ๐
Normal Mode:
j/k - Navigate up/down
g/G - Jump to top/bottom
/ - Enter search mode
Enter - Paste selected item
? - Show help overlay
q - Quit without pasting
Search Mode:
Type your query - Real-time filtering
Enter/Esc - Exit search
The search is incremental and server-side, meaning even massive clipboard histories feel instantaneous! โก
๐๏ธ Intelligent Persistence & Deduplication
No more duplicate entries clogging your history! The system uses SHA-256 hashing to detect and suppress adjacent duplicates:
impl ClipboardEntry {
pub fn deduplicate(&self, previous_hash: &str) -> bool {
let current_hash = compute_sha256(&self.content);
current_hash != previous_hash
}
}
SQLite in WAL mode ensures sub-5ms writes while handling concurrent reads flawlessly. Your history stays local and privateโno cloud nonsense! ๐
๐ ๏ธ Technical Deep Dive: How It Actually Works
๐ก Clipboard Capture Magic
rusty-clipboard uses a dual-strategy approach to never miss a clipboard change:
// Primary: Real-time listener (most efficient)
unsafe { AddClipboardFormatListener(hwnd) };
// Fallback: Polling for sandboxed apps
tokio::spawn(async {
loop {
let seq = unsafe { GetClipboardSequenceNumber() };
if seq != last_seq {
process_clipboard_change().await;
}
sleep(Duration::from_millis(250)).await;
}
});
This ensures compatibility even with UWP apps that block traditional clipboard listeners! ๐ก๏ธ
๐ IPC That Doesnโt Suck
The communication between daemon and TUI uses Windows named pipes with a clean JSON protocol:
{
"type": "Search",
"query": "error",
"limit": 50
}
The framing uses 32-bit length prefixes, making it trivial to add new message types while maintaining backwards compatibility. Future-proof by design! ๐
๐ญ Theme System Architecture
The theme system demonstrates Rustโs type safety at its finest:
#[derive(Clone, Debug)]
pub struct Theme {
pub borders: Color,
pub text: Color,
pub icons: HashMap<ContentType, Color>,
pub syntax_highlighting: SyntaxTheme,
}
impl Theme {
pub fn nord() -> Self { /* Nord theme implementation */ }
pub fn dracula() -> Self { /* Dracula theme implementation */ }
}
Tags render with beautiful colored backgrounds in the UI, making visual scanning a breeze! ๐ช๏ธ
๐ Metadata-Rich Previews
The preview pane shows more than just content:
Type: ๐ Text
Source: Code.exe
Tags: [rust] [debugging]
Captured: 2 minutes ago
Content: [syntax-highlighted code preview]
This context helps you quickly identify when and why you captured something! ๐ต๏ธโ๏ธ
๐ฏ Getting Started (The TL;DR Version)
For detailed setup instructions, see the README.md. The quick version:
git clone https://github.com/surajfale/rusty-clipboard.git
cd rusty-clipboard
.\install.ps1 # Builds, installs, configures F12 hotkey
Restart PowerShell, press F12, and experience clipboard nirvana! ๐งโ๏ธ
๐ The Future Is Bright
The architecture leaves room for exciting extensions:
- Transformer Pipeline ๐: Async formatters for JSON prettification, whitespace trimming
- Sync Capabilities โ๏ธ: Potential OneDrive/DevDrive integration for history backup
- Plugin System ๐งฉ: Community-driven extensions and themes
๐ Conclusion: Why This Changes Everything
rusty-clipboard isnโt just another clipboard managerโitโs a philosophy about how terminal tools should work: fast, reliable, keyboard-centric, and beautiful. It respects your workflow while dramatically enhancing your productivity. ๐
The combination of Rustโs performance, Windows-native APIs, and thoughtful UX design creates something truly special. Once you experience the F12 โ search โ Enter workflow, youโll wonder how you ever worked without it! โจ
Ready to transform your clipboard experience? Star the repo, try it out, and join the conversation about making terminal tools more powerful and delightful! ๐
rusty-clipboard: Because your clipboard should work for you, not against you. ๐ฏ๐ช
๐ Repository: https://github.com/surajfale/rusty-clipboard
๐ค About This Post
This blog post was automatically generated using Auto-Blog-Creator, an AI-powered tool that transforms GitHub repositories into engaging blog content.
๐ง AI Model: deepseek-v3.1:671b-cloud via Ollama Cloud
โจ Key Features:
- Automated blog generation from GitHub repos
- AI-powered content creation with advanced prompt engineering
- Multi-platform support (dev.to, Medium)
- Smart content parsing and formatting
Interested in automated blog generation? Star and contribute to Auto-Blog-Creator!