Skip to content

ZachL1/Paw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Paw πŸ“‹

A lightweight, keyboard-first clipboard manager built for true cross-platform support. Inspired by Maccy.

Built with Tauri + Rust + React + TypeScript.

License


⚑ Quick Start

Get Paw installed and running in under 2 minutes on Ubuntu/Debian.

1. Install dependencies

sudo apt install xdotool libwebkit2gtk-4.0-37 libgtk-3-0

2. Download & install

Go to the Releases page and download the .deb package, then:

sudo dpkg -i paw_*.deb
sudo apt-get install -f   # fix any missing dependencies

AppImage (no install needed, works on any Linux distro):

chmod +x paw_*.AppImage && ./paw_*.AppImage

3. Launch

paw &

Paw starts silently in the system tray. You won't see a window β€” that's normal.

4. Use it

  1. Copy anything in any app as usual (Ctrl+C)
  2. Press Alt+V anywhere to open Paw
  3. Type to search your clipboard history
  4. Use ↑↓ to pick an item, press Enter to paste it
  5. Press Escape or click outside to dismiss

That's it! βœ…

Auto-start on login (optional)

# Create a systemd user service
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/paw.service << 'EOF'
[Unit]
Description=Paw clipboard manager

[Service]
ExecStart=%h/.local/bin/paw
Restart=on-failure

[Install]
WantedBy=default.target
EOF

systemctl --user enable --now paw.service

Platform Support

Platform Status Notes
🐧 Linux (X11) βœ… Supported Primary development platform
🐧 Linux (Wayland) 🟑 Partial Paste via wtype/ydotool
🍎 macOS βœ… Supported Native paste via CGEvent, tray/menu integration
πŸͺŸ Windows πŸ”² Planned

Features

  • πŸ” Instant full-text search β€” fast substring search across title + content
  • ⌨️ Keyboard-first β€” full keyboard navigation, no mouse needed
  • πŸ“Œ Pin items β€” keep frequently used snippets at the top
  • πŸ‘οΈ Slideout preview β€” same-window preview panel for full content
  • πŸ–ΌοΈ Image support β€” copies and pastes images, shows thumbnails
  • πŸ“š Virtualized history list β€” smooth scrolling with large histories
  • πŸ”„ Incremental updates β€” clipboard changes merge without full reload
  • 🎯 Auto-paste β€” select an item and it pastes to the active app
  • 🧩 Tray + footer actions β€” Preferences, About, Quit, and quick clear
  • βš™οΈ Configurable β€” hotkey, history size, poll interval and more
  • πŸͺΆ Lightweight β€” ~4 MB deb package, ~11 MB binary, minimal RAM
  • πŸŒ™ Dark UI β€” clean, distraction-free floating panel

Keyboard Shortcuts

Shortcut Action
Alt+V Show/hide Paw (configurable)
↑ ↓ / Ctrl+P Ctrl+N Navigate up/down
Enter Paste selected item
Escape Close preview / close window
β†’ Open preview panel
← Close preview panel
Alt+P Pin / unpin selected item
Alt+Delete Delete selected item
Ctrl+U Clear search
Ctrl+, Open settings
Ctrl+1–9 Paste item by position
Double-click Pin / unpin item

Settings

Open settings with Ctrl+, or via the tray menu. Config is stored in ~/.config/paw/config.json.

Setting Default Description
Global Hotkey Alt+V Shortcut to toggle Paw β€” click the field and press your desired combo
Max History 1000 Maximum items to keep
Auto-clear Never Auto-delete items after N days
Poll Interval 500 ms How often clipboard is checked
Paste on Select Yes Auto-paste when you pick an item

Installation

Ubuntu / Debian (.deb)

sudo apt install xdotool
sudo dpkg -i paw_0.1.2_amd64.deb
sudo apt-get install -f

Any Linux (AppImage)

chmod +x paw_0.1.2_amd64.AppImage
./paw_0.1.2_amd64.AppImage

Fedora / RHEL (.rpm)

sudo rpm -i paw-0.1.2-1.x86_64.rpm
sudo dnf install xdotool

Building from Source

Prerequisites

# Ubuntu / Debian
sudo apt install libwebkit2gtk-4.0-dev libgtk-3-0 libayatana-appindicator3-dev librsvg2-dev xdotool

Build

git clone https://github.com/ZachL1/Paw.git
cd Paw
npm install
npm run tauri build
# Packages in: src-tauri/target/release/bundle/

Development

npm run tauri dev

Architecture

Paw
β”œβ”€β”€ src-tauri/src/        # Rust backend
β”‚   β”œβ”€β”€ main.rs           # App entry, Tauri commands, tray, hotkey
β”‚   β”œβ”€β”€ clipboard.rs      # Clipboard polling monitor
β”‚   β”œβ”€β”€ database.rs       # SQLite storage layer
β”‚   β”œβ”€β”€ config.rs         # JSON config persistence
β”‚   β”œβ”€β”€ paste.rs          # Paste simulation (xdotool/wtype)
β”‚   └── models.rs         # Data models
└── src/                  # React frontend
    β”œβ”€β”€ App.tsx            # Main app, window lifecycle, keyboard handling
    └── components/
        β”œβ”€β”€ SearchBar.tsx     # Auto-focus search input
        β”œβ”€β”€ HistoryList.tsx   # Scrollable item list
        β”œβ”€β”€ PreviewPanel.tsx  # Content preview sidebar
        β”œβ”€β”€ SettingsView.tsx  # Settings form with hotkey recorder
        └── Footer.tsx        # Shortcut hints

Tech Stack

Layer Technology
Framework Tauri v1
Backend Rust
Frontend React + TypeScript
Styling Tailwind CSS v4
Database SQLite (rusqlite)
Search SQLite (LIKE substring, backend)
Clipboard arboard crate

Acknowledgements

Paw is inspired by Maccy, an excellent clipboard manager for macOS by Alex Rodionov. While Paw shares no code with Maccy, its UX design β€” keyboard-first navigation, instant search, floating panel β€” is modeled after Maccy's elegant approach.

Roadmap

πŸ–₯️ Cross-Platform Desktop

  • macOS support β€” native CGEvent paste, menu bar tray, and keyboard-first popup flow
  • macOS .dmg packaging β€” native installer bundle
  • Windows support β€” .msi/.exe installer, SendInput paste, system tray
  • Wayland full support β€” window focus and paste under Wayland compositors

πŸ”„ Cross-Device Sync

  • Cloud sync β€” E2E encrypted history sync across devices
  • LAN sync β€” peer-to-peer sync on the same network (mDNS + TLS)
  • Universal clipboard β€” copy on one device, paste on another

Contributing

Contributions are welcome! Feel free to open a PR. For major changes, please open an issue first to discuss.

License

MIT

About

🐾 A lightweight, keyboard-first clipboard manager for every platform

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages