Clipboard Catcher для линуксоидов (bash, xclip)

Давно пользуюсь такой штукой, но поискал и оказалось, что мне не приходило в голову поделиться рецептом. Пользователи WikidPad поймут с полуслова, остальные... ну не знаю, поймут как-нибудь.

При запущенной утилитке всё, что копируется в клипборд, дублируется в текстовый файл. Очень удобно, когда предстоит много копи-паста: позволяет избавиться от Alt-Tab, Ctrl-V, Alt-Tab после каждого Ctrl-C.

Итак, `~/bin/cbc`:

#!/bin/bash
## Clipboard catcher
## first parameter (optional) -- log file name
##
## @author Ruslan Brest, mailto:r-b@mail.ru
## @date   05/07/2013
if [ -z "$1" ]; then
  FILE="00-clipboard-continous.txt"
else
  FILE="$1"
fi
if [ -z "$2" ]; then
  DELIMITER="\n"
else
  DELIMITER="\n-- -- -- --\n"
fi
echo "FILE: ${FILE}"
echo "DELIMITER: ${DELIMITER}"
# Prevent pasting previously existing clipboard content:
PREV_CB=`xclip -o -selection clipboard`
#PREV_CB=`xclip -o -selection primary`
CB=""
## Set log file name given by user
if [ "$1" != "" ]; then FILE=$1; fi
## capture clipboard content
while true
do
    ## Ctrl-C
    CB=`xclip -o -selection clipboard`
    ## Mouse selection
    # CB=`xclip -o -selection primary`
    if [ "$CB" != "$PREV_CB" ]
    then
        echo -e "$CB" >> $FILE
        echo -e $DELIMITER >> $FILE
        PREV_CB=$CB
    fi
    sleep 1s
done

Как пользоваться? Набираем в консоли `cbc`. Копируем, копируем, копируем, копируем (по Ctrl-C)... Переключаемся опять в консоль, где запущен `cbc`, и прерываем его по Ctrl-C. Ищем файл clipboard-continous.txt - там всё награбленное.

Если нет `xclip` - устанавливаем. Для убунту - sudo apt-get install xclip

Tags: