#!/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 &