Introduction
Introduction Statistics Contact Development Disclaimer Help
index.md - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
index.md (2443B)
---
1 Quick searching with dmenu
2 ==========================
3
4 Description
5 -----------
6
7 Prompts for a query with dmenu and posts it to the selected search engin…
8 The engine is specified by a single-character code that precedes the
9 actual query, e.g. 'w pancakes' would search en.wikipedia.org for the st…
10 'pancakes'. This reduces the necessary shell plumbing to a couple of pip…
11 and a case statement.
12
13 Character ugliness in the query is avoided using od and tr. This
14 has worked so far.
15
16 **EDIT:** Replaced xxd with od and eliminated a sed pipe. Replaced cut p…
17 with sh variable expansion.
18
19 Author
20 ------
21
22 Wolfgang Corcoran-Mathe
23
24 Installation
25 ------------
26
27 Copy the following code into an executable file and place it in PATH. Ed…
28 surf/config.def.h as described in the header.
29
30 Code
31 ----
32
33 #!/bin/sh
34 #
35 # surf_qsearch:
36 # Search script for surf. Takes the surf window id as argument.
37 # POSIX compliant and GNU-free, I think.
38 #
39 # Add something like the following to your surf/config.(def.)h, …
40 # surf_qsearch with the name of the file you've copied this code…
41 #
42 # /* Quick searching. */
43 # #define QSEARCH { \
44 # .v = (char *[]){"/bin/sh", "-c", "surf_qsearch $0 $1", win…
45 # }
46 #
47 # Add a keybinding in keys[]:
48 #
49 # { MODKEY, GDK_q, spawn, QSEARCH },
50 #
51
52 # Get the full query. The 'echo | dmenu' idiom may be a bit of
53 # a hack, but it seems to work.
54 q="$(echo | dmenu)"
55 [ -z "$q" ] && exit 0
56
57 # Extract the engine code.
58 e="${q%% *}"
59
60 # Encode the search string (i.e. the rest of q). xxd was formerl…
61 # here, but xxd is part of vim packages on some systems, whereas…
62 # ubiquitous. A search script that breaks if someone accidentall…
63 # vim is stupid.
64 s=$(printf %s "${q#* }" | tr -d '\n' | od -t x1 -An | tr ' ' '%…
65
66 # These are examples. Change as desired.
67 # 's' = startpage.com
68 # 'w' = wikipedia.org
69 # 'a' = wiki.archlinux.org
70 # 'd' = en.wiktionary.org
71 case $e in
72 's')
73 xprop -id $1 -f _SURF_GO 8s -set _SURF_GO "https…
74 ;;
75 'w')
76 xprop -id $1 -f _SURF_GO 8s -set _SURF_GO "https…
77 ;;
78 'a')
79 xprop -id $1 -f _SURF_GO 8s -set _SURF_GO "https…
80 ;;
81 'd')
82 xprop -id $1 -f _SURF_GO 8s -set _SURF_GO "https…
83 ;;
84 *)
85 exit 1
86 ;;
87 esac
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.