forked from Nokorot/dotbin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzoom_dmenu
executable file
·62 lines (45 loc) · 1.17 KB
/
zoom_dmenu
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
#!/bin/sh
bmfile="$HOME/.config/zoom_links.list"
run() {
[ -z $1 ] && exit
l=$(_dml_cmp $bmfile | grep "^$1$\|^$1 ")
[ -z "$l" ] && notify-send "keyword '$1' was not found"
c=$(echo $l | cut -d' ' -f2- )
[ -z "$c" ] && c=$1
echo $c
zoom "$c"
}
store() {
name="$(dmenu_name)"
[ -z "$name" ] && { notify-send "Not stored!"; return; }
printf "$name $1\n" >> $bmfile
}
dmenu_search() {
_dml_cmp $bmfile | \
cut -d' ' -f1 | dmenu -i -p "$prompt"
}
dmenu_name() {
_dml_cmp $bmfile | \
cut -d' ' -f1 | dmenu -i -p "Store Link With Tag: "
}
## TODO: Write a proper usage message
usage() {
echo "Usage: $0 [-c <file>] <choose>\\n -c: dml-file, default '$bmfile' \\n" 1>&2; exit 1;}
main () {
STORE=""
while getopts "hc:p:s" o; do case "${o}" in
c) bmfile=$OPTARG ;;
p) prompt=$OPTARG ;;
s) STORE="True" ;;
*) usage && exit ;;
esac done
shift $((OPTIND-1))
if [ -z "$STORE" ]; then
[ -z $1 ] && run "$(dmenu_search)" \
|| run "$1";
else
[ -z $1 ] && store "$(xclip -o -selection clipboard)" \
|| store "$1";
fi
}
main $@