5379860679
clipmenu: print selection to stdout |
||
---|---|---|
init | ||
tests | ||
.travis.yml | ||
clipdel | ||
clipfsck | ||
clipmenu | ||
clipmenud | ||
LICENSE | ||
Makefile | ||
README.md |
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.
Features of clipmenud
The behavior of clipmenud
can be customized through environment variables. Features include:
- Customizing max number of clips (Default: 1000)
- Choosing which selections to manage
- Ignoring certain windows, like password managers
- Enabling debugging
- Customizing the cache dir location
- Disable looping
- Option to "own" the clipboard
Check the online help to view the details:
clipmenud --help
If you managing clipmenud
with systemd
, you can override the defaults by using this command to generate an override file:
systemctl --user edit clipmenud
Then add a new section sets your environment variables. For example:
[Service]
Environment="CM_MAX_CLIPS=30"
Environment="CM_SELECTIONS=clipboard"
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.