aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.config/noctalia/plugins/file-search/Main.qml
diff options
context:
space:
mode:
authorYaroslav de la Peña Smirnov <yps@yaroslavps.com>2026-05-02 15:22:24 +0300
committerYaroslav de la Peña Smirnov <yps@yaroslavps.com>2026-05-02 15:22:24 +0300
commitb11c84945d02598bcddf9259db8ff92ca9e3cfbf (patch)
treebd8e155a28ee9be7914d58ac0271e0bdc522575b /dotfiles/.config/noctalia/plugins/file-search/Main.qml
parent38e654d20d2ca2857dfb245fd56f7c0bb426fd04 (diff)
downloadswayrice-b11c84945d02598bcddf9259db8ff92ca9e3cfbf.tar.gz
swayrice-b11c84945d02598bcddf9259db8ff92ca9e3cfbf.zip
try out noctalia shell
Diffstat (limited to 'dotfiles/.config/noctalia/plugins/file-search/Main.qml')
-rw-r--r--dotfiles/.config/noctalia/plugins/file-search/Main.qml68
1 files changed, 68 insertions, 0 deletions
diff --git a/dotfiles/.config/noctalia/plugins/file-search/Main.qml b/dotfiles/.config/noctalia/plugins/file-search/Main.qml
new file mode 100644
index 0000000..087fe1e
--- /dev/null
+++ b/dotfiles/.config/noctalia/plugins/file-search/Main.qml
@@ -0,0 +1,68 @@
+import QtQuick
+import Quickshell.Io
+import qs.Commons
+import qs.Services.UI
+
+Item {
+ property var pluginApi: null
+
+ Component.onCompleted: {
+ if (pluginApi) {
+ Logger.i("FileSearch", "Plugin initialized");
+ }
+ }
+
+ IpcHandler {
+ target: "plugin:file-search"
+
+ // Toggle launcher in file search mode
+ function toggle() {
+ if (!pluginApi) return;
+
+ pluginApi.withCurrentScreen(screen => {
+ var launcherPanel = PanelService.getPanel("launcherPanel", screen);
+ if (!launcherPanel) {
+ Logger.e("FileSearch", "Could not get launcher panel");
+ return;
+ }
+
+ var searchText = launcherPanel.searchText || "";
+ var isInFileMode = searchText.startsWith(">file");
+
+ if (!launcherPanel.isPanelOpen) {
+ // Launcher closed - open with file search
+ Logger.i("FileSearch", "Opening launcher in file search mode");
+ launcherPanel.open();
+ launcherPanel.setSearchText(">file ");
+ } else if (isInFileMode) {
+ // Already in file mode - close launcher
+ Logger.i("FileSearch", "Closing launcher (toggle off)");
+ launcherPanel.close();
+ } else {
+ // Launcher open but different mode - switch to file search
+ Logger.i("FileSearch", "Switching to file search mode");
+ launcherPanel.setSearchText(">file ");
+ }
+ });
+ }
+
+ // Open launcher with file search and specific query
+ function search(query: string) {
+ if (!pluginApi) return;
+
+ pluginApi.withCurrentScreen(screen => {
+ var launcherPanel = PanelService.getPanel("launcherPanel", screen);
+ if (!launcherPanel) {
+ Logger.e("FileSearch", "Could not get launcher panel");
+ return;
+ }
+
+ var searchQuery = query || "";
+ Logger.i("FileSearch", "Opening launcher with search query:", searchQuery);
+
+ launcherPanel.open();
+ launcherPanel.setSearchText(">file " + searchQuery);
+ });
+ }
+ }
+}