summaryrefslogtreecommitdiff
path: root/bin/dmscripts/dmclip
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-02-15 16:31:56 +0100
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-02-15 16:47:43 +0100
commit3b2a78935fd6550521f719a10e5b0fceb1ddb350 (patch)
tree7c50801d6bb5b7abba3df6352ed43df454a4dbcb /bin/dmscripts/dmclip
Not really but, First commit!
Diffstat (limited to 'bin/dmscripts/dmclip')
-rwxr-xr-xbin/dmscripts/dmclip83
1 files changed, 83 insertions, 0 deletions
diff --git a/bin/dmscripts/dmclip b/bin/dmscripts/dmclip
new file mode 100755
index 0000000..5282b35
--- /dev/null
+++ b/bin/dmscripts/dmclip
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+NotImage () {
+ echo -n "" | dmenu -p "NOT AN IMAGE"
+ exit
+}
+
+# Display clipboard max length
+
+selection="$(echo -e "primary\nclipboard\nswap" | dmenu -l 1 -g 3 -p "selection:")"
+if [[ "${selection}" == "swap" ]]
+then
+ clipboard="$(xclip -o)"
+ xclip -o | xclip -sel c
+ echo -n "${clipboard}" | xclip -sel c
+ exit
+elif [[ "${selection}" == "" ]]
+then
+ exit 1
+fi
+if "${selection}" == "primary" ]]
+then
+ selection2="clipboard"
+else
+ selection2="primary"
+fi
+
+
+clipboard="$(xclip -out -sel "${selection}" -r)"
+
+DICL_LEN=48
+if [[ "$(xclip -sel ${selection} -o | head -n1 | cut -c 2-4)" == "PNG" ]]
+then
+ disp_clip="IMAGE"
+else
+ disp_clip="$(echo -n "${clipboard}" | tr -d '\n' | cut -c -"${DICL_LEN}")"
+fi
+
+menu_option="$(\
+ echo -e "save\nload\nimage\nreplace" \
+ | dmenu -l 1 -g 4 -p "'${disp_clip}'" \
+)"
+[[ "${menu_option}" ]] || exit
+
+case "${menu_option}" in
+
+ replace)
+ replace_text="$(echo -n "" | dmenu -l 0 -p "replace:")"
+ [[ "${replace_text}" ]] || exit
+ replace_by_text="$(echo -n "" | dmenu -l 0 -p "by:")"
+ [[ "${replace_by_text}" ]] || exit
+ echo "${clipboard}" \
+ | sed "s/${replace_text}/${replace_by_text}/g" \
+ | xclip -r -sel "${selection}"
+ ;;
+
+ save)
+ echo "${clipboard}" >> /tmp/tmpclip.txt
+ ;;
+ load)
+ choice="$(\
+ sort /tmp/tmpclip.txt \
+ | uniq \
+ | dmenu -g 1 -l 5 || exit \
+ )"
+ echo -n "${choice}" | xclip -sel "${selection}"
+ ;;
+
+ image)
+ # Menu
+ # 1: line from paragraph
+ # 2: param
+ #
+ file_name="tmp_xclip"
+ xclip -o -sel c > "/tmp/${file_name}.png"
+ file "/tmp/${file_name}.png" \
+ | cut -d ':' -f 2 \
+ | grep "image" || NotImage
+ # sed so that dmenu doesn't skip if one line
+ tesseract "/tmp/${file_name}.png" stdout > "/tmp/${file_name}"
+ sed "1i\ " "/tmp/${file_name}" | dmenu -l 10 -g 1 -p "PREVIEW:" -l 20 || exit
+ xclip -sel "${selection}" -in "/tmp/${file_name}"
+ ;;
+esac