blob: 5282b358cf47a3f89816c04291ad20ee6136dbad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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
|