|
diff -up surf-2.0/config.def.h surf-2.0-history/config.def.h
|
|
--- surf-2.0/config.def.h 2017-11-26 14:29:37.963786915 +0100
|
|
+++ surf-2.0-history/config.def.h 2017-11-26 19:48:31.300096237 +0100
|
|
@@ -6,6 +6,7 @@ static char *styledir = "~/.surf/s
|
|
static char *certdir = "~/.surf/certificates/";
|
|
static char *cachedir = "~/.surf/cache/";
|
|
static char *cookiefile = "~/.surf/cookies.txt";
|
|
+static char *historyfile = "~/.surf/history.txt";
|
|
|
|
/* Webkit default features */
|
|
/* Highest priority value will be used.
|
|
@@ -101,6 +102,11 @@ static WebKitFindOptions findopts = WEBK
|
|
} \
|
|
}
|
|
|
|
+#define SETURI(p) { .v = (char *[]){ "/bin/sh", "-c", \
|
|
+"prop=\"`surf_history_dmenu.sh`\" &&" \
|
|
+"xprop -id $1 -f $0 8s -set $0 \"$prop\"", \
|
|
+p, winid, NULL } }
|
|
+
|
|
/* styles */
|
|
/*
|
|
* The iteration will stop at the first match, beginning at the beginning of
|
|
@@ -181,6 +187,7 @@ static Key keys[] = {
|
|
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = ScrollBars } },
|
|
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_t, toggle, { .i = StrictTLS } },
|
|
{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Style } },
|
|
+ { MODKEY , GDK_KEY_Return, spawn, SETURI("_SURF_GO") },
|
|
};
|
|
|
|
/* button definitions */
|
|
Only in surf-2.0-history/: config.h
|
|
Only in surf-2.0: .git
|
|
Only in surf-2.0-history/: surf
|
|
diff -up surf-2.0/surf.c surf-2.0-history/surf.c
|
|
--- surf-2.0/surf.c 2017-11-26 14:29:37.963786915 +0100
|
|
+++ surf-2.0-history/surf.c 2017-11-26 14:20:36.757100476 +0100
|
|
@@ -171,6 +171,7 @@ static void newwindow(Client *c, const A
|
|
static void spawn(Client *c, const Arg *a);
|
|
static void destroyclient(Client *c);
|
|
static void cleanup(void);
|
|
+static void updatehistory(const char *u, const char *t);
|
|
|
|
/* GTK/WebKit */
|
|
static WebKitWebView *newview(Client *c, WebKitWebView *rv);
|
|
@@ -336,10 +337,11 @@ setup(void)
|
|
curconfig = defconfig;
|
|
|
|
/* dirs and files */
|
|
- cookiefile = buildfile(cookiefile);
|
|
- scriptfile = buildfile(scriptfile);
|
|
- cachedir = buildpath(cachedir);
|
|
- certdir = buildpath(certdir);
|
|
+ cookiefile = buildfile(cookiefile);
|
|
+ historyfile = buildfile(historyfile);
|
|
+ scriptfile = buildfile(scriptfile);
|
|
+ cachedir = buildpath(cachedir);
|
|
+ certdir = buildpath(certdir);
|
|
|
|
gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy));
|
|
|
|
@@ -1042,12 +1044,28 @@ cleanup(void)
|
|
while (clients)
|
|
destroyclient(clients);
|
|
g_free(cookiefile);
|
|
+ g_free(historyfile);
|
|
g_free(scriptfile);
|
|
g_free(stylefile);
|
|
g_free(cachedir);
|
|
XCloseDisplay(dpy);
|
|
}
|
|
|
|
+void
|
|
+updatehistory(const char *u, const char *t)
|
|
+{
|
|
+ FILE *f;
|
|
+ f = fopen(historyfile, "a+");
|
|
+
|
|
+ char b[20];
|
|
+ time_t now = time (0);
|
|
+ strftime (b, 20, "%Y-%m-%d %H:%M:%S", localtime (&now));
|
|
+ fputs(b, f);
|
|
+
|
|
+ fprintf(f, " %s %s\n", u, t);
|
|
+ fclose(f);
|
|
+}
|
|
+
|
|
WebKitWebView *
|
|
newview(Client *c, WebKitWebView *rv)
|
|
{
|
|
@@ -1417,6 +1435,7 @@ loadfailedtls(WebKitWebView *v, gchar *u
|
|
return TRUE;
|
|
}
|
|
|
|
+
|
|
void
|
|
loadchanged(WebKitWebView *v, WebKitLoadEvent e, Client *c)
|
|
{
|
|
@@ -1445,6 +1464,7 @@ loadchanged(WebKitWebView *v, WebKitLoad
|
|
break;
|
|
case WEBKIT_LOAD_FINISHED:
|
|
seturiparameters(c, uri, loadfinished);
|
|
+ updatehistory(uri, c->title);
|
|
/* Disabled until we write some WebKitWebExtension for
|
|
* manipulating the DOM directly.
|
|
evalscript(c, "document.documentElement.style.overflow = '%s'",
|
|
Only in surf-2.0-history/: surf.o
|