Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 25 additions & 13 deletions src/MainWindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,7 @@ def __init__(self, application):
# With the others GTK_STYLE_PROVIDER_PRIORITY values get the same result.

def sighandler(signum, frame):
subprocess.run(["redshift", "-x"])
if self.about_dialog.is_visible():
self.about_dialog.hide()
self.reset_temp(False)
self.main_window.get_application().quit()

signal.signal(signal.SIGINT, sighandler)
Expand Down Expand Up @@ -123,7 +121,7 @@ def init_ui(self):
self.temp_adjusment.set_value(self.UserSettings.config_temp)
self.autostart_switch.set_state(self.UserSettings.config_autostart)
if not self.UserSettings.config_status:
subprocess.run(["redshift", "-x"])
self.reset_temp(False)

system_wide = "usr/share" in os.path.dirname(os.path.abspath(__file__))
if not system_wide:
Expand Down Expand Up @@ -183,17 +181,16 @@ def on_menu_show_app(self, *args):
self.main_window.present()

def on_menu_quit_app(self, *args):
subprocess.run(["redshift", "-x"])
if self.about_dialog.is_visible():
self.about_dialog.hide()
self.reset_temp(False)
self.main_window.get_application().quit()

def on_ui_temp_adjusment_value_changed(self, adjusment):
value = "{:0.0f}".format(adjusment.get_value())
print("on_ui_temp_adjusment_value_changed", value)

if self.UserSettings.config_status:
subprocess.run(["redshift", "-P", "-O", value])
self.reset_temp(True)
self.change_temp(value)

user_temp = self.UserSettings.config_temp
if value != user_temp:
Expand All @@ -206,12 +203,13 @@ def on_ui_night_switch_state_set(self, switch, state):
if "tray" in self.Application.args.keys() and self.make_first_sleep:
self.make_first_sleep = False
time.sleep(5)
subprocess.run(["redshift", "-P", "-O", "{:0.0f}".format(self.UserSettings.config_temp)])
self.reset_temp(True)
self.change_temp("{:0.0f}".format(self.UserSettings.config_temp))
self.temp_adjusment.set_value(self.UserSettings.config_temp)
self.item_action.set_label(_("Disable"))
self.indicator.set_icon(self.icon_active)
else:
subprocess.run(["redshift", "-x"])
self.reset_temp(False)
self.item_action.set_label(_("Enable"))
self.indicator.set_icon(self.icon_passive)

Expand All @@ -238,7 +236,21 @@ def on_ui_main_window_delete_event(self, widget, event):
return True

def on_ui_main_window_destroy(self, widget, event):
subprocess.run(["redshift", "-x"])
if self.about_dialog.is_visible():
self.about_dialog.hide()
self.reset_temp(False)
self.main_window.get_application().quit()

def change_temp(self,value):
self.desktop= os.environ['XDG_CURRENT_DESKTOP'] or "unknown"
if self.desktop == "GNOME":
subprocess.run(["gsettings", "set", "org.gnome.settings-daemon.plugins.color", "night-light-temperature",value])
else:
subprocess.run(["redshift", "-P", "-O",value])

def reset_temp(self, set_night_light_enabled: bool):
self.desktop= os.environ['XDG_CURRENT_DESKTOP'] or "unknown"
if self.desktop == "GNOME":
subprocess.run(["gsettings", "set", "org.gnome.settings-daemon.plugins.color", "night-light-enabled", str(set_night_light_enabled).lower()])
if set_night_light_enabled:
self.change_temp("6500")
else:
subprocess.run(["redshift", "-x"])