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.1.tar.gz (23.2 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.1-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: linux_clipboard_manager-1.1.1.tar.gz
  • Upload date:
  • Size: 23.2 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.1.tar.gz
Algorithm Hash digest
SHA256 3e9620d4c61b3714b42f7d3966f46603399493a3226cc1d188d2a1dc53753b1e
MD5 c3b8913e19ce4cfcf63fa60d689471c3
BLAKE2b-256 e4815972b1a1b7232f2b026cf3894eb8b7f7c82d965368bf1355241851fb4ba1

See more details on using hashes here.

Provenance

The following attestation bundles were made for linux_clipboard_manager-1.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for linux_clipboard_manager-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5ec5b3a2bf76b269b58e56bf79330b6f7f903eb352aa03e2f34628d0ffb692cd
MD5 1358a7378ef9bd4ff7c5862b0c46f008
BLAKE2b-256 5c72646e7056be817f6e6d05b7512ae810f07125c9d21291b75fdb28c3c3c62a

See more details on using hashes here.

Provenance

The following attestation bundles were made for linux_clipboard_manager-1.1.1-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