Skip to content

Walkercito/CopyClip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ CopyClip

A modern, open-source clipboard manager for Linux

logo

License: MIT Python PyQt6 GitHub release GitHub issues


✨ Overview

CopyClip is a lightweight, open-source clipboard manager for Linux, inspired by the Windows 10 clipboard. It provides fast access to your clipboard history, pinning, search, customizable hotkeys and a clean desktop-friendly UI.

πŸ–₯️ Display Server Support:

  • X11 β€” Full support with automatic global hotkeys
  • Wayland β€” Functional with manual hotkey setup (GNOME, KDE Plasma tested)

Note: Wayland requires manual keyboard shortcut configuration due to security restrictions. See installation instructions below.


πŸ“Έ Screenshots


dark mode with text


light mode with text

✨ Key Features

  • πŸ—‚οΈ Clipboard History β€” Automatic history in reverse chronological order
  • πŸ“Œ Pin Items β€” Keep important clips always visible
  • πŸŽ›οΈ Custom Hotkeys β€” Choose your preferred key binding on first launch
  • πŸ” Instant Search β€” Filter items with a built-in search bar
  • πŸ–₯️ Multi-Display Server β€” Works on both X11 and Wayland
  • πŸŒ— Themes β€” Dark, light, or system theme
  • βš™οΈ Configurable β€” Adjust timings, delays, and behavior via settings.json
  • πŸ“‹ Auto-paste β€” Optional auto-paste after selecting items (X11: xdotool, Wayland: wtype/ydotool)
  • πŸ”„ Smart Cleanup β€” Auto-clear on reboot while preserving pinned items
  • πŸ–ΌοΈ Clean UI β€” GNOME-inspired, keyboard-friendly interface

πŸ“¦ Dependencies

Using the automatic installer? Skip this section - dependencies are installed automatically.

For manual installation, install these based on your display server:

Debian / Ubuntu

# Required for all systems
sudo apt install xsel python3-xlib python3-pyqt6

# For X11 only
sudo apt install xdotool

# For Wayland only (choose one or both)
sudo apt install wtype        # Recommended
sudo apt install ydotool      # Alternative

Fedora

# Required for all systems
sudo dnf install xsel python3-xlib python3-pyqt6

# For X11 only
sudo dnf install xdotool

# For Wayland only
sudo dnf install wtype ydotool

Arch / Manjaro

# Required for all systems
sudo pacman -S xsel python-xlib python-pyqt6

# For X11 only
sudo pacman -S xdotool

# For Wayland only
sudo pacman -S wtype ydotool

Note: xsel β†’ clipboard operations (required) python3-xlib β†’ global hotkeys on X11 (required for X11) PyQt6 β†’ GUI (required) xdotool β†’ auto-paste for X11 (optional) wtype β†’ auto-paste for Wayland (optional, recommended) ydotool β†’ auto-paste for Wayland (optional, alternative)


πŸš€ Installation

Automatic Installation (Recommended)

Install CopyClip with a single command. The script will:

  • Detect your system and install dependencies
  • Clone the repository to ~/.local/share/copyclip
  • Set up executables in ~/.local/bin
  • Configure everything automatically
curl -fsSL https://raw.githubusercontent.com/Walkercito/CopyClip/main/install.sh | bash

After installation, start CopyClip with:

copyclip

Manual Installation with uv

git clone https://github.com/Walkercito/CopyClip.git
cd CopyClip

# Install uv if needed
curl -LsSf https://astral.sh/uv/install.sh | sh

uv run main.py

Manual Installation with pip

git clone https://github.com/Walkercito/CopyClip.git
cd CopyClip

pip install PyQt6 python-xlib
python3 main.py

πŸ–₯️ Display Server Support

βœ”οΈ X11 (Full Support)

Global hotkeys work automatically.

⚠️ Wayland (Requires Manual Hotkey Setup)

Global hotkeys require manual configuration on Wayland. Auto-paste works with wtype or ydotool.

GNOME

  1. Settings β†’ Keyboard β†’ Custom Shortcuts
  2. Add new:
    • Name: CopyClip
    • Command: copyclip-show-ui (if using automatic installer) or full path to bin/copyclip-show-ui
    • Shortcut: your choice (e.g., Ctrl+Alt+V)

KDE Plasma

  1. System Settings β†’ Shortcuts β†’ Custom Shortcuts
  2. Right-click β†’ New β†’ Global Shortcut β†’ Command/URL
  3. Set trigger and command: copyclip-show-ui

Launch UI manually:

# If installed with automatic installer
copyclip-show-ui

# If running from source
uv run bin/show_ui.py

Note: Wayland support is functional but requires manual hotkey setup. GNOME 48+ will support global shortcuts portal for automatic hotkeys.


πŸ› οΈ How to Use

First Run

On first launch, choose your preferred hotkey:

  • Super + V (default, Windows-like)
  • Ctrl + Alt + V
  • Super + C
  • Ctrl + Shift + V

You can change this later in Settings.

Daily Usage

  1. Copy text normally with Ctrl + C
  2. Open CopyClip with your configured hotkey
  3. Click any item to copy it to clipboard
  4. Ctrl + Click to pin/unpin items
  5. Use the search bar to filter items
  6. Access Settings via the Settings button to configure:
    • Theme (dark/light/system)
    • Auto-hide behavior
    • Auto-paste (experimental)

Keyboard Shortcuts

  • Your Hotkey β†’ Open CopyClip window
  • Esc β†’ Hide window
  • Ctrl + Esc β†’ Quit application
  • Ctrl + Left Click β†’ Pin/Unpin items

πŸ”§ Config Files

  • Settings:
    ~/.local/share/clipboard-manager/settings.json

  • Clipboard history:
    ~/.local/share/clipboard-manager/clipboard_history.json

Example settings:

{
  "theme": "dark",
  "hotkey": "super_v",
  "first_run_completed": false,
  "auto_hide_on_copy": true,
  "auto_paste_on_copy": false,
  "clipboard_check_interval": 1000,
  "clipboard_auto_hide_delay": 800,
  "auto_paste_delay": 200,
  "max_chars_display": 100,
  "window_manager": null,
  "paste_tool": null
}

Configurable settings:

  • theme: "dark", "light", or "system"
  • hotkey: Hotkey preset name
  • clipboard_check_interval: Check clipboard every N milliseconds (default: 1000)
  • clipboard_auto_hide_delay: Auto-hide delay after copy in ms (default: 800)
  • auto_paste_delay: Delay before auto-paste in ms (default: 200)
  • max_chars_display: Max characters before truncation (default: 100)
  • window_manager, paste_tool: Auto-detected and cached on first run

πŸ“ Project Structure

CopyClip/
β”œβ”€β”€ copyclip/
β”‚   β”œβ”€β”€ core/            # Clipboard, history, settings
β”‚   β”œβ”€β”€ hotkeys/         # X11/Wayland backends + manager
β”‚   β”œβ”€β”€ ui/              # Widgets, dialogs, styles, main window
β”‚   └── utils/           # Constants and environment helpers
β”œβ”€β”€ bin/                 # CLI utilities and launchers
β”œβ”€β”€ assets/              # Icons and screenshots
β”œβ”€β”€ scripts/             # Hotkey installers and icon tools
└── main.py              # Entry point

🀝 Contributing

Contributions are welcome!

git checkout -b feature-branch
git commit -m "Add feature"
git push origin feature-branch

Development Tools

  • uv β€” dependency management
  • Zed β€” as IDE
  • ruff β€” linting & formatting
  • pre-commit β€” code quality hooks

πŸ’– Support the Project

πŸͺ™ Crypto Donations

bc1qhly9zf94ln8wed08d4xrr8q467ef44tx9et963


0x3b8dde5ae6ac33f0f0884fab40d74488d8426856


48CekkeDX6cLABcarL2i4VM9Xz7Xk6ZkAVvbKr5KwLFz


TU2ykZsE4rnW5RuXn4Urhg3aunvkCy3Cby

πŸ“„ License

This project is under the MIT License.
See the LICENSE file.


CopyClip is still evolving. X11 works great. Wayland testers are highly welcome! πŸ”₯