surf

surf browser, a WebKit based browser
git clone git://git.suckless.org/surf
Log | Files | Refs | README | LICENSE

commit 5501d75d2c97398d3ffddb200061cb93cc90bac3
parent a7ea753f93837ee5eed1e2c80b6642d08e6143e0
Author: Christoph Lohmann <20h@r-36.net>
Date:   Tue, 20 Nov 2012 16:02:57 +0100

Fix some styling in the config.def.h, fix the DOWNLOAD macro and unify the
variable naming a bit.
Diffstat:
ATODO.md | 8++++++++
Mconfig.def.h | 26++++++++++++++++----------
Msurf.c | 48+++++++++++++++++++++++++++---------------------
3 files changed, 51 insertions(+), 31 deletions(-)

diff --git a/TODO.md b/TODO.md @@ -0,0 +1,8 @@ +# TODO + +* suckless adblocking +* integrate the WebKitWebInspector API +* make scrollbars a switch and allow them to be disabled +* implement fullscreen mode (F11) +* replace webkit with something sane + diff --git a/config.def.h b/config.def.h @@ -20,18 +20,23 @@ static int indicator_thickness = 2; static Bool spatialbrowsing = TRUE; static Bool hidebackground = FALSE; -#define SETPROP(p, q) { .v = (char *[]){ "/bin/sh", "-c", \ - "prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \ - "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \ - p, q, winid, NULL } } +#define SETPROP(p, q) { \ + .v = (char *[]){ "/bin/sh", "-c", \ + "prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \ + "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \ + p, q, winid, NULL \ + } \ +} /* DOWNLOAD(URI, referer) */ #define DOWNLOAD(d, r) { \ .v = (char *[]){ "/bin/sh", "-c", \ - "xterm -e \"wget '$0' \ ---load-cookies ~/.surf/cookies.txt \ ---user-agent '$1' \ ---referer '$2' ; sleep 5\"", d, useragent, NULL } } + "xterm -e \"wget '$0'" \ + " --load-cookies ~/.surf/cookies.txt" \ + " --user-agent '$1'" \ + " --referer '$2' ; sleep 5\"", d, useragent, r, NULL \ + } \ +} #define MODKEY GDK_CONTROL_MASK @@ -61,9 +66,10 @@ static Key keys[] = { { MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") }, { MODKEY, GDK_n, find, { .b = TRUE } }, { MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } }, - { MODKEY, GDK_v, toggle, { .v = "enable-plugins" } }, + + { MODKEY|GDK_SHIFT_MASK,GDK_c, toggle, { .v = "enable-caret-browsing" } }, { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } }, - { MODKEY, GDK_c, toggle, { .v = "enable-caret-browsing" } }, { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } }, + { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } }, }; diff --git a/surf.c b/surf.c @@ -78,7 +78,8 @@ static Client *clients = NULL; static GdkNativeWindow embed = 0; static gboolean showxid = FALSE; static char winid[64]; -static gboolean loadimage = 1, plugin = 1, script = 1, using_proxy = 0; +static gboolean loadimages = 1, enableplugins = 1, enablescripts = 1, + usingproxy = 0; static char togglestat[5]; static char *buildpath(const char *path); @@ -359,13 +360,13 @@ drawindicator(Client *c) { width = c->progress * w->allocation.width / 100; gc = gdk_gc_new(w->window); if(strstr(uri, "https://") == uri) { - if(using_proxy) { + if(usingproxy) { colorname = c->sslfailed? progress_proxy_untrust : progress_proxy_trust; } else { colorname = c->sslfailed? progress_untrust : progress_trust; } } else { - if(using_proxy) { + if(usingproxy) { colorname = progress_proxy; } else { colorname = progress; @@ -612,10 +613,11 @@ newclient(void) { g_object_set(G_OBJECT(settings), "user-agent", ua, NULL); uri = g_strconcat("file://", stylefile, NULL); g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL); - g_object_set(G_OBJECT(settings), "auto-load-images", loadimage, NULL); - g_object_set(G_OBJECT(settings), "enable-plugins", plugin, NULL); - g_object_set(G_OBJECT(settings), "enable-scripts", script, NULL); - g_object_set(G_OBJECT(settings), "enable-spatial-navigation", spatialbrowsing, NULL); + g_object_set(G_OBJECT(settings), "auto-load-images", loadimages, NULL); + g_object_set(G_OBJECT(settings), "enable-plugins", enableplugins, NULL); + g_object_set(G_OBJECT(settings), "enable-scripts", enablescripts, NULL); + g_object_set(G_OBJECT(settings), "enable-spatial-navigation", + spatialbrowsing, NULL); g_free(uri); @@ -651,11 +653,11 @@ newwindow(Client *c, const Arg *arg, gboolean noembed) { snprintf(tmp, LENGTH(tmp), "%u\n", (int)embed); cmd[i++] = tmp; } - if(!script) + if(!enablescripts) cmd[i++] = "-s"; - if(!plugin) + if(!enableplugins) cmd[i++] = "-p"; - if(!loadimage) + if(!loadimages) cmd[i++] = "-i"; if(showxid) cmd[i++] = "-x"; @@ -843,7 +845,7 @@ setup(void) { g_object_set(G_OBJECT(s), "proxy-uri", puri, NULL); soup_uri_free(puri); g_free(new_proxy); - using_proxy = 1; + usingproxy = 1; } } @@ -914,16 +916,20 @@ gettogglestat(Client *c){ gboolean value; WebKitWebSettings *settings = webkit_web_view_get_settings(c->view); - togglestat[4] = '\0'; + g_object_get(G_OBJECT(settings), "enable-caret-browsing", + &value, NULL); + togglestat[0] = value? 'C': 'c'; + g_object_get(G_OBJECT(settings), "auto-load-images", &value, NULL); - togglestat[0] = value?'I':'i'; + togglestat[1] = value? 'I': 'i'; + g_object_get(G_OBJECT(settings), "enable-scripts", &value, NULL); - togglestat[1] = value?'S':'s'; + togglestat[2] = value? 'S': 's'; + g_object_get(G_OBJECT(settings), "enable-plugins", &value, NULL); - togglestat[2] = value?'V':'v'; - g_object_get(G_OBJECT(settings), "enable-caret-browsing", - &value, NULL); - togglestat[3] = value?'C':'c'; + togglestat[3] = value? 'V': 'v'; + + togglestat[4] = '\0'; } @@ -995,16 +1001,16 @@ main(int argc, char *argv[]) { embed = strtol(EARGF(usage()), NULL, 0); break; case 'i': - loadimage = 0; + loadimages = 0; break; case 'p': - plugin = 0; + enableplugins = 0; break; case 'r': scriptfile = EARGF(usage()); break; case 's': - script = 0; + enablescripts = 0; break; case 't': stylefile = EARGF(usage());