summaryrefslogtreecommitdiff
path: root/modules/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'modules/launcher')
-rw-r--r--modules/launcher/Actions.qml23
-rw-r--r--modules/launcher/AppList.qml8
-rw-r--r--modules/launcher/M3Variants.qml23
-rw-r--r--modules/launcher/Schemes.qml21
4 files changed, 24 insertions, 51 deletions
diff --git a/modules/launcher/Actions.qml b/modules/launcher/Actions.qml
index 4572a61..0e658f0 100644
--- a/modules/launcher/Actions.qml
+++ b/modules/launcher/Actions.qml
@@ -1,18 +1,17 @@
pragma Singleton
-import "root:/utils/scripts/fuzzysort.js" as Fuzzy
import qs.services
import qs.config
+import qs.utils
import Quickshell
-import Quickshell.Io
import QtQuick
-Singleton {
+Searcher {
id: root
property string qalcResult
- readonly property list<Action> list: [
+ readonly property list<Action> actions: [
Action {
name: qsTr("Calculator")
desc: qsTr("Do simple math equations (powered by Qalc)")
@@ -134,24 +133,16 @@ Singleton {
}
]
- readonly property list<var> preppedActions: list.filter(a => !a.disabled).map(a => ({
- name: Fuzzy.prepare(a.name),
- desc: Fuzzy.prepare(a.desc),
- action: a
- }))
-
- function fuzzyQuery(search: string): var {
- return Fuzzy.go(search.slice(Config.launcher.actionPrefix.length), preppedActions, {
- all: true,
- keys: ["name", "desc"],
- scoreFn: r => r[0].score > 0 ? r[0].score * 0.9 + r[1].score * 0.1 : 0
- }).map(r => r.obj.action);
+ 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)
+
component Action: QtObject {
required property string name
required property string desc
diff --git a/modules/launcher/AppList.qml b/modules/launcher/AppList.qml
index 891c362..857515a 100644
--- a/modules/launcher/AppList.qml
+++ b/modules/launcher/AppList.qml
@@ -23,14 +23,14 @@ StyledListView {
if (isCalc)
return [0];
if (isScheme)
- return Schemes.fuzzyQuery(text);
+ return Schemes.query(text);
if (isVariant)
- return M3Variants.fuzzyQuery(text);
+ return M3Variants.query(text);
if (isAction)
- return Actions.fuzzyQuery(text);
+ return Actions.query(text);
if (text.startsWith(Config.launcher.actionPrefix))
text = search.text.slice(Config.launcher.actionPrefix.length);
- return Apps.fuzzyQuery(text);
+ return Apps.query(text);
}
model: ScriptModel {
diff --git a/modules/launcher/M3Variants.qml b/modules/launcher/M3Variants.qml
index 3cafd5c..4312ff1 100644
--- a/modules/launcher/M3Variants.qml
+++ b/modules/launcher/M3Variants.qml
@@ -1,14 +1,17 @@
pragma Singleton
-import "root:/utils/scripts/fuzzysort.js" as Fuzzy
-import qs.config
+import qs.utils
import Quickshell
import QtQuick
-Singleton {
+Searcher {
id: root
- readonly property list<Variant> list: [
+ function transformSearch(search: string): var {
+ return search.slice(`${Config.launcher.actionPrefix}variant `.length);
+ }
+
+ list: [
Variant {
variant: "vibrant"
icon: "sentiment_very_dissatisfied"
@@ -65,18 +68,6 @@ Singleton {
}
]
- readonly property list<var> preppedVariants: list.map(v => ({
- name: Fuzzy.prepare(v.variant),
- variant: v
- }))
-
- function fuzzyQuery(search: string): var {
- return Fuzzy.go(search.slice(`${Config.launcher.actionPrefix}variant `.length), preppedVariants, {
- all: true,
- key: "name"
- }).map(r => r.obj.variant);
- }
-
component Variant: QtObject {
required property string variant
required property string icon
diff --git a/modules/launcher/Schemes.qml b/modules/launcher/Schemes.qml
index 534e456..2be8558 100644
--- a/modules/launcher/Schemes.qml
+++ b/modules/launcher/Schemes.qml
@@ -1,28 +1,19 @@
pragma Singleton
-import "root:/utils/scripts/fuzzysort.js" as Fuzzy
-import qs.config
+import qs.utils
import Quickshell
import Quickshell.Io
import QtQuick
-Singleton {
+Searcher {
id: root
- readonly property list<var> preppedSchemes: schemes.instances.map(s => ({
- name: Fuzzy.prepare(s.name),
- flavour: Fuzzy.prepare(s.flavour),
- scheme: s
- }))
-
- function fuzzyQuery(search: string): var {
- return Fuzzy.go(search.slice(`${Config.launcher.actionPrefix}scheme `.length), preppedSchemes, {
- all: true,
- keys: ["name", "flavour"],
- scoreFn: r => r[0].score > 0 ? r[0].score * 0.9 + r[1].score * 0.1 : 0
- }).map(r => r.obj.scheme);
+ function transformSearch(search: string): var {
+ return search.slice(`${Config.launcher.actionPrefix}scheme `.length);
}
+ list: schemes.instances
+
Variants {
id: schemes