added cpp version, sh version as backup

This commit is contained in:
2026-06-16 07:43:51 +08:00
parent 0504dec9c7
commit 40e5d2815c
5 changed files with 2415 additions and 21 deletions
+24 -15
View File
@@ -4,16 +4,23 @@ sfm - Simple File Manager
DESCRIPTION
-----------
sfm is a lightweight, terminal-based file manager written entirely in
POSIX sh. It runs in your terminal with no external dependencies beyond
standard Unix tools (ls, awk, tput, stty, mv, cp, rm). Designed to be
fast, flicker-free, and keyboard-driven with a vim-inspired key layout.
sfm is a lightweight, terminal-based file manager with a vim-inspired
key layout. The primary version is a fast C++/ncurses binary. A portable
POSIX sh version (sfm.sh) is also included, requiring only standard Unix
tools (ls, awk, tput, stty, mv, cp, rm).
REQUIREMENTS
------------
C++ version (sfm):
- ncursesw (libncursesw)
- A C++17 compiler (g++ or compatible)
Shell version (sfm.sh):
- A POSIX-compatible shell (sh, dash, bash, etc.)
- Standard Unix tools: ls, awk, tput, stty, cp, mv, rm, mkdir, touch
Both versions:
- Optional: wl-copy / xclip / xsel / pbcopy (for clipboard support)
- Optional: mpv, vlc, feh, zathura, etc. (for smart file opening)
- Optional: readlink (for symlink display)
@@ -23,21 +30,23 @@ REQUIREMENTS
INSTALLATION
------------
Using make (recommended):
make install
This installs sfm to /usr/local/bin by default. To change the prefix:
This builds the C++ binary and installs both sfm (C++ binary)
and sfm.sh (shell script) to /usr/local/bin by default.
To change the prefix:
make install PREFIX=/usr
To uninstall:
make uninstall
Manual installation:
cp sfm /usr/local/bin/sfm
chmod +x /usr/local/bin/sfm
Manual installation (shell version only):
cp sfm.sh /usr/local/bin/sfm.sh
chmod +x /usr/local/bin/sfm.sh
USAGE