surf

Simple browser by suckless.org (fork)
git clone git://git.ckyln.com/surf.git
Log | Files | Refs | README | LICENSE

commit bd5bbb7fc352a4f1f5c54731e6c8ef01ff91d002
parent 3e972f8e2a170f15e76fae7dc4de656963deb89b
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sat, 16 Feb 2013 16:18:05 +0100

Add a toggle command for the stylefile.

The patch adds some better formatting for the manpage too.

Thanks to Nick <suckless-dev@njw.me.uk> for the toggle patch!

Diffstat:
Mconfig.def.h | 1+
Msurf.1 | 26++++++++++++++++++++------
Msurf.c | 21+++++++++++++++++++--
3 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/config.def.h b/config.def.h @@ -83,5 +83,6 @@ static Key keys[] = { { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } }, { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } }, { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } }, + { MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle,{ 0 } }, }; diff --git a/surf.1 b/surf.1 @@ -18,10 +18,13 @@ one can point surf to another URI by setting its XProperties. .SH OPTIONS .TP .B \-c cookiefile -Specify the cookiefile to use. +Specify the +.I cookiefile +to use. .TP .B \-e xid -Reparents to window specified by xid. +Reparents to window specified by +.I xid. .TP .B \-i Disable Images @@ -33,16 +36,20 @@ Disable the Web Inspector (Developer Tools). Disable Plugins .TP .B \-r scriptfile -Specify the user scriptfile. +Specify the user +.I scriptfile. .TP .B \-s Disable Javascript .TP .B \-t stylefile -Specify the user stylefile. +Specify the user +.I stylefile. .TP .B \-u useragent -Specify the useragent which surf should use. +Specify the +.I useragent +which surf should use. .TP .B \-v Prints version information to standard output, then exits. @@ -129,6 +136,11 @@ Toggle caret browsing. .B Ctrl\-Shift\-i Toggle auto-loading of images. .TP +.B Ctrl\-Shift\-m +Toggle if the +.I stylefile +file should be loaded. +.TP .B Ctrl\-Shift\-s Toggle script execution. .TP @@ -139,7 +151,9 @@ Toggle the enabling of plugins on that surf instance. Toggle fullscreen mode. .SH ENVIRONMENT .B SURF_USERAGENT -If this variable is set upon startup, surf will use it as the useragent string +If this variable is set upon startup, surf will use it as the +.I useragent +string .TP .B http_proxy If this variable is set and not empty upon startup, surf will use it as the http proxy diff --git a/surf.c b/surf.c @@ -77,7 +77,7 @@ static GdkNativeWindow embed = 0; static gboolean showxid = FALSE; static char winid[64]; static gboolean usingproxy = 0; -static char togglestat[5]; +static char togglestat[6]; static char pagestat[3]; static void beforerequest(WebKitWebView *w, WebKitWebFrame *f, @@ -153,6 +153,7 @@ static void stop(Client *c, const Arg *arg); static void titlechange(WebKitWebView *v, WebKitWebFrame *frame, const char *title, Client *c); static void toggle(Client *c, const Arg *arg); +static void togglestyle(Client *c, const Arg *arg); static void update(Client *c); static void updatewinid(Client *c); static void usage(void); @@ -1038,6 +1039,7 @@ toggle(Client *c, const Arg *arg) { static void gettogglestat(Client *c){ gboolean value; + char *uri; WebKitWebSettings *settings = webkit_web_view_get_settings(c->view); g_object_get(G_OBJECT(settings), "enable-caret-browsing", @@ -1053,7 +1055,10 @@ gettogglestat(Client *c){ g_object_get(G_OBJECT(settings), "enable-plugins", &value, NULL); togglestat[3] = value? 'V': 'v'; - togglestat[4] = '\0'; + g_object_get(G_OBJECT(settings), "user-stylesheet-uri", &uri, NULL); + togglestat[4] = uri[0] ? 'M': 'm'; + + togglestat[5] = '\0'; } static void @@ -1183,3 +1188,15 @@ main(int argc, char *argv[]) { return EXIT_SUCCESS; } +static void +togglestyle(Client *c, const Arg *arg) { + WebKitWebSettings *settings; + char *uri; + + settings = webkit_web_view_get_settings(c->view); + g_object_get(G_OBJECT(settings), "user-stylesheet-uri", &uri, NULL); + uri = uri[0] ? g_strdup("") : g_strconcat("file://", stylefile, NULL); + g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL); + + update(c); +}