shenawy29/xdg-nvfilechooser.nvim — explained in plain English
Analysis updated 2026-05-18
Replace the slow mouse-driven GTK or Gnome file picker with a Neovim fuzzy finder.
Pick files for browser uploads using the same fuzzy search you use to navigate code.
Set up an XDG portal backend on a Linux desktop like Hyprland or Sway.
See a real example of building a custom XDG file-chooser portal for Linux.
| shenawy29/xdg-nvfilechooser.nvim | bjarneo/omarchy-ochre-theme | fullband7/openwrt-theme-foxhound | |
|---|---|---|---|
| Stars | 19 | 16 | 16 |
| Language | Lua | Lua | Lua |
| Setup difficulty | hard | easy | moderate |
| Complexity | 3/5 | 1/5 | 3/5 |
| Audience | developer | general | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires installing a separate backend binary plus registering XDG portal, D-Bus, and systemd files on Linux.
This is a Linux plugin for the Neovim text editor that solves a specific annoyance: when a website shows a file-upload button, your operating system normally opens a graphical file browser (like the GTK or Gnome file picker) to let you choose a file. If you live in the terminal and use Neovim with keyboard-driven fuzzy searching to navigate files, switching to a slow mouse-based file browser feels jarring. This project replaces that system-level file picker with a fuzzy file finder running inside Neovim. When any application triggers a file-upload dialog, instead of the standard GUI browser popping up, a Neovim window opens in your terminal with a fuzzy search interface powered by the snacks.picker plugin. You start typing part of the filename, results filter instantly, and you select with the keyboard. Under the hood, it works by registering itself as an XDG portal backend, a standard Linux mechanism that lets desktop applications delegate file-picking to a third party. It also relies on fd (a fast alternative to the system find command) to list files breadth-first so shallower, more likely candidates appear first. You would use this if you work primarily in a Linux terminal environment with Neovim and find yourself repeatedly interrupted by the system GUI file picker whenever you upload a file in a browser or application. The plugin is written in Lua and the backend binary is a separate companion project. Installation instructions are provided for both Nix-based systems and standard Linux setups.
A Neovim plugin that replaces your Linux desktop's file-upload picker with a fast, keyboard-driven fuzzy finder inside Neovim.
Mainly Lua. The stack also includes Lua, Neovim.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.