Fast, small, hackable TUI file manager with no dependency
Find a file
2024-11-17 18:10:26 +00:00
patches Edit patch 2024-11-13 09:50:08 +00:00
.gitignore Add highlight on current cursor file with preview 2024-03-09 17:37:04 +00:00
ccc.1 Change gg to g and update manual 2024-11-17 15:22:55 +00:00
ccc.c Fix rename, and add yank filename to clipboard, and make list files run everytime a key press 2024-11-17 18:10:26 +00:00
config.h Remove stdbool.h and fix calling on files 2024-11-17 14:49:24 +00:00
file.c Remove stdbool.h and fix calling on files 2024-11-17 14:49:24 +00:00
file.h Remove stdbool.h and fix calling on files 2024-11-17 14:49:24 +00:00
icons.c Remove stdbool.h and fix calling on files 2024-11-17 14:49:24 +00:00
icons.h Remove stdbool.h and fix calling on files 2024-11-17 14:49:24 +00:00
LICENSE Initial commit 2024-03-09 11:41:17 +00:00
Makefile Remove image preview to a patch 2024-11-13 09:48:13 +00:00
README.md Change gg to g and update manual 2024-11-17 15:22:55 +00:00
TODO Add TODO 2024-11-15 00:03:33 +00:00
util.c Use ansi instead of ncurses and add directory preview 2024-10-31 23:19:58 +00:00
util.h add common alloc functions and handle cli argument 2024-04-01 21:23:10 +00:00

ccc

Soft fork of fff in C aiming for size and speed with no dependency, hackable with patches and configurable via config.h

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.

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 X
Marking and marking operations
Image previews X
Help X
History
Bookmarks
Bulk rename

Features added that are not in fff:

  • File preview

Usage

ccc -p dir # File picker
ccc dir
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

g: 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
!: open shell in current dir

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

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)

Dependencies

  • Any Nerd Font for file icons (optional, but turned on by default)
  • libsixel (Optional)

Building

You will need to run these with elevated privilages.

$ make 
# make install

Customizing

CD on Exit for 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")"
}

Using ccc in neovim as a file picker

See ccc.nvim

Contributions

Contributions are welcomed, feel free to open a pull request.

License

This project is licensed under the GNU Public License v3.0. See LICENSE for more information.