#!/usr/bin/env bash
-# fork of clipmenu https://github.com/cdown/clipmenu
+# simple clipmenu wrapper
-: "${CM_LAUNCHER=instantmenu}"
: "${CM_DIR="${XDG_RUNTIME_DIR-"${TMPDIR-/tmp}"}"}"
-: "${CM_HISTLENGTH=8}"
-
major_version=6
if ! pgrep -f clipmenud; then
fi
fi
-if [[ $1 == --help ]] || [[ $1 == -h ]]; then
- cat <<'EOF'
-instantclipmenu is a simple clipboard manager using instantmenu and xsel. Launch this
-when you want to select a clip.
-
-All arguments are passed through to dmenu itself.
-
-Environment variables:
-
-- $CM_DIR: specify the base directory to store the cache dir in (default: $XDG_RUNTIME_DIR, $TMPDIR, or /tmp)
-- $CM_HISTLENGTH: specify the number of lines to show in dmenu/rofi (default: 8)
-- $CM_LAUNCHER: specify a dmenu-compatible launcher (default: dmenu)
-- $CM_OUTPUT_CLIP: if set, output clip selection to stdout
-EOF
- exit 0
-fi
-
-# Blacklist of non-dmenu launchers
-launcher_args=(-l "${CM_HISTLENGTH}" -p " " -q 'clipboard manager' -h -1 -lc "instantclipmenu delete")
-if [[ "$CM_LAUNCHER" == fzf ]]; then
- launcher_args=()
-fi
-
-list_clips() {
- LC_ALL=C sort -rnk 1 <"$cache_file" | cut -d' ' -f2- | awk '!seen[$0]++'
-}
-
-if [[ "$CM_LAUNCHER" == rofi-script ]]; then
- if (($#)); then
- chosen_line="${!#}"
- else
- list_clips
- exit
- fi
-else
- chosen_line=$(list_clips | "$CM_LAUNCHER" "${launcher_args[@]}" "$@")
-fi
-
-[[ $chosen_line ]] || exit 1
-file=$cache_dir/$(cksum <<<"$chosen_line")
-[[ -f "$file" ]] || exit 2
-
-for selection in clipboard primary; do
- xsel --logfile /dev/null -i --"$selection" <"$file"
-done
-
-if ((CM_OUTPUT_CLIP)); then
- cat "$file"
-fi
+CM_LAUNCHER=instantmenu clipmenu -p " " -q 'clipboard manager' -h -1 -lc "instantclipmenu delete"