Fast, small, hackable TUI file manager with no dependency
Find a file
2024-11-17 19:36:27 +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 Reduce lines for p_cwd logic 2024-11-17 19:27:42 +00:00
ccc.c Reduce use of malloc and fix codestyle 2024-11-17 19:36:27 +00:00
config.h Config for clipboard program 2024-11-17 18:10:41 +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 Reduce lines for p_cwd logic 2024-11-17 19:27:42 +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

.: toggle hidden files
A: show directory disk usage/block size
i: toggle file details
u: sort files
x: view file/dir attributes
y: copy filename to clipboard
!: open shell in current dir

f: new file
n: new dir
r: rename
X: toggle executable

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

e: show history

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.