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

https://github.com/bahaamohamed98/bfilex

Simple terminal-based file explorer written in C++
https://github.com/bahaamohamed98/bfilex

file filemanagement filesystem terminal-app tui

Last synced: 2 months ago
JSON representation

Simple terminal-based file explorer written in C++

Awesome Lists containing this project

README

          

# BFileX


Terminal++ Logo

A modern, lightweight terminal file explorer written in C++. BFileX provides an intuitive interface for navigating and
managing your files with vim-style keybindings and a color-coded display.

## ✨ Features

- 🎨 Color-coded interface for different file types
- 𝐕I Vim-style navigation
- 🚀 Fast and lightweight
- 🔍 File type detection with custom icons
- 📊 Detailed file information (permissions, size, modified date)
- 🖥️ Cross-platform support (Linux, macOS, Windows)
- 🔄 Real-time updates for file system changes
- ⬆️ Comprehensive keybindings for navigation and actions
- 📁 Directory management: Create, rename, and delete directories on the fly

## 🖼️ Screenshots

Explore how BFileX looks and works in different scenarios:

Main Interface








BFileX source code entries displayed

File Preview








File preview for a text file

Directory Management



Make Directory




Creating a new directory







Newly created directory highlighted in the list



Rename File/Directory




Renaming a selected file or directory



Delete File/Directory




Deleting a file or directory







Confirmation for recursive deletion of directories


## 🚀 Installation

### Prerequisites

- C++17 or higher
- CMake 3.15 or higher
- Git

### Build from Source

#### Clone the repository

```bash

git clone https://github.com/BahaaMohamed98/BfileX.git
cd BfileX
```

#### Initialize submodules

```bash
git submodule update --init --recursive
```

#### Build using Cmake

```bash
cd build
cmake ..
cmake --build .
```

#### Run the app

```bash
./BFileX
```

## ⚙️ Command-Line Options

| Option | Description |
|-----------------------|--------------------------|
| `-t`, `--time` | Sort entries by time |
| `-s`, `--size` | Sort entries by size |
| `-r`, `--reverse` | Reverse the sort order |
| `-a`, `--all` | Show all entries |
| `-np`, `--no-preview` | Don't show file previews |
| `-h`, `--help` | Show help screen |

## 🎮 Default Keybindings

| Key | Action |
|-------------------------------------------------------|-------------------------------|
| j, Tab, Right Arrow | Move down |
| k, Up Arrow | Move up |
| l, Enter,Right Arrow | Open file/directory |
| h, Left arrow | Go to parent directory |
| m | Make a new directory |
| r | Rename current entry |
| d | Delete current entry |
| t | Toggle sorting by time |
| s | Toggle sorting by size |
| R | Toggle reversing entries |
| H | Toggle showing hidden entries |
| p | Toggle preview |
| q | Quit |

## 📄 License

This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.