clipman - Man Page

a clipboard manager for Wayland

Synopsis

clipman [<options>] <command> [<args> ...]

Description

A basic clipboard manager for Wayland, with support for persisting copy buffers after an application exits.

Options

-h,  --help

Show context-sensitive help (also try --help-long and --help-man).

--histpath="~/.local/share/clipman.json"

Path of history file

--primary

Serve item to the primary clipboard. Default: --no-primary

--notify

Send desktop notifications on errors

--err-on-no-selection

exit with an exit 1 when no selection is made in the picker.

--min-char

minimum number of characters before storing

-v,  --version

Show application version.

Commands

help [<command>...]

Show help.

store [<flags>]

Record clipboard events (run as argument to `wl-paste --watch`)

--max-items=15

history size

-P,  --no-persist

Don't persist a copy buffer after a program exits

--unix

Normalize line endings to LF

pick --tool=TOOL [<flags>]

Pick an item from clipboard history

--max-items=15

scrollview length

-t, --tool=TOOL

Which selector to use: wofi/bemenu/CUSTOM/STDOUT

-T, --tool-args=""

Extra arguments to pass to the --tool

--print0

Separate items using NULL; recommended if your tool supports --read0 or similar

clear [<flags>]

Remove item/s from history

--max-items=15

scrollview length

-t, --tool=TOOL

Which selector to use: wofi/bemenu/CUSTOM/STDOUT

-T, --tool-args=""

Extra arguments to pass to the --tool

-a, --all

Remove all items

--print0

Separate items using NULL; recommended if your tool supports --read0 or similar

restore

Serve the last recorded item from history

show-history

Show all items from history

Usage

Run the binary in your Sway session by adding to your config:

exec wl-paste -t text --watch clipman store

or to log errors:

exec wl-paste -t text --watch clipman store \
1>> PATH/TO/LOGFILE 2>&1

It is highly recommended that you run clipman with the --no-persist option, see Known Issues.

For primary clipboard support, also add:

exec wl-paste -p -t text --watch clipman store -P \
--histpath="~/.local/share/clipman-primary.json"

note that both the `-p` in wl-paste and the `-P` in clipman are mandatory in this case.

To query the history and select items, run the binary as

clipman pick -t wofi

You can assign it to a keybinding:

bindsym $mod+h exec clipman pick -t wofi

You can pass additional arguments to the selector like this:

clipman pick --tool wofi -T'--prompt=my-prompt -i'

both `--prompt` and `-i` are flags of wofi.

You can use a custom selector like this:

clipman pick --print0 --tool=CUSTOM --tool-args= \
"fzf --prompt 'pick > ' --bind 'tab:up' --cycle --read0"

To only paste if there's something selected:

bindsym $mod+v exec "clipman pick -t wofi --err-on-no-selection \
&& wtype -M ctrl -M shift v"

To remove items from history:

clipman clear -t wofi
clipman clear --all

To serve the last history item at startup, add this to your Sway config:

exec clipman restore

Bugs

When you experience a clipboard-related bug, try to see if it still happens without clipman running, as it's more likely to be caused by one of our own known issues rather than wl-clipboard.

Known Issues

We only support plain text.

By default, we continue serving the last copied item even after its owner has exited. This means that, unless you run with the --no-persist option, you'll always immediately lose rich content; for example: vim's visual block mode breaks; copying images in Firefox breaks; if you copy a bookmark in Firefox, you won't be able to paste it in another bookmark folder; if you copy formatted text inside Libre Office you'll lose all formatting on paste.

Run clipman store with the --no-persist option if you are affected. Unfortunately, it seems that there is no way to make them play well together.