ffm-0.1.0 is not a library.
β‘ FastyFileManager
A blazing-fast terminal file manager built with Rust & Ratatui
β¨ Features
- ποΈ Three-panel layout β Favorites, Drives, Files, and Preview
- π Clipboard β Copy, Cut and Paste files & folders (recursive)
- β Favorites β Pin any file or folder for instant access (persisted between sessions)
- π Fuzzy Search β Instantly filter files as you type (characters in order, not necessarily contiguous)
- π¨ Nerd Font icons β Per-extension color coding and icons (60+ file types)
- βοΈ Configurable β Full keybinding and theme customization via
config.toml - ποΈ Editor integration β Open files in your
$EDITOR(nvim, vim, nanoβ¦) - πΎ Hot config reload β Apply changes without restarting (F5)
- π Sort modes β Toggle between Name / Size / Date with
s - π² Multi-select β Select multiple files with
Space, batch operations - βοΈ Rename β Rename files and folders with
r - ποΈ Delete confirmation β Safe deletion with y/N prompt
- π Resizable panels β Adjust panel widths with
Shift+β/Shift+β - π Drive info β Shows available free space for each drive
- β‘ Compact popups β Minimal Vim-style command bar for input and confirmations
- π Conflict resolution β Overwrite / Skip / Auto-rename when pasting existing files
π Installation
Prerequisites
- Rust (stable, 1.75+)
- A terminal with Nerd Fonts support (e.g. JetBrainsMono Nerd Font)
π§ Linux / macOS
The script will:
- Compile the project in release mode
- Place the
ffmbinary in the project directory - You can then move it to
~/.local/bin/or/usr/local/bin/to add it to PATH
# Optional: add to PATH manually
πͺ Windows
git clone https://github.com/SMOLDEVI/FastyFileManager.git
cd FastyFileManager
build.bat
The script will:
- Compile the project in release mode
- Copy
ffm.exeto%USERPROFILE%\bin\ - Automatically add
%USERPROFILE%\binto your userPATH
β οΈ Restart your terminal after first install for PATH changes to take effect.
π¦ Manual build
# Binary is at: target/release/ffm (or ffm.exe on Windows)
β¨οΈ Keybindings
ποΈ File Panel
| Key | Action |
|---|---|
j / β |
Move down |
k / β |
Move up |
l / β / Enter |
Open directory |
h / β / Backspace |
Go to parent directory |
a |
Create new file or folder (end name with / for folder) |
r |
Rename selected item |
D |
Delete selected file/folder (with confirmation) |
Space |
Toggle multi-selection |
s |
Cycle sort mode: Name β Size β Date |
e |
Open file in $EDITOR |
y |
Copy selected item(s) to clipboard |
x |
Cut selected item(s) (move) |
p |
Paste clipboard into current directory |
f |
Add selected item to Favorites |
/ |
Start search / filter |
Tab |
Switch focus: Files β Drives β Favorites |
Shift+β |
Shrink center panel |
Shift+β |
Expand center panel |
β Favorites Panel
| Key | Action |
|---|---|
j / β |
Move down |
k / β |
Move up |
Enter / β |
Navigate to favorited item |
D or F |
Remove from favorites |
Tab |
Switch focus |
πΎ Drive Panel
| Key | Action |
|---|---|
j / β |
Move down |
k / β |
Move up |
Enter / β |
Switch to selected drive |
Tab |
Switch focus |
π Search Mode
| Key | Action |
|---|---|
| type anything | Filter files in real time |
Enter |
Confirm and return to Normal mode |
Esc |
Cancel search and clear filter |
β / β |
Navigate filtered results |
π Global
| Key | Action |
|---|---|
q |
Quit |
? |
Toggle help popup |
F5 |
Hot-reload config |
Ctrl-h |
Focus Drives panel |
Ctrl-l |
Focus Files panel |
Ctrl-b |
Toggle status bar |
Tab |
Cycle focus: Files β Drives β Favorites |
π¦ Paste Conflict
| Key | Action |
|---|---|
O |
Overwrite existing file |
S |
Skip this file |
R |
Auto-rename (adds suffix) |
Esc |
Cancel entire paste operation |
βοΈ Configuration
Config is stored at:
- Windows:
%APPDATA%\ffm\config.toml - Linux/macOS:
~/.config/ffm/config.toml
The file is auto-created on first run with default values.
[]
= "Reset"
= "#EADBB8"
= "#D2B48C"
= "#282828"
= "#E0C097"
= "#C8B6A6"
= "> "
[]
= "q"
= "/"
= "esc"
= "l"
= "j"
= "k"
= "D"
= "a"
= "ctrl-l"
= "ctrl-h"
= "h"
= "F5"
= "e"
= "r"
= "?"
= "s"
Apply changes instantly with
F5β no restart needed!
ποΈ Project Structure
FastyFileManager/
βββ src/
β βββ main.rs # Entry point
β βββ app.rs # Application state & input handling
β βββ ui.rs # Terminal UI rendering (ratatui)
β βββ config.rs # Config loading & defaults
β βββ icons.rs # File type icons & colors
β βββ theme.rs # Color parsing
βββ build.sh # Linux/macOS build + install script
βββ build.bat # Windows build + PATH setup script
βββ Cargo.toml # Dependencies
π License
MIT Β© SMOLDEVI