diff --git a/README.md b/README.md index ff767eb4..fd268633 100644 --- a/README.md +++ b/README.md @@ -223,7 +223,13 @@ All configuration options are in `~/.config/caelestia/shell.json`. "useFahrenheit": false }, "session": { - "dragThreshold": 30 + "dragThreshold": 30, + "commands": { + "logout": ["loginctl", "terminate-user", ""], + "shutdown": ["systemctl", "poweroff"], + "hibernate": ["systemctl", "hibernate"], + "reboot": ["systemctl", "reboot"] + } } } ``` diff --git a/config/SessionConfig.qml b/config/SessionConfig.qml index 753d5c13..e47f294f 100644 --- a/config/SessionConfig.qml +++ b/config/SessionConfig.qml @@ -3,7 +3,15 @@ import Quickshell.Io JsonObject { property bool enabled: true property int dragThreshold: 30 + property Commands commands: Commands{} property Sizes sizes: Sizes {} + + component Commands: JsonObject { + property list logout: ["loginctl", "terminate-user", ""] + property list shutdown: ["systemctl", "poweroff"] + property list hibernate: ["systemctl", "hibernate"] + property list reboot: ["systemctl", "reboot"] + } component Sizes: JsonObject { property int button: 80 diff --git a/modules/lock/Buttons.qml b/modules/lock/Buttons.qml index 66833ab7..19951518 100644 --- a/modules/lock/Buttons.qml +++ b/modules/lock/Buttons.qml @@ -50,22 +50,22 @@ Item { SessionButton { icon: "logout" - command: ["loginctl", "terminate-user", ""] + command: Config.session.commands.logout } SessionButton { icon: "power_settings_new" - command: ["systemctl", "poweroff"] + command: Config.session.commands.shutdown } SessionButton { icon: "downloading" - command: ["systemctl", "hibernate"] + command: Config.session.commands.hibernate } SessionButton { icon: "cached" - command: ["systemctl", "reboot"] + command: Config.session.commands.reboot } Behavior on anchors.margins { diff --git a/modules/session/Content.qml b/modules/session/Content.qml index 2603bf92..d90c0bcd 100644 --- a/modules/session/Content.qml +++ b/modules/session/Content.qml @@ -23,7 +23,7 @@ Column { id: logout icon: "logout" - command: ["loginctl", "terminate-user", ""] + command: Config.session.commands.logout KeyNavigation.down: shutdown @@ -46,7 +46,7 @@ Column { id: shutdown icon: "power_settings_new" - command: ["systemctl", "poweroff"] + command: Config.session.commands.shutdown KeyNavigation.up: logout KeyNavigation.down: hibernate @@ -68,7 +68,7 @@ Column { id: hibernate icon: "downloading" - command: ["systemctl", "hibernate"] + command: Config.session.commands.hibernate KeyNavigation.up: shutdown KeyNavigation.down: reboot @@ -78,7 +78,7 @@ Column { id: reboot icon: "cached" - command: ["systemctl", "reboot"] + command: Config.session.commands.reboot KeyNavigation.up: hibernate }