From d5277ac864e70371228adea92f20e63b509294ce Mon Sep 17 00:00:00 2001 From: retrozinndev Date: Sun, 27 Apr 2025 09:24:38 -0300 Subject: [PATCH] :sparkles: ags(logout-menu): save hyprsunset configuration before shutting down --- ags/window/LogoutMenu.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ags/window/LogoutMenu.ts b/ags/window/LogoutMenu.ts index 9d46278..e15931d 100644 --- a/ags/window/LogoutMenu.ts +++ b/ags/window/LogoutMenu.ts @@ -1,6 +1,6 @@ import { Astal, Gdk, Gtk, Widget } from "astal/gtk3"; import { getDateTime } from "../scripts/time"; -import { execAsync, GLib } from "astal"; +import { exec, execAsync, GLib } from "astal"; import { AskPopup } from "../widget/AskPopup"; import { Windows } from "../windows"; @@ -57,7 +57,10 @@ export const LogoutMenu = (mon: number) => new Widget.Window({ onClick: () => AskPopup({ title: "Power Off", text: "Are you sure you want to power off? Unsaved work will be lost.", - onAccept: () => execAsync("systemctl poweroff") + onAccept: () => { + exec(`sh "${GLib.getenv("XDG_CONFIG_HOME")}/hypr/scripts/save-hyprsunset.sh"`); + execAsync("systemctl poweroff"); + } }) } as Widget.ButtonProps), new Widget.Button({ @@ -66,7 +69,10 @@ export const LogoutMenu = (mon: number) => new Widget.Window({ onClick: () => AskPopup({ title: "Reboot", text: "Are you sure you want to Reboot? Unsaved work will be lost.", - onAccept: () => execAsync("systemctl reboot") + onAccept: () => { + exec(`sh "${GLib.getenv("XDG_CONFIG_HOME")}/hypr/scripts/save-hyprsunset.sh"`); + execAsync("systemctl reboot"); + } }) } as Widget.ButtonProps), new Widget.Button({ @@ -84,7 +90,10 @@ export const LogoutMenu = (mon: number) => new Widget.Window({ onClick: () => AskPopup({ title: "Log out", text: "Are you sure you want to log out? Your session will be ended.", - onAccept: () => execAsync(`sh -c "loginctl terminate-user ${GLib.getenv("USER") || "$USER"}"`) + onAccept: () => { + exec(`sh "${GLib.getenv("XDG_CONFIG_HOME")}/hypr/scripts/save-hyprsunset.sh"`); + execAsync(`sh -c "loginctl terminate-user ${GLib.getenv("USER") || "$USER"}"`); + } }) } as Widget.ButtonProps), ]