Skip to content

Commit

Permalink
Follow elementary OS-wide dark preference
Browse files Browse the repository at this point in the history
  • Loading branch information
ryonakano committed Aug 13, 2024
1 parent 5e8766e commit d7e105b
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 4 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ The hero that Gotham needs. Harvey is a color contrast checker. It checks a give


You'll need the following dependencies to build:
* libgranite-dev (>= 5.4.0)
* libgtk-3-dev
* libhandy-1-dev
* libhandy-1-dev (>= 0.90.0)
* meson
* valac

Expand Down
3 changes: 0 additions & 3 deletions io.github.danirabbit.harvey.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ finish-args:
- '--share=ipc'
- '--socket=fallback-x11'
- '--socket=wayland'

# needed for perfers-color-scheme
- '--system-talk-name=org.freedesktop.Accounts'
modules:
- name: harvey
buildsystem: meson
Expand Down
1 change: 1 addition & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ executable(
dependencies: [
dependency('glib-2.0'),
dependency('gobject-2.0'),
dependency('granite', version: '>= 5.4.0'),
dependency('gtk+-3.0'),
dependency('libhandy-1', version: '>= 0.90.0'),
meson.get_compiler('c').find_library('m', required : false)
Expand Down
16 changes: 16 additions & 0 deletions src/Application.vala
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,22 @@ public class Harvey : Gtk.Application {
settings = new Settings ("io.github.danirabbit.harvey");
}

protected override void startup () {
base.startup ();

// Follow elementary OS-wide dark preference
var granite_settings = Granite.Settings.get_default ();
var gtk_settings = Gtk.Settings.get_default ();

granite_settings.bind_property ("prefers-color-scheme", gtk_settings, "gtk-application-prefer-dark-theme",
BindingFlags.DEFAULT | BindingFlags.SYNC_CREATE,
((binding, granite_prop, ref gtk_prop) => {
gtk_prop.set_boolean ((Granite.Settings.ColorScheme) granite_prop == Granite.Settings.ColorScheme.DARK);
return true;
})
);
}

protected override void activate () {
if (get_windows ().length () > 0) {
get_windows ().data.present ();
Expand Down

0 comments on commit d7e105b

Please sign in to comment.