diff options
| author | Yaroslav de la Peña Smirnov <yps@yaroslavps.com> | 2026-05-02 15:22:24 +0300 |
|---|---|---|
| committer | Yaroslav de la Peña Smirnov <yps@yaroslavps.com> | 2026-05-02 15:22:24 +0300 |
| commit | b11c84945d02598bcddf9259db8ff92ca9e3cfbf (patch) | |
| tree | bd8e155a28ee9be7914d58ac0271e0bdc522575b /dotfiles/.config/noctalia/plugins/file-search/Main.qml | |
| parent | 38e654d20d2ca2857dfb245fd56f7c0bb426fd04 (diff) | |
| download | swayrice-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.qml | 68 |
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); + }); + } + } +} |
