Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CFM

A lightweight terminal file manager written in C.

Focused on performance, low resource usage, and keyboard-driven navigation.

License GitHub Stars

Project

CFM is a lightweight terminal file manager written entirely in C. It is designed with a strong focus on performance, low memory consumption, and minimal CPU usage while providing an efficient keyboard-driven workflow.


Take a Look!

preview


Performance

usage


Requirements

  • Ncurses
  • fd (If not installed, search feature won't work)
  • GCC
  • pkg-config

Features

  • Lightweight and efficient
  • Low memory usage
  • Keyboard-driven interface
  • Fast startup
  • Image preview (Currently for kitty terminal only)

Core functionality includes:

  • Browse directories

  • Open files

  • Create files and directories

  • Delete files and directories

  • Rename files and directories

  • Copying and Pasting files and directories

  • Moving files and directories

  • Optimized for keyboard navigation to maximize productivity, powered with vim keys.

CFM uses an internel clipboard for processes like copying, moving and pasting


Usage

CFM is optimized for keyboard navigation to maximize productivity powered with vim keys

Key(s) Function
h Enter Left Arrow Go Back (Parent Directory)
l Right Arrow Enter Directory
j Down Arrow Navigate to the bottom
k Up Arrow Navigate to the top
gg Move to the top
G (Shift + G) Move to the bottom
c y Copy a file/folder
x Cut a file/folder
p Paste a file/folder
s / Search a file
q Esc Quit CFM
a Create a new file/folder
d Delete a file/folder
r Rename a file/folder

Installation

You can install CFM using the provided installation script:

curl https://raw.githubusercontent.com/nothingfr87/cfm/refs/heads/main/install.sh | sh

Alternatively, you can build CFM from source.

Before that let's install the required libraries

sudo apt update
sudo apt install build-essentials pkg-config libncurses5-dev libncursesw5-dev

Fedora Distros

sudo dnf groupinstall "Development Tools"
sudo dnf install ncurses-devel pkgconf-pkg-config

Arch Distros

sudo pacman -S base-devel ncurses pkgconf

Clone the repository and build the project:

git clone https://github.com/nothingfr87/cfm.git
cd cfm/

make build

The compiled binary will now be available in the project directory.

To install CFM system-wide:

sudo make all install

Supported OS:

Currently supported:

  • Linux (Tested on Debian 13 Trixie)
  • MacOS (Not Tested)

Issues:

If you encounter any bugs or unexpected behavior, please open an issue. Feedback and contributions are always appreciated.


License

This project is licensed under the MIT License


Other Projects:

If CFM does not fit your workflow, you may also be interested in these excellent terminal file managers that inspired this project:


Special Thanks

rida-hdj making our CFM Logo
DEXTER Adding image preview for kitty terminal

If you find CFM useful, consider starring the repository to support its development.

About

C File Manager is just a simple file manager

Topics

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages