Skip to content

justanoobcoder/jcm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JCM (Just a Clipboard Manager) 📎✨

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.

Aesthetic Preview Light mode Aesthetic Preview Dark mode

✨ Features

  • 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.

🛠️ Dependencies

To run JCM, you need the following tools installed on your system:

  • Quickshell: The UI engine (rendering the .qml files).
  • 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.

🚀 How to Run

🛠️ Manual Installation (Other Linux Distros)

  1. Clone the repository:

    git clone https://github.com/justanoobcoder/jcm.git
    cd jcm
  2. Launch the app:

    ./bin/jcm

    The script will automatically spawn the background daemon if it's not already running.

  3. 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/.

  4. 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/config or ~/.config/hypr/hyprland.conf):

    jcm-daemon watch &

❄️ NixOS Installation (Flakes + Home Manager)

If you are using NixOS with Flakes and Home Manager, JCM provides a native module and derivation.

  1. Add to your flake.nix inputs:

    {
      inputs.jcm.url = "github:justanoobcoder/jcm";
    }
  2. 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! 🚀

⌨️ Keybinds

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)

🎨 Category Filters

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.

⚙️ Configuration

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)

Custom Themes

You can load your own custom color palettes! To get started, automatically generate an example configuration file by running:

jcm-daemon theme generate-example

Then, 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.

About

Just a Clipboard Manager for Wayland

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors