clipman/README.md

59 lines
2.7 KiB
Markdown

# Clipman
A basic clipboard manager for Wayland, with support for persisting copy buffers after an application exits.
## Installing
### From source
Requirements:
- a windows manager that uses `wlr-data-control`, like Sway and other wlroots-based WMs.
- wl-clipboard >= 2.0
- a selector: wofi, bemenu, dmenu or rofi are specially supported, but you can use what you want
- notify-send (optional, for desktop notifications)
[Install go](https://golang.org/doc/install), add `$GOPATH/bin` to your path, then run `go get github.com/yory8/clipman` OR run `go install` inside this folder.
### Distros
These distros ship with clipman binaries in their repos:
[![Packaging status](https://repology.org/badge/vertical-allrepos/clipman.svg)](https://repology.org/project/clipman/versions)
## Usage
Run the binary in your Sway session by adding `exec wl-paste -t text --watch clipman store` (or `exec wl-paste -t text --watch clipman store 1>> PATH/TO/LOGFILE 2>&1 &` to log errors) at the beginning of your config.
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 remove items from history, `clipman clear -t wofi` and `clipman clear --all`.
To serve the last history item at startup, add `exec clipman restore` to your Sway config.
For more options: `clipman -h`.
## Known Issues
### Loss of rich text
- All items stored in history are treated as 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, if you copy formatted text inside Libre Office you'll lose all formatting on paste; or, if you copy a bookmark in Firefox, you won't be able to paste it in another bookmark folder.
### Vim's Visual Block mode breaks if persistence is enabled
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.
## Versions
This projects follows SemVer conventions.
## License
GPL v3.0
2019- (C) yory8 <yory8@users.noreply.github.com>