Fast, keyboard-first desktop file manager with dual panes, tabs, network drives, Quick Look, plugins and a native Rust core.
Waydir is a native-feeling desktop file manager focused on speed, direct control and everyday file work.
| What you get | Why it matters |
|---|---|
| Dual panes and tabs | Move between folders without juggling windows. |
| Keyboard-first workflow | Navigate, select, preview, copy, move, rename and search without reaching for the mouse. |
| Command palette | Press Ctrl+P to fuzzy-search actions, bookmarks, drives, recent locations, files and plugin commands. |
| Native Rust core | Large directories, recursive search and trash operations stay off the UI thread. |
| SMB and SFTP drives | Remote files show up beside local files and behave like part of the same workspace. |
| Quick Look previews | Tap Space to preview images, PDFs, text, code and file properties. |
| Lua plugins | Add workflow actions, toolbar buttons, status bars and shortcuts without rebuilding the app. |
|
Keyboard-driven navigation |
Dual-pane copy |
|
Quick Look preview |
Live recursive search |
Grab the latest build from Releases, or install from the Linux package repository for automatic updates through your package manager.
| Platform | Recommended install |
|---|---|
| Ubuntu / Debian | apt repository or .deb package |
| Fedora / RHEL | dnf repository or .rpm package |
| openSUSE | zypper repository or .rpm package |
| Other Linux | AppImage or portable tarball |
| Windows | .exe installer or portable .zip |
| macOS | .dmg package |
Install directly from GitHub:
nix profile install github:mikolajbadyl/waydirFrom a local checkout:
nix profile install .Repository install, with updates via apt upgrade:
curl -1sLf 'https://dl.cloudsmith.io/public/waydir/waydir-project/setup.deb.sh' | sudo -E bash
sudo apt install waydirSingle .deb package from Releases:
sudo dpkg -i waydir-*.debRepository install, with updates via dnf upgrade:
curl -1sLf 'https://dl.cloudsmith.io/public/waydir/waydir-project/setup.rpm.sh' | sudo -E bash
sudo dnf install waydirSingle .rpm package from Releases:
sudo rpm -i waydir-*.rpmRepository install, with updates via zypper update:
curl -1sLf 'https://dl.cloudsmith.io/public/waydir/waydir-project/setup.rpm.sh' | sudo -E bash
sudo zypper install waydirSingle .rpm package from Releases:
sudo rpm -i waydir-*.rpmAppImage:
chmod +x waydir-*.AppImage
./waydir-*.AppImagePortable tarball:
tar -xzf waydir-*-linux-x64.tar.gz
./waydirPackage builds integrate with your desktop launcher. AppImage and tarball builds are portable and can be launched from any folder.
Package repository hosting is provided by Cloudsmith, a hosted universal package management platform.
Download the .exe installer or portable .zip from Releases. Run the installer, or unpack the archive and launch waydir.exe.
Download the .dmg package from Releases, open it and drag Waydir to Applications.
macOS is officially supported and maintained by @fwitkowski17.
- Two folders side by side, each with its own draggable tabs.
- Command palette for fuzzy-searching actions, bookmarks, drives, recent locations, files and plugin commands.
- Sidebar with your places, drives, bookmarks and network locations.
- Quick path bar for jumping to any folder.
- List and grid views with image thumbnails and columns you choose.
- Copy, move, rename, trash and delete with progress you can cancel.
- Handles name clashes when copying, and renames many files at once.
- Open ZIP and TAR archives and browse inside without extracting.
- Fast search that fills in results as it scans, with pattern matching.
- Filter the current folder by type, size, date, name or hidden files.
- Quick Look on
Spacefor images, PDFs, text, code and file details. - Edit text right in the preview, with line numbers and optional Vim mode.
- Connect to SMB and SFTP and work with remote files like local ones.
- Browse files and open a terminal inside WSL distributions (Windows).
- Built-in terminal for each pane that opens in the current folder.
- Git status with branch switching and stash management.
- Light, Dark, Nord and One Dark themes, plus your own themes.
- Adjust density, sorting, hidden files and date format to taste.
- Launch from the command line with a folder to open.
Plugins let you add small workflow actions without rebuilding Waydir. They are plain Lua folders with a manifest.json and an init.lua.
Drop a plugin into the plugins folder, reload from Preferences -> Plugins and it can add:
- Selection context menu actions.
- Background context menu actions.
- Top Plugins menu entries.
- Location toolbar buttons.
- Keyboard shortcuts.
- Global and per-pane status bars.
- Long-running tasks in the Operations panel.
Plugins run in a sandbox and request explicit permissions for external commands or file operations.
Start here:
Example plugin ideas already covered in the repository include opening the current folder in VS Code, adding 7-Zip actions, showing selection counts and running backup copies.
Waydir uses three layers so heavy work does not block the UI:
| Layer | Responsibility |
|---|---|
| Flutter UI | Rendering, input and desktop chrome. |
| Dart isolates | Long-running copy, move, delete and network transfers. |
| Rust core | Directory listing, recursive search, trash and PTY work through FFI. |
Persistent state uses drift and sqlite3. Reactive UI state uses signals. The UI thread does no filesystem-heavy work.
The native Rust library is required. There is no Dart fallback for the Rust core.
|
Browse remote files over SFTP |
Archive browsing |
|
Built-in terminal per pane |
Tabs per pane |
|
Filter search |
Customization |
|
Selection workflow |
Multi-rename |
Requirements:
- Flutter 3.35+
- Dart 3.10+
- Rust stable from rustup
Run from the repository root:
git clone https://github.com/Waydir/Waydir.git
cd Waydir
flutter pub get
cargo build --release --manifest-path rust/waydir_core/Cargo.toml
flutter run -d linuxThe Rust build must be --release. Rebuild and restart the app after editing rust/waydir_core, because Flutter hot reload does not reload the native library.
For packaged native libraries:
scripts/build_waydir_core.shOn Windows:
scripts/build_waydir_core_windows.ps1Build the Flutter app:
flutter build linuxUse windows or macos instead of linux for other desktop targets.
Before opening a pull request, run:
dart format .
flutter analyze
flutter testUseful faster test commands:
flutter test --exclude-tags=integration
flutter test --tags=integrationRegenerate generated files when needed:
dart run slang
dart run build_runner build --delete-conflicting-outputsLinux and Windows are the main development and testing targets. macOS is officially supported and maintained by @fwitkowski17.
Bug reports, crash reports and focused pull requests are welcome. For non-trivial changes, open an issue first so the approach can be discussed before implementation.