Skip to content

Antrakt92/ClipboardHistory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clipboard History

Lightweight clipboard history manager for Windows. Lives in the system tray, silently records everything you copy, and lets you paste any previous entry with a single click.

Python Platform

Features

  • Global hotkeyCtrl+Shift+V opens the popup from anywhere (works on any keyboard layout)
  • Text & images — captures both text and image clipboard content (screenshots, copied images)
  • Image preview — hover over an image entry to see a larger preview
  • Search — filter history by typing in the search bar
  • Pin — pin important entries so they stay at the top
  • Pause recording — temporarily stop saving new clipboard entries from the tray menu
  • Explicit clearing — clear unpinned history separately, or delete all entries including pinned ones
  • Click to paste — select any entry and it gets pasted into the previously active window
  • Keyboard navigationUp/Down to move, Enter to paste, Escape to close
  • System tray — runs quietly in the background with a tray icon menu
  • Auto-start — optionally start with Windows (toggle from tray menu)
  • Single instance — prevents duplicate processes via Windows Mutex
  • Deduplication — consecutive identical copies are stored only once
  • SQLite storage — up to 500 unpinned entries; pinned entries stay until unpinned, deleted, or explicit Delete all

Installation

pip install -r requirements.txt

Dependencies

Usage

# Normal use (no console window)
pythonw main.pyw

# Debug mode (with console output)
python main.pyw

The app appears in the system tray. Copy text or images as usual — they are saved automatically. Use Pause recording in the tray menu when you temporarily do not want new clipboard entries stored.

Press Ctrl+Shift+V to open the history popup, then click any item to paste it.

Use Clear unpinned to remove regular history while keeping pinned entries. Use Delete all when you want to remove pinned and unpinned entries together.

How It Works

Component Role
main.pyw Entry point, orchestrates all modules
app/clipboard_monitor.py Listens for clipboard changes via Win32 AddClipboardFormatListener
app/hotkey_manager.py Registers global Ctrl+Shift+V via Win32 RegisterHotKey (layout-independent)
app/popup_window.py CustomTkinter popup with search, pin, delete, image preview
app/paste_engine.py Sets clipboard content and simulates Ctrl+V in the target window
app/database.py SQLite CRUD with thread-safe locking, image BLOB storage
app/tray_icon.py System tray icon and menu via pystray
app/autostart.py Windows registry auto-start management
app/config.py All constants and paths

Requirements

  • Windows 10 / 11
  • Python 3.8+

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages