From 58826b7deb07f187d2c2c8cac3bf651a008b4646 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sat, 19 Jul 2025 16:59:32 +1000 Subject: internal: move launcher stuff into subfolders --- modules/launcher/services/Actions.qml | 155 ++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 modules/launcher/services/Actions.qml (limited to 'modules/launcher/services/Actions.qml') diff --git a/modules/launcher/services/Actions.qml b/modules/launcher/services/Actions.qml new file mode 100644 index 0000000..be1fc72 --- /dev/null +++ b/modules/launcher/services/Actions.qml @@ -0,0 +1,155 @@ +pragma Singleton + +import ".." +import qs.services +import qs.config +import qs.utils +import Quickshell +import QtQuick + +Searcher { + id: root + + readonly property list actions: [ + Action { + name: qsTr("Calculator") + desc: qsTr("Do simple math equations (powered by Qalc)") + icon: "calculate" + + function onClicked(list: AppList): void { + root.autocomplete(list, "calc"); + } + }, + Action { + name: qsTr("Scheme") + desc: qsTr("Change the current colour scheme") + icon: "palette" + + function onClicked(list: AppList): void { + root.autocomplete(list, "scheme"); + } + }, + Action { + name: qsTr("Wallpaper") + desc: qsTr("Change the current wallpaper") + icon: "image" + + function onClicked(list: AppList): void { + root.autocomplete(list, "wallpaper"); + } + }, + Action { + name: qsTr("Variant") + desc: qsTr("Change the current scheme variant") + icon: "colors" + + function onClicked(list: AppList): void { + root.autocomplete(list, "variant"); + } + }, + Action { + name: qsTr("Transparency") + desc: qsTr("Change shell transparency") + icon: "opacity" + disabled: true + + function onClicked(list: AppList): void { + root.autocomplete(list, "transparency"); + } + }, + Action { + name: qsTr("Light") + desc: qsTr("Change the scheme to light mode") + icon: "light_mode" + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Colours.setMode("light"); + } + }, + Action { + name: qsTr("Dark") + desc: qsTr("Change the scheme to dark mode") + icon: "dark_mode" + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Colours.setMode("dark"); + } + }, + Action { + name: qsTr("Shutdown") + desc: qsTr("Shutdown the system") + icon: "power_settings_new" + disabled: !Config.launcher.enableDangerousActions + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Quickshell.execDetached(["systemctl", "poweroff"]); + } + }, + Action { + name: qsTr("Reboot") + desc: qsTr("Reboot the system") + icon: "cached" + disabled: !Config.launcher.enableDangerousActions + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Quickshell.execDetached(["systemctl", "reboot"]); + } + }, + Action { + name: qsTr("Logout") + desc: qsTr("Log out of the current session") + icon: "exit_to_app" + disabled: !Config.launcher.enableDangerousActions + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Quickshell.execDetached(["loginctl", "terminate-user", ""]); + } + }, + Action { + name: qsTr("Lock") + desc: qsTr("Lock the current session") + icon: "lock" + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Quickshell.execDetached(["loginctl", "lock-session"]); + } + }, + Action { + name: qsTr("Sleep") + desc: qsTr("Suspend then hibernate") + icon: "bedtime" + + function onClicked(list: AppList): void { + list.visibilities.launcher = false; + Quickshell.execDetached(["systemctl", "suspend-then-hibernate"]); + } + } + ] + + function transformSearch(search: string): string { + return search.slice(Config.launcher.actionPrefix.length); + } + + function autocomplete(list: AppList, text: string): void { + list.search.text = `${Config.launcher.actionPrefix}${text} `; + } + + list: actions.filter(a => !a.disabled) + useFuzzy: Config.launcher.useFuzzy.actions + + component Action: QtObject { + required property string name + required property string desc + required property string icon + property bool disabled + + function onClicked(list: AppList): void { + } + } +} -- cgit v1.2.3-freya