fsnav - Fast Terminal File System Navigator
A fast and intuitive terminal-based file system navigator written in Rust, featuring advanced search, file preview, bookmarks, and split-pane navigation.
π v0.4.0 - Enhanced Navigation Edition
The latest release brings powerful navigation features that transform how you explore your file system:
- π Smart Search: Find files instantly with regex support and content search
- ποΈ Live Preview: See file contents without opening them
- π Bookmarks: Save and jump to your favorite directories
- π² Split-Pane: Navigate two directories simultaneously
Features
Core Navigation
- π Fast Navigation: Instant directory traversal with keyboard shortcuts
- π Visual Indicators: Clear distinction between files and directories
- π― Intuitive Controls: Arrow keys for navigation, Enter to open, Backspace to go up
- π₯οΈ Quick Shell Access: Press
S
orCtrl+D
to open a shell in the current directory - π Permission Manager: Interactive chmod/chown interface for root users
- π¨ Pattern Selection: Select multiple files using glob patterns or regex
New in v0.4.0
-
π Advanced Search (
Ctrl+F
)- Real-time search as you type
- Regex pattern support
- Search within file contents
- Navigate between results
-
π File Preview Panel (
Ctrl+P
)- Split-screen preview
- Syntax-aware text display
- Binary hex viewer
- Directory contents preview
-
π Bookmarks System (
Ctrl+B
)- Save frequently accessed directories
- Keyboard shortcuts for quick access
- Persistent storage
- Usage tracking
-
π Split-Pane View (
F2
)- Dual directory navigation
- Vertical/horizontal layouts
- Independent or synchronized navigation
Installation
From crates.io
From source
# Binary will be in target/release/fsnav
Usage
# Start in current directory
# Start in specific directory
# Show help
# Show version
Keyboard Shortcuts
Standard Navigation
Key | Action |
---|---|
β / β |
Navigate up/down |
β / Enter |
Enter selected directory |
β / Backspace |
Go to parent directory |
S / Ctrl+D |
Open shell in current directory |
Esc / q |
Quit application |
Search & Preview
Key | Action |
---|---|
Ctrl+F |
Enter search mode |
Ctrl+N |
Next search result |
Ctrl+P |
Previous search result (in search) / Toggle preview panel |
Ctrl+R |
Toggle regex mode (in search) |
Ctrl+C |
Toggle case-sensitive search |
Ctrl+G |
Search in file contents |
Bookmarks
Key | Action |
---|---|
Ctrl+B |
Open bookmarks manager |
Ctrl+G |
Quick jump to bookmark |
a |
Add current directory (in bookmarks) |
d |
Delete bookmark (in bookmarks) |
r |
Rename bookmark (in bookmarks) |
Split-Pane View
Key | Action |
---|---|
F2 |
Toggle split-pane mode |
Tab |
Switch between panes |
F5 |
Sync directories |
F6 |
Toggle vertical/horizontal layout |
+ / - |
Adjust split ratio |
Root Mode Features
Key | Action |
---|---|
s |
Enter selection mode |
Space |
Toggle selection (in selection mode) |
p |
Pattern selection mode |
c |
Open chmod interface |
o |
Open chown interface |
Screenshots
Search Mode with Results
π /home/user/projects
ββββββββββββββββββββββββββββββββββββββ
π Search: config [3 results]
[Regex: OFF] [Case: OFF] [Content: OFF]
βββββββββββββββββββββββββββββββββββββββ
> π config.toml β [1/3]
π .config
π configs/
ββββββββββββββββββββββββββββββββββββββ
Ctrl+N/P: Next/Prev | Ctrl+R: Regex | Esc: Exit
File Preview Panel
π /home/user/docs β Preview
βββββββββββββββββββββββββββββββββββββββββ
π ../ β Size: 2.4 KB
> π README.md β Perms: rw-r--r--
π notes.txt β Type: text/markdown
π images/ β βββββββββββββββββ
βββββββββββββββββββββββββββ # Project Title
ββ: Navigate | Ctrl+P: Hideβ
β This is a sample
β README file with
β markdown content.
Split-Pane Navigation
π /home/user β π /home/user/projects
βββββββββββββββββββββββββββββββββββββββββββββββββ
> π Documents/ β π ../
π Downloads/ β > π src/
π Pictures/ β π tests/
π projects/ β π Cargo.toml
βββββββββββββββββββββββββββββββββββββββββββββββββ
[Left Pane Active] Tab: Switch | F5: Sync
Bookmarks Manager
π BOOKMARKS
ββββββββββββββββββββββββββββββββββββββ
[h] Home /home/user (accessed 42 times)
[d] Downloads /home/user/Downloads (accessed 15 times)
[p] Projects /home/user/projects (accessed 38 times)
[r] Root / (accessed 5 times)
ββββββββββββββββββββββββββββββββββββββ
Available shortcuts: a, b, c, e, f, g...
a: Add | d: Delete | r: Rename | Esc: Back
Configuration
fsnav stores its configuration and bookmarks in ~/.config/fsnav/
:
bookmarks.json
- Saved bookmarks with usage statistics
Performance
- Instant Search: Find files in milliseconds even in large directories
- Lazy Loading: Preview only loads when needed
- Efficient Scrolling: Smooth navigation through thousands of files
- Memory Efficient: Minimal memory footprint with smart caching
Compatibility
- Operating Systems: Linux, macOS, BSD
β οΈ Windows is not supported directly. Please use WSL - Terminal Emulators: All modern terminals supporting ANSI escape codes
- Rust Version: 1.70.0 or later
Building from Source
# Debug build
# Release build (optimized)
# Run tests
# Run directly
Project Structure
fsnav/
βββ src/
β βββ main.rs # Entry point and terminal setup
β βββ navigator.rs # Core navigation logic
β βββ file_entry.rs # File/directory data structures
β βββ permissions.rs # Chmod interface
β βββ ownership.rs # Chown interface
β βββ ui.rs # Rendering and UI components
β βββ search.rs # Search functionality (v0.4.0)
β βββ preview.rs # File preview system (v0.4.0)
β βββ bookmarks.rs # Bookmarks manager (v0.4.0)
β βββ split_pane.rs # Split-pane view (v0.4.0)
βββ Cargo.toml
βββ README.md
βββ CHANGELOG.md
βββ LICENSE-MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
This project is licensed under the MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Acknowledgments
- Built with crossterm for terminal manipulation
- Uses serde for configuration serialization
- Regex support via regex
Author
Alexandre Artaud - @AlexArtaud-Dev - Software Engineer
Changelog
See CHANGELOG.md for a detailed list of changes between versions.
Roadmap
β v0.4.0 - Enhanced Navigation (Released!)
- Search functionality with regex support
- File preview panel
- Bookmarks/favorites system
- Split-pane view for dual directory navigation
v0.5.0 - File Operations (In Progress)
- Copy/Cut/Paste operations (Ctrl+C, Ctrl+X, Ctrl+V)
- Safe delete with trash support
- Bulk rename with pattern replacement
- Archive creation/extraction (zip, tar, gz)
v0.6.0 - Customization
- Configuration file support (
~/.config/fsnav/config.toml
) - Vim-like keybindings option
- Custom color themes
- Plugin system for extensions
Future Features
- Network drive support (SMB, SSH/SFTP)
- File filtering by extension/size/date
- Advanced symlink visualization
- Integration with system clipboard
- File tagging system
- Quick actions menu (F-keys)
- Terminal multiplexer integration
- Git integration with status indicators
Star History
If you find fsnav useful, please consider giving it a star on GitHub!