chromium dark chromium dark chromium dark chromium dark chromium dark chromium dark chromium da

This commit is contained in:
notgne2 2022-01-11 08:30:43 -07:00
parent 620b4680d7
commit 9f07d7f27c
No known key found for this signature in database
GPG Key ID: BB661E172B42A7F8
2 changed files with 38 additions and 2 deletions

View File

@ -0,0 +1,34 @@
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index 4afa399..fbaaf06e 100644
--- a/ui/gtk/native_theme_gtk.cc
+++ b/ui/gtk/native_theme_gtk.cc
@@ -116,6 +116,13 @@
ui::ColorProviderManager::Get().AppendColorProviderInitializer(
base::BindRepeating(AddGtkNativeCoreColorMixer));
+ // Add the web native theme as an observer to stay in sync with dark mode,
+ // high contrast, and preferred color scheme changes.
+ color_scheme_observer_ =
+ std::make_unique<NativeTheme::ColorSchemeNativeThemeObserver>(
+ NativeTheme::GetInstanceForWeb());
+ AddObserver(color_scheme_observer_.get());
+
OnThemeChanged(gtk_settings_get_default(), nullptr);
}
diff --git a/ui/gtk/native_theme_gtk.h b/ui/gtk/native_theme_gtk.h
index 876a738..ad3b88d41 100644
--- a/ui/gtk/native_theme_gtk.h
+++ b/ui/gtk/native_theme_gtk.h
@@ -93,6 +93,11 @@
mutable absl::optional<SkColor> color_cache_[kColorId_NumColors];
ScopedCssProvider theme_css_override_;
+
+ // Used to notify the web native theme of changes to dark mode, high
+ // contrast, and preferred color scheme.
+ std::unique_ptr<NativeTheme::ColorSchemeNativeThemeObserver>
+ color_scheme_observer_;
};
} // namespace gtk

View File

@ -573,8 +573,10 @@ in
programs.chromium = { programs.chromium = {
enable = lib.mkDefault true; enable = lib.mkDefault true;
package = lib.mkDefault (pkgs.ungoogled-chromium.override { package = lib.mkDefault ((pkgs.ungoogled-chromium.overrideAttrs (old: {
commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; patches = [ ../data/chromium-dark.patch ];
})).override {
commandLineArgs = "--enable-features=UseOzonePlatform,WebUIDarkMode --ozone-platform=wayland --force-dark-mode";
}); });
}; };