Skip to content

rphii/gaki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

145 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gaki

Minimal TUI directory browser, inspired by mc, ranger, yazi or similar.

📦 Install

meson setup build
meson install -C build

✨ Features

  • currently only differentiates between DIRECTORIES (or symlinks) and REGULAR FILES.
  • preview of DIRECTORIES and REGULAR FILES and IMAGES
  • parent view
  • async reads of: DIRECTORIES (magenta bar), utilizing a task queue
  • async reading of: REGULAR FILES (blue bar), utilizing a task queue
  • async input
  • async draw
  • 10k+ fps (-O3 -march=native -flto=auto -DNDEBUG and spamming random inputs in code)
  • remembers the selected index when browsing the directory tree
  • mouse support (parent, current and preview pane + scrolling)
  • sorted directory preview (via filename)
  • auto-resizable window
  • edit regular files, open .mkv videos
  • search and filter a directory and easily see filters in parent/child

⌨️ Hotkeys

  • q exit program
  • h exit folder
  • j file down
  • k file up
  • J preview down (text or directory)
  • K preview up (text or directory)
  • l enter folder or file via. $EDITOR
  • t create tab
  • L next tab
  • H previous tab
  • / clear search & enter search
  • ? enter search
  • f clear filter & enter filter
  • F enter filter
  • . toggle dot file visibility

Text input

For e.g. search or filter:

  • Confirm with enter
  • Clear + exit text with esc

SOON™

I-want-this-now-prio (100%-unchanging-roadmap®)

  • v0.0.6 fullscreen preview toggle

  • v0.0.6 shortcut system, which should allow for..

    • ..help listing for hotkeys
    • ..remapping hotkeys
  • v0.0.7 tabs with pinned ones

  • v0.0.7 grep support with preview (I have a vision of it)

  • v0.0.7 rename file(s), move file(s), delete file(s)

  • v0.0.8 use case for multi select: (it is already coded, just not visualized, it has no functionality)

    • allow custom launch args for when launching with multi-select
    • user defined program when opening files
  • whenever: other directory sorting methods

  • whenever: update directory/files on external change

  • (probably asap) log/errors instead of hard quitting, when e.g. no EDITOR or child failed

  • (probably asap) when long path/filename .. do not only show beginning

lower prio

  • basic syntax highlighting in text?

  • multiple panels basically already in the code via. tabs, but I do want multi-panels as well

  • video preview, scrollable

  • image preview via kitty protocol, pdf preview?

  • quit and pushd/cd into directory (with helper script)

  • input handling, detectable press/release for keys?

  • think about: adding infrastructure for piping custom lists/sublists into gaki, would be cool (use case?)

    • functionality through cli
    • should provide a library as well

About

Minimal TUI directory browser

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors