Fast, small, hackable TUI file manager with no dependency
Find a file
2024-04-10 13:51:39 +01:00
.gitignore Add highlight on current cursor file with preview 2024-03-09 17:37:04 +00:00
ccc.1 update usage 2024-04-05 17:53:45 +00:00
ccc.c r to rename, n to create new dir, : to go to dir and some refactor 2024-04-10 13:51:39 +01:00
config.h Separate filename and path into two parts, changes all over 2024-03-31 22:44:05 +02:00
file.c Fix all definitive memory leaks in valgrind 2024-04-07 01:05:36 +02:00
file.h toggle file icons 2024-04-02 00:18:34 +00:00
icons.c Reduce magic numbers, calculating size_size correctly, adding commtents at config.h, add more icons 2024-03-30 23:13:14 +00:00
icons.h fix icons not showing and segfault when size not properly formatted 2024-03-30 13:00:16 +00:00
LICENSE Initial commit 2024-03-09 11:41:17 +00:00
Makefile Separate filename and path into two parts, changes all over 2024-03-31 22:44:05 +02:00
README.md r to rename, n to create new dir, : to go to dir and some refactor 2024-04-10 13:51:39 +01:00
util.c add common alloc functions and handle cli argument 2024-04-01 21:23:10 +00:00
util.h add common alloc functions and handle cli argument 2024-04-01 21:23:10 +00:00

ccc

ccc is a rewrite of fff in C aiming for usefulness and speed.

The fact that it is written in C makes it more versatile and rapid, enabling us to add features that were previously ruled out due to time complexity. You may call it a soft fork.

Features

Consider this project incomplete and WIP!

Feature of fff Ported Dropped
Standard movement X
Advanced movement (jumps) X
File details X
File icons! X
Searching for files
Sorting
Marking and marking operations
Other operations on files
Image previews
Help X
History
Bookmarks
Bulk rename

Features added that are not in fff:

  • File preview (without highlighting)

Installation

Dependencies

  • gcc
  • ncursesw
  • make
  • pkg-config
  • Any Nerd Font for file icons (optional, but turned on by default)

Building and Installing

You will need to run these with elevated privilages.

$ git clone https://github.com/piotr-marendowski/ccc
$ make 
# make install

CD on Exit

POSIX Shell

# Add this to your .bashrc, .zshrc or equivalent.
# Run 'ccc' with 'c' or whatever you decide to name the function.
c() {
    ccc "$@"
    cd "$(cat "${XDG_CACHE_HOME:=${HOME}/.cache}/ccc/.ccc_d")"
}

Usage

h: go to parent dir
j: scroll down
k: scroll up
l: go to child dir

left:  go to parent dir
down:  scroll down
up:    scroll up
right: go to child dir

enter: go to child dir/open file
backspace: go to parent dir

gg: go to top
G: go to bottom

ctrl+u: jump up
ctrl+d: jump down

t: go to trash dir
~: go to home dir
-: go to previous dir
z: refresh current dir
:: go to a directory by typing
u: sort files

.: toggle hidden files
i: toggle file details
X: toggle executable

A: show directory disk usage/block size

f: new file
n: new dir
r: rename

space: mark file
a: mark all files in directory
d: trash

?: show help
q: exit with last dir written to file
ctrl+c exit without writing last dir

TO BE DONE:
o: open file with
O: open file with a GUI program detached from file manager

/: search
!: open shell in current dir

x: view file/dir attributes
e: show history
y: copy filename to clipboard

c: copy
m: move
s: symbolic link
b: bulk rename

p: execute paste/move/delete/bulk_rename

[1-9]: favourites/bookmarks (see customization)

Using ccc in neovim as a file picker

See ccc.nvim

License

This project has GNU GPL v.3 license.