Skip to main content

A powerful clipboard manager with history, search, and smart categorization

Project description

๐Ÿ“‹ Smart Clipboard Manager

Python License Platform Status

A powerful clipboard manager with history, search, and smart categorization features.

๐Ÿš€ Quick Install โ€ข ๐Ÿ“– Features โ€ข ๐ŸŽฏ Usage โ€ข โš™๏ธ Configuration


โœจ Features

๐ŸŽฏ Core Features

  • ๐Ÿ“‹ Clipboard History: Automatically saves your last 1000 clipboard entries
  • ๐Ÿ” Smart Search: Full-text search across all clipboard history
  • ๐Ÿท๏ธ Auto-Categorization: Automatically detects URLs, emails, code, file paths, and more
  • โญ Favorites: Pin frequently used clips for quick access
  • ๐Ÿ”’ Privacy Protection: Automatically excludes sensitive content from password managers
  • ๐ŸŽฏ Deduplication: Doesn't store identical content twice
  • โŒจ๏ธ Global Hotkey: Quick access with Ctrl+Alt+V
  • ๐Ÿ”„ Auto-Refresh: Shows newly copied items immediately

๐ŸŽจ User Interface

  • Modern UI: Clean, intuitive interface with dark/light theme support
  • Click-to-Copy: Single click on any item to copy it to clipboard
  • Real-time Updates: See new clipboard items appear instantly
  • Smart Filtering: Filter by content type (URLs, Code, Favorites, etc.)
  • Preview Panel: Full content preview with syntax highlighting for code

๐Ÿ›ก๏ธ Security & Privacy

  • Local Storage: All data stored locally in SQLite database
  • No Cloud Sync: By default, no data leaves your machine
  • App Exclusion: Automatically excludes clipboard content from password managers
  • Sensitive Content Detection: Detects and optionally excludes passwords, credit cards, etc.

๐Ÿš€ Quick Install

Option 1: Install via pipx (Recommended)

# Install pipx if you don't have it
sudo apt install pipx
pipx ensurepath

# Install from PyPI
pipx install linux-clipboard-manager

Option 2: Install from source

# Install from GitHub
pipx install git+https://github.com/krakujs/linux-clipboard-manager.git

Option 3: One-Click System Installation

# Download and run the installation script (installs system dependencies + app)
curl -fsSL https://raw.githubusercontent.com/krakujs/linux-clipboard-manager/master/install-system.sh | bash

๐ŸŽฏ Usage

After Installation

  1. Start the Application: Run smart-clipboard in a terminal to start the background service
  2. Open the UI: Press Ctrl+Alt+V to toggle the clipboard manager window (while service is running)
  3. Or Open GUI Directly: Run smart-clipboard-gui to open just the UI
  4. Copy Items: Click on any item to copy it to your clipboard
  5. Search: Type in the search box to filter clipboard history
  6. Filter by Type: Click buttons to filter by content type (All, URLs, Code, Favorites)

Keyboard Shortcuts

Shortcut Action
Ctrl+Alt+V Toggle clipboard manager window
Enter Paste selected clip
Escape Close window
Double-click Paste selected clip

Command Line Usage

# Start background service (monitors clipboard + hotkey)
smart-clipboard

# Open GUI only (no background monitoring)
smart-clipboard-gui

# Start with UI visible
smart-clipboard --show-ui

โš™๏ธ Configuration

The configuration file is located at: ~/.smart-clipboard/config.json

Default Configuration

{
  "max_history": 1000,
  "monitor_interval": 0.5,
  "hotkey": "<ctrl>+<alt>+v",
  "database_path": "clipboard.db",
  "max_content_size": 1048576,
  "enable_encryption": false,
  "excluded_apps": ["KeePass", "1Password", "LastPass"],
  "categories": {
    "url": true,
    "email": true,
    "code": true,
    "image": true
  },
  "ui": {
    "max_preview_length": 100,
    "window_width": 600,
    "window_height": 400,
    "theme": "light"
  }
}

Customizing the Hotkey

Edit the hotkey field in config.json. Examples:

  • <ctrl>+<alt>+v (default)
  • <ctrl>+<shift>+c
  • <cmd>+<shift>+v (macOS)

๐Ÿ“ฆ System Requirements

Linux

  • Python 3.7 or higher
  • pip (Python package manager)
  • System dependencies:
    sudo apt install python3 python3-pip python3-venv python3-full sqlite3 xdotool
    

Other Platforms

  • Windows: Additional pywin32 and psutil packages required
  • macOS: No additional dependencies needed (uses built-in AppleScript)

๐Ÿ”ง Development

Setting up Development Environment

# Clone the repository
git clone https://github.com/your-username/smart-clipboard-manager.git
cd smart-clipboard-manager

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run the application
python main.py

Running Tests

# Install test dependencies
pip install -r requirements.txt

# Run tests
pytest tests/

# Run with coverage
pytest --cov=src tests/

Project Structure

smart-clipboard-manager/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ clipboard_monitor.py    # Background clipboard monitoring
โ”‚   โ”œโ”€โ”€ storage.py               # SQLite storage engine
โ”‚   โ”œโ”€โ”€ ui.py                    # Tkinter GUI interface
โ”‚   โ”œโ”€โ”€ hotkey_handler.py        # Global hotkey management
โ”‚   โ”œโ”€โ”€ content_analyzer.py      # Content categorization
โ”‚   โ””โ”€โ”€ config.py                # Configuration management
โ”œโ”€โ”€ tests/                       # Test suite
โ”œโ”€โ”€ requirements.txt             # Python dependencies
โ”œโ”€โ”€ setup.py                     # Package configuration
โ”œโ”€โ”€ install-system.sh           # System installation script
โ”œโ”€โ”€ main.py                      # Application entry point
โ””โ”€โ”€ README.md                    # This file

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • pyperclip for cross-platform clipboard access
  • pynput for global hotkey handling
  • Tkinter for the GUI framework

๐Ÿ“ž Support


๐Ÿ”„ Changelog

v1.0.1 (2024-11-05)

  • ๐Ÿ”ง Changed hotkey from Ctrl+Shift+V to Ctrl+Alt+V to avoid conflicts
  • ๐Ÿ“š Updated documentation with new hotkey information
  • ๐Ÿ› Fixed hotkey collision issues with other applications

v1.0.0 (2024-11-05)

  • โœจ Initial release
  • ๐Ÿ“‹ Clipboard history with 1000 item limit
  • ๐Ÿ” Full-text search functionality
  • ๐Ÿท๏ธ Smart content categorization
  • โญ Favorites system
  • โŒจ๏ธ Global hotkey support
  • ๐Ÿ”„ Auto-refresh functionality
  • ๐Ÿ–ฅ๏ธ Modern UI with click-to-copy
  • ๐Ÿ”ง System service integration
  • ๐Ÿ“ฆ Easy installation scripts

Made with โค๏ธ for productivity enthusiasts

โญ Star this repo โ€ข ๐Ÿ› Report issues โ€ข ๐Ÿ’ฌ Start a discussion

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linux_clipboard_manager-1.1.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linux_clipboard_manager-1.1.0-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file linux_clipboard_manager-1.1.0.tar.gz.

File metadata

  • Download URL: linux_clipboard_manager-1.1.0.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linux_clipboard_manager-1.1.0.tar.gz
Algorithm Hash digest
SHA256 f87eababcce18eba90477b78e44aa75ae310773fa43e9629660f88ba171eee18
MD5 32ccf8531f15555f17c6e6f43802a95a
BLAKE2b-256 9d04f2364f1279d22a6aa1a9114f26c34d1ff492812f0f1aefe62b22c8438e22

See more details on using hashes here.

Provenance

The following attestation bundles were made for linux_clipboard_manager-1.1.0.tar.gz:

Publisher: publish.yml on krakujs/linux-clipboard-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file linux_clipboard_manager-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for linux_clipboard_manager-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06be080d70b3b72db31cc576339353ec62310ea4309fa87610971f14bfaec900
MD5 5e7695f92828b0cee9c5f3b32dbe5b6f
BLAKE2b-256 9f77a76b532beefce8e7658922b23a698bdd5adf718aa7c083e5c77d5ac2dfd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for linux_clipboard_manager-1.1.0-py3-none-any.whl:

Publisher: publish.yml on krakujs/linux-clipboard-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page