dorkhub

Waydir

πŸ“‚ Modern, Keyboard-driven dual-pane file manager, built with Rust and Flutter.

Waydir
Dartβ˜… 54β‘‚ 2 forksMITupdated 3 days ago
visit the demogit clone https://github.com/Waydir/Waydir.gitWaydir/Waydir

Waydir

Fast, keyboard-first desktop file manager with dual panes, tabs, network drives, Quick Look, plugins and a native Rust core.

Flutter Dart Platform License

Download - Install - Plugins - Changelog

Waydir

Why Waydir?

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.

See It Fast

Keyboard-driven navigation
Keyboard-driven navigation
Dual-pane copy
Dual-pane copy
Quick Look preview
Quick Look preview
Live recursive search
Live recursive search

Install

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

Nix

Install directly from GitHub:

nix profile install github:mikolajbadyl/waydir

From a local checkout:

nix profile install .

Ubuntu / Debian

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 waydir

Single .deb package from Releases:

sudo dpkg -i waydir-*.deb

Fedora / RHEL

Repository 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 waydir

Single .rpm package from Releases:

sudo rpm -i waydir-*.rpm

openSUSE

Repository 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 waydir

Single .rpm package from Releases:

sudo rpm -i waydir-*.rpm

Other Linux

AppImage:

chmod +x waydir-*.AppImage
./waydir-*.AppImage

Portable tarball:

tar -xzf waydir-*-linux-x64.tar.gz
./waydir

Package 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.

Windows

Download the .exe installer or portable .zip from Releases. Run the installer, or unpack the archive and launch waydir.exe.

macOS

Download the .dmg package from Releases, open it and drag Waydir to Applications.

macOS is officially supported and maintained by @fwitkowski17.

Features

Browse and navigate

  • 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.

Work with files

  • 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.

Find and preview

  • 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 Space for images, PDFs, text, code and file details.
  • Edit text right in the preview, with line numbers and optional Vim mode.

Reach further

  • 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.

Make it yours

  • 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

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.

Architecture

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.

Feature Gallery

Browse remote files over SFTP
SFTP browsing
Archive browsing
Archive browsing
Built-in terminal per pane
Built-in terminal
Tabs per pane
Tabs per pane
Filter search
Filter search
Customization
Customization
Selection workflow
Selection workflow
Multi-rename
Multi-rename

Build From Source

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 linux

The 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.sh

On Windows:

scripts/build_waydir_core_windows.ps1

Build the Flutter app:

flutter build linux

Use windows or macos instead of linux for other desktop targets.

Development

Before opening a pull request, run:

dart format .
flutter analyze
flutter test

Useful faster test commands:

flutter test --exclude-tags=integration
flutter test --tags=integration

Regenerate generated files when needed:

dart run slang
dart run build_runner build --delete-conflicting-outputs

Project Status

Linux 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.

License

MIT

more like this

agentlytics

Comprehensive analytics dashboard for AI coding agents β€” Cursor, Windsurf, Claude Code, VS Code Copilot, Zed, Antigravi…

JavaScriptβ˜… 555
@f

r2

Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…

TypeScriptβ˜… 50

meine

meine πŸŒ’ - A CLI file manager and system utility built with Textual. It combines intuitive command parsing with rich t…

Pythonβ˜… 50

search

search projects, people, and tags