sentriz / cliphist

wayland clipboard manager with support for multimedia
GNU General Public License v3.0
724 stars 22 forks source link
clipboard clipboard-manager hyprland sway wayfire wayland wl-roots

cliphist

clipboard history “manager” for wayland

requires: go, wl-clipboard, xdg-utils (for image mime inferance)


install


usage

listen for clipboard changes

$ wl-paste --watch cliphist store
this will listen for changes on your primary clipboard and write them to the history.
call it once per session - for example in your sway config

select old item

$ cliphist list | dmenu | cliphist decode | wl-copy
bind it to something nice on your keyboard

delete old item

$ cliphist list | dmenu | cliphist delete
or else query manually
$ cliphist delete-query "secret item"

clear database

$ cliphist wipe


picker examples

dmenu `cliphist list | dmenu | cliphist decode | wl-copy`
fzf `cliphist list | fzf --no-sort | cliphist decode | wl-copy`
rofi (dmenu mode) `cliphist list | rofi -dmenu | cliphist decode | wl-copy`
rofi (custom mode) `rofi -modi clipboard:/path/to/cliphist-rofi -show clipboard` (requires [contrib/cliphist-rofi](https://github.com/sentriz/cliphist/blob/master/contrib/cliphist-rofi))
rofi (custom mode with images) `rofi -modi clipboard:/path/to/cliphist-rofi-img -show clipboard -show-icons` (requires [contrib/cliphist-rofi-img](https://github.com/sentriz/cliphist/blob/master/contrib/cliphist-rofi-img))
wofi `cliphist list | wofi -S dmenu | cliphist decode | wl-copy` Example config for sway: ``` exec wl-paste --watch cliphist store bindsym Mod1+p exec cliphist list | wofi -S dmenu | cliphist decode | wl-copy ```

faq

why do i have numbers in my picker? can i get rid of them? it's important that a line prefixed with a number is piped into `cliphist decode`. this number is used to lookup in the database the exact original selection that you made, with all leading, trailing, non printable etc whitespace presevered. none of that will not be shown in the preview output of `cliphist list` since the format of `cliphist list` is `"\t<100 char preview>"`, and most pickers consider `"\t"` to be column seperator, you can try to just select column number 2 ```shell # fzf cliphist list | fzf -d $'\t' --with-nth 2 | cliphist decode | wl-copy ``` ```shell # rofi cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy ``` ```shell # wofi # it kind of works but breaks with quotes in the original selection. i recommend not trying to hide the column with wofi cliphist list | wofi --dmenu --pre-display-cmd "echo '%s' | cut -f 2" | cliphist decode | wl-copy ```
how do i narrow down the items that are copied to cliphist, or always copy images from my browser? it's also possible to run `wl-paste --watch` several times for multiple mime types for example in your window manager's startup you could run ``` wl-paste --type text --watch cliphist store wl-paste --type image --watch cliphist store ``` now you should have text and raw image data available in your history. make sure you have xdg-utils installed too

packaging


video

https://user-images.githubusercontent.com/6832539/230513908-b841fffe-d7d5-46c2-b29f-28b3e91daa74.mp4