Add userspace reboot/restart

Update SessionMenuTab.qml

Update CompositorService.qml

Update settings-default.json

Update en.json

Update SessionProvider.qml

Update LockScreenPanel.qml

Update SessionMenuEntrySettingsDialog.qml

Update SessionMenu.qml
This commit is contained in:
Turann_
2026-03-02 00:59:44 +03:00
parent 419c30e8c8
commit fc99c9e2b4
8 changed files with 44 additions and 1 deletions
+1
View File
@@ -476,6 +476,7 @@
"random": "Random",
"reboot": "Reboot",
"reboot-to-uefi": "Reboot to UEFI",
"userspace-reboot": "Userspace Reboot",
"record": "Start recording",
"refresh": "Refresh",
"required": "(required)",
+5
View File
@@ -408,6 +408,11 @@
"action": "rebootToUefi",
"enabled": true,
"keybind": "7"
},
{
"action": "userspace-reboot",
"enabled": false,
"keybind": "8"
}
]
},
+3
View File
@@ -88,6 +88,9 @@ Item {
case "reboot":
CompositorService.reboot();
break;
case "userspace-reboot":
CompositorService.userspaceReboot();
break;
case "shutdown":
CompositorService.shutdown();
break;
@@ -40,6 +40,12 @@ Item {
"icon": iconMode === "tabler" ? "reboot" : "system-reboot",
"keywords": ["reboot", "restart", "reload"]
},
{
"action": "userspace-reboot",
"labelKey": "common.userspace-reboot",
"icon": iconMode === "tabler" ? "rotate" : "system-reboot",
"keywords": ["reboot", "restart", "soft", "userspace"]
},
{
"action": "logout",
"labelKey": "common.logout",
@@ -168,6 +174,9 @@ Item {
case "reboot":
CompositorService.reboot();
break;
case "userspace-reboot":
CompositorService.userspaceReboot();
break;
case "logout":
CompositorService.logout();
break;
@@ -120,6 +120,11 @@ SmartPanel {
"icon": "shutdown",
"title": I18n.tr("common.shutdown"),
"isShutdown": true
},
"userspace-reboot": {
"icon": "rotate",
"title": I18n.tr("common.userspace-reboot"),
"isShutdown": false
}
}
@@ -243,6 +248,9 @@ SmartPanel {
case "reboot":
CompositorService.reboot();
break;
case "userspace-reboot":
CompositorService.userspaceReboot();
break;
case "rebootToUefi":
CompositorService.rebootToUefi();
break;
@@ -24,7 +24,8 @@ Popup {
"reboot": "systemctl reboot || loginctl reboot",
"rebootToUefi": "systemctl reboot --firmware-setup || loginctl reboot --firmware-setup",
"logout": I18n.tr("panels.session-menu.entry-settings-default-command-logout"),
"shutdown": "systemctl poweroff || loginctl poweroff"
"shutdown": "systemctl poweroff || loginctl poweroff",
"userspace-reboot": "systemctl soft-reboot"
}
readonly property string defaultCommand: defaultCommands[entryId] || ""
@@ -37,6 +37,12 @@ ColumnLayout {
"enabled": true,
"required": false
},
{
"id": "userspace-reboot",
"text": I18n.tr("common.userspace-reboot"),
"enabled": false,
"required": false
},
{
"id": "rebootToUefi",
"text": I18n.tr("common.reboot-to-uefi"),
+10
View File
@@ -495,6 +495,16 @@ Singleton {
});
}
function userspaceReboot() {
Logger.i("Compositor", "Userspace reboot requested");
if (executeSessionAction("userspace-reboot"))
return;
HooksService.executeSessionHook("userspace-reboot", () => {
Quickshell.execDetached(["sh", "-c", "systemctl soft-reboot"]);
});
}
function rebootToUefi() {
Logger.i("Compositor", "Reboot to UEFI firmware requested requested");
if (executeSessionAction("rebootToUefi"))