clipman − a clipboard manager for Wayland
clipman [<options>] <command> [<args> ...]
A basic clipboard manager for Wayland, with support for persisting copy buffers after an application exits.
−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.
Show help.
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 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
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
Serve the last recorded item from history
Show all items from history
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
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.
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.