Files
z-bar-qt/Modules/Launcher/Services/Actions.qml
T
zach 84d5abcaab
C++ / fmt (pull_request) Failing after 6s
C++ / build (pull_request) Failing after 9s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 13s
JS/TS / lint (pull_request) Successful in 8s
Python / static (pull_request) Successful in 30s
Rust / build (pull_request) Successful in 49s
Rust / fmt (pull_request) Successful in 26s
Python / verify (pull_request) Successful in 1m44s
Rust / clippy (pull_request) Successful in 44s
feat: dashboard show on hover, media and weather tabs added
2026-09-20 12:59:53 +02:00

54 lines
1.4 KiB
QML

pragma Singleton
import qs.Modules.Launcher
import qs.Helpers
import ZShell.Config
import Quickshell
import QtQuick
import qs.Services
Searcher {
id: root
function transformSearch(search: string): string {
return search.slice(Config.launcher.actionPrefix.length);
}
list: variants.instances
useFuzzy: Config.launcher.useFuzzy.actions
Variants {
id: variants
model: Config.launcher.actions.values.filter(a => (a.enabled ?? true) && (Config.launcher.enableDangerousActions || !(a.dangerous ?? false)))
Action {
}
}
component Action: QtObject {
readonly property list<string> command: modelData.command ?? []
readonly property bool dangerous: modelData.dangerous ?? false
readonly property string desc: modelData.description ?? qsTr("No description")
readonly property bool enabled: modelData.enabled ?? true
readonly property string icon: modelData.icon ?? "help_outline"
required property var modelData
readonly property string name: modelData.name ?? qsTr("Unnamed")
function onClicked(list: AppList): void {
if (command.length === 0)
return;
if (command[0] === "autocomplete" && command.length > 1) {
list.search.text = `${Config.launcher.actionPrefix}${command[1]} `;
} else if (command[0] === "setMode" && command.length > 1) {
list.screenState.launcher = false;
Colors.setMode(command[1]);
} else {
list.screenState.launcher = false;
Quickshell.execDetached(command);
}
}
}
}