| surf-history-20181009-2b71a22.diff - sites - public wiki contents of suckless.o… | |
| git clone git://git.suckless.org/sites | |
| Log | |
| Files | |
| Refs | |
| --- | |
| surf-history-20181009-2b71a22.diff (3405B) | |
| --- | |
| 1 diff -up surf-2.0/config.def.h surf-2.0-history/config.def.h | |
| 2 --- surf-2.0/config.def.h 2017-11-26 14:29:37.963786915 +0100 | |
| 3 +++ surf-2.0-history/config.def.h 2017-11-26 19:48:31.300096237 +… | |
| 4 @@ -6,6 +6,7 @@ static char *styledir = "~/.surf/s | |
| 5 static char *certdir = "~/.surf/certificates/"; | |
| 6 static char *cachedir = "~/.surf/cache/"; | |
| 7 static char *cookiefile = "~/.surf/cookies.txt"; | |
| 8 +static char *historyfile = "~/.surf/history.txt"; | |
| 9 | |
| 10 /* Webkit default features */ | |
| 11 /* Highest priority value will be used. | |
| 12 @@ -101,6 +102,11 @@ static WebKitFindOptions findopts = WEBK | |
| 13 } \ | |
| 14 } | |
| 15 | |
| 16 +#define SETURI(p) { .v = (char *[]){ "/bin/sh", "-c", \ | |
| 17 +"prop=\"`surf_history_dmenu.sh`\" &&" \ | |
| 18 +"xprop -id $1 -f $0 8s -set $0 \"$prop\"", \ | |
| 19 +p, winid, NULL } } | |
| 20 + | |
| 21 /* styles */ | |
| 22 /* | |
| 23 * The iteration will stop at the first match, beginning at the beginni… | |
| 24 @@ -181,6 +187,7 @@ static Key keys[] = { | |
| 25 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = Scr… | |
| 26 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_t, toggle, { .i = Str… | |
| 27 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Sty… | |
| 28 + { MODKEY , GDK_KEY_Return, spawn, SETURI("_SURF_… | |
| 29 }; | |
| 30 | |
| 31 /* button definitions */ | |
| 32 Only in surf-2.0-history/: config.h | |
| 33 Only in surf-2.0: .git | |
| 34 Only in surf-2.0-history/: surf | |
| 35 diff -up surf-2.0/surf.c surf-2.0-history/surf.c | |
| 36 --- surf-2.0/surf.c 2017-11-26 14:29:37.963786915 +0100 | |
| 37 +++ surf-2.0-history/surf.c 2017-11-26 14:20:36.757100476 +0100 | |
| 38 @@ -171,6 +171,7 @@ static void newwindow(Client *c, const A | |
| 39 static void spawn(Client *c, const Arg *a); | |
| 40 static void destroyclient(Client *c); | |
| 41 static void cleanup(void); | |
| 42 +static void updatehistory(const char *u, const char *t); | |
| 43 | |
| 44 /* GTK/WebKit */ | |
| 45 static WebKitWebView *newview(Client *c, WebKitWebView *rv); | |
| 46 @@ -336,10 +337,11 @@ setup(void) | |
| 47 curconfig = defconfig; | |
| 48 | |
| 49 /* dirs and files */ | |
| 50 - cookiefile = buildfile(cookiefile); | |
| 51 - scriptfile = buildfile(scriptfile); | |
| 52 - cachedir = buildpath(cachedir); | |
| 53 - certdir = buildpath(certdir); | |
| 54 + cookiefile = buildfile(cookiefile); | |
| 55 + historyfile = buildfile(historyfile); | |
| 56 + scriptfile = buildfile(scriptfile); | |
| 57 + cachedir = buildpath(cachedir); | |
| 58 + certdir = buildpath(certdir); | |
| 59 | |
| 60 gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy… | |
| 61 | |
| 62 @@ -1042,12 +1044,28 @@ cleanup(void) | |
| 63 while (clients) | |
| 64 destroyclient(clients); | |
| 65 g_free(cookiefile); | |
| 66 + g_free(historyfile); | |
| 67 g_free(scriptfile); | |
| 68 g_free(stylefile); | |
| 69 g_free(cachedir); | |
| 70 XCloseDisplay(dpy); | |
| 71 } | |
| 72 | |
| 73 +void | |
| 74 +updatehistory(const char *u, const char *t) | |
| 75 +{ | |
| 76 + FILE *f; | |
| 77 + f = fopen(historyfile, "a+"); | |
| 78 + | |
| 79 + char b[20]; | |
| 80 + time_t now = time (0); | |
| 81 + strftime (b, 20, "%Y-%m-%d %H:%M:%S", localtime (&now)); | |
| 82 + fputs(b, f); | |
| 83 + | |
| 84 + fprintf(f, " %s %s\n", u, t); | |
| 85 + fclose(f); | |
| 86 +} | |
| 87 + | |
| 88 WebKitWebView * | |
| 89 newview(Client *c, WebKitWebView *rv) | |
| 90 { | |
| 91 @@ -1417,6 +1435,7 @@ loadfailedtls(WebKitWebView *v, gchar *u | |
| 92 return TRUE; | |
| 93 } | |
| 94 | |
| 95 + | |
| 96 void | |
| 97 loadchanged(WebKitWebView *v, WebKitLoadEvent e, Client *c) | |
| 98 { | |
| 99 @@ -1445,6 +1464,7 @@ loadchanged(WebKitWebView *v, WebKitLoad | |
| 100 break; | |
| 101 case WEBKIT_LOAD_FINISHED: | |
| 102 seturiparameters(c, uri, loadfinished); | |
| 103 + updatehistory(uri, c->title); | |
| 104 /* Disabled until we write some WebKitWebExtension for | |
| 105 * manipulating the DOM directly. | |
| 106 evalscript(c, "document.documentElement.style.overflow … | |
| 107 Only in surf-2.0-history/: surf.o |