diff options
| author | emmett1 <me@emmett1.my> | 2026-04-01 00:35:04 +0800 |
|---|---|---|
| committer | emmett1 <me@emmett1.my> | 2026-04-01 00:35:04 +0800 |
| commit | 54352d036cb2fd9c82522cd3f9ec12008510b32c (patch) | |
| tree | 33beef2ef51ec9c2fe6963b699c5736a0e72b218 /README | |
| parent | 6b729ffe8a2470b222ded4b2906e7d1ad4c455ef (diff) | |
| download | sfm-54352d036cb2fd9c82522cd3f9ec12008510b32c.tar.gz sfm-54352d036cb2fd9c82522cd3f9ec12008510b32c.zip | |
renamed README.txt to README
Diffstat (limited to 'README')
| -rw-r--r-- | README | 210 |
1 files changed, 210 insertions, 0 deletions
@@ -0,0 +1,210 @@ +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. + + +REQUIREMENTS +------------ +- A POSIX-compatible shell (sh, dash, bash, etc.) +- Standard Unix tools: ls, awk, tput, stty, cp, mv, rm, mkdir, touch +- Optional: wl-copy / xclip / xsel / pbcopy (for clipboard support) +- Optional: mpv, vlc, feh, zathura, etc. (for smart file opening) +- Optional: readlink (for symlink display) +- Optional: file (for MIME type detection) + + +INSTALLATION +------------ +Using make (recommended): + + make install + +This installs sfm 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 + + +USAGE +----- + sfm [path] + +If no path is given, sfm opens in the current directory. + +Examples: + sfm # open in current directory + sfm /mnt/data # open at a specific path + sfm ~ # open home directory + sfm .. # open parent directory + + +NAVIGATION +---------- + j / k or up/down arrows Move up / down + h or left arrow Go to parent directory + l or right arrow / enter Open file or enter directory + g Jump to top of list + G Jump to bottom of list + ~ Go to home directory + ` (backtick) Jump to previous directory + + +SEARCH & FILTER +--------------- + / Enter search mode (filters listing as you type) + esc Clear filter and exit search mode + enter Exit search mode but keep filter active + + +DISPLAY TOGGLES +--------------- + . Toggle hidden files (dotfiles) + T Toggle size/date detail column + P Toggle preview pane (right side) + s Cycle sort mode: name -> size -> date + i Show file info (permissions, size, date) in status bar + R Refresh current directory listing + + +PREVIEW PANE +------------ +Press P to toggle the preview pane on the right side of the screen. +The list pane takes the left half, preview takes the right half. + + Text files Shows file contents line by line + Directories Shows directory contents + Symlinks Shows link target + Binary files Shows file size + + +CUSTOM OPENER +------------- +sfm checks for a user-defined opener script at: + + ~/.config/sfm/opener + +If the file exists and is executable, sfm passes the selected file +path to it instead of using the built-in smart opener. Example: + + #!/bin/sh + case "$1" in + *.jpg|*.jpeg) imv "$1" ;; + *.mp4) mpv "$1" ;; + *.html|*.pdf) firefox "$1" ;; + *) echo "no program set for this file type" ;; + esac + +Make it executable: chmod +x ~/.config/sfm/opener + +If the opener script does not exist, sfm falls back to its built-in +smart opener automatically. + + +FILE OPERATIONS +--------------- + r Rename selected entry + m Make new directory + n New empty file + d Delete (single or selection) + u Move to trash (safe delete) + U Open trash directory + o Open with custom program + + +CLIPBOARD +--------- + y Yank / copy (works on multi-selection) + x Cut (works on multi-selection) + p Paste into current directory + c Copy full path of selected entry to system clipboard + + +MULTI-SELECT +------------ + space Toggle multi-select on current entry (cursor advances) + a Select all / deselect all + + +BOOKMARKS +--------- + b Bookmark current directory (press again to remove) + B Open bookmark picker (j/k navigate, enter jump) + +Bookmarks are saved to: ~/.config/sfm/bookmarks + + +SHELL & UTILITIES +----------------- + ! Drop into $SHELL in current directory (type "exit" to return) + + +HELP +---- + ? Show keyboard shortcuts overlay + + +QUIT +---- + q Quit sfm + + +STATUS BAR INDICATORS +--------------------- + [hidden] Hidden files are visible + [sort:size] Active sort mode (size or date; name is default) + [copy] A file is in the clipboard (copy mode) + [cut] A file is in the clipboard (cut mode) + [sel:N] N items are currently selected + [details] Size/date column is visible + + +SMART FILE OPENER +----------------- +When you open a file, sfm detects the file type by extension and +MIME type, then picks an appropriate program automatically: + + Text / code $EDITOR (or vi) + Images imv, feh, sxiv, eog, gimp + Video mpv, vlc, mplayer, totem + Audio mpv, vlc, cmus, mocp + PDF zathura, evince, okular, mupdf + Office docs libreoffice + Archives atool / bsdtar (lists contents in pager) + +Falls back to xdg-open, open (macOS), or $EDITOR if nothing matches. +Use 'o' to manually specify any program. + + +TRASH +----- +Files deleted with 'u' are moved to: + + ~/.local/share/sfm-trash/ + +Files are prefixed with a timestamp: YYYYMMDD_HHMMSS_filename +Use U to browse the trash directory. To restore a file, rename it +(press r) to remove the timestamp prefix, then cut (x) and paste (p) +it back to the desired location. + + +DATA FILES +---------- + ~/.config/sfm/bookmarks Saved bookmarks (one path per line) + ~/.config/sfm/opener Custom file opener script (optional) + ~/.local/share/sfm-trash/ Trashed files + |