static char *cookiefile = "~/.surf/cookies.txt";
/* Webkit default features */
+/* Highest priority value will be used.
+ * Default parameters are priority 0
+ * Per-uri parameters are priority 1
+ * Command parameters are priority 2
+ */
static Parameter defconfig[ParameterLast] = {
- SETB(AcceleratedCanvas, 1),
- SETB(AccessMicrophone, 0),
- SETB(AccessWebcam, 0),
- SETB(Certificate, 0),
- SETB(CaretBrowsing, 0),
- SETV(CookiePolicies, "@Aa"),
- SETV(DefaultCharset, "UTF-8"),
- SETB(DiskCache, 1),
- SETB(DNSPrefetch, 0),
- SETI(FontSize, 12),
- SETB(FrameFlattening, 0),
- SETB(Geolocation, 0),
- SETB(HideBackground, 0),
- SETB(Inspector, 0),
- SETB(Java, 1),
- SETB(JavaScript, 1),
- SETB(KioskMode, 0),
- SETB(LoadImages, 1),
- SETB(MediaManualPlay, 0),
- SETB(Plugins, 1),
- SETV(PreferredLanguages, ((char *[]){ NULL })),
- SETB(RunInFullscreen, 0),
- SETB(ScrollBars, 1),
- SETB(ShowIndicators, 1),
- SETB(SiteQuirks, 1),
- SETB(SmoothScrolling, 0),
- SETB(SpellChecking, 0),
- SETV(SpellLanguages, ((char *[]){ "en_US", NULL })),
- SETB(StrictTLS, 1),
- SETB(Style, 1),
- SETF(ZoomLevel, 1.0),
+ /* parameter Arg value priority */
+ [AcceleratedCanvas] = { { .i = 1 }, },
+ [AccessMicrophone] = { { .i = 0 }, },
+ [AccessWebcam] = { { .i = 0 }, },
+ [Certificate] = { { .i = 0 }, },
+ [CaretBrowsing] = { { .i = 0 }, },
+ [CookiePolicies] = { { .v = "@Aa" }, },
+ [DefaultCharset] = { { .v = "UTF-8" }, },
+ [DiskCache] = { { .i = 1 }, },
+ [DNSPrefetch] = { { .i = 0 }, },
+ [FileURLsCrossAccess] = { { .i = 0 }, },
+ [FontSize] = { { .i = 12 }, },
+ [FrameFlattening] = { { .i = 0 }, },
+ [Geolocation] = { { .i = 0 }, },
+ [HideBackground] = { { .i = 0 }, },
+ [Inspector] = { { .i = 0 }, },
+ [Java] = { { .i = 1 }, },
+ [JavaScript] = { { .i = 1 }, },
+ [KioskMode] = { { .i = 0 }, },
+ [LoadImages] = { { .i = 1 }, },
+ [MediaManualPlay] = { { .i = 1 }, },
+ [Plugins] = { { .i = 1 }, },
+ [PreferredLanguages] = { { .v = (char *[]){ NULL } }, },
+ [RunInFullscreen] = { { .i = 0 }, },
+ [ScrollBars] = { { .i = 1 }, },
+ [ShowIndicators] = { { .i = 1 }, },
+ [SiteQuirks] = { { .i = 1 }, },
+ [SmoothScrolling] = { { .i = 0 }, },
+ [SpellChecking] = { { .i = 0 }, },
+ [SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, },
+ [StrictTLS] = { { .i = 1 }, },
+ [Style] = { { .i = 1 }, },
+ [WebGL] = { { .i = 0 }, },
+ [ZoomLevel] = { { .f = 1.0 }, },
};
static UriParameters uriparams[] = {
{ "(://|\\.)suckless\\.org(/|$)", {
- FSETB(JavaScript, 0),
- FSETB(Plugins, 0),
+ [JavaScript] = { { .i = 0 }, 1 },
+ [Plugins] = { { .i = 0 }, 1 },
}, },
};
{ 0, GDK_KEY_Escape, stop, { 0 } },
{ MODKEY, GDK_KEY_c, stop, { 0 } },
- { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .b = 1 } },
- { MODKEY, GDK_KEY_r, reload, { .b = 0 } },
+ { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .i = 1 } },
+ { MODKEY, GDK_KEY_r, reload, { .i = 0 } },
{ MODKEY, GDK_KEY_l, navigate, { .i = +1 } },
{ MODKEY, GDK_KEY_h, navigate, { .i = -1 } },
- /* Currently we have to use scrolling steps that WebKit2GTK+ gives us
- * d: step down, u: step up, r: step right, l:step left
- * D: page down, U: page up */
- { MODKEY, GDK_KEY_j, scroll, { .i = 'd' } },
- { MODKEY, GDK_KEY_k, scroll, { .i = 'u' } },
- { MODKEY, GDK_KEY_b, scroll, { .i = 'U' } },
- { MODKEY, GDK_KEY_space, scroll, { .i = 'D' } },
- { MODKEY, GDK_KEY_i, scroll, { .i = 'r' } },
- { MODKEY, GDK_KEY_u, scroll, { .i = 'l' } },
+ /* vertical and horizontal scrolling, in viewport percentage */
+ { MODKEY, GDK_KEY_j, scrollv, { .i = +10 } },
+ { MODKEY, GDK_KEY_k, scrollv, { .i = -10 } },
+ { MODKEY, GDK_KEY_b, scrollv, { .i = +50 } },
+ { MODKEY, GDK_KEY_space, scrollv, { .i = -50 } },
+ { MODKEY, GDK_KEY_i, scrollh, { .i = +10 } },
+ { MODKEY, GDK_KEY_u, scrollh, { .i = -10 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_j, zoom, { .i = -1 } },
{ MODKEY, GDK_KEY_minus, zoom, { .i = -1 } },
{ MODKEY, GDK_KEY_plus, zoom, { .i = +1 } },
- { MODKEY, GDK_KEY_p, clipboard, { .b = 1 } },
- { MODKEY, GDK_KEY_y, clipboard, { .b = 0 } },
+ { MODKEY, GDK_KEY_p, clipboard, { .i = 1 } },
+ { MODKEY, GDK_KEY_y, clipboard, { .i = 0 } },
{ MODKEY, GDK_KEY_n, find, { .i = +1 } },
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_n, find, { .i = -1 } },
/* target can be OnDoc, OnLink, OnImg, OnMedia, OnEdit, OnBar, OnSel, OnAny */
static Button buttons[] = {
/* target event mask button function argument stop event */
- { OnLink, 0, 2, clicknewwindow, { .b = 0 }, 1 },
- { OnLink, MODKEY, 2, clicknewwindow, { .b = 1 }, 1 },
- { OnLink, MODKEY, 1, clicknewwindow, { .b = 1 }, 1 },
+ { OnLink, 0, 2, clicknewwindow, { .i = 0 }, 1 },
+ { OnLink, MODKEY, 2, clicknewwindow, { .i = 1 }, 1 },
+ { OnLink, MODKEY, 1, clicknewwindow, { .i = 1 }, 1 },
{ OnAny, 0, 8, clicknavigate, { .i = -1 }, 1 },
{ OnAny, 0, 9, clicknavigate, { .i = +1 }, 1 },
{ OnMedia, MODKEY, 1, clickexternplayer, { 0 }, 1 },