Add nightwatch75/file-search 0.0.9 — fuzzy file search (bar widget + panel + launcher provider) (#26)

* Add nightwatch75/file-search 0.0.7

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* file-search: backtick dependency names in Requirements (CI check)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* file-search 0.0.8: address review — safe index records, atomic cache writes, command dependencies, index fingerprint

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* file-search 0.0.8: min_noctalia → plugin_api = 3 (manifest format change)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* file-search 0.0.9: move index to noctalia.pluginDataDir()

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Massimiliano <m.angei@iotron.it>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: nightwatch75 <nightwatch75@users.noreply.github.com>
This commit is contained in:
nightwatch75
2026-07-17 09:49:12 -04:00
committed by GitHub
co-authored by Massimiliano Claude Fable 5 nightwatch75
parent da237fe43b
commit c71ec00354
7 changed files with 973 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
# File Search — fuzzy file & folder search from the bar, powered by fzf.
# The bar glyph toggles a search panel: the search folder is indexed with
# `find` (honoring the excluded directories), every keystroke is matched
# through `fzf --filter`, and picking a result opens it with the system
# MIME association (xdg-open).
id = "nightwatch75/file-search"
name = "File Search"
version = "0.0.9"
plugin_api = 3
author = "nightwatch75"
license = "MIT"
# The exact commands the plugin spawns (fzf aside, findutils + coreutils +
# xdg-utils on any Linux desktop).
dependencies = ["fzf", "find", "mktemp", "mv", "wc", "head", "rm", "xdg-open"]
tags = ["bar", "launcher", "panel", "utility", "productivity"]
icon = "search"
description = "Search files and folders as you type, fuzzy-matched with fzf; open results with the system MIME association."
# Plugin-level settings: shared by the bar widget (tooltip, folder actions)
# and the panel (index + search).
[[setting]]
key = "search_folder"
type = "folder"
label_key = "settings.search_folder.label"
description_key = "settings.search_folder.description"
[[setting]]
key = "exclude_dirs"
type = "string"
label_key = "settings.exclude_dirs.label"
description_key = "settings.exclude_dirs.description"
default = ".git, node_modules, .cache, .venv"
[[setting]]
key = "show_hidden"
type = "bool"
label_key = "settings.show_hidden.label"
description_key = "settings.show_hidden.description"
default = false
[[setting]]
key = "max_results"
type = "int"
label_key = "settings.max_results.label"
description_key = "settings.max_results.description"
default = 50
min = 10
max = 200
# Keyboard-first flow: the noctalia launcher provides native arrows + Enter
# navigation, which plugin panels cannot receive from the current Luau API.
[[launcher_provider]]
id = "launcher"
entry = "launcher.luau"
prefix = "fs"
glyph = "search"
include_in_global_search = false
[[panel]]
id = "panel"
entry = "panel.luau"
width = 520
height = 480
placement = "attached"
open_near_click = true
[[widget]]
id = "file-search"
entry = "file-search.luau"
[[widget.setting]]
key = "glyph"
type = "glyph"
label_key = "settings.glyph.label"
description_key = "settings.glyph.description"
default = "search"