Skip to content

feat: add Locate Files plugin#28

Draft
yihao03 wants to merge 3 commits into
noctalia-dev:mainfrom
yihao03:add-locate-files
Draft

feat: add Locate Files plugin#28
yihao03 wants to merge 3 commits into
noctalia-dev:mainfrom
yihao03:add-locate-files

Conversation

@yihao03

@yihao03 yihao03 commented Jul 16, 2026

Copy link
Copy Markdown

Plugin\n\n- Id: yihao/locate-files\n- [x] New plugin\n\n## What it does\n\nAdds a /f launcher provider that maintains a private plocate index of the user's home directory. It uses fast substring search by default, bounded fzf fallback for typo recovery, hidden/type filtering, and opens selections with the desktop default application.\n\n## External dependencies\n\n- locate and updatedb: build and query the private plocate database.\n- fzf: bounded NUL-delimited fuzzy filtering when selected or exact search has no result.\n- flock: serialize index builds.\n- xdg-open: open an activated result.\n\nThe plugin makes no network calls. It writes its database, NUL-delimited path cache, metadata, status, lock, and log only under Noctalia's plugin data directory. It shells out only to the dependencies above.\n\n## Testing\n\n- [x] noctalia plugins lint locate-files\n- [x] Private database/cache build and rebuild, including mode-0600 artifacts\n- [x] Exact search, fzf typo recovery, hidden/type filters, path and directory-name pruning\n- [x] Rebuild IPC: noctalia msg plugin yihao/locate-files:indexer all reindex\n- Noctalia version tested against: v5.0.0-beta.3\n- Plugin API level: 3\n\n## Screenshots / Videos\n\nThe plugin ships the required 960x540 WebP store thumbnail.\n\n## Checklist\n\n- [x] The directory name matches the part of id after the / in plugin.toml exactly.\n- [x] It ships plugin.toml, README.md, thumbnail.webp, and translations/en.json.\n- [x] README.md documents the launcher prefix, entry ids, dependencies, settings, and IPC.\n- [x] version is semver and plugin_api is 3.\n- [x] I did not edit catalog.toml.\n- [x] This PR touches exactly one plugin directory.\n\n## Code review attestation\n\n- [x] The code is readable and not obfuscated, minified, or generated.\n- [x] It does not download or execute remote code.\n- [x] Every filesystem write and spawned process is described above.\n- [x] I have the right to publish this code under the MIT license declared in plugin.toml.

@ItsLemmy

Copy link
Copy Markdown
Contributor

What happened with the PR body?

  1. blocking - locate-files/thumbnail.webp:1

The thumbnail is a custom mockup rather than output from the required Noctalia thumbnail generator. It lacks the standard branded card layout and does not show the plugin running. README.md:100 and .github/PULL_REQUEST_TEMPLATE.md:42 require generator output. Replace it with a generated thumbnail using
an actual launcher screenshot.

  1. blocking - locate-files/plugin.toml:105

include_in_global_search is true, but locate-files/README.md:63 says the provider is disabled from unprefixed global search by default. Noctalia treats this manifest field as the default, so normal queries of two or more characters will invoke the provider and may surface home-directory paths. Align the
manifest and documentation, likely by setting this to false.

  1. non-blocking - locate-files/launcher.luau:34

Fuzzy search invokes head -z, but head or GNU coreutils is not declared in plugin.toml:7 or documented under requirements. This option is not portable to every head implementation. Declare the compatible dependency or remove the additional command.

@ItsLemmy
ItsLemmy marked this pull request as draft July 17, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants