OSDN Git Service

simplify instantclipmenu
authorpaperbenni <paperbenni@gmail.com>
Fri, 7 Aug 2020 11:25:46 +0000 (13:25 +0200)
committerpaperbenni <paperbenni@gmail.com>
Fri, 7 Aug 2020 11:25:46 +0000 (13:25 +0200)
programs/instantclipmenu

index 39d8933..c2fce61 100755 (executable)
@@ -1,11 +1,8 @@
 #!/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
@@ -26,52 +23,4 @@ if [ "$1" = "delete" ]; 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"