- Add Makefile to install files - It even checks for required binaries - Document manual install steps - Document how to start and enable via systemd
2.6 KiB
clipmenu is a simple clipboard manager using dmenu (or rofi with
CM_LAUNCHER=rofi
) and xsel.
Demo
Usage
Start clipmenud
, then run clipmenu
to select something to put on the
clipboard.
A systemd user service for starting clipmenud is installed as part of the project.
If you want to start clipmenud
immediately via systemd and have it be started when you login, run:
systemctl --user enable --now clipmenud
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'
If you prefer to collect clips on demand rather than running clipmenud as a daemon, you can bind a key to the following command for one-off collection:
CM_ONESHOT=1 clipmenud
For a full list of environment variables that clipmenud can take, please see
clipmenud --help
.
Installation
Several distributions, including Arch and Nix, provide clipmenu as an official
package called clipmenu
.
Installation - Manual
If your distribution doesn't provide a package, you can run the following
the commands to install this. (Or better yet, create package for your distribution!).
You'll first need to install xsel
and clipnotify
. If you'll also need dmenu
unless
you plan to set CM_LAUNCHER
to a different value, like rofi
.
git clone https://github.com/cdown/clipmenu.git
cd clipmenu
sudo make install
How does it work?
clipmenud is less than 200 lines, and clipmenu is less than 100, so hopefully it should be fairly self-explanatory. However, at the most basic level:
clipmenud
clipmenud
uses clipnotify to wait for new clipboard events.- 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
clipmenu
reads the index to find all available clips.dmenu
is executed to allow the user to select a clip.- After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.