From ef2e491b38349aea0b635acbc85a5c5121a6b0a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20L=C3=BCbbemeier?= Date: Tue, 5 Dec 2017 13:38:31 +0100 Subject: [PATCH] Introduce option to prefer dark GTK theme --- src/ui.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ui.rs b/src/ui.rs index 0d31012..a1bca86 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use gtk; use gtk_sys; use gtk::prelude::*; -use gtk::{ApplicationWindow, HeaderBar, ToolButton, Image, AboutDialog}; +use gtk::{ApplicationWindow, HeaderBar, ToolButton, Image, AboutDialog, SettingsExt}; use gio::prelude::*; use gio::{Menu, MenuExt, MenuItem, MenuItemExt, SimpleAction}; @@ -105,6 +105,15 @@ impl Ui { comps.window = Some(ApplicationWindow::new(app)); let window = comps.window.as_ref().unwrap(); + let prefer_dark_theme = env::var("NVIM_GTK_PREFER_DARK_THEME") + .map(|opt| opt.trim() == "1") + .unwrap_or(false); + if prefer_dark_theme { + if let Some(settings) = window.get_settings() { + settings.set_property_gtk_application_prefer_dark_theme(true); + } + } + // Client side decorations including the toolbar are disabled via NVIM_GTK_NO_HEADERBAR=1 let use_header_bar = env::var("NVIM_GTK_NO_HEADERBAR") .map(|opt| opt.trim() != "1")