An open API service indexing awesome lists of open source software.

https://github.com/nullmedium/fzap

A fast terminal file manager written in Rust
https://github.com/nullmedium/fzap

file-manager git-integration rust-lang terminal-based version-control

Last synced: 8 months ago
JSON representation

A fast terminal file manager written in Rust

Awesome Lists containing this project

README

          

# fzap

A fast terminal file manager written in Rust with fuzzy search capabilities.

## Features

- Fast file navigation with keyboard shortcuts
- Recursive fuzzy file search (fzf-style filtering)
- Single or two-column mode (like Midnight Commander)
- File operations: View, Edit, Move/Rename, Delete
- Multi-file selection support
- Git integration showing file status and branch
- Git log viewer
- Color themes via TOML configuration
- Recursive directory deletion
- Session management - remembers last visited directories

## Installation

```bash
cargo build --release
./target/release/fzap [directory]
```

## Usage

### Navigation
- `↑/k` - Move up
- `↓/j` - Move down
- `←/h` - Go to parent directory
- `→/l/Enter` - Enter directory
- `Tab` - Switch between panels (in two-column mode)

### File Operations
- `Space` - Toggle file selection
- `Ctrl+A` - Select all
- `Ctrl+D` - Deselect all
- `v` - View file
- `e` - Edit file (uses $EDITOR or vi)
- `r` - Rename file/directory
- `d` - Delete file/directory
- `F5` - Copy
- `F6` - Move
- `F7` - Create directory
- `F8` - Paste

### Other
- `/` - Search files
- `g` - Toggle git status display
- `G` - Show git log
- `F1` - Help
- `Ctrl+Q` - Quit

## Configuration

Configuration file is stored at `~/.config/fzap/config.toml`:

```toml
theme_file = "default"
show_hidden_files = false
git_integration = true
default_view_mode = "single"
editor = "vi"
save_session = true # Save current directories on exit
restore_session = true # Restore last directories on startup
```

## Session Management

When enabled, fzap automatically:
- Saves your current directory for each panel
- Remembers whether you were in single or two-column mode
- Restores your last active panel
- Preserves git status view and search settings

Session data is stored in `~/.config/fzap/session.toml` and is updated:
- When you change directories
- When you switch panels or view modes
- Every 5 seconds automatically
- When you exit the application

To disable session management, set `save_session` or `restore_session` to `false` in your config.

## Themes

Themes are stored at `~/.config/fzap/themes/[name].toml`. The default theme is created automatically on first run.