summaryrefslogtreecommitdiff
path: root/clipboard-stream
blob: a1f0cdc776f20195460a8c10c0131bcfc0553b07 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

set -euo pipefail

find_clipboard_command() {
  if command -v xclip &>/dev/null; then
    echo xclip -out -selection clipboard
  elif command -v xsel &>/dev/null; then
    echo xsel --output --clipboard
  else
    echo "No clipboard command found" >&2
    exit 1
  fi
}

main() {
  CLIPBOARD_COMMAND=$(find_clipboard_command)
  recent_value=$(eval "$CLIPBOARD_COMMAND")
  while true; do
    value=$(eval "$CLIPBOARD_COMMAND")
    if [ "$recent_value" != "$value" ]; then
      recent_value=$value
      echo "$recent_value"
    fi
    sleep 0.1
  done
}

main "$@"