A powerful clipboard manager with history, search, and smart categorization
Project description
๐ Smart Clipboard Manager
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
- Start the Application: Run
smart-clipboardin a terminal to start the background service - Open the UI: Press
Ctrl+Alt+Vto toggle the clipboard manager window (while service is running) - Or Open GUI Directly: Run
smart-clipboard-guito open just the UI - Copy Items: Click on any item to copy it to your clipboard
- Search: Type in the search box to filter clipboard history
- 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
pywin32andpsutilpackages 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
- ๐ Bug Reports: Open an issue
- ๐ก Feature Requests: Open an issue
- ๐ฌ Discussions: GitHub Discussions
๐ 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f87eababcce18eba90477b78e44aa75ae310773fa43e9629660f88ba171eee18
|
|
| MD5 |
32ccf8531f15555f17c6e6f43802a95a
|
|
| BLAKE2b-256 |
9d04f2364f1279d22a6aa1a9114f26c34d1ff492812f0f1aefe62b22c8438e22
|
Provenance
The following attestation bundles were made for linux_clipboard_manager-1.1.0.tar.gz:
Publisher:
publish.yml on krakujs/linux-clipboard-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linux_clipboard_manager-1.1.0.tar.gz -
Subject digest:
f87eababcce18eba90477b78e44aa75ae310773fa43e9629660f88ba171eee18 - Sigstore transparency entry: 669658426
- Sigstore integration time:
-
Permalink:
krakujs/linux-clipboard-manager@ab08a92daf145e7ba2d27ab079058244f99f100a -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/krakujs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ab08a92daf145e7ba2d27ab079058244f99f100a -
Trigger Event:
release
-
Statement type:
File details
Details for the file linux_clipboard_manager-1.1.0-py3-none-any.whl.
File metadata
- Download URL: linux_clipboard_manager-1.1.0-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06be080d70b3b72db31cc576339353ec62310ea4309fa87610971f14bfaec900
|
|
| MD5 |
5e7695f92828b0cee9c5f3b32dbe5b6f
|
|
| BLAKE2b-256 |
9f77a76b532beefce8e7658922b23a698bdd5adf718aa7c083e5c77d5ac2dfd6
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linux_clipboard_manager-1.1.0-py3-none-any.whl -
Subject digest:
06be080d70b3b72db31cc576339353ec62310ea4309fa87610971f14bfaec900 - Sigstore transparency entry: 669658436
- Sigstore integration time:
-
Permalink:
krakujs/linux-clipboard-manager@ab08a92daf145e7ba2d27ab079058244f99f100a -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/krakujs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ab08a92daf145e7ba2d27ab079058244f99f100a -
Trigger Event:
release
-
Statement type: