-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDarkModeToggle.vala
More file actions
32 lines (27 loc) · 1.05 KB
/
DarkModeToggle.vala
File metadata and controls
32 lines (27 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
* SPDX-License-Identifier: GPL-3.0-or-later
* SPDX-FileCopyrightText: 2023 elementary, Inc. (https://elementary.io)
*/
public class QuickSettings.DarkModeToggle: SettingsToggle {
public DarkModeToggle () {
Object (
icon: new ThemedIcon ("dark-mode-symbolic"),
label: _("Dark Mode")
);
}
construct {
settings_uri = "settings://desktop/appearance";
var settings = new GLib.Settings ("io.elementary.settings-daemon.prefers-color-scheme");
active = settings.get_enum ("color-scheme") == Granite.Settings.ColorScheme.DARK;
settings.changed["color-scheme"].connect (() => {
active = settings.get_enum ("color-scheme") == Granite.Settings.ColorScheme.DARK;
});
notify["active"].connect (() => {
if (active) {
settings.set_enum ("color-scheme", Granite.Settings.ColorScheme.DARK);
} else {
settings.set_enum ("color-scheme", Granite.Settings.ColorScheme.NO_PREFERENCE);
}
});
}
}