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
|
#!/bin/sh (1)
# Released under MIT License (2)
# Copyright (C) 2021 Rizqi Nur Assyaufi <bandithijo@gmail.com>
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
MENU="dmenu" (3)
OPTIONS=''' (4)
[
[ "Arch:Manpage", "https://man.archlinux.org/search?q=" ],
[ "Arch:Wiki", "https://wiki.archlinux.org/index.php?search=" ],
[ "Arch:Packages", "https://archlinux.org/packages/?q=" ],
[ "Arch:Packages:AUR", "https://aur.archlinux.org/packages/?K=" ],
[ "DuckDuckGo:Search", "https://duckduckgo.com/?q=" ],
[ "Google:Search", "https://duckduckgo.com/?q=!g+" ],
[ "Google:Search:Image", "https://duckduckgo.com/?q=!gi+" ],
[ "Google:Translate", "https://translate.google.com/?sl=auto&tl=id&text=" ],
[ "Ruby:Gems", "https://rubygems.org/gems/" ],
[ "Ruby:Toolbox", "https://www.ruby-toolbox.com/search?q=" ],
[ "Twitter:Search", "https://twitter.com/search?q=" ]
]
'''
OBJ_LENGTH=$(echo $OPTIONS | jq length) (5)
OBJ_MENU=$(echo $OPTIONS | jq -r ".[][0]" | $MENU -i -p " WebSearch") (6)
OBJ_SELECTED=$(echo $OBJ_MENU | cut -d' ' -f1) (7)
OBJ_KEYWORDS=$(echo $OBJ_MENU | cut -d' ' -f2- | tr " " "+") (8)
for i in $(seq 0 $((OBJ_LENGTH - 1))); do (9)
if [ "$OBJ_SELECTED" = "$(echo $OPTIONS | jq -r --arg i $i '.[($i|tonumber)][0]')" ]; then (10)
URLQUERY=$(echo $OPTIONS | jq -r --arg i $i '.[($i|tonumber)][1]') (11)
KEYWORDS=$(echo $OBJ_KEYWORDS) (12)
xdg-open "${URLQUERY}${KEYWORDS}" 2> /dev/null (13)
fi
done |