dots-of-war/eggs/niri/clipboardfix.sh

42 lines
1.2 KiB
Bash
Raw Normal View History

2024-11-23 19:31:29 +00:00
#!/usr/bin/env bash
primary-wl-to-x () {
while read; do
if [[ "$(wl-paste --primary --no-newline | sha256sum)" != "$(xclip -selection primary -out | sha256sum)" ]]; then
echo "syncing primary wl->x"
wl-paste --primary --no-newline | xclip -selection primary -in
fi
done < <(wl-paste --primary --watch echo)
}
primary-x-to-wl () {
while clipnotify -s primary; do
if [[ "$(wl-paste --primary --no-newline | sha256sum)" != "$(xclip -selection primary -out | sha256sum)" ]]; then
echo "syncing primary x->wl"
xclip -selection primary -out | wl-copy --primary
fi
done
}
clipboard-wl-to-x () {
while read; do
if [[ "$(wl-paste --no-newline | sha256sum)" != "$(xclip -selection clipboard -out | sha256sum)" ]]; then
echo "syncing clipboard wl->x"
wl-paste --no-newline | xclip -selection clipboard -in
fi
done < <(wl-paste --watch echo)
}
clipboard-x-to-wl () {
while clipnotify -s clipboard; do
if [[ "$(wl-paste --no-newline | sha256sum)" != "$(xclip -selection clipboard -out | sha256sum)" ]]; then
echo "syncing clipboard x->wl"
xclip -selection clipboard -out | wl-copy
fi
done
}
clipboard-wl-to-x &
clipboard-x-to-wl &
primary-wl-to-x &
primary-x-to-wl &