X-Git-Url: https://git.danieliu.xyz/?p=surf.git;a=blobdiff_plain;f=config.def.h;h=68d0fa71cfca79d5cf0834f5f8f2d11c14bf5aea;hp=a29c3884a3ac83c631b1afc531732430866ff1e8;hb=e5a3175bc7a53d4dbd337bf4d5474fa0d6563925;hpb=d3e974f4eafe459990ff9b140d96a6fe568ee6dc diff --git a/config.def.h b/config.def.h index a29c388..68d0fa7 100644 --- a/config.def.h +++ b/config.def.h @@ -7,46 +7,59 @@ static char *certdir = "~/.surf/certificates/"; static char *cachedir = "~/.surf/cache/"; static char *cookiefile = "~/.surf/cookies.txt"; +static SearchEngine searchengines[] = { + { "g", "https://www.google.com/search?q=%s" }, + { "ji", "https://jisho.org/search/%s" }, + { "aw", "https://wiki.archlinux.org/index.php?search=%s" } +}; + /* 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), - SETB(FileURLsCrossAccess,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 }, }, }, }; @@ -63,8 +76,9 @@ static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE | #define SETPROP(r, s, p) { \ .v = (const char *[]){ "/bin/sh", "-c", \ "prop=\"$(printf '%b' \"$(xprop -id $1 $2 " \ - "| sed \"s/^$2(STRING) = //;s/^\\\"\\(.*\\)\\\"$/\\1/\")\" " \ - "| dmenu -p \"$4\" -w $1)\" && xprop -id $1 -f $3 8s -set $3 \"$prop\"", \ + "| sed \"s/^$2(STRING) = //;s/^\\\"\\(.*\\)\\\"$/\\1/\" && cat ~/.surf/bookmarks)\" " \ + "| dmenu -l 10 -p \"$4\" -w $1)\" && " \ + "xprop -id $1 -f $3 8s -set $3 \"$prop\"", \ "surf-setprop", winid, r, s, p, NULL \ } \ } @@ -95,6 +109,17 @@ static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE | } \ } +/* BM_ADD(readprop) */ +#define BM_ADD(r) {\ + .v = (const char *[]){ "/bin/sh", "-c", \ + "(echo $(xprop -id $0 $1) | cut -d '\"' -f2 " \ + "| sed 's/.*https*:\\/\\/\\(www\\.\\)\\?//' && cat ~/.surf/bookmarks) " \ + "| awk '!seen[$0]++' > ~/.surf/bookmarks.tmp && " \ + "mv ~/.surf/bookmarks.tmp ~/.surf/bookmarks", \ + winid, r, NULL \ + } \ +} + /* styles */ /* * The iteration will stop at the first match, beginning at the beginning of @@ -126,6 +151,7 @@ static Key keys[] = { { MODKEY, GDK_KEY_g, spawn, SETPROP("_SURF_URI", "_SURF_GO", PROMPT_GO) }, { MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) }, { MODKEY, GDK_KEY_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) }, + { MODKEY, GDK_KEY_m, spawn, BM_ADD("_SURF_URI") }, { 0, GDK_KEY_Escape, stop, { 0 } }, { MODKEY, GDK_KEY_c, stop, { 0 } }, @@ -136,15 +162,13 @@ static Key keys[] = { { 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_space, scrollv, { .i = +50 } }, + { MODKEY, GDK_KEY_b, 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 } }, @@ -188,3 +212,5 @@ static Button buttons[] = { { OnAny, 0, 9, clicknavigate, { .i = +1 }, 1 }, { OnMedia, MODKEY, 1, clickexternplayer, { 0 }, 1 }, }; + +#define HOMEPAGE "https://searx.danieliu.xyz/"