hyprland-wiki/pages/Useful Utilities/Clipboard-Managers.md

178 lines
4.6 KiB
Markdown
Raw Normal View History

---
weight: 9
title: Clipboard managers
---
_Starting method:_ manual (`exec-once`)
2024-11-06 19:34:37 +01:00
Clipboard Managers provide a convenient way to organize and access previously
copied content, including both text and images.
Some common ones used are `copyq`, `clipman`, `cliphist`, `clipse` and `cb`.
`clipman` - Utilizes Wayland with `wl-clipboard` support and stores text only
2024-10-10 17:02:08 +02:00
[GitHub](https://github.com/chmouel/clipman)
`cliphist` - Utilizes Wayland with `wl-clipboard` and can store both images and
2024-10-10 17:02:08 +02:00
text [GitHub](https://github.com/sentriz/cliphist)
2024-11-06 19:34:37 +01:00
`wl-clip-persist` - When copying something on Wayland, the copied data remains
in the clipboard until the application that was copied from is closed.
After that, the data disappears and can no longer be pasted.
To fix this problem, you can use `wl-clip-persist` which will preserve the data
in the clipboard after the application is closed.
2024-10-10 17:02:08 +02:00
[GitHub](https://github.com/Linus789/wl-clip-persist)
2024-07-31 00:00:24 +02:00
`clipse` - Utilizes Wayland with `wl-clipboard` support and runs from a single
binary. Stores text and images indefinitely, accessible via a nice TUI that can
be bound to a floating window in your Hyprland config. Allows custom themes,
image/text previews, multi-select, pinned items and more.
[GitHub](https://github.com/savedra1/clipse)
`cb` - Utilizes Wayland and stores text, images and files temporarily or
indefinitely. Allows unlimited clipboards and history, JSON output and more.
[GitHub](https://github.com/Slackadays/Clipboard)
{{< callout >}}
`cb` does not automatically update the clipboard in the background. It is not
recommended to enable it either, as that makes the focused window flicker every
second.
{{< /callout >}}
2024-10-09 12:48:36 +02:00
## cb
2024-11-06 19:34:37 +01:00
2024-10-09 12:48:36 +02:00
Start by adding the following line to your `~/.config/hypr/hyprland.conf`
```ini
exec-once = cb
```
2024-10-10 17:02:08 +02:00
For more details on `cb`, please refer to its GitHub repo linked at the top
2024-10-09 12:48:36 +02:00
of the page.
## copyq
Start by adding the following lines to your `~/.config/hypr/hyprland.conf`
```ini
exec-once = copyq --start-server
```
If the main window of `copyq` cannot close/hide properly, try to enable its
2024-07-31 00:00:24 +02:00
"Hide main window" option in the Layout configuration tab in the Preferences
dialog.
## cliphist
Start by adding the following lines to your `~/.config/hypr/hyprland.conf`
```ini
2024-07-31 00:00:24 +02:00
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
2024-07-31 00:00:24 +02:00
exec-once = wl-paste --type image --watch cliphist store # Stores only image data
```
Note that any of the above lines can be disabled based on your needs.
To bind `cliphist` to a hotkey and display it under `rofi`, `dmenu`, `wofi` or `fuzzel`,
2024-07-31 00:00:24 +02:00
you can edit it in `hyprland.conf`.
2023-04-17 01:13:48 +02:00
### For `rofi` users
```ini
bind = SUPER, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
```
2023-04-17 01:13:48 +02:00
### For `dmenu` users
```ini
bind = SUPER, V, exec, cliphist list | dmenu | cliphist decode | wl-copy
```
### For `wofi` users
```ini
bind = SUPER, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
```
### For `fuzzel` users
```ìni
bind = SUPER, V, exec, cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
```
The binds above allow `SUPER + V` to be used to access the clipboard history.
For further info, please refer to the repository mentioned above.
## clipman
2024-07-31 00:00:24 +02:00
Start by adding the following line to your `hyprland.conf`
```ini
exec-once = wl-paste -t text --watch clipman store --no-persist
```
If you wish to use it as a primary clipboard manager, use this instead:
```ini
exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json"
```
Ensure that `~/.local/share/clipman-primary.json` is already created.
Now you can bind `clipman` like this:
2023-04-17 01:13:48 +02:00
### For `rofi` users
```ini
bind = SUPER, V, exec, clipman pick -t rofi
```
2023-04-17 01:13:48 +02:00
### For `dmenu` users
```ini
bind = SUPER, V, exec, clipman pick -t dmenu
```
### For `wofi` users
```ini
bind = SUPER, V, exec, clipman pick -t wofi
```
### For `fuzzel` users
```ìni
bind = SUPER, V, exec, clipman pick -t STDOUT | fuzzel --dmenu | wl-copy
```
...and so on. For further information, please refer to the repository
mentioned above.
## clipse
2024-07-31 00:00:24 +02:00
Start by adding the following line to your `hyprland.conf`
```ini
exec-once = clipse -listen
```
You can bind the TUI to a something nice like this:
2024-11-06 19:34:37 +01:00
```ini
2024-07-31 00:00:24 +02:00
windowrulev2 = float, class:(clipse)
windowrulev2 = size 622 652, class:(clipse)
2024-11-06 19:34:37 +01:00
bind = SUPER, V, exec, alacritty --class clipse -e clipse
```
2024-07-31 00:00:24 +02:00
Replace `alacritty` with the terminal environment you use if necessary. The
class is optional, but it's recommended to use a floating window to achieve more
GUI-like behavior.
2024-07-31 00:00:24 +02:00
For more details on `clipse`, please refer to its GitHub repo linked at the top
of the page.