2014-02-05 10:12:34 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2015-02-08 18:45:16 +01:00
|
|
|
dmenu_lines=${CLIPMENU_LINES-8}
|
2014-02-05 10:12:34 +01:00
|
|
|
|
|
|
|
declare -A selections
|
|
|
|
|
|
|
|
for file in /tmp/clipmenu/*; do
|
2015-02-08 18:42:39 +01:00
|
|
|
first_line=$(sed -n '/./{p;q}' "$file")
|
2014-02-05 10:12:34 +01:00
|
|
|
|
|
|
|
lines=$(wc -l "$file")
|
|
|
|
lines=${lines%% *}
|
|
|
|
|
|
|
|
if (( lines > 1 )); then
|
|
|
|
first_line+=" ($lines lines)"
|
|
|
|
fi
|
|
|
|
|
|
|
|
selections[$first_line]=$file
|
|
|
|
done
|
|
|
|
|
2014-02-05 11:24:13 +01:00
|
|
|
chosen_line=$(printf '%s\n' "${!selections[@]}" | dmenu -l "$dmenu_lines" "$@")
|
2014-02-05 10:16:42 +01:00
|
|
|
|
|
|
|
[[ $chosen_line ]] || exit 1
|
|
|
|
|
2014-02-05 10:48:03 +01:00
|
|
|
for selection in clipboard primary; do
|
2015-02-08 18:36:06 +01:00
|
|
|
if type -p xsel >/dev/null 2>&1; then
|
|
|
|
xsel --"$selection" < "${selections[$chosen_line]}"
|
|
|
|
else
|
|
|
|
xclip -sel "$selection" < "${selections[$chosen_line]}"
|
|
|
|
fi
|
2014-02-05 10:48:03 +01:00
|
|
|
done
|