forked from Shinonome/dots-hyprland
kill all apps before shutting down/rebooting/etc
This commit is contained in:
@@ -15,6 +15,12 @@ Scope {
|
|||||||
id: root
|
id: root
|
||||||
property var focusedScreen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name)
|
property var focusedScreen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name)
|
||||||
|
|
||||||
|
function closeAllWindows() {
|
||||||
|
HyprlandData.windowList.map(w => w.pid).forEach((pid) => {
|
||||||
|
Quickshell.execDetached(["kill", pid]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
id: sessionLoader
|
id: sessionLoader
|
||||||
active: false
|
active: false
|
||||||
@@ -111,7 +117,7 @@ Scope {
|
|||||||
id: sessionLogout
|
id: sessionLogout
|
||||||
buttonIcon: "logout"
|
buttonIcon: "logout"
|
||||||
buttonText: Translation.tr("Logout")
|
buttonText: Translation.tr("Logout")
|
||||||
onClicked: { Quickshell.execDetached(["pkill", "Hyprland"]); sessionRoot.hide() }
|
onClicked: { root.closeAllWindows(); Quickshell.execDetached(["pkill", "Hyprland"]); sessionRoot.hide() }
|
||||||
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
||||||
KeyNavigation.left: sessionSleep
|
KeyNavigation.left: sessionSleep
|
||||||
KeyNavigation.right: sessionTaskManager
|
KeyNavigation.right: sessionTaskManager
|
||||||
@@ -140,7 +146,7 @@ Scope {
|
|||||||
id: sessionShutdown
|
id: sessionShutdown
|
||||||
buttonIcon: "power_settings_new"
|
buttonIcon: "power_settings_new"
|
||||||
buttonText: Translation.tr("Shutdown")
|
buttonText: Translation.tr("Shutdown")
|
||||||
onClicked: { Quickshell.execDetached(["bash", "-c", `systemctl poweroff || loginctl poweroff`]); sessionRoot.hide() }
|
onClicked: { root.closeAllWindows(); Quickshell.execDetached(["bash", "-c", `systemctl poweroff || loginctl poweroff`]); sessionRoot.hide() }
|
||||||
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
||||||
KeyNavigation.left: sessionHibernate
|
KeyNavigation.left: sessionHibernate
|
||||||
KeyNavigation.right: sessionReboot
|
KeyNavigation.right: sessionReboot
|
||||||
@@ -150,7 +156,7 @@ Scope {
|
|||||||
id: sessionReboot
|
id: sessionReboot
|
||||||
buttonIcon: "restart_alt"
|
buttonIcon: "restart_alt"
|
||||||
buttonText: Translation.tr("Reboot")
|
buttonText: Translation.tr("Reboot")
|
||||||
onClicked: { Quickshell.execDetached(["bash", "-c", `reboot || loginctl reboot`]); sessionRoot.hide() }
|
onClicked: { root.closeAllWindows(); Quickshell.execDetached(["bash", "-c", `reboot || loginctl reboot`]); sessionRoot.hide() }
|
||||||
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
||||||
KeyNavigation.left: sessionShutdown
|
KeyNavigation.left: sessionShutdown
|
||||||
KeyNavigation.right: sessionFirmwareReboot
|
KeyNavigation.right: sessionFirmwareReboot
|
||||||
@@ -160,7 +166,7 @@ Scope {
|
|||||||
id: sessionFirmwareReboot
|
id: sessionFirmwareReboot
|
||||||
buttonIcon: "settings_applications"
|
buttonIcon: "settings_applications"
|
||||||
buttonText: Translation.tr("Reboot to firmware settings")
|
buttonText: Translation.tr("Reboot to firmware settings")
|
||||||
onClicked: { Quickshell.execDetached(["bash", "-c", `systemctl reboot --firmware-setup || loginctl reboot --firmware-setup`]); sessionRoot.hide() }
|
onClicked: { root.closeAllWindows(); Quickshell.execDetached(["bash", "-c", `systemctl reboot --firmware-setup || loginctl reboot --firmware-setup`]); sessionRoot.hide() }
|
||||||
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
onFocusChanged: { if (focus) sessionRoot.subtitle = buttonText }
|
||||||
KeyNavigation.up: sessionTaskManager
|
KeyNavigation.up: sessionTaskManager
|
||||||
KeyNavigation.left: sessionReboot
|
KeyNavigation.left: sessionReboot
|
||||||
|
|||||||
@@ -7,18 +7,18 @@
|
|||||||
{
|
{
|
||||||
"label" : "hibernate",
|
"label" : "hibernate",
|
||||||
"action" : "systemctl hibernate || loginctl hibernate",
|
"action" : "systemctl hibernate || loginctl hibernate",
|
||||||
"text" : "save",
|
"text" : "downloading",
|
||||||
"keybind" : "h"
|
"keybind" : "h"
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"label" : "logout",
|
"label" : "logout",
|
||||||
"action" : "pkill Hyprland || pkill sway || pkill niri || loginctl terminate-user $USER",
|
"action" : "hyprctl clients -j | jq -r '.[].pid' | xargs kill; pkill Hyprland || pkill sway || pkill niri || loginctl terminate-user $USER",
|
||||||
"text" : "logout",
|
"text" : "logout",
|
||||||
"keybind" : "e"
|
"keybind" : "e"
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"label" : "shutdown",
|
"label" : "shutdown",
|
||||||
"action" : "systemctl poweroff || loginctl poweroff",
|
"action" : "hyprctl clients -j | jq -r '.[].pid' | xargs kill; systemctl poweroff || loginctl poweroff",
|
||||||
"text" : "power_settings_new",
|
"text" : "power_settings_new",
|
||||||
"keybind" : "s"
|
"keybind" : "s"
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
"label" : "reboot",
|
"label" : "reboot",
|
||||||
"action" : "systemctl reboot || loginctl reboot",
|
"action" : "hyprctl clients -j | jq -r '.[].pid' | xargs kill; systemctl reboot || loginctl reboot",
|
||||||
"text" : "restart_alt",
|
"text" : "restart_alt",
|
||||||
"keybind" : "r"
|
"keybind" : "r"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user