Home
Softono
Waydir

Waydir

Open source MIT Dart
12
Stars
1
Forks
3
Issues
1
Watchers
1 week
Last Commit

About Waydir

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

Platforms

Web Self-hosted Linux Windows macOS iOS Android

Languages

Dart

Waydir

A cross-platform file manager with dual-pane navigation, tabs, and network drives. Built on Flutter with a native Rust core.

Native Rust core β€’ Flutter UI β€’ Keyboard-first

Flutter Dart [Platform]()

Waydir

See it in action

Keyboard-driven navigation
Navigating
Dual-pane copy
Dual-pane copy
Quick Look preview
Quick Look
Live recursive search
Search
Browse remote files over SFTP
SFTP
Archiving and browsing archives
Archiving and browsing archives
Built-in terminal per pane
Built-in terminal
Tabs per pane
Tabs
Filter search
Filter search
Customization
Customization

✨ Highlights

Native Rust core

Listing, recursive search and trash run in a native Rust library, off the UI thread. 100k-file directories open without freezing.

Keyboard-first

Every operation has a shortcut. Dual panes, tabs, navigation, copy, move, search - all without leaving the keyboard.

Network-native

SMB and SFTP appear in the sidebar as drives. Browse, search, copy and Quick Look remote files like they're local.

Dual panes, tabs, bookmarks

Side-by-side panes with independent tabs and pinned locations. Built for moving files between places.

πŸ¦€ How it works

Three layers, each doing what it's good at:

  • Flutter UI for rendering and input. Reactive state via the signals package.
  • Dart isolates for long-running operations: copy, move, delete, network transfers.
  • Rust core (waydir_core, loaded via FFI) for the heavy filesystem work: directory listing, recursive search, trash.

Persistence sits on drift + sqlite3. The UI thread does no I/O.

πŸ“¦ Install

Grab the latest build from the Releases page. Waydir is distributed as native desktop packages and portable archives; pick the asset that matches your OS and CPU architecture.

Ubuntu / Debian

Recommended - package repository (auto-updates via apt upgrade):

curl -1sLf 'https://dl.cloudsmith.io/public/waydir/waydir-project/setup.deb.sh' | sudo -E bash
sudo apt install waydir

Or grab a single .deb from Releases:

sudo dpkg -i waydir-*.deb

Fedora / RHEL

Recommended - package repository (auto-updates via dnf upgrade):

curl -1sLf 'https://dl.cloudsmith.io/public/waydir/waydir-project/setup.rpm.sh' | sudo -E bash
sudo dnf install waydir

Or grab a single .rpm from Releases:

sudo rpm -i waydir-*.rpm

openSUSE

Recommended - package repository (auto-updates via zypper update):

curl -1sLf 'https://dl.cloudsmith.io/public/waydir/waydir-project/setup.rpm.sh' | sudo -E bash
sudo zypper install waydir

Or grab a single .rpm from Releases:

sudo rpm -i waydir-*.rpm

Other Linux

Portable builds from Releases run on any distro:

# AppImage (portable, no install)
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 graciously provided by Cloudsmith, the only fully hosted, cloud-native, universal package management solution.

Windows

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

macOS

.dmg package - drag Waydir to your Applications folder.

⚠️ macOS is not regularly tested. Linux and Windows are the primary development and testing targets. macOS builds come from the same codebase but expect rough edges - please report any issues.

🎯 Features

Navigation & layout

  • Dual-pane mode with independent tabs in each pane
  • Sidebar with favorites, devices, and pinned bookmarks
  • A keyboard shortcut for every action

File operations

  • Copy, move and delete with conflict resolution and live progress
  • Trash-safe delete, cancellable mid-flight
  • Clipboard integration; ZIP and TAR archives browsable in place

Network drives

  • SMB and SFTP from the sidebar: mount, unmount, reconnect
  • Remote files act like local ones: search, copy, preview, "Open with"
  • Pooled connections, off-thread transfers, fine-grained progress

Search & preview

  • Recursive search that streams results as it scans (substring, regex, glob)
  • Quick Look on Space for images, text and code
  • Per-type default apps and "Open with" picker

Terminal

  • Embedded terminal per pane, opening in the current directory
  • Toggle with `Ctrl+`` without leaving the keyboard
  • Real PTY backed by Rust, runs your usual shell

Customization & integrations

  • Light, Dark and Nord themes; custom themes via JSON
  • Configurable density, sort, hidden files and date format
  • Lua plugins for context actions, toolbar buttons, status bars, the top Plugins menu and shortcuts
  • Git status bar with branch switching and stash management

πŸ”Œ 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 one into the plugins folder, then reload from Preferences -> Plugins.

Plugin actions can appear in the selection context menu, background context menu, top Plugins menu, location toolbar, keybindings, and compact global or per-pane status bars. They run in a sandbox and request explicit permissions for external commands (exec) or file operations (fs).

Start with docs/plugins.md or the working examples in docs/examples/plugins/. Fuller plugin documentation is available at waydir.dev/docs/plugins.

πŸ”§ Build from source

Requirements: Flutter 3.35+, Dart 3.10+, Rust stable (rustup). waydir_core (Rust) handles directory listing, search and delete - there is no Dart fallback.

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 and commands run from the repo root. Rebuild and restart the app after editing rust/waydir_core (no hot reload). For packaged builds use scripts/build_waydir_core.sh (Windows: scripts/build_waydir_core_windows.ps1).

Release binary

flutter build linux    # or: windows / macos

🀝 Contributing

PRs are welcome. Before opening one:

  1. dart format .
  2. flutter analyze - must be clean.
  3. flutter test - must be green.

CI runs the same three on every PR (see .github/workflows/). Keep commits focused; small PRs land faster than big ones.

If you're picking up something non-trivial, open an issue first so we can sync on the approach.

πŸ“„ License

MIT