Fast, small, hackable TUI file manager with no dependency
Find a file
2024-11-14 13:26:40 +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 update usage 2024-04-05 17:53:45 +00:00
ccc.c Remove image preview to a patch 2024-11-13 09:48:13 +00:00
config.h Update README for dependency and fix capitalisation in config 2024-11-13 09:20:51 +00:00
file.c Use default terminal color instead of customised color 2024-11-12 16:53:50 +00:00
file.h Use default terminal color instead of customised color 2024-11-12 16:53:50 +00:00
icons.c Resolve warnings from compilers 2024-11-04 23:02:35 +00:00
icons.h Resolve warnings from compilers 2024-11-04 23:02:35 +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 Update README 2024-11-14 13:26:40 +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

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)

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.