clipman(1)

NAME
clipman - 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

--normalize-unicode
    Normalize to NFC per https://unicode.org/reports/tr15

  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

--normalize-unicode
    Normalize to NFC per https://unicode.org/reports/tr15

  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.