A lightweight clipboard manager for Wayland and X11
Project description
Clipy - Python Clipboard Manager
Clipy is a simple clipboard manager written in Python that is designed to be piped into rofi, dmenu, or fzf.
Dependencies
- Python 3
- Wayland:
wl-clipboard - X11:
xclip
Features
- Wayland Support: Uses
wl-paste --watchfor efficient monitoring. - X11 Support: Uses polling with
xclip. - Image Support: Automatically detects and caches images.
- Database: Stores history in
~/.local/share/clipy/clipy.db.
Installation
git clone https://github.com/andriy-git/clipy
cd clipy
./setup.sh
This will install the clipy command to ~/.local/bin. Ensure ~/.local/bin is in your $PATH.
Alternatively, install as a Python package:
pip install .
This will provide the clipy command directly.
Usage
1. Start the Daemon
Run the daemon in the background to watch for clipboard changes.
clipy daemon &
Add this to your startup script (e.g., ~/.config/sway/config or ~/.xinitrc).
Systemd Service
You can also run Clipy as a user systemd service. Create ~/.config/systemd/user/clipy-daemon.service:
[Unit]
Description=Clipboard history daemon
[Service]
ExecStart=%h/.local/bin/clipy daemon
Restart=on-failure
[Install]
WantedBy=default.target
Then enable and start it:
systemctl --user daemon-reload
systemctl --user enable --now clipy-daemon.service
2. Status & Management
clipy status
clipy clear # Clear all history
clipy clear '^.{1,3}$' # Clear entries between 1-3 characters
3. Integrated Pickers
Clipy comes with built-in support for popular search tools. You can run them directly:
- fzf:
clipy fzf(Supports live search, delete withCtrl+d, and outputs selection to stdout) - Rofi:
clipy rofi(Supports select and delete withCtrl+d, restores to clipboard) - dmenu:
clipy dmenu(Restores to clipboard)
[!TIP] You can use
clipy fzfin command substitutions, e.g.,$(clipy fzf)to execute or capture the selection.
4. Neovim Integration (Telescope)
The Telescope integration is available as a Lua script in the scripts/ directory.
To use it, run clipy telescope for setup instructions or add this to your Neovim config:
local clipy = require('clipy-telescope') -- Or path in subfolder
clipy.setup({ clipy_path = "clipy" }) -- Path to the clipy command
vim.keymap.set('n', '<leader>c', clipy.clipboard_history, { desc = "Clipy Clipboard History" })
[!NOTE] You must add the
scripts/directory to your Neovimruntimepathor copy clipy-telescope.lua to your lua folder.
Project details
Release history Release notifications | RSS feed
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 clipy_manager-0.1.1.tar.gz.
File metadata
- Download URL: clipy_manager-0.1.1.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83b36d5504123bd5ae799ed0dc3de1a733949a0f8a214b8cabb7f8a53ec1205c
|
|
| MD5 |
472db3c20fed18b6073ef379be9174b8
|
|
| BLAKE2b-256 |
c8f7847f37e58c76230a6a8f6118de9151aba5ee6ca6b91f76fd9efdff5ec329
|
File details
Details for the file clipy_manager-0.1.1-py3-none-any.whl.
File metadata
- Download URL: clipy_manager-0.1.1-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c28bbfb8a5de936d509faeec48f9f79e1d08f9eaf67e7ac8676bae94b43dbe3f
|
|
| MD5 |
b96b841b752e62ae241e9569e6b1effc
|
|
| BLAKE2b-256 |
83b2188e9d2d7c545cb453da7e84710ad48fef3e5af7491ba2f96d1ec610a596
|