Introduction
Introduction Statistics Contact Development Disclaimer Help
tconfig.h - surf - [fork] customized build of surf, the suckless webkit browser
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
tconfig.h (9826B)
---
1 /* modifier 0 means no modifier */
2 static int surfuseragent = 1; /* Append Surf version to default WebK…
3 static char *fulluseragent = ""; /* Or override the whole user agent st…
4 static char *scriptfile = "~/.config/surf/script.js";
5 static char *styledir = "~/.config/surf/styles/";
6 static char *certdir = "~/.config/surf/certificates/";
7 static char *cachedir = "~/.config/surf/cache/";
8 static char *cookiefile = "~/.config/surf/cookies.txt";
9 static char **plugindirs = (char*[]){
10 "~/.config/surf/plugins/",
11 LIBPREFIX "/mozilla/plugins/",
12 NULL
13 };
14
15 /* Webkit default features */
16 /* Highest priority value will be used.
17 * Default parameters are priority 0
18 * Per-uri parameters are priority 1
19 * Command parameters are priority 2
20 */
21 static Parameter defconfig[ParameterLast] = {
22 /* parameter Arg value priority */
23 [AccessMicrophone] = { { .i = 0 }, },
24 [AccessWebcam] = { { .i = 0 }, },
25 [Certificate] = { { .i = 0 }, },
26 [CaretBrowsing] = { { .i = 0 }, },
27 [CookiePolicies] = { { .v = "@Aa" }, },
28 [DefaultCharset] = { { .v = "UTF-8" }, },
29 [DiskCache] = { { .i = 1 }, },
30 [DNSPrefetch] = { { .i = 0 }, },
31 [FileURLsCrossAccess] = { { .i = 0 }, },
32 [FontSize] = { { .i = 12 }, },
33 [FrameFlattening] = { { .i = 0 }, },
34 [Geolocation] = { { .i = 0 }, },
35 [HideBackground] = { { .i = 0 }, },
36 [Inspector] = { { .i = 0 }, },
37 [Ephemeral] = { { .i = 0 }, },
38 [Java] = { { .i = 0 }, },
39 [JavaScript] = { { .i = 0 }, },
40 [KioskMode] = { { .i = 0 }, },
41 [LoadImages] = { { .i = 0 }, },
42 [MediaManualPlay] = { { .i = 1 }, },
43 [PreferredLanguages] = { { .v = (char *[]){ NULL } }, },
44 [RunInFullscreen] = { { .i = 0 }, },
45 [ScrollBars] = { { .i = 1 }, },
46 [ShowIndicators] = { { .i = 1 }, },
47 [SiteQuirks] = { { .i = 1 }, },
48 [SmoothScrolling] = { { .i = 0 }, },
49 [SpellChecking] = { { .i = 0 }, },
50 [SpellLanguages] = { { .v = ((char *[]){ "en_US", NUL…
51 [StrictTLS] = { { .i = 1 }, },
52 [Style] = { { .i = 1 }, },
53 [WebGL] = { { .i = 0 }, },
54 [ZoomLevel] = { { .f = 1.0 }, },
55 };
56
57 static UriParameters uriparams[] = {
58 { "(://|\\.)suckless\\.org(/|$)", {
59 [JavaScript] = { { .i = 0 }, 1 },
60 }, },
61 };
62
63 /* default window size: width, height */
64 static int winsize[] = { 800, 600 };
65
66 static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE…
67 WEBKIT_FIND_OPTIONS_WRAP_AROUND;
68
69 #define PROMPT_GO "Go:"
70 #define PROMPT_FIND "Find:"
71
72 /* SETPROP(readprop, setprop, prompt)*/
73 #define SETPROP(r, s, p) { \
74 .v = (const char *[]){ "/bin/sh", "-c", \
75 "prop=\"$(printf '%b' \"$(xprop -id $1 "r" " \
76 "| sed -e 's/^"r"(UTF8_STRING) = \"\\(.*\\)\"/\\1/' " \
77 " -e 's/\\\\\\(.\\)/\\1/g')\" " \
78 "| dmenu -p '"p"' -w $1)\" " \
79 "&& xprop -id $1 -f "s" 8u -set "s" \"$prop\"", \
80 "surf-setprop", winid, NULL \
81 } \
82 }
83
84 /* DOWNLOAD(URI, referer) */
85 #define DOWNLOAD(u, r) { \
86 .v = (const char *[]){ "st", "-e", "/bin/sh", "-c",\
87 "cd ~/tmp && curl -g -L -J -O -A \"$1\" -b \"$2\" -c \"$2\"…
88 " -e \"$3\" \"$4\"; read", \
89 "surf-download", useragent, cookiefile, r, u, NULL \
90 } \
91 }
92
93 /* PLUMB(URI) */
94 /* This called when some URI which does not begin with "about:",
95 * "http://" or "https://" should be opened.
96 */
97 #define PLUMB(u) {\
98 .v = (const char *[]){ "/bin/sh", "-c", \
99 "xdg-open \"$0\"", u, NULL \
100 } \
101 }
102
103 /* PLUMBER(URI) */
104 #define PLUMBER(u) {\
105 .v = (const char *[]){ "/bin/sh", "-c", \
106 "plumb \"$(echo $(xprop -id $0 $1 | cut -d '\"' -f2) )\"",\
107 winid, u, NULL \
108 } \
109 }
110
111 /* VIDEOPLAY(URI) */
112 #define VIDEOPLAY(u) {\
113 .v = (const char *[]){ "/bin/sh", "-c", \
114 "mpv --really-quiet \"$0\"", u, NULL \
115 } \
116 }
117
118 /* VIDEOPLAYTABBED(URI) */
119 #define VIDEOPLAYTABBED(u) {\
120 .v = (const char *[]){ "/bin/sh", "-c", "-x", \
121 "mpv --really-quiet \"$(echo $(xprop -id $0 $1 | \
122 cut -d '\"' -f2) )\"",\
123 winid, u, NULL \
124 } \
125 }
126
127 /* BOOKMARK(URI) */
128 #define BOOKMARKURI(r) {\
129 .v = (const char *[]){ "st", "-e", "/bin/sh", "-c", "-x", \
130 "bookmark \"$(echo $(xprop -id $0 $1) | cut -d '\"' -f2)\" "…
131 "\"$(echo $(xprop -id $0 _NET_WM_NAME) | cut -d '\"' -f2 " \
132 "| cut -d ' | ' -f3- )\" ",\
133 winid, r, NULL \
134 } \
135 }
136
137 /* FIREFOX(URI) */
138 #define FIREFOX(u) {\
139 .v = (const char *[]){ "/bin/sh", "-c", \
140 "firefox \"$(echo $(xprop -id $0 $1 | cut -d '\"' -f2) )\""…
141 winid, u, NULL \
142 } \
143 }
144
145 /* EDITSRC(URI) */
146 #define EDITSRC(r) {\
147 .v = (const char *[]){ "st", "-e", "/bin/sh", "-x", "-c", \
148 "f=\"$(mktemp)\" && " \
149 "curl -sL \"$(echo $(xprop -id $0 $1) | cut -d '…
150 "tmux new-session \"$EDITOR '$f'\" ", \
151 winid, r, NULL \
152 } \
153 }
154
155 /* styles */
156 /*
157 * The iteration will stop at the first match, beginning at the beginnin…
158 * the list.
159 */
160 static SiteSpecific styles[] = {
161 /* regexp file in $styledir */
162 { ".*", "default.css" },
163 };
164
165 /* certificates */
166 /*
167 * Provide custom certificate for urls
168 */
169 static SiteSpecific certs[] = {
170 /* regexp file in $certdir */
171 { "://suckless\\.org/", "suckless.org.crt" },
172 };
173
174 #define MODKEY GDK_CONTROL_MASK
175
176 /* hotkeys */
177 /*
178 * If you use anything else but MODKEY and GDK_SHIFT_MASK, don't forget …
179 * edit the CLEANMASK() macro.
180 */
181 static Key keys[] = {
182 /* modifier keyval function arg */
183 { MODKEY, GDK_KEY_slash, spawn, SETPROP("_S…
184 { 0, GDK_KEY_Escape, stop, { 0 } },
185 { MODKEY, GDK_KEY_space, scrollv, { .i = +50 …
186 { MODKEY|GDK_SHIFT_MASK, XK_Next, zoom, { .i = -1 }…
187 { MODKEY|GDK_SHIFT_MASK, XK_Prior, zoom, { .i = +1 }…
188 { MODKEY|GDK_SHIFT_MASK, XK_Home, zoom, { .i = 0 }…
189
190 { MODKEY, GDK_KEY_F11, togglefullscreen, { 0 }…
191
192 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_a, togglecookiepolicy, { 0…
193 { MODKEY, GDK_KEY_b, spawn, BOOKMARKURI…
194 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = Scro…
195 { MODKEY, GDK_KEY_c, stop, { 0 } },
196 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_c, toggle, { .i = Care…
197 { MODKEY, GDK_KEY_d, scrollv, { .i = +50 …
198 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_d, scrollv, { .i = +100…
199 { MODKEY, GDK_KEY_e, spawn, EDITSRC("_S…
200 { MODKEY, GDK_KEY_f, spawn, FIREFOX("_S…
201 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_f, toggle, { .i = Fram…
202 { MODKEY, GDK_KEY_h, navigate, { .i = -1 }…
203 { MODKEY, GDK_KEY_i, scrollh, { .i = +10 …
204 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_i, toggle, { .i = Load…
205 { MODKEY, GDK_KEY_j, scrollv, { .i = +10 …
206 { MODKEY, GDK_KEY_k, scrollv, { .i = -10 …
207 { MODKEY, GDK_KEY_l, navigate, { .i = +1 }…
208 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_l, toggle, { .i = Geol…
209 { MODKEY, GDK_KEY_m, spawn, VIDEOPLAYTA…
210 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Styl…
211 { MODKEY, GDK_KEY_n, find, { .i = +1 }…
212 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_n, find, { .i = -1 }…
213 { MODKEY, GDK_KEY_o, spawn, SETPROP("_S…
214 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_o, toggleinspector, { 0 } …
215 { MODKEY, GDK_KEY_p, clipboard, { .i = 1 } …
216 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_p, print, { 0 } },
217 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .i = 1 } …
218 { MODKEY, GDK_KEY_r, reload, { .i = 0 } …
219 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_s, toggle, { .i = Java…
220 { MODKEY, GDK_KEY_t, showcert, { 0 } },
221 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_t, toggle, { .i = Stri…
222 { MODKEY, GDK_KEY_u, scrollv, { .i = -50 …
223 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_u, spawn, PLUMBER("_S…
224 { MODKEY, GDK_KEY_y, clipboard, { .i = 0 } …
225 };
226
227 /* button definitions */
228 /* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, On…
229 static Button buttons[] = {
230 /* target event mask button function argument…
231 { OnLink, 0, 2, clicknewwindow, { .i = 0…
232 { OnLink, MODKEY, 2, clicknewwindow, { .i = 1…
233 { OnLink, MODKEY, 1, clicknewwindow, { .i = 1…
234 { OnAny, 0, 8, clicknavigate, { .i = -…
235 { OnAny, 0, 9, clicknavigate, { .i = +…
236 { OnMedia, MODKEY, 1, clickexternplayer, { 0 }…
237 };
You are viewing proxied material from mx1.adamsgaard.dk. 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.