#!/bin/bash # From http://milianw.de/code-snippets/access-klipper-clipboard-on-cli-under-kde4 # # Here’s a little script you can save in your path and do things like # # paste current clipboard into file # clipboard > "some_file" # # copy some file into clipboard # cat "some_file" | clipboard # Actually I find it rather useful so I thought I will have to share it. # check for stdin # since we don't want to wait endlessly we set a timeout # a pity `read` only supports seconds and no fractions... # read -t 1 stdin #if [[ "$stdin" != "" ]]; then # get the rest of stdin stdin=$stdin$(cat) # oh, nice - user input! we set that as current # clipboard content dbus-send --type=method_call --dest=org.kde.klipper \ /klipper org.kde.klipper.klipper.setClipboardContents \ string:"$stdin" exit #fi # if we reach this point no user input was given and we # print out the current contents of the clipboard # note: I hate the output of dbus, dcop was much easier in that regard! dbus-send --print-reply --dest=org.kde.klipper /klipper \ org.kde.klipper.klipper.getClipboardContents | awk ' BEGIN { output = ""; } { if ( NR > 1 ) { output = output $0 "\n"; } } END { print substr(output, 12, length(output) - 13); }'