A cross-platform Norton Commander clone built in Rust with Ratatui. Two-panel file manager with classic NC key bindings, built-in viewer and editor, command line, and configurable themes.
- Two-panel file manager with 50/50 split, directory-first sorting, file size display
- Classic NC key bindings — F1-F10, Tab, Insert, Ctrl+O
- File operations — Copy (F5), Move (F6), Mkdir (F7), Delete (F8) with confirmation dialogs
- Built-in viewer (F3) — plain text with scroll, binary file detection
- Built-in editor (F4) — minimal text editor with save/quit menu
- Command line — type commands directly, output displayed in scrollable view
- Shell mode (Ctrl+O) — toggle panels to reveal the terminal
- Menu bar (F9) — sort order, view modes, swap panels, command history, config editor
- Configurable themes — NC blue default, customizable via TOML config
- Cross-platform — macOS, Linux, Windows
cargo install --path .Or build from source:
cargo build --release
./target/release/bp| Key | Action |
|---|---|
| Tab | Switch active panel |
| Up/Down | Move cursor |
| Home/End | Jump to first/last file |
| PgUp/PgDn | Page scroll |
| Enter | Open directory / execute file |
| Left | Parent directory |
| Key | Action |
|---|---|
| F1 | Help |
| F3 | View file |
| F4 | Edit file |
| F5 | Copy to other panel |
| F6 | Move/rename to other panel |
| F7 | Create directory |
| F8 | Delete |
| F9 | Menu bar |
| F10 | Quit |
| Key | Action |
|---|---|
| Ctrl+O | Toggle shell mode |
| Ctrl+R | Refresh both panels |
| Insert | Toggle file selection |
| * | Invert selection |
Config file location:
- macOS/Linux:
~/.config/bp/config.toml - Windows:
%APPDATA%\bp\config.toml
Default theme (NC blue):
[theme]
panel_bg = "blue"
panel_fg = "white"
active_border = "cyan"
inactive_border = "dark_gray"
cursor_bg = "cyan"
cursor_fg = "black"
selected_fg = "yellow"
menu_bg = "cyan"
menu_fg = "black"
fkey_bar_bg = "cyan"
fkey_bar_fg = "black"
dialog_bg = "white"
dialog_fg = "black"Colors use the 16 standard terminal color names for maximum compatibility.
| Crate | Purpose |
|---|---|
| ratatui | TUI framework |
| crossterm | Terminal backend and input |
| dirs | Platform config paths |
| toml | Config file parsing |
| serde | Deserialization |
MIT