Skip to content

Waydir/Waydir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

185 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

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

Linux

Available as .deb, .rpm, .AppImage, and .tar.gz.

# Debian / Ubuntu
sudo dpkg -i waydir-*.deb

# Fedora / RHEL
sudo rpm -i waydir-*.rpm

# AppImage (portable, no install)
chmod +x waydir-*.AppImage && ./waydir-*.AppImage

# Portable tarball
tar -xzf waydir-*-linux-x64.tar.gz && ./waydir

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
  • Git status bar with branch switching and stash management

πŸ”§ 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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors