Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SFF(1)			    General Commands Manual			SFF(1)

NAME
       sff -- simple and fast terminal file manager

SYNOPSIS
       sff [-bcHmvh] [-d keys] [path]

DESCRIPTION
       sff  (simple  file finder) is a simple, fast, and feature-rich terminal
       file manager inspired by	nnn and	guided by the suckless philosophy.  It
       consists	of two parts: a	core program and  an  extension	 script.   The
       core program is designed	as a pure file browser and selector with mini-
       mal built-in functionality.  All	file operations, such as copying, mov-
       ing,  and  deleting, are	implemented by the extension script.  For more
       details,	see the	EXTENSION SCRIPT section.

       sff opens the current working directory if path is not specified.

OPTIONS
       The following options are available:

       -b      Force the program to run	in browse mode.	 For more details, see
	       the RUNNING MODE	section.

       -c      Enable case sensitivity when sorting by filename.

       -d keys
	       Specify the details to show by default.	Valid keys include:

		   - t:	time
		   - o:	owner &	group
		   - p:	permissions
		   - s:	size
		   - n:	none

       -H      Show hidden files.

       -h      Display program help and	exit.

       -m      Mix directories and files when sorting.

       -v      Print version information and exit.

KEY BINDINGS
       Press '?' or 'F1' in sff	to see the list	of key bindings	 for  built-in
       functions.

       Press  Alt+'/'  in  sff	to  see	the list of key	bindings for extension
       functions and plugins.

CONFIGURATION
       sff does	not use	a runtime configuration	file.  To customize  sff,  you
       need  to	edit config.h and recompile the	program.  config.h is a	source
       code file which is included by sff.c (the main source code module).  It
       is a C language header file, and	serves as the configuration  file  for
       default settings, key bindings, and colors.

EXTENSION SCRIPT
       The  extension functions	are provided by	a POSIX-compliant shell	script
       named sff-extfunc, which	is installed by	default	in /usr/lib/sff/
	or /usr/local/lib/sff/.

       You can easily customize	key bindings for extension functions and plug-
       ins, modify existing functions, or add your own	functions  by  editing
       this file.  It is generally not recommended to directly modify the sys-
       tem-wide	 sff-extfunc.  Instead,	copy it	to the user's config directory
       and make	modifications there.

       The user's config directory is required for executing  extension	 func-
       tions.  This directory is either	$XDG_CONFIG_HOME/sff or	~/.config/sff,
       whichever  is encountered first.	 If this directory does	not exist, the
       program will attempt to create it when calling an extension function.

       During initialization, sff determines the location  of  sff-extfunc  by
       checking	 the following directories in order, and uses the first	occur-
       rence found:

	   1. The user's config	directory
	   2. The directory containing the currently running sff executable
	   3. /usr/local/lib/sff/
	   4. /usr/lib/sff/

TABS
       The tab status is displayed in the top-left corner of the screen.  Five
       tab indicators are shown, with the current tab highlighted  in  reverse
       video.  Tabs 1 through 4	are regular tabs and are indicated by '*' when
       inactive.  When switching to an inactive	tab, the new tab will be acti-
       vated  and  use	the  current directory path as its starting path.  The
       fifth tab is a special tab, indicated by	 '#',  dedicated  to  handling
       search results.

SELECTION
       The  names  of the selected files are highlighted in reverse video.  By
       default,	the file under the cursor is automatically selected.   When  a
       file  selection	operation is performed by the user, the	program	enters
       manual selection	mode, and the file under the cursor will no longer  be
       automatically  selected.	 Clearing all selections causes	the program to
       exit manual selection mode and return to	the default state.

       sff allows file selection across	directories.  Each tab	maintains  its
       own independent selection state.	 The second set	of numbers in the bot-
       tom  status bar (highlighted in reverse video) indicates	the total num-
       ber of selected files in	the current tab.

       When an extension function is executed, if it sends a request, the  ab-
       solute paths of the selected files are delivered	to the extension func-
       tion via	a FIFO.

FILTERS
       Filters are strings used	to dynamically list matching files in the cur-
       rent  directory.	 When a	filter is enabled, it appears above the	bottom
       status bar, and the program enters input	mode.  In this mode,  you  can
       perform the following actions:

	   - Enter a filter matching string (matching is case-insensitive).

	   - Use the Up	and Down Arrow keys to move the	cursor.

	   - Press Enter or Esc	to exit	input mode while keeping the filter
	     active.

	   - Press '/' to disable the filter.

       The filter only applies to the current directory.  When navigating away
       from the	current	directory, the filter is automatically disabled.

QUICK FIND
       Quick  Find  is used to quickly locate a	file within the	current	direc-
       tory.  When Quick Find is enabled, it appears above the	bottom	status
       bar,  and the program enters input mode.	 In this mode, you can perform
       the following actions:

	   - Enter a search string to match filenames.

	   - Enter '/' as the first character to navigate to the  root	direc-
       tory.

	   -  Press  Tab  or  '/'  to enter the	directory under	the cursor and
       clear
	     the search	string.

	   - Press the Left Arrow key to go to the parent directory.

	   - Use the Up	and Down Arrow keys to move the	cursor.

	   - Press Enter or Esc	to exit	Quick Find.

       Matching	is case-insensitive and	prioritizes matches at	the  beginning
       of filenames.  If no filename starts with the search string, it matches
       filenames containing the	string.	 Upon a	match, the cursor jumps	to the
       first matching file.

ADVANCED SEARCH
       Advanced	Search is an extension function	based on the find command.  It
       requires	two inputs:

	   1. Filename pattern:	This is	passed to the -name option of the find
	      command.	So remember to use wildcards when necessary. For exam-
       ple,
	      to search	for  files  containing	'lib'  in  their  name,	 enter
       '*lib*'
	      instead of just 'lib'. If	you do not want	to search by filename,
	      enter '*'	to match all files.

	   2.  Additional  search  options: Here, you can provide more options
       for
	      the find command,	such as	'-size +4k' to search for files	larger
	      than 4KB.	If no additional options are needed, leave this	field
	      blank and	press Enter.

       After both inputs are provided, the executed command will be:

	   find	./ input2 -name	"input1"

       The search results are sent back	to sff and listed in  the  fifth  tab,
       where you can further process them.

UNDO AND REDO
       sff supports undoing or redoing the last	file operation.	 Supported op-
       erations	include:

	   - Create new	files
	   - Copy-paste	(when none of the pasted files already exist)
	   - Cut-paste (when none of the pasted	files already exist)
	   - Rename
	   - Duplicate

       Undo/redo  actions  apply  across different tabs	and even different sff
       instances.  A file operation performed in one sff instance can  be  un-
       done or redone in another instance.

RUNNING	MODE
       Browse Mode:
       A  green	 reversed  'B'	is  displayed in the bottom-left corner	of the
       screen as an indicator.

       This can	be considered a	safe mode.  In this mode, extension  functions
       are disabled, and sff does not make any changes to the file system.

       The  program is forced into browse mode and cannot exit this mode until
       termination under the following conditions:

	   - When the -b option	is used	while running sff
	   - During initialization, if certain non-fatal errors	occur
	     (e.g., the	sff-extfunc file is missing).

       Sudo Mode:
       A red reversed 'S' is displayed in the bottom-left corner of the	screen
       as an indicator.

       When sff	is run as a regular user and switched to sudo mode,  the  fol-
       lowing operations are executed with superuser privileges:

	   - All extension functions
	   - File editing

       However,	all other operations are still performed by the	current	user.

       When  sff  is run as the	superuser, the program will always run in sudo
       mode until termination or can be	switched to browse mode.   All	opera-
       tions are performed by the superuser.

PLUGINS
       Plugins	are  shell scripts used	to extend functionality.  They are in-
       voked by	the extension script, which also sets their  keybindings.   By
       default,	   plugins   are   installed   in   /usr/lib/sff/plugins/   or
       /usr/local/lib/sff/plugins/.

       Detailed	information about a plugin should usually be provided as  com-
       ments  at the beginning of the script.  To view this information, refer
       directly	to the plugin file.

       If you wish to modify or	add your own plugins, it is recommended	to  do
       so  in  the  plugins directory within the user's	config directory.  For
       details on the user's config directory, see the EXTENSION  SCRIPT  sec-
       tion.   When the	extension script invokes a plugin, it searches for the
       plugin in the following locations in order and  uses  the  first	 match
       found:

	   1. The plugins directory in the user's config directory
	   2. The plugins directory where the currently	running	extension
	      script resides
	   3. /usr/local/lib/sff/plugins/
	   4. /usr/lib/sff/plugins/

ENVIRONMENT
       EDITOR:	The default text editor	used in	the program.  If not set, 'vi'
       is used.

       HOME: The home directory	used by	the program.  If not set, '/' is used.

AUTHORS
       Shi Yanling <sylphenix@outlook.com>

HOMEPAGE
       https://codeberg.org/sylphenix/sff

FreeBSD	ports 15.quarterly	August 30, 2025				SFF(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sff&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help