clipmenu

by cdown

cdown /clipmenu

Clipboard management using dmenu

517 Stars 51 Forks Last release: Not found Other 241 Commits 27 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Tests

clipmenu is a simple clipboard manager using dmenu (or rofi with

CM_LAUNCHER=rofi
) and xsel.

Demo

Demo

Usage

Start

clipmenud
, then run
clipmenu
to select something to put on the clipboard. For systemd users, a user service called
clipmenud
is packaged as part of the project.

You may wish to bind a shortcut in your window manager to launch

clipmenu
.

All args passed to clipmenu are transparently dispatched to dmenu. That is, if you usually call dmenu with args to set colours and other properties, you can invoke clipmenu in exactly the same way to get the same effect, like so:

clipmenu -i -fn Terminus:size=8 -nb '#002b36' -nf '#839496' -sb '#073642' -sf '#93a1a1'

For a full list of environment variables that clipmenud can take, please see

clipmenud --help
.

Features

The behavior of

clipmenud
can be customized through environment variables. Despite being only <300 lines, clipmenu has many useful features, including:
  • Customising the maximum number of clips stored (default 1000)
  • Disabling clip collection temporarily with
    clipctl disable
    , reenabling with
    clipctl enable
  • Not storing clipboard changes from certain applications, like password managers
  • Taking direct ownership of the clipboard
  • ...and much more.

Check

clipmenud --help
to view all possible environment variables and what they do. If you manage
clipmenud
with
systemd
, you can override the defaults by using
systemctl --user edit clipmenud
to generate an override file.

Supported launchers

Any dmenu-compliant application will work, but here are

CM_LAUNCHER
configurations that are known to work:

Installation

Several distributions, including Arch and Nix, provide clipmenu as an official package called

clipmenu
.

Manual installation

If your distribution doesn't provide a package, you can manually install using

make install
(or better yet, create a package for your distribution!). You will need
xsel
and
clipnotify
installed, and also
dmenu
unless you plan to use a different launcher.

How does it work?

clipmenud is less than 300 lines, and clipmenu is less than 100, so hopefully it should be fairly self-explanatory. However, at the most basic level:

clipmenud

  1. clipmenud
    uses clipnotify to wait for new clipboard events.
  2. If
    clipmenud
    detects changes to the clipboard contents, it writes them out to the cache directory and an index using a hash as the filename.

clipmenu

  1. clipmenu
    reads the index to find all available clips.
  2. dmenu
    is executed to allow the user to select a clip.
  3. After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.