Need help with clipmenu?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

cdown
570 Stars 56 Forks Other 248 Commits 8 Opened issues

Description

Clipboard management using dmenu

Services available

!
?

Need anything else?

Contributors list

No Data

Tests

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

CM_LAUNCHER=rofi
) and xsel.

Demo

Demo

Usage

clipmenud

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.

For those using a systemd unit and not using a desktop environment which does it automatically, you must import

$DISPLAY
so that
clipmenud
knows which X server to use. For example, in your
~/.xinitrc
do this prior to launching clipmenud:
systemctl --user import-environment DISPLAY

clipmenu

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.