#!/bin/bash

# Access your KDE 4 klipper on the command line
# usage:
#  ./clipboard
#    will output current contents of klipper
#  echo "foobar" | ./clipboard
#    will put "foobar" into your clipboard/klipper

# check for stdin
if ! tty -s && stdin=$(</dev/stdin) && [[ "$stdin"  ]]; then
    # get the rest of stdin
    stdin=$stdin$'\n'$(cat)
    # oh, nice - user input! we set that as current
    # clipboard content
    qdbus org.kde.klipper /klipper setClipboardContents "$stdin"
    exit
fi

# if we reach this point no user input was given and we
# print out the current contents of the clipboard
qdbus org.kde.klipper /klipper getClipboardContents
