Skip to content

Commit f08b4e9

Browse files
committed
Reimplemented dark mode. Removed toggle. Changing with system theme
1 parent 26f1d09 commit f08b4e9

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

com.github.peteruithoven.resizer.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ finish-args:
2020
- '--socket=fallback-x11'
2121
- '--socket=wayland'
2222
- '--filesystem=home'
23+
- '--system-talk-name=org.freedesktop.Accounts'
2324

2425
# This section is where you list all the source code required to build your app.
2526
# If we had external dependencies that weren't included in our SDK, we would list

data/com.github.peteruithoven.resizer.gschema.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,5 @@
88
<range min="1" max="10000"/>
99
<default>1000</default>
1010
</key>
11-
<key name="dark-mode-on" type="b">
12-
<default>false</default>
13-
<summary>dark theme activated</summary>
14-
<description>
15-
To toggle between system dark theme and light theme.
16-
True if dark theme is to be used
17-
</description>
18-
</key>
1911
</schema>
2012
</schemalist>

src/Application.vala

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,30 @@ namespace Resizer {
4646
}
4747

4848
protected override void activate () {
49+
set_theme();
50+
4951
window = new Window ();
5052
window.set_application (this);
5153
window.show_all ();
5254
}
5355

56+
private void set_theme (){
57+
var sys_settings = Granite.Settings.get_default ();
58+
var settings = Gtk.Settings.get_default ();
59+
60+
settings.gtk_application_prefer_dark_theme = is_dark_theme_prefered(sys_settings, settings);
61+
62+
/* be notified when system theme is changed and change accordingly */
63+
sys_settings.notify["prefers-color-scheme"].connect (() => {
64+
settings.gtk_application_prefer_dark_theme = is_dark_theme_prefered(sys_settings, settings);
65+
});
66+
}
67+
68+
private bool is_dark_theme_prefered (Granite.Settings sys_settings, Gtk.Settings settings){
69+
return (sys_settings.prefers_color_scheme == Granite.Settings.ColorScheme.DARK);
70+
}
71+
72+
5473
public static int main (string[] args) {
5574
var app = new Application ();
5675
return app.run (args);

src/HeaderBar.vala

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
namespace Resizer {
2323
public class HeaderBar : Hdy.HeaderBar {
24-
private Settings settings = new Settings (Constants.PROJECT_NAME);
2524

2625
construct {
2726
show_close_button = true;
@@ -46,17 +45,7 @@ namespace Resizer {
4645
info_menu.valign = Gtk.Align.CENTER;
4746
info_menu.popover = infoPopover;
4847

49-
var gtk_settings = Gtk.Settings.get_default ();
50-
var mode_toggle = new Granite.ModeSwitch.from_icon_name ("display-brightness-symbolic",
51-
"weather-clear-night-symbolic");
52-
mode_toggle.valign = Gtk.Align.CENTER;
53-
mode_toggle.primary_icon_tooltip_text = _("Light background");
54-
mode_toggle.secondary_icon_tooltip_text = _("Dark background");
55-
mode_toggle.bind_property ("active", gtk_settings, "gtk_application_prefer_dark_theme");
56-
settings.bind("dark-mode-on", mode_toggle, "active", GLib.SettingsBindFlags.DEFAULT);
57-
5848
pack_end (info_menu);
59-
pack_end (mode_toggle);
6049
}
6150
}
6251
}

0 commit comments

Comments
 (0)