summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2022-04-10 16:35:24 +0200
committerQuentin Rameau <quinq@fifth.space>2022-04-10 16:35:24 +0200
commit1f5b8f3bd1f37d4d3dc45d21285f34ef4752dbaa (patch)
treea04ef97de6f30054996f2ae8a4404d782b1200d8
parent11dca18a2d148e5a6463aba783567a3815424963 (diff)
Add dark mode toggle
This sets dark gtk theme variant, which should make webkit2gtk use dark css variant from websites that provide it.
-rw-r--r--config.def.h2
-rw-r--r--surf.13
-rw-r--r--surf.c6
3 files changed, 11 insertions, 0 deletions
diff --git a/config.def.h b/config.def.h
index 1355ba3..93cfeeb 100644
--- a/config.def.h
+++ b/config.def.h
@@ -20,6 +20,7 @@ static Parameter defconfig[ParameterLast] = {
[Certificate] = { { .i = 0 }, },
[CaretBrowsing] = { { .i = 0 }, },
[CookiePolicies] = { { .v = "@Aa" }, },
+ [DarkMode] = { { .i = 0 }, },
[DefaultCharset] = { { .v = "UTF-8" }, },
[DiskCache] = { { .i = 1 }, },
[DNSPrefetch] = { { .i = 0 }, },
@@ -179,6 +180,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_SHIFT_MASK, GDK_KEY_d, toggle, { .i = DarkMode } },
};
/* button definitions */
diff --git a/surf.1 b/surf.1
index 496afb9..5d69a07 100644
--- a/surf.1
+++ b/surf.1
@@ -208,6 +208,9 @@ Toggle scrollbars. This will reload the page.
.B Ctrl\-Shift\-c
Toggle caret browsing. This will reload the page.
.TP
+.B Ctrl\-Shift\-d
+Toggle dark mode. This will reload the page.
+.TP
.B Ctrl\-Shift\-i
Toggle auto-loading of images. This will reload the page.
.TP
diff --git a/surf.c b/surf.c
index 03d8242..3132249 100644
--- a/surf.c
+++ b/surf.c
@@ -56,6 +56,7 @@ typedef enum {
CaretBrowsing,
Certificate,
CookiePolicies,
+ DarkMode,
DiskCache,
DefaultCharset,
DNSPrefetch,
@@ -259,6 +260,7 @@ char *argv0;
static ParamName loadtransient[] = {
Certificate,
CookiePolicies,
+ DarkMode,
DiskCache,
DNSPrefetch,
FileURLsCrossAccess,
@@ -772,6 +774,10 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
cookiepolicy_get());
refresh = 0;
break;
+ case DarkMode:
+ g_object_set(gtk_settings_get_default(),
+ "gtk-application-prefer-dark-theme", a->i, NULL);
+ break;
case DiskCache:
webkit_web_context_set_cache_model(
webkit_web_view_get_context(c->view), a->i ?