A modern, aesthetic, and lightweight clipboard manager for Wayland, built with Python, Quickshell, and a pure "Vibecoding" spirit.
Note
This is a Vibecoding project—built iteratively through AI collaboration to prioritize UX, speed, and a premium aesthetic.
- Modern Aesthetic: Glassmorphism hints and buttery smooth transitions.
- Dynamic ThemingEngine: Swap instantly between built-in themes (Dark, Light, Catppuccin, Nord, Dracula, Gruvbox) or define your own custom palettes in
~/.config/jcm/themes.json. - Smart Detection:
- Colors: Automatically detects Hex and RGB/RGBA codes and shows a live preview box.
- Links: Detects URLs and provides an "Open in Browser" action directly.
- Vim-like Navigation: Fast, keyboard-driven history management.
- Image Support: Captures and previews images with aspect-ratio awareness. You can trigger full-size views through an external viewer.
- Inline Text Editing: Edit, tweak, or redact any text snippet directly in the UI before copying it.
- Persistence: Powered by SQLite for reliable history storage.
- Filtering & Search: Quickly find clips by text content or category (All, Text, Image, Color, Link).
- Pause/Resume: Instantly pause the daemon from recording new clipboard items to prevent sensitive data from entering your history.
- Auto-Cleanup: Optional "Auto-delete on reboot" to keep your daily history fresh while preserving your pinned items.
To run JCM, you need the following tools installed on your system:
- Quickshell: The UI engine (rendering the
.qmlfiles). - Python 3: Runs the background daemon.
- wl-clipboard: For interacting with the Wayland clipboard.
- wtype: For the "Paste Right Away" simulation.
- xdg-utils: For opening links in your default browser.
-
Clone the repository:
git clone https://github.com/justanoobcoder/jcm.git cd jcm -
Launch the app:
./bin/jcm
The script will automatically spawn the background daemon if it's not already running.
-
System-wide Installation (Optional): To install JCM globally so you can launch it from anywhere, run:
sudo make install
This will place the executables in
/usr/bin/and the QML files in/usr/share/jcm/. -
Autostart the Daemon: JCM runs a background watcher. To ensure it captures your clipboard continuously, add the following command to your Desktop Environment's autostart script (like
~/.config/sway/configor~/.config/hypr/hyprland.conf):jcm-daemon watch &
If you are using NixOS with Flakes and Home Manager, JCM provides a native module and derivation.
-
Add to your
flake.nixinputs:{ inputs.jcm.url = "github:justanoobcoder/jcm"; }
-
Import and enable in your Home Manager configuration:
{ inputs, ... }: { imports = [ inputs.jcm.homeManagerModules.default ]; programs.jcm.enable = true; }
This will automatically install the binaries and enable a background jcm.service that starts when your graphical session is ready! 🚀
| Key | Action |
|---|---|
j |
Move Selection Down |
k |
Move Selection Up |
d |
Delete Selected Item |
Enter |
Copy Selected Item (and paste if enabled) |
/ |
Focus Search Bar |
Esc |
Return to list (if searching) / Close App |
q |
Close App (if not typing in search) |
Use the dropdown in the header to filter by:
- All: Your entire history.
- Text: Pure text snippets.
- Image: Visual captures.
- Color: Hex/RGB codes only.
- Link: Web addresses only.
Toggle these via the gear icon in the app:
- Theme: Swap between beautiful built-in defaults or select a dynamically loaded custom theme.
- Auto Delete: Automatically clear unpinned history on reboot.
- Paste Right Away: Instantly paste clips into your active window when selected.
- Image Viewer Command: Configure what external program (e.g.,
feh,imv,loupe) is used to open full-size images from JCM. (Saved independently to~/.config/jcm/settings.json)
You can load your own custom color palettes! To get started, automatically generate an example configuration file by running:
jcm-daemon theme generate-exampleThen, open ~/.config/jcm/themes.json in your favorite editor to customize the bgColor, accentColor, and more! Your custom named themes will instantly appear in the JCM Settings dropdown.
Built with ❤️ for the Wayland ecosystem.

