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

FreeBSD Manual Pages

  
 
  

home | help
CLIFM(1)			 Clifm Manual			      CLIFM(1)

NAME
       clifm - The Command Line	File Manager

SYNOPSIS
       clifm [OPTION]... [DIR]...

INDEX
       1. Getting help

       2. Description

       3. Parameters
	  . Positional parameters
	  . Options

       4. Commands

       5. File Filters (by filename, file type,	and MIME type)

       6. Keyboard shortcuts

       7. Theming

       8. Builtin expansions

       9. Tab completion

       10. File	opener (third-party openers are	supported)

       11. Shotgun, the	file previewer

       12.  Auto-suggestions  (including  a warning prompt for invalid command
       names)

       13. Shell functions

       14. Plugins

       15. Autocommands

       16. File	tags

       17. Virtual directories

       18. Note	on speed

       19. Kangaroo frecency algorithm

       20. Environment

       21. Security

       22. Miscellaneous notes

       23. Files

       24. Examples

1. GETTING HELP
       There are several ways to access	help in	clifm. Once  you  are  in  the
       program,	enter `?` or `help` for	some basic usage examples, or press F1
       to  access  this	manpage, F2 to go to the COMMANDS section of this man-
       page, or	F3 to jump to the KEYBOARD SHORTCUTS section.

       To get help about some specific topic, type `help <TAB>`	to get a  list
       of  available help topics. Choose the topic you want and	then press En-
       ter.

       For a list of available commands	along with  brief  descriptions,  type
       `cmd<TAB>`.

       You  can	 also access help for internal commands	using the -h or	--help
       flags. For example, to get help about the selection function, enter  `s
       -h` or `s --help`.

       A  convenient  way to obtain comprehensive information about clifm com-
       mands is	through	the ih action, which is	bound by default to the	inter-
       active help plugin (ihelp.sh). Enter `ih` to run	the plugin (note  that
       it  requires  fzf(1))  and  select  the	command	you wish to learn more
       about.

       For a quick introduction, please	refer to the EXAMPLES section  at  the
       end of this document.

2. DESCRIPTION
       Clifm  is  a  Command Line Interface File Manager. Its main feature and
       strength	lie in the fact	that all input and  interacion	are  conducted
       through	commands  typed	 directly into a prompt. In other words, clifm
       operates	as a Read-Eval-Print Loop (REPL), following this basic	struc-
       ture: Read (user	input via the command line), Evaluate/Execute the com-
       mand, Print the results,	Loop (repeat the process).

       Unlike  most  terminal  file managers out there,	indeed,	clifm replaces
       the traditional Text User Interface (TUI), often	referred to as	curses
       or  text-menu  based interface, with a straightforward command-line in-
       terface (REPL). This design allows it to	function not only  as  a  file
       manager,	but also as a shell extension. You can search for files, copy,
       rename,	remove them, while also	performing system tasks	such as	updat-
       ing or upgrading	your system, adding cron jobs, stopping	services,  and
       launching text editors like nano, vi, or	emacs.

       In  summary,  clifm  keeps the command line visible and accessible, en-
       hancing it with functionalities specifically tailored for file  manage-
       ment.

3. PARAMETERS
POSITIONAL PARAMETERS
       If you specify a	directory as the first non-option parameter, clifm
       will start in that directory. Subsequent	directory names	are used to
       initialize subsequent workspaces. For example, the command `clifm /etc
       ~/Downloads` instructs clifm to start in	the /etc directory (in the
       first workspace)	and to set the second workspace	to ~/Downloads.	Up to
       8 positional parameters are supported (further parameters are ignored).

       If no workspace is specified, clifm will	use the	first workspace. To
       start in	a specific workspace use the -w	option followed	by the work-
       space number. For instance, `clifm -w4 /etc ~/Downloads`	will start
       clifm in	the /etc directory within workspace 4, setting the workspace 5
       to ~/Downloads.

       If no positional	parameter is provided and the -w option	is not used,
       clifm will start	in the last visited directory (and in the last active
       workspace). You can disable this	behavior by using the --no-re-
       store-last-path command line switch (or by setting the RestoreLastPath
       option to false in the configuration file), in which case the current
       directory will be used as starting path and all workspaces will be un-
       set.

       To start	always in a specific directory,	disregarding the current di-
       rectory,	you can	use the	StartingPath option in the configuration file.

OPTIONS
       Note: If	compiled in POSIX mode,	the following list of options does not
       apply. In this case, run	`clifm -h` to get the actual list of options.
       (To make	sure run `clifm	-v`: if	compiled in POSIX mode the version
       number is followed by "-POSIX").

       -a, --show-hidden[=VAL]
	      Show  hidden files (filenames starting with '.').	Supported val-
	      ues are: first, last, true, and false. If	no value is specified,
	      it defaults to true.

       -A, --no-hidden
	      Do not show hidden files.

       -b, --bookmarks-file=FILE
	      Set an alternative bookmarks file.

       -c, --config-file=FILE
	      Set an alternative configuration file.

       -D, --config-dir=DIR
	      Set an alternative  configuration	 directory  (if	 configuration
	      files do not already exist, they will be created in DIR).

       -e, --no-eln
	      Do  not  display	Entry List Numbers (ELNs) to the left of file-
	      names (note that while ELNs are not printed, they	remain	acces-
	      sible and	can still be used as usual).

       -E, --eln-use-workspace-color
	      Color ELNs using the current workspace color.

       -f, --dirs-first
	      List directories first.

       -F, --no-dirs-first
	      Do not list directories first.

       -g, --pager
	      Enable Mas, the builtin pager for	file listing.

       -G, --no-pager
	      Disable the file pager.

       -h, --help
	      Print this help and exit.

       -H, --horizontal-list
	      List files horizontally (instead of vertically).

       -i, --no-case-sensitive
	      Ignore case distinctions when listing files.

       -I, --case-sensitive
	      Do not ignore case distinctions when listing files.

       -k, --keybindings-file=FILE
	      Set an alternative keybindings file.

       -l, --long-view
	      Print  file extended metadata next to filenames (long view). The
	      displayed	fields can be customized using --prop-fields  (or  the
	      PropFields  option  in  the  configuration  file).  Set a	custom
	      time/date	format with --time-style (or the TimeStyle  option  in
	      the configuration	file).

       -L, --follow-symlinks-long
	      When  in long view, display information for the files referenced
	      by symbolic links	instead	of the symbolic	links themselves.

       -m, --dirhist-map
	      Enable the directory history map to keep in view previous,  cur-
	      rent, and	next entries in	the directory history list.

       -o, --autols
	      Automatically  list  files  when	changing the current directory
	      with the cd command.

       -O, --no-autols
	      Do not automatically list	files when changing the	current	direc-
	      tory with	the cd command.

       -P, --profile=PROFILE
	      Use PROFILE as profile. If PROFILE does not exist,  it  will  be
	      created. The default profile is default.

       -r, --no-refresh-on-empty-line
	      Do  not refresh the current list of files	when pressing Enter on
	      an empty line.

       -s, --splash
	      Display the splash screen	at startup.

       -S, --stealth-mode
	      In stealth mode (also known as incognito or  private  mode),  no
	      trace  is	left on	the host system. No files are read or created,
	      and all settings revert to their default values.	However,  most
	      settings	can  still  be controlled via command line options and
	      dedicated	environment variables (see the ENVIRONMENT section be-
	      low). Additionally, refer	to the history command and  the	 --no-
	      history command line switch for more options.

       -t, --disk-usage-analyzer
	      Run  in  disk  usage  analyzer mode. This	is equivalent to using
	      --sort=size --long-view --full-dir-size --no-dirs-first. The re-
	      cursive size of the current directory will  be  displayed	 after
	      the list of files. You can toggle	this mode in place by pressing
	      Alt+Tab (or Ctrl+Alt+i).

       -T, --trash-dir=DIR
	      Set an alternative trash directory.

       -v, --version
	      Print version details and	exit.

       -w, --workspace=NUM
	      Start  in	workspace NUM. By default, clifm will recover the last
	      visited directory	for each workspace. You	can override this  be-
	      havior using positional parameters to start in workspace NUM and
	      in the specified directory (e.g.:	`clifm -w4 /etc`). Consult the
	      POSITIONAL PARAMETERS section above for more information.

       -x, --no-ext-cmds
	      Disallow the use of external (shell) commands.

       -y, --light-mode
	      Enable  the  light mode to speed up clifm	(see the NOTE ON SPEED
	      section below).

       -z, --sort=METHOD
	      Sort files by METHOD, where METHOD is one	of:  0	=  none,  1  =
	      name,  2 = size, 3 = atime, 4 = btime, 5 = ctime,	6 = mtime, 7 =
	      version, 8 =  extension, 9 = inode, 10 = owner, 11 = group, 12 =
	      blocks, 13 = links, or 14	= type.	Both numbers and names are ac-
	      cepted. For example, you can use --sort=9	or --sort=inode.

       --bell=TYPE
	      Set the terminal bell type, where	TYPE is	one of:	0 = none, 1  =
	      audible,	2 = visible (requires readline >= 8.1),	and 3 =	flash.
	      Defaults to 2 (visible), and, if not available, 0	 (none).  Only
	      numbers are allowed.

       --case-sens-dirjump
	      Do  not ignore case when consulting the jump database (via the j
	      command).

       --case-sens-path-comp
	      Enable case sensitive path completion.

       --cd-on-quit
	      Write the	last visited directory to $XDG_CONFIG_HOME/clifm/.last
	      for later	access by the corresponding shell function at  program
	      exit.  Consult the SHELL FUNCTIONS section below for more	infor-
	      mation.

       --color-scheme=NAME
	      Use the color scheme specified by	NAME.

       --color-links-as-target
	      Color symbolic links using the color of the target file (an  '@'
	      character	 is prepended to the filename to mark it as a symbolic
	      link).

       --cwd-in-title
	      Print the	current	working	directory in the terminal window title
	      (otherwise, only the program name	is printed).

       --data-dir=DIR
	      Load data	files, such as plugins,	 color	schemes,  and  default
	      configuration  files, from DIR (this is by default the installa-
	      tion directory, usually /usr/share/clifm).

       --desktop-notifications[=STYLE]
	      Enable desktop notifications. The	notification style can be  op-
	      tionally specified: kitty	(requires the Kitty terminal or	a ter-
	      minal  supporting	 the Kitty Notifications Protocol), system, or
	      false. If	STYLE is omitted, it defaults to system.  Enter	 `help
	      desktop-notifications` in	clifm for more information.

       --disk-usage
	      Show  disk  usage	 of the	filesystem where the current directory
	      resides, in the format FREE % (FREE/TOTAL) TYPE DEVICE.

       --full-dir-size
	      Display recursive	directory sizes	(long view only).

       --fuzzy-algo=VER
	      Fuzzy matching algorithm,	where VER is either 1 (faster, but not
	      Unicode aware), or 2 (slower, Unicode aware). Bear in mind  how-
	      ever  that  the  second algorithm	(default) will fallback	to the
	      first one	(because it is faster) whenever	the query string  con-
	      tains   only  ASCII  characters,	to  minimize  the  performance
	      penalty.

       --fuzzy-matching
	      Enable fuzzy matching for	filename/path completions and  sugges-
	      tions.

       --fzfpreview-hidden
	      Enable file previews for tab completion (fzf mode	only) with the
	      preview window hidden (toggle it by pressing Alt+p).

       --icons
	      Enable icons.

       --icons-use-file-color
	      Instead  of  a specific color, icons use the color of the	corre-
	      sponding filename. Useful	when building  custom  color  schemes,
	      this option implies --icons, and is effective only when compiled
	      with  support  for  icons-in-terminal  or	Nerdfonts. The default
	      build is compiled	with emoji-icons support, in which  case  this
	      option  is ignored, as Unicode icons have	their own builtin col-
	      ors.

       --int-vars
	      Allow the	use of internal	variables (e.g.: `VAR=/bin; cd $VAR`).

       --list-and-quit
	      List files and quit. Useful in conjunction with positional para-
	      meters (e.g.: `clifm --list-and-quit /etc`).  If	no  positional
	      parameter	is provided, the current directory is used instead.

       --ls
	      Short for	--list-and-quit.

       --lscolors
	      Read  file  colors  from the LS_COLORS environment variable (the
	      FreeBSD LSCOLORS format is also supported). Note that clifm-spe-
	      cific colors (like empty directories or inaccessible files) will
	      be disabled. Note	also that colors for  specific	filenames,  as
	      defined  in  LS_COLORS,  are not supported. For more information
	      about LS_COLORS, consult dircolors(1), or	 refer	to  the	 ls(1)
	      FreeBSD manpage for LSCOLORS.

       --max-dirhist
	      Maximum number of	visited	directories to remember.

       --max-files=NUM
	      List  only up to NUM files. Use -1 or unset to remove this limit
	      (default). See the mf command for	a more detailed	description.

       --mimelist-file=FILE
	      Set FILE as Lira's configuration file (see the FILE OPENER  sec-
	      tion below for more information).

       --mnt-udisks2
	      Use udisks2(1) instead of	udevil(1) (default) for	the media com-
	      mand.

       --no-bold
	      Disable bold colors (applies to all color	schemes).

       --no-cd-auto
	      By  default,  clifm  changes  directories	by just	entering their
	      filenames. This option forces the	use of the cd command.

       --no-classify
	      By default, clifm	appends	a file	type  indicator	 character  to
	      filenames	when running without colors (see the --no-color	option
	      below)  and  a  directory	 indicator (along with a file counter)
	      when running with	colors.	Classification characters are as  fol-
	      lows:

	       /n: directory (n	= file counter)
	       @:  symbolic link
	       !:  broken symbolic link
	       |:  FIFO/pipe
	       =:  socket
	       *:  executable file
	       +:  block device
	       -:  character device
	       ?:  unknown file	type

	      Use  this	 option	to disable file	type classification. Note that
	      this option also disables	the file counter.

       --no-clear-screen
	      Do not clear the screen before listing files.

       --no-color
	      Disable colors.

       --no-columns
	      Disable columned file listing (use a single column).

       --no-file-cap
	      Do not check file	capabilities when listing files	(only meaning-
	      ful for performance reasons).

       --no-file-ext
	      Do not check file	extensions (mostly used	to  colorize  specific
	      filenames) when listing files.

       --no-file-counter
	      Disable  the file	counter	for directories	(speeding up the list-
	      ing process: counting files in directories is  particularly  ex-
	      pensive).

       --no-follow-symlinks
	      Do  not follow symbolic links when listing files (overrides both
	      --follow-symlinks-long and --color-links-as-target).

       --no-fzfpreview
	      Disable file previews for	tab completion (fzf mode only).

       --no-highlight
	      Disable syntax highlighting (to customize	 highlighting  colors,
	      see the COLOR CODES section below).

       --no-history
	      Do  not write commands to	the history file (see also the HistIg-
	      nore option in the configuration file).

       --no-open-auto
	      By default, clifm	opens files (using the default associated  ap-
	      plication)  by just entering their filenames. Use	this option to
	      force the	use of the open	command. Consult the mime command  and
	      the FILE OPENER section for more information about default asso-
	      ciated applications.

       --no-refresh-on-resize
	      Do  not  attempt to refresh the list of files when the window is
	      resized.

       --no-restore-last-path
	      By default, clifm	saves the  last	 visited  directory  for  each
	      workspace	 to restore it in the next session. Use	this option to
	      disable this behavior.

       --no-suggestions
	      Disable the auto-suggestions system.

       --no-tips
	      Do not display startup tips.

       --no-truncate-names
	      Do not truncate filenames	(see the MaxFilenameLen	option in  the
	      configuration file).

       --no-unicode
	      Do not use Unicode decorations.

       --no-warning-prompt
	      Disable  the  warning  prompt (used to highlight invalid command
	      names).

       --no-welcome-message
	      Disable the welcome message.

       --only-dirs
	      List directories only.

       --open=FILE
	      Run as a standalone file opener: open FILE and exit, where  FILE
	      can  be a	regular	file or	a directory, using either standard no-
	      tation (/dir/file), the file URI scheme (file:///dir/file), or a
	      URL (www.domain or https://domain).

       --opener=APPLICATION
	      Use   APPLICATION	  (e.g.:   rifle   or	xdg-open)   as	  file
	      opener/launcher (instead of Lira,	clifm's	default	opener).

       --pager-view=MODE
	      List files in the	pager according	to MODE. Supported values are:
	      auto  (use the current listing mode - this is the	default), long
	      (list files in long view), and short (list files in short	view).

       --physical-size
	      Display physical file sizes (device usage)  instead  of  logical
	      sizes (apparent size).

       --preview=FILE
	      Display  a  preview  of FILE (via	Shotgun) and exit. Use --shot-
	      gun-file to set an alternative configuration file.  Consult  the
	      SHOTGUN section below for	more information.

       --print-sel
	      Print  the list of selected files	after the file list. The maxi-
	      mum number of selected files to be printed can be	specified  us-
	      ing  the	MaxPrintSelfiles  option in the	configuration file (by
	      default, this option is set to 0 (auto), meaning it  will	 never
	      exceed half the terminal height).

       --prop-fields=FORMAT
	      Set  fields to be	displayed in long view.	For information	on how
	      to construct this	format string consult the PropFields option in
	      the configuration	file.

       --ptime-style=STYLE
	      Time/date	  style	  used	 by   the   p/pp   command   and   the
	      --stat/--stat-full  command line switches. Available styles: de-
	      fault, iso, long-iso, full-iso, full-iso-nano, and +FORMAT (FOR-
	      MAT is interpreted like in strftime(3). Nano-second precision is
	      available	via the	%N modifier, like in date(1)).

       --readonly
	      Run in read-only mode (internal  commands	 able  to  modify  the
	      filesystem  are  disabled).  Disabled  commands are: ac, ad, bb,
	      bl/bleach, br/bulk, c, dup, l, le, m, md,	n/new, oc, paste,  pc,
	      r,  rr, t/trash, tag, te,	u/untrash, and vv, plus	the shell com-
	      mands cp,	rm, mv,	ln, mkdir, rmdir, link,	and unlink.

       --report-cwd
	      Report the current directory to the underlying  terminal	(using
	      the OSC-7	escape sequence, not supported by all terminals).

       --rl-vi-mode
	      Set  readline  to	 vi  editing  mode  (defaults to emacs editing
	      mode).

       --secure-cmds
	      Sanitize commands	passed to the OS to mitigate command injection
	      attacks (--secure-env is implied). Consult the SECURITY  section
	      below for	more information.

       --secure-env
	      Run  clifm  in  a	secure environment (regular mode). Consult the
	      SECURITY section below.

       --secure-env-full
	      Run clifm	in a secure environment	(full mode). Consult the SECU-
	      RITY section below.

       --sel-file=FILE
	      Set FILE as the selections file.

       --share-selbox
	      By default, each user profile has	a private Selection  Box.  Use
	      this  option  to	make the Selection Box common to all user pro-
	      files.

       --shotgun-file=FILE
	      Set FILE as the shotgun configuration file. See the SHOTGUN sec-
	      tion below for more information.

       --si
	      Display file sizes in SI units (powers of	1000) instead  of  IEC
	      units (powers of 1024).

       --sort-reverse
	      Sort files in reverse order (e.g.: z-a instead of	a-z).

       --stat FILE...
	      Run the p	command	on FILE(s) and exit. This must be the last op-
	      tion  on	the  command  line.  Use --ptime-style to set a	custom
	      date/time	format.

       --stat-full FILE...
	      Same as --stat, but it runs the pp command  (instead  of	p)  on
	      FILE(s).

       --tabmode=MODE
	      Set  tab	completion mode. Available modes: fzf, fnf, smenu, and
	      standard.

       --time-style=STYLE
	      Time/date	style used in long view.  Available  styles:  default,
	      relative,	 iso,  long-iso,  full-iso,  +FORMAT (FORMAT is	inter-
	      preted like in strftime(3)).

       --trash-as-rm
	      Make the r command move files to the trash instead  of  removing
	      them.

       --unicode
	      By  default,  Unicode decorations	are used if Unicode support is
	      detected for the running terminal. If no	support	 is  detected,
	      you can use this option to force the use of Unicode decorations.

       --virtual-dir=PATH
	      Use PATH as clifm's virtual directory.

       --virtual-dir-full-paths
	      Print filenames in virtual directories as	absolute paths instead
	      of just basenames.

       --vt100
	      Run in VT100 compatibility mode (use this	option if running on a
	      really ancient terminal emulator).

       Options precedence order: 1) command line flags;	2) configuration file;
       3) default values.

4. COMMANDS
       Help  for all commands listed here can be accessed via the -h or	--help
       options.	For example, use `p --help` to get help	about  the  properties
       function.

       Note  1:	 ELN  =	Entry List Number. For example,	in the line "12	choco-
       latebox"	(when listing files), 12 is the	ELN corresponding to the  file
       named "chocolatebox". The slash followed	by a number (/xx) after	direc-
       tories  and  symbolic links to directories (the file counter) indicates
       the number of files in the corresponding	directory, excluding self  and
       parent directories ("." and ".."	respectively).

       Note  2:	In case	of ELN-filename	conflict, the backslash	can be used to
       prevent ELN expansion. For example, if there are	at least two files and
       one of them is named 2, clifm cannot determine in advance if  the  com-
       mand  refers to the ELN 2 or the	filename 2. To specify the ELN,	simply
       write the ELN number (e.g. `s 2`). To refer to the filename, escape  it
       using the backlash character: `s	\2`.

       Note 3: Clifm supports fused parameters for internal commands taking an
       ELN or range of ELNs as parameters. Much	like short options for command
       line programs, you can omit the space between internal commands and the
       corresponding ELN passed	as argument. For example, you can write	CMDELN
       instead of CMD ELN. Thus, `o12` or `s1-5` can be	used instead of	`o 12`
       and  `s 1-5,  respectively.  Be aware that omitting the space character
       will disable tab	completion and suggestions for ELNs.  If  there	 is  a
       file  named  o12	 (more generally, CMDELN), and if you want to refer to
       this file instead of a clifm command, escape the	 filename  to  prevent
       the split: `\o12`.

       FILE/DIR
	      If  the autocd and/or auto-open functions	are enabled (default),
	      open FILE	or change directory to DIR.  In	 other	words,	`FILE`
	      amounts  to  `open FILE`	(or  `o	FILE`),	and `DIR` to `cd DIR`.
	      ELNs, of course, are allowed. For	example: `12`.

       /PATTERN	[-FILETYPE] [-x] [DIR]
	      This is the quick	search function. Type `/` followed by  a  glob
	      or  (extended)  regular  expression,  and	 clifm	will  list all
	      matches in the current directory.	For example, both `/*.pdf` and
	      `/.pdf$` expressions will	list all PDF files in the current  di-
	      rectory,	the  former  using wildcards, and the second a regular
	      expression.

	      You can list previously used search patterns using the TAB  key:
	      `/*<TAB>`.

	      Note  1:	By  default, the search	function attempts to resolve a
	      pattern first as glob, and then, if no matches are found,	 as  a
	      regular  expression. This	behavior can be	customizad in the con-
	      figuration file, using the SearchStrategy	option.

	      Note 2: If no further parameter is provided,  but	 only  a  glob
	      pattern  (wildcards), you	can expand the pattern into the	corre-
	      sponding matches by hitting the TAB key. For  example,  to  list
	      all C files in the current directory: `/*.c<TAB>`.

	      Note  3: Expressions containing no pattern metacharacter are au-
	      tomatically transformed into a glob/regular expression  (depend-
	      ing  on  the  value  of the SearchStrategy option). For example,
	      `/test` becomes `*test*` or `/.*test.*`.

	      1. Case sensitivity

	      By default, regular expressions are case insensitive  (glob  ex-
	      pressions, by contrast, are always case sensitive). However, you
	      can  enable  case	 sensitive  search  by	setting	the CaseSensi-
	      tiveSearch option	to true	in the configuration file.

	      2. Destination directory

	      To search	for files in any directory other than the current  di-
	      rectory,	specify	 the  directory	 name  as  a further parameter
	      (DIR). For example, enter	`/^A 7`	to search for all files	start-
	      ing with 'A' in the directory corresponding to the ELN 7.

	      3. File type filter

	      The result of the	search can be further filtered by specifying a
	      filter type: -b, -c, -d, -f, -l, -p, -s, -O, and -P  (block  de-
	      vice,  character device, directory, regular file,	symbolic link,
	      FIFO/pipe, socket, door (Solaris), and  port  (Solaris)  respec-
	      tively. For example, `/[.-].*d$ -d Documents/` will list all di-
	      rectories	 containing a dot or a dash and	ending with 'd'	in the
	      directory	named Documents.

	      4. Invert	matching

	      Prepend the exclamation mark (!) to  invert  the	meaning	 of  a
	      given  search  pattern.  For example: `!.*s$ -d /etc` will match
	      all directories in /etc not ending with 's', just	as `!D*`  will
	      match all	files in the current directory not starting with 'D'.

	      5. Recursive search

	      To perform a recursive search use	the -x parameter, and, option-
	      ally, a search path (DIR)	(file type filter is not allowed). The
	      search will be performed using find(1) as	follows: find DIR MODE
	      PATTERN.	If  no search path is provided,	the search is executed
	      starting in the current directory. Otherwise, the	search	starts
	      in DIR. MODE is one of:

	       -name:  if  SearchStrategy  is  not  regex-only	and CaseSensi-
	      tiveSearch is set	to true

	       -iname: if SearchStrategy  is  not  regex-only  and  CaseSensi-
	      tiveSearch is set	to false

	       -regex: if SearchStrategy is regex-only and CaseSensitiveSearch
	      is set to	true

	       -iregex:	  if   SearchStrategy  is  regex-only  and  CaseSensi-
	      tiveSearch is set	to false

       ;[CMD], :[CMD]
	      If CMD is	not specified, run the system shell in the current di-
	      rectory. If CMD is specified, skip all clifm expansions (see the
	      BUILT-IN EXPANSIONS section below)  and  run  the	 input	string
	      (CMD)  as	is via the default system shell	(consult the MISCELLA-
	      NEOUS NOTES section for information on how  shell	 commands  are
	      executed).

       ac, ad FILE...
	      Archive/compress	and dearchive/decompress one or	multiple files
	      and/or directories.

	      The archiver function brings two modes: ac, to generate archives
	      or compressed files, and ad, to decompress or  dearchive	files,
	      either  just  listing,  extracting,  recompressing,  or mounting
	      their content. In	this latter case, the mountpoint used automat-
	      ically is	$HOME/.config/clifm/PROFILE/mounts/ARCHIVE_NAME.

	      Example: `ac sel`, `ac 4-25 myfile`, or `ad *.tar.gz`.

	      Multiple archive/compression formats  are	 supported,  including
	      Zstandard. Note that when	it comes to ISO	9660 files only	a sin-
	      gle file is supported.

	      The archive mount	function for non ISO files depends on archive-
	      mount,  while  the remaining functions depend on atool and other
	      third-party utilities for	achieve	formats	support, for  example,
	      p7zip.  p7zip  is	also used to manage most decompressing options
	      for ISO 9660 files, except for mount, in which case mount(8)  is
	      used. Creation of	ISO files is done via genisoimage(1). For more
	      information  consult  atool(1),  archivemount(1),	 zstd(1),  and
	      7z(1).

       acd, autocd [on | off | status]
	      Toggle the autocd	function. If  set  to  on,  `DIR`  amounts  to
	      `cd DIR`.

       actions [list | edit [APP]]
	      To  list available actions (or plugins) use the list subcommand.
	      Note that, since list is the default action, it can be omitted.

	      Use the edit subcommand to add, remove or	modify custom  actions
	      (using  APP  if  specified or the	default	associated application
	      for text files otherwise).

	      The aim of this function is to allow the user to easily add cus-
	      tom commands and functions to clifm. In other words, the actions
	      function is a plugins capability.

	      This is the general procedure: a)	edit the actions file (by run-
	      ning `actions edit`) and bind a custom action name  to  an  exe-
	      cutable file (written in any language you	want, be it a shell or
	      Python  script,  a C program or whatever you like). For example,
	      "myaction=myscript.sh". b) Drop the corresponding	script (in our
	      example,	myscript.sh)  into  the	 plugins  directory,  usually,
	      ~/.config/clifm/plugins  (see  the FILES section below). 3) Call
	      the script using the custom action name defined before as	if  it
	      were  any	other command: run `myaction`, and myscript.sh will be
	      executed.

	      Note that	all arguments passed to	the action command  (myaction)
	      will  be	passed to the script or	program	as well	(myscript.sh),
	      which is executed	via the	system shell  (consult	the  MISCELLA-
	      NEOUS  NOTES  section  for information on	how shell commands are
	      executed).

	      To assist	the user when writing plugins, clifm's state  informa-
	      tion  is	exported via environment variables while running plug-
	      ins. For example,	CLIFM_LONG_VIEW	is set to 1 if currently  run-
	      ning  in long view (see the ENVIRONMENT section for the complete
	      list of exported values).

	      The plugins bundled with clifm (take a look at the  plugins  di-
	      rectory) can be used as a	starting point to create new plugins.

       alias [import FILE | ls,	list | NAME]
	      With  no	argument  (or  with ls,list parameters), it prints the
	      list of available	aliases. To get	the description	of a  specific
	      alias  enter  `alias` followed by	the alias name.	To write a new
	      alias simply enter edit (or press	F10) to	open the configuration
	      file and add a line like this: "alias name='command args...'" or
	      "alias name='directory'".

	      To import	aliases	from a file, provided it contains  aliases  in
	      the  specified  form  (i.e. the POSIX syntax for the alias shell
	      command),	use the	import	parameter.  Aliases  conflicting  with
	      some of the internal commands will not be	imported.

	      However,	a  neat	usage for the alias function is	not so much to
	      bind short keys to commands, but to files	and  directories  vis-
	      ited  regularly.	In  this  way,	it is possible to bind as many
	      files or directories,  no	 matter	 how  deep  they  are  in  the
	      filesystem,  to  very short strings, even	single characters. For
	      example, "alias w='/some/file/deep/in/the/filesystem'". Now,  no
	      matter  where you	are, you can enter `w`,	provided autocd	and/or
	      auto-open	function is enabled, to	access the file	 or  directory
	      you want.	Theoretically at least,	this procedure can be repeated
	      until the	system memory is exhausted.

	      To create	multiple aliases for files at once, this is the	recom-
	      mended procedure:	1) Select all files you	want to	alias with the
	      sel  command:  `s	file1 file2 file3 ...`.	2) Export the selected
	      files into a temporary file running `exp sel`; 3)	Edit this file
	      to contain only valid alias lines:

	       alias a1='file1'
	       alias b1='file2'
	       alias c1='file3'

	      Note: Make sure alias names do not conflict with other commands,
	      either internal or external. To bypass the conflicts check, per-
	      formed automatically by the `alias import` command, you can edit
	      the aliases file manually	(F10).

	      4) Finally, import this file with	the alias command:  `alias im-
	      port tmp_file`.  Now you can access any of these files by	enter-
	      ing just a few characters: `a1`, `b1`, and `c1`.

       auto [list | none | unset | OPTION=VALUE...]
	      Set a temporary autocommand for the current directory.

	      Unlike permanent autocommands, defined in	the configuration file
	      via the autocmd keyword (see the	AUTOCOMMANDS  section  below),
	      options set via the auto command are temporary, i.e., valid only
	      for the current directory	and the	current	session.

	      Options set via this command take	precedence over	both permament
	      autocommands  and	 regular  options  (set	either via the command
	      line or the configuration	file).

	      Examples

	      List available autocommands
		auto list

	      List files in the	current	directory in long view
		auto lv=1

	      List only	PDF files, set the color  scheme  to  nord,  and  sort
	      files by size
		auto ft=.*.pdf$,cs=nord,st=size

	      The  same	 list  of options can be specified sequentially	(i.e.,
	      previous options are preserved)
		auto ft=.*.pdf$
		auto cs=nord
		auto st=size

	      Unset the	files filter and the color scheme, and change sort  to
	      blocks
		auto ft=,cs=,st=blocks

	      Unset  all temporary autocommands	previously set for the current
	      directory
		auto unset

	      Reload the current directory ignoring all	autocommands  (includ-
	      ing permanent autocommands)
		auto none

	      For  the list of available option	codes consult the AUTOCOMMANDS
	      section or enter `help autocommands`.

       ao, auto-open [on | off | status]
	      Toggle the auto-open function. If	set to on, `FILE`  amounts  to
	      `open FILE`.

       b, back [h, hist	| clear	| !ELN]
	      Unlike  `cd ..`,	which  changes	to the parent directory	of the
	      current directory, this command (with no	argument)  changes  to
	      the  previously  visited	directory.  You	 can also use Alt+j or
	      Shift-Left.

	      Clifm keeps a record of all visited directories  (to  prevent  a
	      directory	from being added to the	directory history list use the
	      DirhistIgnore  option  in	 the main configuration	file). You can
	      see this list by typing `b hist` or `b h`, and  you  can	access
	      any element in this list by simply passing the corresponding ELN
	      in  this list (preceded by an exclamation	mark) to the back com-
	      mand. Example:
		      :) > ~ $ bh
		      1	/home/user
		      2	/etc
		      3	/proc
		      :) > ~ $ b !3
		      :) > /proc $

	      Note: The	highlighted line (by default printed in	bold cyan) in-
	      dicates the current position of the back function	in the	direc-
	      tory history list.

	      Finally,	you  can  also	clear  this  history  list by entering
	      `b clear`.

	      The best way of navigating the directory history list,  however,
	      is  using	 the  directory	jumper function	(invoked by the	j com-
	      mand). You can also take a look at the dh	command.

	      Use the f	(or forth) command to move forward, instead  of	 back-
	      ward, in the directory history list.

       bb, bleach FILE...
	      Bleach   is  a  builtin  filenames  sanitizer  (based  on	 detox
	      [https://github.com/dharple/detox]),  whose  aim	is  to	rename
	      filenames	using only ASCII characters.

	      Bleach	sanitizes    filenames	  either   by	removing   ex-
	      tended-ASCII/Unicode  characters	without	 an   ASCII   alterna-
	      tive/similar  character, or by translating these characters into
	      an alternative ASCII character based on familiarity/similarity.

	      These following simple rules are used to compose sanitized file-
	      names:
		  - NUL	(\0) and slash (/) characters  are  completely	disal-
	      lowed
		  -  Only characters from the Portable Filename	Characters Set
	      (a-zA-Z0-9._-) are allowed
		  - { [	( ) ] }	are replaced by	a dash (-). Everything else is
	      replaced by an underscore	(_)
		  - Unicode characters are translated, whenever	possible, into
	      an ASCII replacement. Otherwise, they are	just ignored. For  ex-
	      ample, an	upper case A with diacritic (accent, umlaut, diaresis,
	      and  so  on) will	be replaced by an ASCII	A, but the smiley face
	      emoji will be simply ignored. A few special signs	will be	trans-
	      lated into text, for instance, the pound sign will  be  replaced
	      by "_pound_" and the Euro	symbol by "EUR". Translations are made
	      via  a  translation table	(see the cleaner_table.h in the	source
	      code).
		  - Filenames never start with a dash (-)
		  - Files named	. and .. are not allowed
		  - Append .bleach to single character filenames
		  - Do not let a replacement filename start with a  dot	 (hid-
	      den) if the original does	not
		  - Max	filename length	is NAME_MAX (usually 255)

	      Modified	filenames will be listed on the	screen asking the user
	      for confirmation,	allowing besides to edit (by pressing 'e') the
	      list of modified filenames via a text editor.

	      If the replacement filename already exists, a dash and a	number
	      (starting	from 1)	will be	appended. E.g.:	file-3.

       bd [NAME]
	      bd  is the backdir function: it takes you	back to	the parent di-
	      rectory matching NAME.

	      With no arguments, bd lists all parent directories  relative  to
	      the  current  directory,	allowing  the user to select an	entry.
	      Otherwise, it checks the absolute	current	directory against  the
	      provided query string (NAME): if only one	match is found,	it au-
	      tomatically  changes  to this directory; if multiple matches are
	      found, the list of matches is presented to the user in a	selec-
	      tion  menu. If NAME is a directory name, bd just changes to this
	      directory, be it a parent	of the current directory or not.

	      Tab completion and suggestions are available for this function.

	      Example:

	      Provided	the  current  directory	 is   /home/user/git/reposito-
	      ries/lambda,  entering  `bd  git`	 will  take you	immediately to
	      /home/user/git.

	      Note that	there is no need to type the entire directory name; if
	      the query	is unambiguous,	only a few characters, and  even  just
	      one,  suffices  to match the appropriate directory. In our exam-
	      ple, `bd g` is enough to take you	to /home/user/git, just	as `bd
	      h` will take you to /home.

	      The query	string can match any part of  a	 directory  name:  `bd
	      er`,  for	 instance, will	take you to /home/user,	since it is an
	      unambiguous query.

       bl FILE...
	      Create symbolic links (in	the current directory) for each	speci-
	      fied file. For example, to create	symbolic links in  the	direc-
	      tory dir for all PNG files in the	current	directory, issue these
	      commands:	`s *.png`, `cd dir`, and then `bl sel`.

       bm, bookmarks [a, add FILENAME NAME [SHORTCUT] |	d, del NAME | e, edit
       [APP] | NAME, SHORTCUT]
	      Bookmarks	can be managed either from the bookmark	manager	screen
	      or from the command line.

	      1. The bookmark manager screen

	      To  access the bookmark manager screen enter bm. Here you	can cd
	      to the desired bookmark by entering either ELN or	filename (reg-
	      ular files can be	bookmarked as well). In	this  screen  you  can
	      also add,	remove,	or edit	your bookmarks by entering 'e' to edit
	      the  bookmarks  file  (which is simply a list of lines with this
	      format: NAME:PATH. E.g.: "docs:/home/user/documents"). Make your
	      changes, save, and exit.

	      2. The command line
	      +-------------------------+----------------------------------------------+
	      |	Command			| Description				       |
	      +-------------------------+----------------------------------------------+
	      |	bm add /media/mount mnt	| Bookmark the /media/mount directory as "mnt" |
	      +-------------------------+----------------------------------------------+
	      |	bm mnt			| Change to/open the bookmark named "mnt"      |
	      +-------------------------+----------------------------------------------+
	      |	bm del mnt		| Delete the bookmark named "mnt"	       |
	      +-------------------------+----------------------------------------------+
	      |	bm edit			| Edit your bookmarks			       |
	      +-------------------------+----------------------------------------------+

	      A	handy use for the bookmarks function is	 to  create  bookmarks
	      using short names, which will be later easily accessible via tab
	      completion.

	      The b: prefix

	      The  b:  prefix  is  used	 as a way to quickly access/operate on
	      bookmarks. A few examples:
	      +---------------+--------------------------------------------------------------+
	      |	Command	      |	Description						     |
	      +---------------+--------------------------------------------------------------+
	      |	b:<TAB>	      |	List available bookmarks				     |
	      +---------------+--------------------------------------------------------------+
	      |	b:net	      |	Change to the bookmark named "net" (1)			     |
	      +---------------+--------------------------------------------------------------+
	      |	p b:bm1	b:bm2 |	Print file properties of the bookmarks named "bm1" and "bm2" |
	      +---------------+--------------------------------------------------------------+
	      |	s b:	      |	Select all bookmarks at	once				     |
	      +---------------+--------------------------------------------------------------+

	       (1) If your are not sure	about where a bookmark points to, type
	      `b:NAME<TAB>`.

       br, bulk	FILE...	[:EDITOR]
	      Bulk rename FILE(s).

	      Each filename will be copied to a	temporary file,	which will  be
	      opened via EDITOR	(default associated application	for plain text
	      files if omitted), letting the user modify it. Once the file has
	      been  modified  and saved, the modified names are	printed	on the
	      screen and the user is asked for confirmation.

	      This builtin bulk	rename function	will not deal with  deletions,
	      replacements, filename conflicts and the like. For a smarter al-
	      ternative	use qmv(1).

       c, m, md, r
	      Short  for the following shell commands respectively: `cp	-iRp`,
	      `mv -i`, `mkdir -p`, and `rm` (for files)	or `rm -r` (for	direc-
	      tories).

	      By default, the c, m, and	r commands ask for confirmation	before
	      operations. Since	this might sometimes be	quite intrusive	 (spe-
	      cially  when operating on	large number of	files),	it is possible
	      to turn interactivity off	in two different ways:

		a) For the current command only: via the -f,  --force  switch.
	      For example: `c -f sel`, `m -f sel`, or `r -f *`.

		b)  Permanently.  Use the cpCmd, mvCmd,	and rmForce options in
	      the configuration	file to	permanently set	any of these  commands
	      to non-interactive mode.

	      To  use these commands without any of these options, or with any
	      other option you want, use the appropriate  shell	 command,  for
	      instance,	 cp  instead  of  c.  Of  course,  you can also	create
	      aliases to use your  preferred  commands,	 for  example,	"c='cp
	      -adp'". Consult the alias	command	above for more information.

	      The l command allows the use of the e, edit option to modify the
	      destination  of  a  symbolic  link. For example: `l edit 12` (or
	      `le 12`)	to relink the symbolic link corresponding to the  file
	      whose ELN	is 12.

	      When using the sel keyword and no	destination is provided, c and
	      m	will copy/move selected	files to the current directory.

	      Whenever	sel  is	 not  used, but	just a source filename (and no
	      destination is provided),	the m command behaves  much  like  the
	      imv(1) shell command (from the 'renameutils' package), providing
	      an interactive renaming function:	it prompts the user to enter a
	      new  name	using the source filename as base, so that it does not
	      need to be typed twice. For this alternative  prompt,  only  tab
	      completion for filenames is available.

	      Clifm  supports  advcp(1), wcp, and rsync(1) to copy files (they
	      include a	progress bar). To use them instead of  cp(1)  set  the
	      corresponding option (cpCmd) in the configuration	file. If advcp
	      is selected, the command used is `advcp -giRp` (or `advcp	-gRp`,
	      for   non-interactive   mode).   If   rsync,   the   command  is
	      `rsync -avP`. wcp	takes no argument.

	      advmv(1) is also supported to move files (to add a progress  bar
	      to  the move command). Use the mvCmd option in the configuration
	      file to choose this alternative implementation of	 mv.  In  this
	      case,  the command used is `advmv	-gi` (or advmv -g` for non-in-
	      teractive	mode).

       cd [DIR]
	      Change the current working directory.

	      Directory	check order:
		1. If no argument is provided, change to  the  home  directory
	      ($HOME, or, if not set, the sixth	field of the entry correspond-
	      ing to the current user in /etc/passwd)
		2.  If	the  argument is an absolute path (begins with a slash
	      character), or the first component is dot	(.) or	dot-dot	 (..),
	      convert  to canonical form (via realpath(3)) and,	if a valid di-
	      rectory, change to this directory.
		3. Check the CDPATH environment	variable and  append  /DIR  to
	      each  of the paths specified here. If the	result of the concate-
	      nation is	a valid	directory, change to it.
		4. Check directories in	the current working  directory.	 If  a
	      matching directory is found, change to it.

	      You  can	use  either ELNs or a string to	indicate the directory
	      you want.	E.g.: `cd 12` or `cd ~/media`. If  autocd  is  enabled
	      (default),  `cd 12`  and `cd ~/media` can	be written as `12` and
	      `~/media`	respectively as	well.

	      Unlike the shell cd command, clifm's builtin cd command not only
	      changes the current directory, but also lists its	content	 (pro-
	      vided  the  option  AutoLs is enabled, which is the default) ac-
	      cording to a comprehensive list of color codes. By default,  the
	      output	of    cd    is	 much	like   this   shell   command:
	      `cd DIR && ls --color=auto --group-directories-first`.

	      Automatic	file listing can be disabled by	either setting	AutoLs
	      to  false	in the configuration file or running clifm with	the -O
	      or --no-autols option.

       cl, columns [on | off]
	      Toggle columned file listing.

       cmd, commands
	      Show this	list of	commands.

	      An alternative way of getting information	about  clifm  commands
	      is  via the interactive help plugin (depends on fzf), by default
	      bound to the ih action name.

       colors
	      Preview the current color	scheme (same as	`cs preview`).

       config [edit [APP] | reset | reload | dump]
	      Manage the main configuration file.

	      To edit the configuration	file use the edit  subcommand.	If  an
	      application  is  specified (`config edit APP`), APP will be used
	      to open the file (otherwise, the default associated program will
	      be used).	Edit settings to your liking, save, and	quit the  edi-
	      tor  (changes  are automatically applied). Note that, since edit
	      is the default action, it	can be omitted.	Enter just `config` to
	      open the configuration file, or `config APP` to  open  it	 using
	      APP.

	      Use  the reload subcommand to reload the main configuration file
	      and update settings accordingly.

	      Use the reset subcommand to generate a fresh configuration  file
	      and  create  a  backup copy of the old one (named	clifmrc.YYYYM-
	      MDD@HH:MM:SS).

	      The dump subcommand prints the list of settings (as  defined  in
	      the  main	 configuration	file)  with their current value. Those
	      differing	from the default values	are highlighted, and  the  de-
	      fault  value for the corresponding option	is displayed in	brack-
	      ets.

       cs, colorschemes	[edit [APP] | n, name |	p, preview | check-ext | NAME]
	      With no arguments, list available	color schemes (use  `cs	 name`
	      to print the current color scheme	name).

	      To  get  a  preview  of the current color	scheme use the preview
	      subcommand: `cs preview`.

	      Use the check-ext	subcommand to check for	 file  extension  con-
	      flicts: `cs check-ext`.

	      Use  the	edit subcommand	to open/edit the configuration file of
	      the current color	scheme (open with APP if  specified,  or  with
	      the default associated application otherwise).

	      To  switch  color	 schemes,  specify  the	color scheme name: `cs
	      NAME`. (Use the TAB key to list  available  color	 schemes:  `cs
	      <TAB>`).

       d, dup FILE...
	      Duplicate	files passed as	parameters, either directories or reg-
	      ular  files. The user will be asked for a	destination directory.
	      Duplicated filenames are generated by appending ".copy"  to  the
	      basename	of  each  source  file.	For example: `d	/my/file` will
	      copy  /my/file  to  the  directory  selected  by	the  user   as
	      file.copy.  If file.copy already exists, an extra	suffix will be
	      added as follows:	file.copy-N, where N  is  a  positive  integer
	      (starting	at 1).

	      If  rsync(1)  is found, it will be used as follows: `rsync -acz-
	      vAXHS --progress`. Else, cp(1) will be used: `cp -a`.

       dh [STRING] [PATH] [!ELN]
	      With no parameters, it prints the	 directory  history  list.  To
	      filter this list just pass a query string: only entries matching
	      this  query  will	be displayed. In both cases, tab completion is
	      available. For example: `dh down<TAB>` will list only those  en-
	      tries matching down (fuzzily, if fuzzy-matching is enabled).

	      To  access  a specific entry, you	can pass the entry number pre-
	      ceded by an exclamation mark. For	example, if you	want the entry
	      number 12, enter `dh !12`	to change to the corresponding	direc-
	      tory.

	      Finally,	if  an	absolute path is passed	as first parameter, dh
	      works just as the	cd command.

	      Note: Take a look	at the j command as well. Both	commands  deal
	      with  the	list of	visited	directories, but in slightly different
	      ways: while dh deals with	the list of the	 last  MaxDirhist  en-
	      tries (see the configuration file), the j	command	deals with the
	      ranked list of visited directories.

       ds, desel [*, a,	all | FILE]...
	      Deselect one or more files.

	      If  no  parameter	is passed, the user is prompted	to either mark
	      selected files to	be deselected or to edit the  selections  file
	      (entering	'e') via a text	editor to manually deselect files.

	      Use  *, a	or all to deselect all selected	entries	at once. E.g.:
	      `ds *`.

	      You can also pass	the filename(s)	(or ELNs) to be	deselected  as
	      a	parameter. For example:	`ds myfile 24`.

	      Tab  completion  is  available for this command: `ds <TAB>` will
	      list all currently selected files.

       exp [FILE]...
	      With no argument,	export the list	of files in the	current	direc-
	      tory to a	temporary file.	Otherwise, export only those specified
	      as further arguments: they can be	directories,  filenames,  ELNs
	      or some search expression	like "*.c".

       ext [on | off | status]
	      Toggle the ability to execute external commands.

       f, forth	[h, hist | clear | !ELN]
	      This  command works just like the	back command, but it goes for-
	      ward, instead of backward, in the	history	record.

	      Run `f` to change	to the next visited directory  (you  can  also
	      just press Alt+k or Shift+Right).

	      Of  course,  you	can use	`f hist`, `f h`, and `f	!ELN` (consult
	      the back command for details).

       fc [on |	off | status]
	      By default, clifm	prints the number of files contained by	listed
	      directories next to directory names. However, since this	is  an
	      expensive	 feature,  it  might  be  desirable (for example, when
	      listing files on a remote	machine) to disable this feature.  Use
	      the off subcommand to disable it.	To permanently disable it, use
	      the FileCounter option in	the configuration file.

       ff, dirs-first [on | off	| status]
	      Toggle list directories first.

       ft, filter [unset] [[!]REGEX,=FILE-TYPE-CHAR]
	      Filter the current list of files,	either by filename (via	a reg-
	      ular expression) or file type (via a file	type character).

	      With  no	argument,  ft prints the current filter. To remove the
	      current filter use the unset option. To set a new	 filter	 enter
	      `ft`  followed  by a filter expression (use the exclamation mark
	      to reverse the meaning of	a filter). Examples:

	      Exclude hidden files:
	       ft !^.

	      List only	files ending with .pdf:
	       ft .*\.pdf$

	      List only	symbolic links:
	       ft =l

	      Exclude socket files:
	       ft !=s

	      The list of file type characters is included in the FILE FILTERS
	      section below.

	      The filter will be lost at program exit. To  permanently	set  a
	      filter  use the Filter option (in	the configuration file)	or the
	      CLIFM_FILTER environment variable	(consult the  ENVIRONMENT  and
	      the FILE FILTERS sections	below).

       fz [on |	off]
	      Toggle recursive directory sizes (long view only).

       hf, hh, hidden [on | off	| first	| last | status]
	      Turn  hidden  files  on/off (use first/last to sort hidden files
	      before/after non-hidden files respectively).

       history [edit [APP] | clear | -N	| on | off | status | show-time]
	      With no arguments, it prints  the	 commands  history  list  (use
	      show-time	 to  print  timestamps as well). If clear is passed as
	      argument,	it will	delete all entries in the  history  file.  Use
	      edit  to	open  the  history file	and modify it as required (the
	      file will	be opened with APP, if specified, or with the  default
	      associated  application otherwise). -N tells the history command
	      to list only the last 'N'	commands in the	history	list. Finally,
	      you can disable history (subsequent entries will not be  written
	      into  the	 history file) via `history off` (you can also use the
	      HistIgnore option	in the configuration file to prevent  specific
	      command lines from being added to	the history list).

	      You  can	use  the  exclamation mark (!) to perform some history
	      commands:
		!<TAB>:	List history entries
		!!: Execute the	last command.
		!n: Execute the	command	number 'n' in the history list.
		!-n: Execute the 'last - n' command in the history list.
		!STRING: Execute the command starting with STRING. Tab comple-
	      tion is available	in this	case: !STRING<TAB>.

       icons [on | off]
	      Toggle icons.

	      Note: Depending on how the terminal renders icons, the  apparent
	      space  between icons and filenames may not be the	most appropri-
	      ate. This	space can be adjusted using the	IconsGap option	in the
	      configuration file (valid	values:	0, 1, 2).

       j [--purge [NUM]	| --edit], jc, jl, jp [STR]...,	je
	      j	is the fastest way of using Kangaroo, a	directory jumper func-
	      tion used	to quickly navigate through the	jump database (i.e.  a
	      database of visited directories).

	      With  no argument, j just	lists the entries in the jump database
	      (1)(2), printing:	a) order number	of the corresponding entry, b)
	      total sum	of visits, c) days since the  first  visit,  d)	 hours
	      since  the  last	visit, e) the rank value, and f) the directory
	      name itself. An asterisk next to the rank	value means  that  the
	      corresponding  directory	will not be removed from the database,
	      despite its rank,	either because it has been visited in the last
	      24 hours,	or because it is bookmarked, pinned, or	currently  ac-
	      tive in some workspace.

	      (1) To prevent a directory from being added to the jump database
	      use the DirhistIgnore option in the main configuration file.

	      (2)  To  prevent	a  directory  from being removed from the jump
	      database,	edit the database (`j edit`) and prepend a  plus  sign
	      (+) to the corresponding line.

	      Otherwise,  if  a	 query	string	is  provided  as  parameter, B
	      searches for this	string in the database	and  cd	 to  the  best
	      ranked  matching entry. Example: `j Down`	will probably take you
	      to /home/user/Downloads, provided	this directory	has  been  al-
	      ready  visited and is the	best ranked match in the database. For
	      a	more detailed description of the matching  algorithm  see  the
	      KANGAROO FRECENCY	ALGORITHM section below.

	      Multiple	query strings can be passed to the function. For exam-
	      ple, `j et mo` will first	check for "et" in  the	jump  database
	      and then will further filter the search using the	second parame-
	      ter:  "mo".  It will most	probably take you (again, provided the
	      directory	has been already visited and is	the best ranked	match)
	      to /etc/modprobe.d directory. Bear in mind that if STR is	an ac-
	      tual directory, jump will	just cd	to it without  performing  any
	      query.

	      The backslash (\)	and the	slash (/) can be used to instruct Kan-
	      garoo  to	 search	for the	string query only in the first or last
	      path segment of each entry in the	database  respectively.	 Let's
	      suppose  we  have	two entries matching src in the	database: /me-
	      dia/src/images and /home/user/Downloads/clifm/src. If the	 first
	      entry  is	better ranked than the second, `j src` will match this
	      first entry. However, if what we really want is the  second  en-
	      try, appending a slash to	the query string instructs Kangaroo to
	      only  match  entries  having  src	in the last path segment, here
	      /home/user/Downloads/clifm/src.

	      Since it is not always obvious or	easy to	know where  exactly  a
	      query  string will take you, clifm (if the suggestions system is
	      enabled) will print, at  the  right  of  the  cursor,  the  path
	      matched  by  Kangaroo.  If  that	is the actually	intended path,
	      press the	Right arrow key	to accept the  suggestion.  Otherwise,
	      it will be ignored. You can also use tab completion to print the
	      list  of matches for the current query string. For example: `j -
	      c<TAB>` to list all entries in the directory history  list  con-
	      taining a	dash (-) and a 'c'.

	      The  j command accepts four modifiers: e,	p, c, and l, the first
	      standing for "edit", the second  for  "parent",  the  third  for
	      "child", and the last one	for "list". Thus, `je` (or `j --edit`)
	      will  open the jump database to be edited	as required; `jc` will
	      search for files querying	only child directories relative	to the
	      current working directory, while `jp` will do the	same, but  for
	      parent  directories.  Finally,  `jl` just	prints the matches for
	      the given	query string(s), but without changing the current  di-
	      rectory. Examples:

	      +-------------+----------------------------------------------------------------------------------+
	      |	Command	    | Description								       |
	      +-------------+----------------------------------------------------------------------------------+
	      |	jp foo	    | Change to	the best ranked	parent directory containing the	string "foo".	       |
	      +-------------+----------------------------------------------------------------------------------+
	      |	jc bar test | Change to	the best ranked	child directory	containing the string "bar" and	"test" |
	      +-------------+----------------------------------------------------------------------------------+
	      |	jl foo	    | Print all	entries	in the database	containing the word "foo"		       |
	      +-------------+----------------------------------------------------------------------------------+

	      Use  the	--purge	option to shrink the database. Without further
	      parameters, --purge removes all non-existent (un-stat'able)  di-
	      rectories	 from  the database. If	a numeric parameter is passed,
	      by contrast, all entries ranked below this number	 will  be  re-
	      moved  from  the database. For example, `j --purge 100` will re-
	      move all entries ranked below 100.

	      You can also manually edit the database file using the `je`  (or
	      `j  --edit`)  command:  edit  whatever  needs to be edited, save
	      changes, and close the editor. This is useful, for  example,  to
	      remove  a	 specific  entry/directory from	the database (however,
	      bear in mind that	if the directory is in the directory  history,
	      it will not be removed from the jump database).

	      To  mark	an  entry  as permanent	(prevent it from being removed
	      from the database), follow any of	these procedures:
	       a. Bookmark it.
	       b. Edit the jump	database (`je` or `j --edit`)  and  prepend  a
	      plus sign	(+) to the corresponding entry.

	      An  alternative way of navigating	the jump database is using the
	      jumper plugin (located in	the plugins directory and bound	by de-
	      fault to the ++ action name), which uses	fzf  to	 enable	 fuzzy
	      searches.	 Enter	`++`  to  perform a fuzzy search over the jump
	      database.

	      Take a look at the dh command as well.

       k
	      If running in long view,	toggle	follow-links  (Alt++  is  also
	      available).   See	 the  -L,--follow-symlinks-long	 command  line
	      switch.

       kk
	      Toggle max-filename-len (Ctrl+Alt+l is also available)

       kb, keybinds [list | bind FUNCTION | edit [APP] | conflict | reset |
       readline]
	      With no argument (or if the argument is list), prints  the  cur-
	      rent keybindings and their associated functions.

	      To change	a keybinding use the bind subcommand.

	      Type `kb bind <TAB>` to get the list of bindable functions.

	      Enter  `kb  bind FUNCTION` to set	a new keybinding for FUNCTION.
	      For example, to bind the function	previous-dir to	a new key, en-
	      ter `kb bind previous-dir`. You'll see a	little	prompt:	 press
	      the key combination you want to associate	to the specified func-
	      tion and then press Enter	(while in this prompt, press Ctrl+d to
	      abort or Ctrl+c to clear the current line).

	      To  manually edit	your keybindings use the edit option (the key-
	      bindings file will be opened with	APP, if	specified, or with the
	      default associated application otherwise).

	      If you somehow messed up your keybindings,  you  can  check  for
	      keybinding  conflicts with the conflict option, or use the reset
	      option to	create a fresh keybindings file	with the default  val-
	      ues.

	      To  unbind  a  function run `kb edit` and	comment	out the	corre-
	      sponding entry. Note that	some functions may  have  several  en-
	      tries,  associating  them	 to multiple keybindings: comment them
	      out all if required.

	      To list readline keybindings (defined  in	 ~/.config/clifm/read-
	      line.clifm),  use	the readline option. The syntax	is the same as
	      the   one	  used	 by   readline's   .inputrc   file    (consult
	      http://tiswww.case.edu/php/chet/readline/readline.html#SEC9  for
	      more information.)

       l, le
	      Create (l) or edit (le) symbolic links.

	      The syntax for the l command is: l TARGET	[LINK_NAME]. Note that
	      if LINK_NAME is omitted, the symbolic link is  created  as  TAR-
	      GET_BASENAME.link	in the current directory.

	      By  default,  the	link target is created literally (like `ln -s`
	      would). The link creation	mode can be  set  using	 the  LinkCre-
	      ationMode	option in the configuration file. Available modes are:
	      absolute,	literal, and relative (like `ln	-rs` would).

	      To  edit	the  target of a symbolic link use the le command fol-
	      lowed by the desired link	name. The user will be prompted	to en-
	      ter a new	link target, using the current target as template.

       ll, lv [on | off]
	      Toggle the long view.

       lm [on |	off]
	      Toggle the light mode. This option, aimed	at making file listing
	      faster than the default mode, is especially  useful  for	really
	      old hardware or when working on remote machines (for more	infor-
	      mation see the NOTE ON SPEED section below).

       log [cmd	| msg] [list | on | off	| status | clear]
	      Enable,  disable,	clear, list or check the status	of the program
	      logs, either message (errors and warnings) or command logs.  Ex-
	      ample: `log cmd on`, to enable command logs, or `log msg clear`,
	      to clear/remove message logs.

	      Consult  the  FILES section below	for information	about how logs
	      are written to the logs file.

       media
	      Note: This command is Linux-specific

	      List available storage devices and  mount/unmount	 the  selected
	      one  using  either udevil	or udisks2 (at least one of these must
	      be installed. udevil will	be preferred over udisks2). If the de-
	      vice is unmounted, it will  be  automatically  mounted,  and  if
	      mounted, it will be automatically	unmounted.

	      Though  mountpoints  are	determined by the mounting application
	      itself (udevil or	udisks2), clifm	will automatically cd  to  the
	      corresponding  mountpoint	 whenever the mount operation was suc-
	      cessful.

	      When unmounting, and if the  current  directory  is  inside  the
	      mountpoint, clifm	will attempt to	cd to the previous visited di-
	      rectory,	and, if	none, to the home directory, before unmounting
	      the device.

	      To get information about a device, enter	`iELN`,	 for  example,
	      `i12`, provided '12' is the ELN of the device you	want.

       mf [NUM | unset]
	      List only	up to NUM files	(valid range: >= 0). Use unset to list
	      all  files  (default).  An  indicator (listed_files/total_files)
	      will be printed below the	list of	files whenever	some  file  is
	      excluded	from  the  current  list (e.g. 20/310).	Note, however,
	      that though some files are excluded, all of them are loaded any-
	      way, so that you can still perform any valid operation on	 them.
	      For  example,  even  if  only 10 files are listed, you can still
	      search for all symbolic links in the corresponding directory us-
	      ing the appropriate command: `/* -l`.

       mm, mime	[open FILE | info FILE | edit [APP] | import]
	      This is Lira, clifm's file opener.

	      Use the open subcommand to open a	file with the default  associ-
	      ated  application.  Note that, since open	is the default action,
	      it can be	omitted. For example: `mm file.pdf`. The same  can  be
	      achieved more easily using the open command: `open file.pdf` (or
	      using  the  short	command, `o file.pdf`).	Or, even shorter, just
	      `file.pdf`.

	      The info option prints MIME information  about  FILE:  its  MIME
	      type,  and,  if  any, the	application (for both opening and pre-
	      viewing) associated with this filename or	with the  file's  MIME
	      type.  If	 the  application  is associated with the file's name,
	      [FILENAME] is printed after the associated  application,	other-
	      wise,  if	 associated  with  the	file's	MIME  type,  [MIME] is
	      printed.

	      The edit option allows you to edit and customize the  MIME  list
	      file. So,	if a file has no default associated application, first
	      get   its	  MIME	 info	or   its   file	  extension   (running
	      `mm info FILE`), and then	add a value for	it to  the  MIME  list
	      file  using  the	edit  option (`mm edit`	or F6).	Check the FILE
	      OPENER section below for information  about  the	mimelist  file
	      syntax.

	      Finally, via the import option clifm will	try to import MIME as-
	      sociations  from	the  system looking for	mimeapps.list files in
	      those paths specified  by	 the  Freedesktop  specification  (see
	      https://specifications.freedesk-
	      top.org/mime-apps-spec/mime-apps-spec-latest.html).  If at least
	      one MIME association is successfully imported, it	will be	stored
	      as mimelist.clifm.XXXXXX (where XXXXXX is	a  random  six	digits
	      alphanumerical  string).	You  can add these new associations to
	      your mimelist file using the `mime edit` command.

       mp, mountpoints
	      List available mountpoints and change the	current	working	direc-
	      tory to the selected mountpoint.

       msg, messages [clear]
	      With no arguments, prints	the list of messages  in  the  current
	      session.	The  clear  option  tells  clifm to empty the messages
	      list.

       n, new [FILE[@TEMPLATE]]... [DIR/]...
	      Create new regular files and/or directories.

	      If a filename ends with a	slash (/), it will be taken as	a  di-
	      rectory  name. Else, it will be created as a regular file. E.g.:
	      `n myfile	mydir/`, to create a file named	myfile and a directory
	      named mydir. If no  filename  is	provided,  the	user  will  be
	      prompted to enter	one.

	      Automatic	templates

	      New regular files	will be	created	from a template	file if:

	       1.  The	file  to  be  created  has a filename extension	(e.g.,
	      file.html).
	       2. A file named like this extension, here html, exists  in  the
	      templates	directory (1).

	      If  both conditions are met, running `n file.html` will create a
	      new file named file.html which is	a copy of the html file	in the
	      templates	directory.

	      Note that	template names are not limited to actual  file	exten-
	      sions:  you  can name your templates whatever you	like (with any
	      content you want)	provided new files are created using the  tem-
	      plate name as extension. E.g.: `n	file.my_super_cool_template`.

	      Explicit templates

	      If  a  filename  is  followed by the expression @TEMPLATE, where
	      TEMPLATE is any regular  file  found  in	the  templates	direc-
	      tory(1), the file	will be	created	as a copy of the corresponding
	      file template. E.g., `n file.sh@my_script.sh`.

	      Tab   completion	 is   available	 for  explicit	templates:  `n
	      file@<TAB>`.

	      (1) The templates	directory is  $CLIFM_TEMPLATES_DIR,  $XDG_TEM-
	      PLATES_DIR, or ~/Templates, in this precedence order.

	      Filename	validation is performed	over names before creation. In
	      case of an unsafe	name, the user is warned and asked for confir-
	      mation.

	      A	name (namely, any component of a path)	is  considered	unsafe
	      if:
		1. Starts with a dash (-): command option flags	collision
		2.  Is	a  reserved  keyword/expression	 (internal):  fastback
	      (...),  ELN/range	 (12,  1-45),  and  MIME/file  type  expansion
	      (@query, =x)
		3. Is a	reserved system/shell keyword ('~', '.'	,'..')
		4.  Contains  embedded	control	 characters  (0x00-0x1f	in the
	      ASCII table)
		5.	Contains      embedded	    shell      meta-characters
	      (*?:[]"<>|(){}&'!\;$)
		6. It is too long (larger than NAME_MAX, usually 255 bytes)

	      For    more   information	  about	  unsafe   filenames   consult
	      https://dwheeler.com/essays/fixing-unix-linux-filenames.html.

       net [NAME | list	| edit | m, mount NAME | u, unmount NAME]
	      1. The configuration file

	      The net command manages connections to remote systems via	a sim-
	      ple  samba-like  configuration  file   ($HOME/.config/clifm/pro-
	      files/PROFILE/nets.clifm). Here you can specify multiple remotes
	      and  options  for	each of	these remotes. Syntax example for this
	      file:

	       [remote_name]
	       Comment=A nice descriptive comment
	       Mountpoint=/path/to/mountpoint
	       MountCmd=sudo mount.cifs	//192.168.0.12/share %m	-o OPTIONS
	       UnmountCmd=sudo umount %m
	       AutoUnmount=true	(Auto-unmount this remote at exit)
	       AutoMount=false (Auto-mount this	remote at startup)

	      Note: %m can be used as a	placeholder for	Mountpoint. %m will be
	      replaced by the value of Mountpoint.

	      1.a. Mounting remote filesystems

	      A	Samba share:
		[samba_share]
		Comment=My samba share
		Mountpoint="~/.config/clifm/mounts/smb_share"
		MountCmd=sudo  mount.cifs  //192.168.0.26/samba_share  %m   -o
	      mapchars,credentials=/etc/samba/credentials/samba_share
		UnmountCmd=sudo	umount %m
		AutoUnmount=false
		AutoMount=false

	      A	SSH filesystem (sshfs):
		[ssh_share]
		Comment=My ssh share
		Mountpoint="/media/ssh"
		MountCmd=sshfs user@192.168.0.26: %m -C	-p 22
		UnmountCmd=fusermount3 -u %m
		AutoUnmount=true
		AutoMount=false

	      1.b. Mounting local filesystems

	      Though originally	intended to manage remote filesystems, net can
	      also  manage  local  filesystems.	 Just  provide the appropriate
	      mount and	unmount	commands. Since	the device  name  assigned  by
	      the  kernel might	change across reboots (specially when it comes
	      to removable drives), it is recommended to mount using  the  de-
	      vice's  UUID  (Universal Unique Identifier) instead of the drive
	      name. For	example:

		MountCmd=sudo mount -U c98d91g4-6781...	%m

	      Here's an	example	of how to set up net to	mount USB devices, one
	      with a FAT filesystem, and another with an ISO9660 filesystem:

		[Sandisk USB]
		Comment=Sandisk	USB drive
		Mountpoint="/media/usb"
		MountCmd=sudo	mount	-o   gid=1000,fmask=113,dmask=002   -U
	      5847-xxxx	%m
		UnmountCmd=sudo	umount %m
		AutoUnmount=false
		AutoMount=false

		[Kingston USB]
		Comment=Kingston USB drive
		Mountpoint="/media/usb2"
		MountCmd=sudo mount -t iso9660 -U 2020-10-01-15-xx-yy-zz %m
		UnmountCmd=sudo	umount %m
		AutoUnmount=false
		AutoMount=false

	      Note:  The  gid,	fmask, and dmask options are used to allow the
	      user to access the mountpoint without elevated privileges.

	      If the device data is unknown, as	it often happens when it comes
	      to removable devices, you	should use the media command instead.

	      2. Command syntax

	      Without arguments	(or via	the list subcommand),  net  lists  the
	      configuration  for  each	remote	available in the configuration
	      file.

	      Use the edit option to edit the remotes configuration  file.  If
	      no  further  argument is specified, the file will	be opened with
	      the current file opener. However,	you can	pass an	application as
	      second parameter to open to  configuration  file.	 For  example:
	      `net edit	nano`.

	      If not already mounted, the m, mount option mounts the specified
	      remote  using  the  mount	command	and the	mounpoint specified in
	      the configuration	file and automatically cd to the corresponding
	      mountpoint. For example: `net mount smb_work`.  Since  mount  is
	      the default action, it can be omitted: `net smb_work`.

	      The  u,  unmount	option unmounts	the specified remote using the
	      unmount command specified	in the configuration file.  For	 exam-
	      ple:  `net  unmount  smb_work`. Tab completion is	also available
	      for this function.

	      Note: If you only	need to	copy some files	to a  remote  location
	      (including  mobile  phones)  without  the	 need to mount the re-
	      source, you can make use of the cprm.sh plugin, bound by default
	      to the cr	action.	Set up your remotes  (`cr  --edit`)  and  then
	      send the file you	want (`cr FILE`).

       o, open FILE [APPLICATION]
	      Open  FILE,  which  can  be either a directory (in which case it
	      works just like the cd command), a regular file, or  a  symbolic
	      link  to	either	of the two. For	example: `o 12`, `o filename`,
	      `o /path/to/filename`.

	      By default, the open command will	open files  with  the  default
	      application associated to	them via Lira, the builtin file	opener
	      (see  the	 mime  command	above).	However, if you	want to	open a
	      file with	a different application, add the application  name  as
	      second argument, e.g. `o 12 leafpad` or `o12 leafpad`.

	      If you want to run the program in	the background,	simply add the
	      ampersand	 character, as usual: `o 12 &`,	`o 12&`, `o12&`	or (if
	      auto-open	is enabled) just `12&`.

	      If the file to be	opened	is  an	archive/compressed  file,  the
	      archive function (see the	ad command above) will be executed in-
	      stead.

       oc FILE...
	      Interactively change file	ownership.

	      A	new prompt is displayed	using user and primary group common to
	      all files	passed as parameters as	ownership template.

	      Ownership	(both user and primary group, if specified) is changed
	      for  all	files  passed as parameters. If	the file is a symbolic
	      link, the	operation is performed on the target file, and not  on
	      the  symbolic  link  itself.  Bear in mind that recursion	is not
	      supported: use chown(1) (with the	-R option) instead.

	      Both names and ID	numbers	are allowed (Tab completion for	 names
	      is available).

	      If  only	a  name/number is entered, it is taken as the user who
	      owns the file(s).

	      Use the pc command to edit files permissions.

       opener [default | APPLICATION]
	      With no argument,	prints the currently used file opener (by  de-
	      fault, Lira, clifm's builtin opener). Otherwise, set APPLICATION
	      (say  rifle  or xdg-open)	as opener or, if default is passed in-
	      stead, use Lira.

       ow FILE [APPLICATION]
	      If APPLICATION is	specified, open	FILE with APPLICATION. In case
	      you need to add parameters to APPLICATION, it is recommended  to
	      quote the	expression: `ow	FILE "APP ARG..."`.

	      If  APPLICATION is not specified,	the list of available applica-
	      tions associated to FILE (either via its MIME type or  its  file
	      extension)  is printed, allowing the user	to choose one of these
	      applications, and	then open the file with	the selected  applica-
	      tion.

	      This  command  supports tab completion. Type `ow FILE <TAB>` and
	      the list of applications able to open FILE will be displayed .

       p, pp, prop FILE...
	      Print file properties for	FILE. The output of this  function  is
	      much  like  the combined output of the shell commands`ls -l` and
	      `stat`.

	      By default, directory sizes are not displayed. Use pp instead of
	      just p to	print directory	sizes as well (it  could  take	longer
	      depending	 on  the  directory's content).	On the other side, and
	      unlike p,	pp provides information	about  the  dereferenced  sym-
	      links  (namely,  the  symlink target) instead of the symlink it-
	      self. However, note that,	in case	of symbolic links to  directo-
	      ries,  p	provides information about the link target if the pro-
	      vided filename ends with a slash.	Otherwise,  information	 about
	      the link itself is displayed.

	      The  time	 format	 used  to display time information can be cus-
	      tomized via the PTimeStyle option	in the configuration file (de-
	      faults  to  "%Y-%m-%d  %H:%M:%S.%N  %z",	where  %N  stands  for
	      nano-second precision).

	      If  you  need to list the	properties of all files	in the current
	      directory, try the long view (ll or Alt+l). Fields displayed  in
	      this  mode  can be customized using the PropFields option	in the
	      configuration  file.  For	 custom	 timestamp  formats  use   the
	      TimeStyle	option.

	      For more information about file details consult the file-details
	      help topic: `help	file-details`.

       pc FILE...
	      Interactively  change  file  permissions	(only traditional Unix
	      permissions are supported).

	      A	new prompt is displayed	using actual permissions (in  symbolic
	      notation)	 of the	file to	be edited as template. If editing mul-
	      tiple files with different sets of permissions, only shared per-
	      mission bits are set in the permissions template.

	      Bear in mind that, if editing multiple files at  once,  say  `pc
	      sel` or `pc *.c`,	the new	permissions set	will be	applied	to all
	      of them.

	      Both symbolic and	octal notation for the new permissions set are
	      allowed.

	      Recursively  setting  file  permissions  is  not	supported. Use
	      chmod(1) with the	-R flag	instead.

	      If you just need to toggle the executable	permission  bit	 on  a
	      file, you	can use	the te command.

	      Use the oc command to edit files ownership.

       pf, profile [ls,	list | set, add, del PROFILE | rename PROFILE
       NEW_NAME]
	      With  no	arguments,  prints the name of the currently used pro-
	      file. Use	the ls or list option to list available	 profiles.  To
	      switch, add, delete, or rename a profile,	use the	set, add, del,
	      and rename options respectively.

       pg, pager [on | off | once | status | NUM]
	      Run or set Mas, clifm's builtin files pager.

	      With no parameter, just run the pager (Alt+0 is also available).

	      If  set to on, run the pager whenever the	list of	files does not
	      fit on the screen.

	      Set it to	any positive integer greater than 1 to run  the	 pager
	      whenever the number of files in the current directory is greater
	      than or equal to this value, say 1000 (0 amounts to off and 1 to
	      on).

	      Set  to  once  to	 run the pager only a single time (overwriting
	      whatever was its previous	value).

	      While paging, the	following keys are available:

	       ?, h: Help
	       Down arrow, Enter, Space: Advance one line
	       Page down: Advance one page
	       q: Stop paging (without printing	remaining files)
	       c: Stop paging (printing	remaining files)

	      Note: To scroll lines up,	use whatever  your  terminal  emulator
	      has to offer (e.g.: mouse	scrolling or some keybinding).

	      By default, the pager lists files	using the current listing mode
	      (long  or	 short).  Use  PagerView in the	configuration file (or
	      --pager-view in the command line)	to force the use of a specific
	      mode. Possibles values:

	       auto: Use the current listing mode (default)
	       long: List files	in long	view
	       short: List files in short view

       pin [FILE/DIR]
	      Pin a file or directory to be accessed later via the  comma  (,)
	      keyword.	For  example, run `pin mydir` and then access mydir as
	      follows: `cd ,` where the	comma is automatically expanded	to the
	      pinned file, in this case	mydir. The comma keyword could be used
	      with any command,	either internal	or external, e.g, `ls ,`.

	      With no arguments, the pin command  prints  the  current	pinned
	      file,  if	 any.  If  an argument is given, it will be taken as a
	      filename to be pinned. Running this  command  again,  frees  the
	      previous	pinned	file  and sets a new one. In other words, only
	      one pin is supported at a	time.

	      An easy alternative to create as many pins or shortcuts  as  you
	      want,  and how you want, is to use the alias function. Bookmarks
	      could also be used to achieve a very similar result.

	      At program exit, the pinned file is written to  a	 file  in  the
	      configuration  directory (as .pin) to be loaded in the next ses-
	      sion.

       prompt [set NAME	| list | edit [APP] | unset | reload]
	      Manage clifm's prompts. Use the set  subcommand  to  temporarily
	      change  the current prompt to the	prompt named NAME (use the un-
	      set subcommand to	unset the current prompt and set  the  default
	      one). Available prompts (which can be listed using `prompt list`
	      or   `prompt  set	 <TAB>`)  are  defined	in  the	 prompts  file
	      ($HOME/.config/clifm/prompts.clifm).  To	 permanently   set   a
	      prompt,  edit your color scheme file (via	the `cs	edit` command)
	      and set Prompt to	either a prompt	code or	a prompt name (as  de-
	      fined in the prompts file).

       q, quit,	exit
	      Quit clifm.

       rf, refresh
	      Refresh the screen, that is, reprint files in the	current	direc-
	      tory  and	update the prompt. If the current directory is not ac-
	      cessible for any reason, rf will go up until it finds an	acces-
	      sible one	and then will change to	this directory.

       rl, reload
	      Reload  all  settings, except those passed as command line argu-
	      ments, from the configuration file.

       rr [DIR]	[EDITOR]
	      Remove files and/or directories in bulk using a text editor.

	      rr writes	all filenames in DIR (or in the	current	 directory  if
	      DIR  is  omitted)	 to a temporary	file and opens it using	EDITOR
	      (or the default associated application for text/plain MIME type,
	      if EDITOR	is omitted).

	      Once in the editor, remove the lines corresponding to the	 files
	      you  want	 to delete. Save changes and close the editor. Removed
	      files will be listed and the user	asked for confirmation.

       s, sel FILE... [[!]PATTERN] [-FILETYPE] [:PATH]
	      Mark one or more files (either regular files or directories)  as
	      selected (send to	the Selection Box). sel	accepts	individual el-
	      ements, range of elements, say 1-6, filenames and	paths, just as
	      wildcards	 (globbing) and	regular	expressions. For example: `s 1
	      4-10 ^r file* filename /path/to/filename`.

	      If not in	light mode, once a file	is selected, and if  the  file
	      is  in the current directory, the	corresponding filename will be
	      highlighted with a mark (colored according to the	value of li in
	      the color	scheme file (by	default	bold green)) at	 the  left  of
	      the filename (and	at the right of	its ELN).

	      Just  as	in the search function,	it is also possible to further
	      filter the list of matches indicating the	desired	file type. For
	      instance,	`s ^ -d` will select all directories  in  the  current
	      directory.  For available	file type filters see the search func-
	      tion above.

	      By default, the selection	function operates on the current work-
	      ing directory. To	select files in	any other  directory  use  the
	      ":PATH"  expression.  For	 example,  to select all regular files
	      with a .conf extension in	the /etc directory, the	command	 would
	      be:  `s .*\.conf$	-f  :/etc`,  or	 using	wildcards:  `s	*.conf
	      -f :/etc`. Of course, you	can also do just `s -f /etc/*.conf`.

	      Just as in the case of the search	function, inverse matching  is
	      supported	for patterns, either wildcards or regular expressions.
	      To invert	the meaning and	action of a pattern, prepend an	excla-
	      mation mark (!). E.g., to	select all non-hidden regular files in
	      the  Documents  directory,  issue	this command: `s !^. -f	:Docu-
	      ments`, or, to select all	directories in /etc, except those end-
	      ing with ".d": `s	!*.d -d	:/etc`.

	      Glob and regular expressions can be used together. For  example:
	      `s  ^[r|R].*d$  /etc/*.conf` will	select all files starting with
	      either 'r' or 'R'	and ending with	'd' in the current  directory,
	      plus all .conf files in the /etc directory. However, this	use is
	      discouraged  if both patterns refer to the same directory, since
	      the second one will probably override the	result	of  the	 first
	      one.

	      It  is important to note that glob expressions are evaluated be-
	      fore regular expressions,	in such	a way that  any	 pattern  that
	      could be understood by both kinds	of pattern matching mechanisms
	      will  be	evaluated first	according to the former, that is, as a
	      glob expression.	For  example,  '.*',  as  regular  expression,
	      should  match  all  files.  However,  since glob expressions are
	      evaluated	first, it will only match hidden files.	To select  all
	      files  using  a  glob expression,	try '.*	*', or,	with a regular
	      expression: '^' or '(.*?)'. The keyboard shortcut	Alt+a is  also
	      available	to perform the same operation.

	      The  Selection Box is accessible from different instances	of the
	      program, provided	they use the same  profile  (see  the  profile
	      command below). By default, indeed, each profile keeps a private
	      Selection	 Box, being thus not accessible	to other profiles. You
	      can nonetheless modify this behavior via the ShareSelbox	option
	      in  the  configuration file. If ShareSelbox is enabled, selected
	      files are	stored	in  /tmp/clifm/username/.selbox.clifm.	Other-
	      wise,   /tmp/clifm/username/.selbox_profilename.clifm   is  used
	      (this is the default).

	      Operating	on selected files

	      To operate on one	or more	selected files use the sel keyword (s:
	      can be used as well). For	example, to print the file  properties
	      of  all  selected	 files:	 `p sel` (or `p	s:)`. Use `s:<TAB>` to
	      list selected files (multi-selection is available	if running  in
	      fzf mode).

	      Listing selected files

	      To  list	selected files use the sb command (standing for	Selec-
	      tion Box). You can also type `s:<TAB>`.

	      Deselecting files

	      To deselect files	use the	ds command (see	above).	You  can  also
	      press Alt+d to deselect all files	at once.

	      Note:   If  there	 is a file named sel in	the current directory,
	      use ./sel	to distinguish it from the sel keyword.	 For  example,
	      enter  `p	 ./sel`	to tell	clifm that you want to get the proper-
	      ties of the file named sel rather	than  the  properties  of  the
	      currently	selected files.

	      For more information consult the BUILT-IN	EXPANSIONS section be-
	      low.

       sb, selbox
	      Print the	elements currently contained in	the Selection Box.

       st, sort	[METHOD] [rev]
	      With no argument,	print the current sort order. Else, sort files
	      by  METHOD,  where  METHOD  is  one  of: 0=none, 1=name, 2=size,
	      3=atime,	4=btime,  5=ctime,  6=mtime,  7=version,  8=extension,
	      9=inode,	10=owner,  11=group,  12=blocks,  13=links, or 14=type
	      (e.g.: st	atime or st 3).	Methods	10 and 11 sort	by  owner  and
	      group  ID	 names	if  using ID names in long view	(see the Prop-
	      Fields option in the configuration file).	Else, ID  numbers  are
	      used. The	default	order is version.

	      By  default,  files are sorted from less to more (e.g.: from 'a'
	      to 'z' if	sorting	by name). Use the  rev	subcommand  to	invert
	      this order. E.g.:	`st rev` or `st	inode rev`. Switch back	to the
	      previous state by	running	`st rev` again.

	      Take  a  look  at	 the configuration file	for extra sort options
	      (ListDirsFirst, PrioritySortChar,	ShowHiddenFiles).

       stats
	      Print file statistics for	files in the  current  directory  (not
	      available	in light mode).

       t, trash	[FILE... | ls, list | clear, empty | del [FILE]...]
	      Move specified files to the trash	can (e.g. `t file1 file2`).

	      With  no	argument  (or by passing the ls	option), it prints the
	      list of currently	trashed	files. The clear (or empty)  sucommand
	      removes  all  files from the trash can, while the	del subcommand
	      lists trashed files allowing the user to permanently remove  one
	      or  more trashed files. If using del, tab	completion to list/se-
	      lect currently trashed files is available.

	      The trash	directory is  $XDG_DATA_HOME/Trash,  falling  back  to
	      $HOME/.local/share/Trash.	 To set	an alternative trash directory
	      use the -T,--trash-dir command line option.

	      Since this trash system follows the  Freedesktop	specification,
	      it  is able to handle files trashed by different Trash implemen-
	      tations.

	      To restore trashed files (to their original  location)  see  the
	      untrash command below.

       tag [add	| del |	list | list-full | new | merge | rename	| untag]
       [FILE]... [[:]TAG]
	      tag  is the main Etiqueta	command, clifm's builtin files tagging
	      system. See the FILE TAGS	section	for a complete description  of
	      this command.

       te FILE...
	      Toggle  the  executable  bit  (on	 user,	group,	and others) on
	      FILE(s). It is equivalent	to the	-x  and	 +x  options  for  the
	      chmod(1) command.

       tips
	      Print the	list of	clifm tips.

       u, untrash [*, a, all | FILE]...
	      If  filenames  are  passed  as parameters, restore them to their
	      original location. Otherwise, this function  prints  a  list  of
	      currently	 trashed files allowing	the user to choose one or more
	      of these files to	be restored. Use the *,	a or all parameters to
	      restore all trashed files	at once. Tab completion	to list/select
	      currently	trashed	files is available.

       unpin
	      This command takes no argument. It just frees  the  current  pin
	      and,  if	it  exists, deletes the	.pin file generated by the pin
	      command.

       vv FILE... DIR
	      Copy FILE(s) to DIR and bulk rename them at once.

       ver, version
	      Show clifm version details.

       view [edit [APP]	| purge]
	      preview files in the current directory (full  screen).  Requires
	      fzf(1). Alt+- is also available.

	      By  pressing Enter or Right, the currently highlighted file will
	      be selected and view closed. To select multiple files, mark them
	      with the TAB key and then	press Enter or Right  to  confirm.  To
	      quit view	press Escape or	the Left arrow key.

	      Run   `view   purge`   to	  purge	  the	thumbnails   directory
	      ($XDG_CACHE_HOME/clifm/thumbnails) of dangling thumbnails.

	      To edit the previewer configuration file enter `view  edit`,  or
	      `view  edit  vi` to open it with a specific application, in this
	      case, vi(1).

	      For      image	   previews	  consult	the	  Wiki
	      (https://github.com/leo-arch/clifm/tree/master/misc/tools/img-
	      prev) or enter `help image-previews`.

	      For further information consult the SHOTGUN section below.

       ws [NUM/NAME | unset | +	| -]
	      Clifm  offers up to eight	workspaces, each with its own indepen-
	      dent path.

	      With no argument,	the ws command prints the list	of  workspaces
	      and its corresponding paths, highlighting	the current workspace.

	      Use NUM to switch	to the workspace number	NUM, NAME to switch to
	      the  workspace  named  NAME,  the	plus sign (+) to switch	to the
	      next workspace, and the minus sign (-) to	switch to the previous
	      workspace.

	      To unset a workspace use the unset subcommand  preceded  by  the
	      workspace	 (either number	or name) to be unset. For example: `ws
	      2	unset`.

	      Four keyboard shortcuts are available to easily switch to	any of
	      the first	four workspaces: Alt+[1-4].

	      Every time an empty workspace is created,	it starts in the  cur-
	      rent working directory.

	      Though by	default	workspaces are unnamed,	you can	name them how-
	      ever  you	like using the WorkspaceNames option in	the configura-
	      tion file.

	      Use autocommands to persistenly set options per  workspace,  for
	      example,	to  always  list  files	in the third workspace in long
	      view. See	the AUTOCOMMANDS section below for more	information.

	      Make local settings private to the current workspace by  setting
	      the PrivateWorkspaceSettings option to true in the configuration
	      file:  settings  changed via either the command line or keyboard
	      shortcuts	(say Alt+l, to toggle the long view) will  apply  only
	      to  the  current	workspace  and	will  be  remembered even when
	      switching	workspaces.

	      To directly operate on a workspace (namely, the path  it	points
	      to)  you can use the w: prefix followed by a workspace number or
	      name. For	example, to copy all .png files	in the current	direc-
	      tory  to the third workspace, enter `c *.png w:3`. Press TAB im-
	      mediately	after w: to get	the list of available workspaces.

       x, X [DIR]
	      Open DIR,	or the current working directory if DIR	is not	speci-
	      fied,  in	 a new instance	of clifm (as root if X,	as the current
	      unprivileged user	if x) using the	value of TerminalCmd (from the
	      configuration file) as terminal emulator.	If this	value  is  not
	      set,  xterm  will	 be  used  as fallback terminal	emulator. This
	      function is only available for graphical environments.

       Shell-builtins implementations

	      pwd [-LP]

		Print the current working directory

	      export NAME=VALUE...

		Export variables to the	environment

	      umask [VALUE]

		Print/set the current umask value

	      unset NAME

		Remove a variable from the environment

5. FILE	FILTERS
       Clifm provides multiple ways to filter the current list of files:

       a) Hidden files:	via the	-A and -a command line flags, the hh  command,
       and the Alt+. keybinding.

       Files  listed  in a file	named .hidden in the current directory will be
       hidden as well whenever hidden files are	not shown (wildcards are  sup-
       ported).

       b)  Directories:	 via the --only-dirs command line switch and the Alt+,
       keybinding.

       c) Filenames and	file types: either via a regular expression or a  file
       type  character	(see below) using the ft command (the Filter option in
       the configuration file and the CLIFM_FILTER  environment	 variable  are
       also  available).  For  example,	to exclude backup files	(ending	with a
       tilde):

	CLIFM_FILTER='!.*~$' clifm

       or (in the configuration	file):

	Filter="!.*~$"

       or (via the ft command):

	ft !.*~$

       See the ft command for a	few more examples.

       d) Filtering files via the TAB key:

       You  can	 filter	 files	by  name  using	 wildcards.  For  example:  `p
       *.mp3<TAB>`  (or	 `/*.mp3<TAB>`)	to get a list of MP3 files in the cur-
       rent directory.

       Files can also be filtered by  MIME-type	 using	the   @	 prefix.  Type
       `@<TAB>`	 to  list  all	MIME-types  found in the current directory, or
       `@query<TAB>` to	list all files whose  MIME-type	 includes  the	string
       "query".	 For example, `@image<TAB>` will list all files	in the current
       directory whose MIME type includes the string "image".

       Finally,	files can be filtered as well by file type using the =	prefix
       followed	 by  a file type character (see	below).	For example, `=l<TAB>`
       to get a	list of	symbolic links in the current directory.

       Note: If	using tab completion in	fzf mode, multi-selection  is  allowed
       (except in the case of `@<TAB>`).

       Available file type characters:

	b: Block devices
	c: Character devices
	C: Files with capabilities (1)(2)
	d: Directories
	D: Empty directories
	f: Regular files
	F: Empty regular files
	g: SGID	files (2)
	h: Multi-hardlink files	(directories excluded)
	l: Symbolic links
	L: Broken symbolic links
	o: Other-writable files	(2)
	p: FIFO/pipes (2)
	s: Sockets (2)
	O: Doors (Solaris only)
	P: Event ports (Solaris	only)
	t: Files with the sticky bit set (2)
	u: SUID	files (2)
	x: Executable files (2)

       (1) Only	for tab	completion
       (2) Not available in light mode

       e) Grouping files (via automatic	expansion):

       By  means  of  the  above features, you can easily group	and operate on
       groups of files.	For example, this command:

	vt b: @image =x	sel t:work *.txt

       opens a virtual directory (see the VIRTUAL DIRECTORIES  section	below)
       automatically expanding the above expressions as	follows:

       +-------------+-----------------------------+
       | Expression  |	Description		   |
       +-------------+-----------------------------+
       | b:	     |	All your bookmarks (paths) |
       +-------------+-----------------------------+
       | @image	     |	All image files	(CWD)	   |
       +-------------+-----------------------------+
       | =x	     |	All executable files (CWD) |
       +-------------+-----------------------------+
       | sel	     |	All selected files	   |
       +-------------+-----------------------------+
       | t:work	     |	All files tagged as work   |
       +-------------+-----------------------------+
       | *.txt	     |	All .txt files (CWD)	   |
       +-------------+-----------------------------+

6. KEYBOARD SHORTCUTS
       The following is	the list of default keyboard shortcuts:

       +----------------------+--------------------------------------------------------------------------+
       | Key		      |	 Description								 |
       +----------------------+--------------------------------------------------------------------------+
       | Ctrl+Alt+j	      |	 Toggle	the vi editing mode						 |
       +----------------------+--------------------------------------------------------------------------+
       | Right,	Ctrl+f	      |	 Accept	the current suggestion						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+Right, Alt+f     |	 Accept	the first suggested word (up to	the first slash	or space)	 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+c		      |	 Clear the current command line	buffer					 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+q		      |	 Delete	last word (up to last slash or space)				 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+i,	Alt+.	      |	 Toggle	hidden-files							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+l		      |	 Toggle	long-view							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt++		      |	 Toggle	follow-links (long view	only)					 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+g		      |	 Toggle	list-directories-first						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+,		      |	 Toggle	list-only-directories						 |
       +----------------------+--------------------------------------------------------------------------+
       | Ctrl+Alt+l	      |	 Toggle	max-filename-length						 |
       +----------------------+--------------------------------------------------------------------------+
       | Ctrl+Alt+i, Alt+Tab  |	 Toggle	disk-usage-analyzer						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+w		      |	 Toggle	full-path-filenames (virtual directories)			 |
       +----------------------+--------------------------------------------------------------------------+
       | Ctrl+l		      |	 Refresh the screen (reprint the list of files in the current directory) |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+t		      |	 Clear program messages							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+m		      |	 List mountpoints							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+b		      |	 Launch	the Bookmark Manager						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+h		      |	 Show the directory history						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+n		      |	 Create	new file or directory						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+s		      |	 Open the Selection Box							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+-		      |	 Launch	the file previewer (view command)				 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+a		      |	 Select	all files in the current directory				 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+d		      |	 Deselect all files							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+0		      |	 Run MAS, the file pager						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+p		      |	 Change	to the pinned directory						 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+1		      |	 Switch	to workspace 1							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+2		      |	 Switch	to workspace 2							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+3		      |	 Switch	to workspace 3							 |
       +----------------------+--------------------------------------------------------------------------+
       | Alt+4		      |	 Switch	to workspace 4							 |
       +----------------------+--------------------------------------------------------------------------+

       +---------------------+------------------------------------------------------------+
       | Key		     |	Description						  |
       +---------------------+------------------------------------------------------------+
       | Alt+r		     |	Change to the root directory				  |
       +---------------------+------------------------------------------------------------+
       | Alt+e,	Home	     |	Change to the home directory				  |
       +---------------------+------------------------------------------------------------+
       | Alt+u,	Shift+Up     |	Change to the parent directory				  |
       +---------------------+------------------------------------------------------------+
       | Alt+j,	Shift+Left   |	Change to the previously visited directory		  |
       +---------------------+------------------------------------------------------------+
       | Alt+k,	Shift+Right  |	Change to the next visited directory			  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+o	     |	Switch to the previous profile				  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+p	     |	Switch to the next profile				  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+a	     |	Archive	selected files					  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+e	     |	Export selected	files					  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+r	     |	Rename selected	files					  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+d	     |	Remove selected	files					  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+t	     |	Trash selected files					  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+v	     |	Copy selected files to the current directory		  |
       +---------------------+------------------------------------------------------------+
       | Alt+y		     |	Toggle light-mode					  |
       +---------------------+------------------------------------------------------------+
       | Alt+z		     |	Switch to previous sort	method				  |
       +---------------------+------------------------------------------------------------+
       | Alt+x		     |	Switch to next sort method				  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+Alt+x	     |	Launch a new instance of clifm				  |
       +---------------------+------------------------------------------------------------+
       | Ctrl+y		     |	Copy the contents of the line buffer to	the clipboard (1) |
       +---------------------+------------------------------------------------------------+
       | F1		     |	Go to the manpage					  |
       +---------------------+------------------------------------------------------------+
       | F2		     |	List commands						  |
       +---------------------+------------------------------------------------------------+
       | F3		     |	List keybindings					  |
       +---------------------+------------------------------------------------------------+
       | F6		     |	Open the MIME list file					  |
       +---------------------+------------------------------------------------------------+
       | F7		     |	Open the shotgun configuration file			  |
       +---------------------+------------------------------------------------------------+
       | F8		     |	Open the current color scheme file			  |
       +---------------------+------------------------------------------------------------+
       | F9		     |	Open the keybindings file				  |
       +---------------------+------------------------------------------------------------+
       | F10		     |	Open the main configuration file			  |
       +---------------------+------------------------------------------------------------+
       | F11		     |	Open the bookmarks file					  |
       +---------------------+------------------------------------------------------------+
       | F12		     |	Quit							  |
       +---------------------+------------------------------------------------------------+

       (1) This	shortcut is bound to the xclip plugin. See the PLUGINS section
       below for more information.

       Customizing keybindings

       The above are the default keyboard shortcuts. However, they can be cus-
       tomized using the `kb bind` command (for	more information consult the
       description for the kb command above).

       The keybindings configuration file can also be manually edited using
       the `kb edit` command (for more details take a look at the description
       provided	by this	file itself).

       Readline	keybindings

       Readline	keybindings for	command	line editing, such as Ctrl+a, to move
       the cursor to the beginning of the line,	or Ctrl+e, to move it to the
       end, should work	out of the box.	Of course, you can modify these	key-
       bindings	by editing the ~/.config/clifm/readline.clifm file, following
       the same	rules used by readline itself for the ~/.inputrc file. For
       more information	consult	the readline documentation (readline(3)).

       Keybindings for plugins

       clifm provides sixteen customizable keybindings for custom plugins. The
       procedure for setting a keybinding for a	plugin is the following:

       1. Copy your plugin to the plugins directory (or	use any	of the plugins
       already in there)

       2. Link pluginx (where 'x' is the plugin	number [1-16]) to your plugin
       using the `actions edit`	command. E.g.: "plugin1=myplugin.sh"

       3. Set a	keybinding for pluginx using the `kb edit` command. E.g.:
       "plugin1:\M-7"

       Kitty keyboard protocol support

       The Kitty Keyboard Protocol offers a significant	improvement over the
       current handling	of keyboard events in terminals. This protocol uti-
       lizes CSI u escape sequences and	introduces several enhancements, in-
       cluding the ability to use extra	modifier keys such as Super, Meta, and
       Hyper.

       To enable the Kitty Keyboard Protocol, follow these steps:

       1. Download the specially crafted keybindings configuration file	de-
       signed to handle	CSI u escape sequences (https://github.com/leo-
       arch/clifm/blob/master/misc/kitty/keybindings.clifm).

       2. Configure clifm to use this new file instead of the default one
       (~/.config/clifm/keybindings.clifm) by using the	-k command line
       switch. Alternatively, you can replace the default file with the	new
       one.

       3. If your terminal is not already set up to send CSI u sequences, use
       the --kitty-keys	command	line switch.

       Summarizing, and	once you have the replacement keybindings file in
       place, run the following	command:

	       clifm -k	/path/to/keybindings/file --kitty-keys

       Important

       When using the Kitty Keyboard Protocol, the Ctrl+d shortcut (used to
       quit secondary prompts) will no longer work. To resolve this issue, add
       the following line to your kitty.conf file:

	       map control+d send_text kitty \x04

       This will force the terminal to emit the	old value for this specific
       key binding, providing a	workaround for the issue.

       Troubleshooting

       Some of these default keybindings may not work on your console/terminal
       emulator, depending on your system. Some	useful tips on this regard:

       Haiku terminal: Most of these keybindings will not work on the Haiku
       terminal, since Alt plays here the role Ctrl usually plays in most
       other systems (see the Haiku documentation). To fix this, set your cus-
       tom keybindings.

       Kernel builtin console: Key sequences involving the Shift key
       (Shift-Up, Shift-Left, and Shift-Right in our case) will	just not work.
       Use the alternative key sequences instead: Alt+u, Alt+j,	and Alt+k re-
       spectively.

       NetBSD (wsvt25) and OpenBSD (vt220) kernel consoles: Key	sequences in-
       volving the Alt key will	not work out of	the box. Here's	how to make
       them work:

	       On OpenBSD:
	       1)  Copy	 /etc/examples/wsconsctl.conf  to /etc (if it does not
	      already exist)
	       2) Add the metaesc flag to your current keyboard	encoding.  For
	      example: keyboard.encoding=us.metaesc
	       You may need to reboot the machine for changes to take effect.

	       On NetBSD:
	       Add  the	 metaesc  flag	to  your  current encoding in /etc/ws-
	      cons.conf. For example: encoding us.metaesc
	       You may need to reboot the machine for changes to take effect.

       Konsole:	If Shift+left and Shift+right are not already bound to any
       function, you need to bind them manually. Go to Settings	-> Edit	cur-
       rent profile -> Keyboard	-> Default (Xfree4), and add these values:
	       Left+Shift     \E[1;2D
	       Right+Shift    \E[1;2C

	      If they are already bound, by contrast, you only need to unbound
	      them. Go to "Settings -> Configure keyboard shortcuts", click on
	      the corresponding	keybinding, and	set it to "Custom (none)").

       Terminology/Yakuake: Shift+left and Shift+right are already bound to
       other functions,	so that	you only need to unbind	them or	rebind the
       corresponding functions to different key	sequences.

       Of course, the above two	procedures should be similar in	case of	key-
       binding issues in other terminal	emulators.

       In case some of these keybindings are already used by your Window Man-
       ager, you only need to unbind the key or	rebind the corresponding func-
       tion to another key. Since each Window Manager uses its own mechanisms
       to set/unset keybindings, you should consult the	appropriate manual.

7. THEMING
       All customization settings (theming) are	made from a single configura-
       tion file (the color scheme file), installed by default in
       $XDG_DATA_DIRS/clifm/colors (usually /usr/local/share/clifm/colors or
       /usr/share/clifm/colors), though	color scheme files found in $XDG_CON-
       FIG_HOME/clifm/colors (usually $HOME/.config/clifm/colors) take prece-
       dence.

       Note: Color scheme files	are copied automatically to the	local colors
       directory when running the `cs edit` command.

       Each color scheme may include any (or all) of the below options:

	FiletypeColors = Colors	for different file types, such as directory,
       regular files, and so on. See the COLORS	section	below.

	InterfaceColors	= Colors for clifm's interface,	such as	ELNs, file
       properties bits,	suggestions, syntax highlighting, etc. See the COLORS
       section below.

	ExtColors = Colors for files based on filename extensions. See the
       COLORS section below.

	DateShades = A comma delimited list of colors used to print timestamps
       (long view). Consult the	default	color scheme file for more informa-
       tion.

	SizeShades = A comma delimited list of colors used to print file sizes
       (long view). Consult the	default	color scheme file for more informa-
       tion.

	DirIconColor = Color for the directory icon (when icons	are enabled).
       See the COLORS section below. Only when using icons-in-terminal or Ner-
       fonts. If using rather emoji-icons (default build), this	option is ig-
       nored.

	Prompt = Define	clifm's	prompt.	See the	THE PROMPT section below.

	DividingLine = The line	dividing the current list of files and the
       prompt. See the THE DIVIDING LINE below.

	FzfTabOptions =	Options	to be passed to	fzf when using the fzf mode
       for tab completion, including colors. See the TAB COMPLETION section
       below.

       The color scheme	(or just theme)	can be set either via the command line
       (--color-scheme=NAME), via the ColorScheme option in the	main configu-
       ration file, or using the cs command, for instance, `cs mytheme`. Enter
       just `cs` to list available color schemes (tab completion is avail-
       able). To edit the current color	scheme enter `cs edit`.

       1. COLORS

       If 256 colors support is	detected for the current terminal, and not set
       in any other way	(either	via the	ColorScheme option in the configura-
       tion file or the	--color-scheme command line switch), clifm will	at-
       tempt to	load the 256 colors version of the default color scheme: de-
       fault-256. Otherwise, it	falls back to the 16 colors version.

       All color codes are specified in	the corresponding color	scheme file
       (by default ~/.config/clifm/colors/default.clifm). You can edit this
       file pressing F8	or entering `cs	edit`.

       a. Color	codes

       Colors are specified using the same format used by dircolors(1) and the
       LS_COLORS environment variable, namely, a colon separated list of codes
       with this general format: NAME=VALUE, where NAME	refers to an interface
       element,	and VALUE to the color to be used by this element.

       This is the list	of file	type codes (you	will find them in the File-
       typeColors section of the current color scheme file):

	       di = directory
	       ed = empty directory
	       nd = directory with no read/exec	permission (1)
	       fi = regular file
	       ef = empty regular file
	       nf = file with no read permission (1)
	       ln = symlink
	       mh = multi-hardlink file
	       or = orphaned or	broken symlink
	       bd = block device
	       cd = character device
	       pi = FIFO, pipe
	       so = socket
	       su = SUID file
	       sg = SGID file
	       tw = sticky and other writable directory
	       st = sticky and not other writable directory
	       ow = other writable directory
	       ex = executable file
	       ee = empty executable file
	       ca = file with capabilities
	       oo = door/port (Solaris only)
	       no = unknown file type
	       uf = inaccessible files (fstatat(3) error)

	      (1) If unset, the	corresponding file type	color is used  and  an
	      exclamation mark is printed before the filename in the file list
	      (provided	 icons	are disabled -otherwise	the lock icon is used-
	      and clifm	is not running in light	mode  -in  light  mode	access
	      checks  are  not	performed). The	color used for the exclamation
	      mark is xf (see below).

       The following codes are used for	different interface elements (in the
       InterfaceColors section of the current color scheme file):

	       Suggestions
	       sb = shell builtins
	       sc = aliases and	shell command names
	       sd = internal commands description
	       sf = ELNs, bookmarks, tag, and filenames
	       sh = commands history entries
	       sx = suggestions	for clifm's internal commands and parameters
	       sp = suggestions	pointer	(e.g.: 56 > filename, where '>'	is the
	      suggestion pointer)
	       sz = filenames (fuzzy)

	       Syntax highlighting
	       hb = brackets '()[]{}'
	       hc = comments (lines starting with '#')
	       hd = slashes
	       he = expansion chars '~*'
	       hn = numbers
	       hp = option parameters (starting	with '-')
	       hq = quoted strings (both single	and double quotes)
	       hr = process redirection	(>)
	       hs = process separators (; & |)
	       hv = variable names (starting with '$')
	       hw = Backslash (aka whack)

	       Prompt elements
	       li = selected files
	       ti = trash indicator
	       ac = autocommand	indicator
	       em = error message indicator
	       wm = warning message indicator
	       nm = notice message indicator
	       ro = read-only mode indicator
	       si = stealth mode indicator
	       tx = command line text (regular prompt)

	       File properties
	       db  = file allocated blocks
	       dd  = last access/change/modification time (1)
	       de  = file inode	number (long view only)
	       dg  = group ID (provided	the user has access to the file)
	       dk  = number of links (long view	only)
	       dn  = dash (unset property)
	       do  = octal value for file properties
	       dp  = SUID, SGID, sticky	bit
	       dr  = read permission bit
	       dt  = timestamp identification mark (2)
	       du  = user ID (provided the user	has access to the file)
	       dw  = write permission bit
	       dxd = executable	permission bit (directories)
	       dxr = executable	permission bit (regular	files)
	       dz  = size (1)

	       (1) If unset (default), gradient	colors are used	(based on file
	      size and file age).
	       (2) If unset (default), a dimmed	version	of the	current	 time-
	      stamp color is used.

	       Note: For a better graphical representation of file properties,
	      256  colors are used if possible (otherwise, clifm falls back to
	      16 colors).

	       Miscellaneous interface elements
	       fc  = file counter
	       df  = default color
	       dl  = dividing line
	       el  = ELN color
	       lc  = symbolic link indicator (ColorLinksAsTarget only)
	       mi  = misc indicators (disk usage, sort	method,	 bulk  rename,
	      jump database list)
	       ts  = matching suffix for possible tab completed	entries
	       tt  = tilde for truncated filenames
	       wc  = welcome message
	       wsN = color for workspace N (1-8)
	       xs  = exit code:	success
	       xf  = exit code:	failure

       b. Supported colors

       4-bit, 8-bit (256-colors), and 24-bit (true colors) colors are sup-
       ported.

       Colors are defined basically as SGR sequences (excluding	the initial
       escape character	and the	ending 'm'), the same sequences	used by	the
       LS_COLORS environment variable. However,	shortcuts for 8-bit (256-col-
       ors) and	24-bit (true color) colors are available. For example:

	       31	     4-bit
	       38;5;160	     8-bit
	       @160	     8-bit  (short)
	       38;2;255;0;0  24-bit
	       #ff0000	     24-bit (short, HEX) (1)

       (1) Both	three and six digits hexadecimal colors	(lower or uppercase)
       are supported. For example, #f00	amounts	to #ff0000.

       A single	attribute can be added to hex colors and 256 colors (in	the
       form @NUM) using	a dash and an attribute	number (#RRGGBB-[1-9] or
       @NUM-[1-9]), where 1-9 is:

	       1: Bold or increased intensity
	       2: Faint, decreased intensity or	dim
	       3: Italic (Not widely supported)
	       4: Underline
	       5: Slow blink
	       6: Rapid	blink
	       7: Reverse video	or invert
	       8: Conceal or hide (Not widely supported)
	       9: Crossed-out or strike

       Note: Some attributes may not be	supported by all terminal emulators.

       For example, for	bold red the hex code is #ff0000-1, while the 256-col-
       ors code	is @160-1. (for	more information about SGR sequences consult
       https://en.wikipedia.org/wiki/ANSI_escape_code).

       c. Color	names

       Xterm-like color	names are also supported. For example: ex=DodgerBlue2.

       This is the list	of color names (as defined by vifm(1)):

		0 Black			 86 Aquamarine1		  172 Orange3
		1  Red			   87 DarkSlateGray2	    173	Light-
	      Salmon3_2
		2 Green			 88 DarkRed_2		   174	Light-
	      Pink3
		3 Yellow		 89 DeepPink4_2		  175 Pink3
		4 Blue			 90 DarkMagenta		  176 Plum3
		5 Magenta		 91 DarkMagenta_2	  177 Violet
		6 Cyan			 92 DarkViolet		  178 Gold3_2
		7  White		   93 Purple		    179	Light-
	      Goldenrod3
		8 LightBlack		 94 Orange4_2		  180 Tan
		9 LightRed		 95 LightPink4		   181	Misty-
	      Rose3
	       10 LightGreen		 96 Plum4		  182 Thistle3
	       11 LightYellow		 97 MediumPurple3	  183 Plum2
	       12  LightBlue		   98  MediumPurple3_2	      184 Yel-
	      low3_2
	       13 LightMagenta		 99 SlateBlue1		  185 Khaki3
	       14 LightCyan		100 Yellow4		   186	Light-
	      Goldenrod2
	       15    LightWhite		     101   Wheat4		   187
	      LightYellow3
	       16 Grey0			102 Grey53		  188 Grey84
	       17 NavyBlue		103 LightSlateGrey	   189	Light-
	      SteelBlue1
	       18 DarkBlue		104 MediumPurple	  190 Yellow2
	       19  Blue3		  105 LightSlateBlue	    191	DarkO-
	      liveGreen1
	       20 Blue3_2		106 Yellow4_2		   192	DarkO-
	      liveGreen1_2
	       21 Blue1			107 DarkOliveGreen3	  193 DarkSea-
	      Green1_2
	       22  DarkGreen		  108 DarkSeaGreen	    194	Honey-
	      dew2
	       23 DeepSkyBlue4		109 LightSkyBlue3	   195	Light-
	      Cyan1
	       24 DeepSkyBlue4_2	110 LightSkyBlue3_2	  196 Red1
	       25  DeepSkyBlue4_3	  111  SkyBlue2		     197 Deep-
	      Pink2
	       26 DodgerBlue3		112  Chartreuse2_2	    198	 Deep-
	      Pink1
	       27  DodgerBlue2		  113  DarkOliveGreen3_2     199 Deep-
	      Pink1_2
	       28  Green4		  114  PaleGreen3_2	      200  Ma-
	      genta2_2
	       29 SpringGreen4		115 DarkSeaGreen3	  201 Magenta1
	       30  Turquoise4		  116  DarkSlateGray3	     202 Oran-
	      geRed1
	       31 DeepSkyBlue3		117  SkyBlue1		    203	 Indi-
	      anRed1
	       32  DeepSkyBlue3_2	  118  Chartreuse1	     204 Indi-
	      anRed1_2
	       33 DodgerBlue1		119 LightGreen_2	  205 HotPink
	       34 Green3		 120  LightGreen_3	     206  Hot-
	      Pink_2
	       35  SpringGreen3		  121 PaleGreen1	    207	Mediu-
	      mOrchid1_2
	       36 DarkCyan		122 Aquamarine1_2	  208  DarkOr-
	      ange
	       37 LightSeaGreen		123 DarkSlateGray1	  209 Salmon1
	       38 DeepSkyBlue2		124 Red3		  210 LightCo-
	      ral
	       39 DeepSkyBlue1		125 DeepPink4_3		  211 PaleVio-
	      letRed1
	       40 Green3_2		126 MediumVioletRed	  212 Orchid2
	       41 SpringGreen3_2	127 Magenta3		  213 Orchid1
	       42 SpringGreen2		128 DarkViolet_2	  214 Orange1
	       43  Cyan3		  129 Purple_2		    215	Sandy-
	      Brown
	       44 DarkTurquoise		130 DarkOrange3		   216	Light-
	      Salmon1
	       45  Turquoise2		  131 IndianRed		    217	Light-
	      Pink1
	       46 Green1		132 HotPink3		  218 Pink1
	       47 SpringGreen2_2	133 MediumOrchid3	  219 Plum1
	       48 SpringGreen1		134 MediumOrchid	  220 Gold1
	       49 MediumSpringGreen	135 MediumPurple2	   221	Light-
	      Goldenrod2_2
	       50  Cyan2		  136 DarkGoldenrod	    222	Light-
	      Goldenrod2_3
	       51 Cyan1			137  LightSalmon3	    223	 Nava-
	      joWhite1
	       52  DarkRed		  138 RosyBrown		    224	Misty-
	      Rose1
	       53 DeepPink4		139 Grey63		  225 Thistle1
	       54 Purple4		140 MediumPurple2_2	  226 Yellow1
	       55 Purple4_2		141 MediumPurple1	   227	Light-
	      Goldenrod1
	       56 Purple3		142 Gold3		  228 Khaki1
	       57 BlueViolet		143 DarkKhaki		  229 Wheat1
	       58  Orange4		  144  NavajoWhite3	     230 Corn-
	      silk1
	       59 Grey37		145 Grey69		  231 Grey100
	       60 MediumPurple4		146 LightSteelBlue3	  232 Grey3
	       61 SlateBlue3		147 LightSteelBlue	  233 Grey7
	       62 SlateBlue3_2		148 Yellow3		  234 Grey11
	       63 RoyalBlue1		149 DarkOliveGreen3_3	  235 Grey15
	       64 Chartreuse4		150 DarkSeaGreen3_2	  236 Grey19
	       65 DarkSeaGreen4		151 DarkSeaGreen2	  237 Grey23
	       66 PaleTurquoise4	152 LightCyan3		  238 Grey27
	       67 SteelBlue		153 LightSkyBlue1	  239 Grey30
	       68 SteelBlue3		154 GreenYellow		  240 Grey35
	       69 CornflowerBlue	155 DarkOliveGreen2	  241 Grey39
	       70 Chartreuse3		156 PaleGreen1_2	  242 Grey42
	       71 DarkSeaGreen4_2	157 DarkSeaGreen2_2	  243 Grey46
	       72 CadetBlue		158 DarkSeaGreen1	  244 Grey50
	       73 CadetBlue_2		159 PaleTurquoise1	  245 Grey54
	       74 SkyBlue3		160 Red3_2		  246 Grey58
	       75 SteelBlue1		161 DeepPink3		  247 Grey62
	       76 Chartreuse3_2		162 DeepPink3_2		  248 Grey66
	       77 PaleGreen3		163 Magenta3_2		  249 Grey70
	       78 SeaGreen3		164 Magenta3_3		  250 Grey74
	       79 Aquamarine3		165 Magenta2		  251 Grey78
	       80 MediumTurquoise	166 DarkOrange3_2	  252 Grey82
	       81 SteelBlue1_2		167 IndianRed_2		  253 Grey85
	       82 Chartreuse2		168 HotPink3_2		  254 Grey89
	       83 SeaGreen2		169 HotPink2		  255 Grey93
	       84 SeaGreen1		170 Orchid
	       85 SeaGreen1_2		171 MediumOrchid1

       Just as with hex	colors,	a single attribute can be appended to color
       names. For example, SteelBlue1-1	to get the bold	version	of this	color.

       d. Color	variables

       Up to 128 custom	color variables	can be used via	the define keyword to
       make it easier to build and read	theme files. Example:

	       define FTYPE_DIR=31
	       define IFACE_ELN=4;38;2;255;255;0;48;2;0;14;191

	       FiletpeColors="di=FTPYE_DIR:"
	       InterfaceColors="el=IFACE_ELN:"

       These variables can only	be used	for FiletypeColors, InterfaceColors,
       ExtColors, and DirIconColor. The	Prompt line (if	using a	prompt code)
       uses full SGR sequences or prompt-specific color	codes instead.

       e. Examples

       A few examples to put all this together:

	       fi=4;31	  (regular files are 4-bit underlined red)
	       di=@33-1	  (directories are 8-bit bold light-blue)
	       ln=#5fd7ff (symbolic links are 24-bit light cyan)
	       so=Yellow3 (socket files	are Yellow3)

       More complex combinations can be	achieved using complete	SGR sequences
       (for example, to	add a background color). E.g.:

	       fi=4;38;2;245;76;48;2;0;0;255

       will print regular files	underlined and using a bold orange color on a
       blue background.	In this	case, just make	sure to	use a terminal emula-
       tor supporting true colors. To test your	terminal color capabilities
       use the colors.sh script	(in the	plugins	directory).

       Note: It	may happen that, for some reason, you need to force clifm to
       use colors despite the value of the TERM	variable. The OpenBSD console,
       for example, sets TERM to vt220 by default, which, according to the
       terminfo	database, does not support color. However, the OpenBSD console
       does actually support color. In this case, you can set the
       CLIFM_FORCE_COLOR a specific value even if the value of TERM says oth-
       erwise. Supported values	are: 8,	16, 256, truecolor (or 24bit).

       To see a	colored	list of	the currently used colors run the `cs preview`
       command.

       To run without colors use the --no-color	command	line option or set ei-
       ther CLIFM_NO_COLOR or NO_COLOR environment variables to	any value. For
       more information	about the no-color initiative see
       https://no-color.org/

       For a full no-color experience recall to	edit your prompt removing all
       color codes.

       2. THE PROMPT

       2.a. Description

       Clifm's prompt is taken from the	Prompt line in the color scheme	file
       using a prompt name as defined in the prompts file, for example,
       Prompt="security-scanner".

       Each prompt is built following almost the same escape codes and rules
       used by the Bash	prompt,	except that it does not	accept shell functions
       (like conditionals and loops). Command substitution (in the form
       $(cmd)),	prompt modules (in the form ${module}),	color codes (in	the
       form %{color}), string literals,	and escape sequences can be used to
       build the prompt.

       Consult the prompts file	(using the `prompt edit` command) for detailed
       information and examples	on how to build	a prompt.

       By default, for intstance, clifm's prompt line is this:

	      "%{reset}\I[\S%{reset}]\l	\A  \u:\H  %{cyan}\w%{reset}\n<\z%{re-
	      set}> %{blue}\$%{reset} "

       which once decoded should look something	like this:

	       [1] 13:45 user:hostname /my/path
	       <0> $

       with the	workspace number printed in blue, the path in cyan, the	last
       exit status in green (or	red in case of error), and the dollar sign in
       blue.

       A more "classic"	prompt can be generated	as follows:

	       "\u@\U \w> "

       or, using now command substitution:

	       "$(whoami)@$(hostname) $(pwd)> "

       2.b. Prompt notifications

       A bold red 'R' at the left of the prompt	reminds	the user that the pro-
       gram is running as root.	A bold green 'S' indicates that	there are ele-
       ments in	the Selection Box. In the same way, a cyan 'T' means that
       there are currently files in the	trash can, just	as a bold blue 'S'
       means that the program is running in stealth mode. Finally, clifm makes
       use of three kind of messages: errors (a	red 'E'	at the left of the
       prompt),	warnings (a yellow 'W'), and simple notices (a green 'N').

       If Notifications	is set to false	in the prompts file, the above notifi-
       cations won't be	printed	by the prompt, but are still available to the
       user as escape codes (see above)	and environment	variables (see the EN-
       VIRONMENT section below)	to build custom	prompts.

       2.c. The	Warning	Prompt

       The suggestions system includes a secondary, warning prompt, used to
       highlight wrong/invalid/non-existent command names. Once	an invalid
       command is entered, the regular prompt will be switched to the warning
       prompt.

       The wrong command name check is omitted if the input string:

	       Is quoted (e.g.:	"string" or 'string')
	       Is bracketed (e.g.: (string), [string], or {string})
	       It starts with a	stream redirection character (e.g.: <string or
	      >string)
	       Is a comment (e.g.: #string)
	       It starts with one or more spaces
	       Is an assignment	(e.g.: foo=var)
	       It is escaped (e.g.: \string)

       The warning prompt can be customized by means of	the same rules used by
       the regular prompt. To use a custom warning prompt, modify the Warning-
       Prompt line in the prompts file (via the	`prompt	edit` command).	It de-
       faults to

	      "%{reset}%{b:red}(!)%{n:dim} > "

       the last	line of	the regular prompt will	become "(!) > ", with "(!)"
       printed in bold red.

       To disable this feature use the --no-warning-prompt command line	switch
       or set the EnableWarningPrompt option to	false in the prompts file.

       Note: Bear in mind that the warning prompt depends on the suggestions
       system, so that it will not be available	if this	system is disabled.

       2.d. The	Right Prompt

       The right prompt	is just	like the regular prompt, but printed on	the
       right side of the screen.

       Use the RightPrompt option in the prompts file to set a right prompt.
       For a concrete usage example see	the info prompt	in the prompts file.

       A few caveats:

	       a.  Right  prompts only work with multiline regular prompts (in
	      the case of a single line	regular	prompt,	the  right  prompt  is
	      not printed).
	       b.  Multiple lines are not supported by right prompts (only the
	      first line will be printed).
	       c. If the decoded right prompt exceeds the number of  available
	      terminal columns,	the prompt is not printed.

       3. THE DIVIDING LINE

       The line	dividing the current list of files and the prompt. It can be
       customized using	the DividingLine option	in the color scheme file to
       fit your	prompt design and/or color scheme.

       DividingLine accepts one	or more	ASCII or Unicode characters (in	both
       cases you only need to type/paste here the chosen character(s)).	If
       only one	character is specified (by default, "-"), it will be repeat-
       edly printed to fulfill the current line	up to the right	edge of	the
       screen or terminal window. If you don't want to cover the whole line,
       specify two or more characters, in which	case only these	characters
       (and no more) will be used as dividing line. For	example: "------->".
       To use an empty line, set DividingLineChar to "0" (that is, as a	char-
       acter, not as a number).	Finally, if this value is not set, a special
       line drawn with box-drawing characters will be used (box-drawing	char-
       acters are not supported	by all terminal	emulators).

       The color of this line is set via the dl	color code in the color	scheme
       file. Consult the COLOR CODE section above for more information.

       4. FZF WINDOW

       Refer to	the TAB	COMPLETION section below.

8. BUILT-IN EXPANSIONS
       1. ELNs

	      A	 number	 representing  the Entry List Number (ELN) of a	listed
	      file is expanded to its corresponding  filename.	You  can  type
	      `ELN<TAB>`  to convert the ELN into the filename.	ELN ranges are
	      also supported. For example, `t 1-3 10 24` will move  the	 files
	      with ELNs	1 through 3, 10	and 24 to the trash.

	      Bear in mind that	ELNs will only be expanded provided some file-
	      name  is	listed	on the screen under the	corresponding numbers.
	      For example: `diff 1 118`	will only expand '1', but  not	'118',
	      if  there	 is  no	ELN 118. In the	same way, the range 1-118 will
	      only be expanded provided	there are 118 or more filenames	listed
	      on the screen. Note that the second field	 of  a	range  can  be
	      omitted,	in  which  case	the ELN	of the last listed file	is as-
	      sumed (e.g.: provided there are 100 listed files,	12- is equiva-
	      lent to 12-100).

	      Since ranges can be a bit	tricky,	tab completion is available to
	      make sure	this range actually includes the desired filenames.

	      If this feature somehow conflicts	with the command you  want  to
	      run,  say,  `chmod 644 ...`, because the current number of files
	      is equal or larger than 644 (in which  case  clifm  will	expand
	      that  number),  then you can simply run the command as external:
	      `;chmod 644 ...`

       2. Selected files

	      The s: prefix expands to all selected files (as absolute paths).
	      To get the list of selected files	type `s:<TAB>`.	The  sel  key-
	      word  can	 be  used as well, but,	unlike s:, it can only be used
	      after the	first word, i.e., as a command parameter. For example,
	      `m sel` (or `m s:`) will move all	selected files to the  current
	      directory. To trash or remove selected files, simply run `t sel`
	      or `r sel` respectively.

       3. Bookmarks

	      The  b:  prefix  expands	to  all	 bookmarked files (as absolute
	      paths). Enter `b:` followed by a bookmark	name to	expand to  the
	      absolute	path  referred to by that bookmark. To get the list of
	      available	bookmarks, type	`b:<TAB>`.  For	 example,  `p  b:work`
	      will print the file properties of	the bookmark named work.

       4. Tagged files

	      The  t: prefix is	used to	access tagged files. Type `t:<TAB>` to
	      get the list of available	tags. Type  `t:TAG<TAB>`  to  get  the
	      list  of	files tagged as	TAG. t:TAG expands to all files	tagged
	      as TAG (as absolute paths). For example, `s t:old`  will	select
	      all files	tagged as "old".

       5. Workspaces

	      The  w:  prefix  expands	to  a  specific	workspace (as absolute
	      path). For example, `c sel w:3` will copy	all selected files  to
	      the third	workspace.

       6. File types

	      The  = (equal) prefix is used to filter files according to their
	      type. Type `=<TAB>` to get the list of available file  types  in
	      the  current  directory. Also, type `=x<TAB>` to get the list of
	      executable files in the current directory. For example, `r =D =F
	      =L` will remove all empty	directories, empty regular files,  and
	      broken symbolic links in the current directory.

       7. MIME types

	      The  @  (at  sign)  prefix  is used to filter files according to
	      their MIME type. Type `@<TAB>` to	get the	 list  of  MIME	 types
	      available	 in  the  current  directory. For example, `br @image`
	      will bulk	rename all files in the	current	directory  whose  MIME
	      type includes the	word "image".

       8. Pinned directory

	      A	 single	 comma	(,)  expands to	the currently pinned directory
	      (see the pin command for more  information).  For	 example,  the
	      command  `c =o ,`	will copy all other-writable files in the cur-
	      rent directory to	the pinned directory.

       9. Parent directories

	      Via the fastback function, you can quickly change	to any	parent
	      directory	using a	series of dots.	A single dot (.) refers	to the
	      current  directory, and two dots (..) refer to the parent	direc-
	      tory. This pattern continues, so three dots (...)	refer  to  the
	      parent  of  the  parent directory, four dots (....) refer	to the
	      parent of	the parent of the parent directory, and	so on. In gen-
	      eral, n dots refer to the	nth level of parent directories.

       Needless	to say,	combinations are possible. For example,	the command `c
       sel b:work @image =L 1-3	,` will	copy all selected files, the bookmark
       named work, all images, broken symbolic links in	the current directory,
       and files with ELNs 1 through 3 to the pinned directory.

       Note: If	using the fzf mode for Tab completion (default), you can oper-
       ate on some files of any	of these groups	of files using the TAB key to
       mark files in the list. For example, you	can type `CMD sel<TAB>`	to get
       the list	of selected files, then	use the	TAB key	to mark	the desired
       files. Press Enter or Right to insert the marked	files into the current
       command line.

9. TAB COMPLETION
       There are four modes for	tab completion:	standard (interface provided
       by readline), fzf, which	depends	on fzf (https://github.com/june-
       gunn/fzf) (version 0.18.0 or later), fnf
       (https://github.com/leo-arch/fnf), and smenu
       (https://github.com/p-gen/smenu).

       By default, if any of fzf, fnf, or smenu	(in this order)	is installed
       (found in $PATH), clifm will attempt to use the corresponding mode to
       display completions. You	can force the use of a specific	mode using the
       --stdtab, --fzftab, --fnftab, and --smenutab command line switches. The
       TabCompletionMode option	in the configuration file can be used to per-
       manently	set the	tab completion mode.

       If using	the fzf	mode, the completions interface	can be customized us-
       ing the FzfTabOptions option in the color scheme	file. --height,	--mar-
       gin, +i/-i, --read0, --query, and --ansi	will be	appended to set	up
       some details of the completions interface. Set this value to none to
       pass no option, to the empty string to load the default values, or to
       any other custom	value. Unless set to none, any option specified	here
       will override FZF_DEFAULT_OPTS.

       Default values for this option are:
	       --color=16,prompt:6,fg+:-1,pointer:4,hl:5,hl+:5,gut-
	      ter:-1,marker:2,border:7:dim     --bind	  tab:accept,right:ac-
	      cept,left:abort,alt-p:toggle-preview  --inline-info --layout=re-
	      verse-list --preview-window=wrap,border-left

       Consult fzf(1) for more information.

       If set neither in FzfTabOptions nor in FZF_DEFAULT_OPTS (in this	or-
       der), the height	of the fzf window is set to the	default	value: 40% of
       the current terminal number of line/rows.

       To use fzf global values	(defined in FZF_DEFAULT_OPTS), set FzfTabOp-
       tions to	none.

       File previews are available in fzf mode via shotgun. See	the SHOTGUN
       section above.

       Image previews are available via	the clifmimg plugin. Run `help im-
       age-previews` for more information.

       If using	the smenu mode,	the interface can be customized	using the
       CLIFM_SMENU_OPTIONS environment variable. For example:

	       export CLIFM_SMENU_OPTIONS="-a  t:2,b  b:4  c:r	ct:2,r	sf:6,r
	      st:5,r mt:5,b"

       Consult smenu(1)	for more information.

       For information about how to customize fnf consult fnf(1).

       Clifm can perform fuzzy tab completion (just as suggestions) for	file-
       names and paths (e.g. "dwn" is completed/suggested as "Downloads"). To
       enable this feature use the --fuzzy-matching command line switch	or set
       FuzzyMatching to	true in	the configuration file.

10. FILE OPENER
       As  clifm's  builtin file opener, Lira takes care of opening files when
       no opening application has been specified in the	command	line (or  when
       running	as  a  standalone  file	 opener,  via  the --open command line
       switch).	It does	this by	automatically parsing a	MIME  list  file  (see
       the FILES section below): it looks first	for a matching pattern (either
       a  MIME	type  or a filename), then checks the existence	of the command
       associated to this pattern, and finally executes	it.

       Lira is controlled using	the mime command. File associations are	stored
       in the MIME list	file and can be	edited using the `mime edit` command.

       When running for	the first time,	or whenever the	MIME list file cannot
       be found, clifm will copy the MIME definitions file from	the DATADIR
       directory (usually /usr/share/clifm/mimelist.clifm) to the local	con-
       figuration directory.

       Lira will check the file	line by	line, and if a matching	line is	found,
       and if at least one of the specified applications exists, this applica-
       tion will be used to open the corresponding associated file. Else, the
       next line will be checked. In other words, the precedence order is top
       to bottom (for lines) and left to right (for applications).

       Note: In	case of	directories (whose MIME	type is	inode/directory), the
       entry will be used only for the open-with command (ow).

       A note about MIME types

       File MIME types are determined using libmagic the same library used by
       file(1),	which, though highly reliable, is not bullet-proof. Sometimes
       it fails, either	because	the appropriate	MIME type is not in its	data-
       base, or	because	the database is	just wrong. In either case, you	can
       manually	map file extensions to MIME types using	a specific file	(by
       default,	~/.mime.types).(1)

       By way of example, libmagic knows nothing about ILBM image files, and
       returns application/zip for OpenRaster images. Create ~/.mime.types
       with the	following content:

	       image/x-ilbm	  iff lbm
	       image/openraster	  ora

       Restart clifm and these MIME types will be immediately associated to
       all files having	the specified extensions (to test it, run `mm info` on
       any of these files).(2)

       If required, edit the mimelist and the preview files (`mm edit` and
       `view edit`, to specify how files are opened and	previewed respec-
       tively),	and add	a new line handling the	corresponding MIME types (say,
       "image/x-ilbm=APP" and "image/openraster=APP"). See below for more in-
       formation.

       (1) To use a different file, set	$CLIFM_MIMETYPES_FILE to the desired
       file, for example, `CLIFM_MIMETYPES_FILE=/etc/mime.types	clifm`.

       (2) In case of issues, bear in mind that	the mime.types file is read
       top to bottom, and that,	in case	of conclicts (mostly duplicate exten-
       sions), only the	last entry is effective.

       Important: Though sometimes convenient, determining file	types by means
       of filename extensions alone is unreliable: a file, no matter its type,
       can bear	any file extension, without restriction. Because of this, you
       might end up executing a	command	that was not intended due to wrong
       file identification. Be extra careful when doing	this.

       1. Syntax

       In its most basic form, each line in the	MIME list file consists	of:

       a) A left value:	this is	just a regular expression indicating what we
       are trying to match (it can be a	filename, a file extension, or a MIME
       type).

       b) A right value: a semicolon separated list of commands	to be used as
       the opening application (the first existing program found in this list
       will be used).

       For example:

	       ^text/.*=leafpad

       which is	to be read as follows: Open text files (in this	case we	are
       partially matching a MIME type) using leafpad.

       As explained below, this	basic rule can be modified to get much more
       control on what we are matching and how we execute the opening applica-
       tion.

       The syntax is this:

	       [!][X:][N:]REGEX=CMD [ARGS] [%[f,x]] [![E,O]] [&]; ...

       Note that this syntax departs from the Freedesktop specification	in
       that we do not rely on desktop files (mostly used by desktop environ-
       ments), but rather on commands and parameters.

       2. The left value (REGEX)

       2.1. The	X prefix

       Without any prefixes, the rule will attempt to match MIME types,	disre-
       garding if we are running on a graphical	or non-graphical environment.
       For example,

	       ^text/.*=leafpad

       instructs lira to open all text files using leafpad, no matter if we
       are running on a	graphical or non-graphical environment.

       However,	we usually do not want to use leafpad if we are	not running on
       a graphical environment.	In this	case, we can write a double rule as
       follows:

	       X:^text/.*=leafpad
	       !X:^text/.*=nano

       where the first rule (via the X prefix) is intended for use on graphi-
       cal environments, where we can use leafpad, and the second one (via the
       !X prefix) for non-graphical environments, where	we rather prefer to
       use nano.

       2.2. The	N prefix

       Sometimes MIME types are	not enough to identify a file, or we just want
       to match	a specific filename. In	this case, we can use the N prefix to
       tell Lira that we want to match a filename instead of a MIME type. For
       example:

	       X:N:^filename.txt$=leafpad

       in which	case we	want to	match exactly the filename filename.txt	(no
       matter its MIME type).

       If we want to match file	extensions, instead of entire filenames, we
       can use a regular expression, as	follows:

	       X:N:.*.txt$=leafpad

       Here, we	are not	matching a specific filename, but a specific file ex-
       tension,	so that	the rule reads as follows: open	all files ending with
       .txt using leafpad.

       3. The right value (CMD)

       The right value is a semicolon separated	list of	commands, each of
       which contains a	command, and optionally, command arguments and modi-
       fiers. For example:

	       X:N:.*.txt$=leafpad --sync,geany,mousepad,nano

       which means: Open .txt files (graphical environments only) using	`leaf-
       pad --sync`, or,	if not found, geany`, mousepad,	or nano, in this or-
       der. The	file to	be opened will be appended to the command string, say
       `leafpad	--sync FILE`.

       3.1. The	%f placeholder

       Use the %f placeholder to specify the position of the file to be	opened
       in the command, for example:

	       mpv %f --terminal=no

       will be translated into:	`mpv FILE --terminal=no`

       If the placeholder is not specified, the	file to	be opened will be ap-
       pended to the command string. Thus, this: `mpv --terminal=no` amounts
       to this:	`mpv --terminal=no FILE`.

       3.2. STDERR and STDOUT

       Sometimes we might need to silence either standard error	(STDERR),
       standard	output (STDOUT), or both. Use !E and !O	to silence them	re-
       spectively. Both	can be used together: !EO. Example: `leafpad %f	!EO`,
       or, to silence only STDERR: `leafpad %f !E`.

       3.3. Run	in the background

       The ampersand character (&) can be used,	as usual, to run the opening
       application in the background. Example: `leafpad	%f &`.

       3.4. The	%x flag

       The %x flag is a	shortcut for "%f !EO &": the command will be executed
       in the background and both STDOUT and STDERR will be silenced. As a
       plus, the command is executed in	a new session, i.e. detached from the
       running terminal	(via setsid(3).	This flag is recommended to open files
       via graphical applications. Examples:

       For GUI applications:

	       APP %x

       For terminal applications:

	       TERM -e APP %x

       Replace TERM and	APP by the appropriate values (say, xterm and vi re-
       spectively). The	-e option might	vary depending on the terminal emula-
       tor used.

       Note: In	case of	archives, the builtin ad command can be	used as	open-
       ing application.

       3.5. Environment	variables

       Environment variables (e.g. $EDITOR, $VISUAL, $BROWSER, and even
       $PAGER) are also	recognized by Lira. You	can even set custom environ-
       ment variables to be used exclusively by	clifm. For example, you	can
       set CLIFM_TERM, CLIFM_EDITOR, and CLIFM_PDF, and	then use them to de-
       fine some associations:

	       X:text/plain=$CLIFM_TERM	-e $CLIFM_EDITOR %f &
	       X:N:.*\.pdf$=$CLIFM_PDF %f &

       3.6. Using shell	scripts
	      Bear in mind that	commands will  be  executed  directly  without
	      shell intervention, so that no shell goodies (like pipes,	condi-
	      tions,  loops,  etc)  are	 available. In case you	need something
	      more complex than	a single command  (including  shell  capabili-
	      ties)  write your	own script and place the path to the script in
	      place of the command. For	example:

	       X:^text/.*:~/scripts/my_cool_script.sh

       4. Examples:

       Match a complete	filename:

	       X:N:some_filename=nano;vim;vi;emacs

       Note: If	the filename contains a	dot, quote it like this: some_file-
       name\.ext (to prevent the REGEX parser from interpreting	the dot).

       Open video files	with mpv in the	foreground and silence STDERR:

	       ^video/.*=mpv %f	!E

       Open video files	with gmplayer in the background	and silence both
       STDERR and STDOUT:

	       ^video/.*=gmplayer %f !EO & (or 'gmplayer %x')

       Match multiple filenames	(starting with "str"):

	       X:N:^str.*=leafpad %x;mousepad %x;kate %x;gedit %x

       Match a single extension:

	       X:N:.*\.txt$=leafpad %x;mousepad	%x;kate	%x;gedit %x
	       !X:N:.*\.^txt$=nano;vim;vi;emacs

       Match multiple extensions:

	       X:N:.*\.(sh|c|py|pl)$:geany %x;leafpad %x;nano

       Match a single mimetype:

	       !X:^audio/mp3$=mpv   %f	 --terminal=no;ffplay	-nodisp	  -au-
	      toexit;mpv;mplayer

       Match multiple mimetypes:

	       X:^audio/.*=mplayer;mplayer2;vlc	    %x;gmplayer	   %x;smplayer
	      %x;totem %x

       In case of MIME types, you can also write the entire expression without
       relying on any regular expression. For example:

	       !X:text/plain=$TERM -e $EDITOR %x

       For more	information take a look	at the mimelist	file itself (F6	or `mm
       edit`).

       5. Using	a third-party opener

       This can	be done	in two ways:

       a. Set Opener in	the configuration file to the name of the desired
       opener. For example, to use Ranger's rifle(1):

	       Opener=rifle

       or, if you prefer xdg-open(1):

	       Opener=xdg-open

       b. Tell Lira to open all	files, no matter the MIME type or filename,
       via the desired opener. For example:

	       .*=rifle

       6. Using	Clifm as a standalone file opener

       Though clifm is a file manager, it can be used as a simple file opener
       via the --open command line option. For example:

	       clifm --open /path/to/my_file.jpg
	       clifm --open /path/to/my_dir
	       clifm --open https://some_domain

       Note: When opening web resources	clifm will query the mimelist file us-
       ing text/html as	MIME type. Whatever association	it finds for this spe-
       cific MIME type will be used to open the	web resource.

11. SHOTGUN
       1. Tab completion with file previews

       Shotgun is clifm's builtin files	previewer. Though, as described	below,
       it may be used as a standalone and general purpose file previewer (sim-
       ilar in this regard to pistol(1)), it is	mainly intended	to be used by
       clifm's tab completion function running in fzf mode: every time tab
       completion is invoked for files,	shotgun	will be	executed with the cur-
       rently highlighted file as argument (as shown below) to generate	the
       preview.	Set the	FzfPreview option in the configuration file to false
       (or run with --no-fzfpreview) to	disable	this feature.

       Shotgun is also used by the view	command	to display file	previews in
       full screen.

       2. Running as a standalone files	previewer

       Executed	via the	--preview command line switch, shotgun performs	file
       preview for any file passed as argument.	For example:

	       clifm --preview myfile.txt

       This command generates a	preview	of the file myfile.txt and then	quits
       clifm.

       3. Customization

       Previewing applications (based on either	MIME type or filename) are de-
       fined in	a configuration	file ($XDG_CONFIG_HOME/clifm/profiles/PRO-
       FILE/preview.clifm) using the same syntax used by Lira (the builtin
       file opener). See the FILE OPENER section above.

       You can set an alternative configuration	file using the --shotgun-file
       command line switch:

	       clifm --shotgun-file=/path/to/shotgun/config/file --preview=my-
	      file.txt

       To customize the	appearance of the preview window, use the --pre-
       view-window option in the FzfTabOptions line in the current color
       scheme file. For	example, if you	want the preview window	down the file
       list (instead of	to the right):

	       --preview-window=down

       Default keybindings for the preview window:

	       Alt+p: Toggle the preview window
	       Ctrl+Up / Shift+Up: Scroll the preview window up	one line
	       Ctrl+Down / Shift+Down: Scroll the preview window down one line
	       Alt+Up: Scroll the preview window up one	page
	       Alt+Down: Scroll	the preview window down	one page

       Keybindings can be customized using the --bind option in	the FzfTabOp-
       tions field in the color	scheme file.

       Consult fzf(1) for more information.

       4. Image	previews

       Image previews are available via	the clifmimg plugin. Run `help image-
       previews` or consult the	Wiki for more information:
       https://github.com/leo-arch/clifm/tree/master/misc/tools/imgprev.

12. AUTO-SUGGESTIONS
       Gemini is a builtin suggestions system (similar to that provided	by the
       Fish shell). As you type,  Gemini  will	suggest	 possible  completions
       right after the current cursor position.

       The  following  checks  are available (the order	can be customized, see
       below):

       a. ELNs

       b. clifm	commands and parameters

       c. Entries in the command history list (already used commands)

       d. Filenames in the current working directory and paths (1)

       e. Entries in the jump database

       f. Aliases names

       g. Bookmarks names

       h. Program names	in PATH

       i. Shell	builtins (2)

       (1) Fuzzy suggestions are supported. For	example: dwn > Downloads.  En-
       able  this  feature  using  the --fuzzy-marching	command	line switch or
       setting FuzzyMatching to	true in	the configuration file.

       (2) The shell name is taken from	/bin/sh. The following shells are sup-
       ported: bash, dash, fish, ksh, tcsh, and	zsh. Command names are checked
       in the following	order: clifm internal commands,	commands in PATH,  and
       shell builtins.

       Note:  By  default,  a  brief description for internal commands is sug-
       gested. You can disable this feature via	the SuggestCmdDesc  option  in
       the configuration file.

       To  accept the entire suggestion	press Right or Ctrl+f: the cursor will
       move to the end of the suggested	command	and the	suggestion color  will
       change  to that of the typed text; next,	you can	press Enter to execute
       the command as usual. Otherwise,	if the suggestion is not accepted,  it
       will be simply ignored and you can continue editing the current command
       line however you	want.

       To  accept  the first suggested word only (up to	first slash or space),
       press rather Alt+Right or Alt+f.	Not available for  ELNs,  aliases  and
       bookmarks names.

       Bear  in	 mind that suggestions for ELNs, aliases, bookmarks names, the
       jump function (invoked by the j command), just as filenames  and	 paths
       (if fuzzy-suggestions are enabled) do not work as the remaining sugges-
       tions:  they do not suggest possible completions	for the	current	input,
       but rather the value pointed to by it. For example, if  you  type  "12"
       and  the	 current  list of files	includes a filename whose ELN is '12',
       the filename corresponding to this ELN will be printed next to "12"  as
       follows:	12_ > filename (where the underscore is	the current cursor po-
       sition).	 Press Right or	Ctrl+f to accept the suggestion, in which case
       the text	typed so far will be replaced by the suggestion.

       The order of the	suggestion checks can be customized using the  Sugges-
       tionStrategy option in the configuration	file. Each check is assigned a
       lowercase character:

	a = Aliases names
	c = Possible completions
	e = ELNs
	f = Files in the current directory
	h = Entries in the commands history
	j = Entries in the jump	database

       The  value  taken  by  SuggestionStrategy is a string containing	one or
       more of the above characters. The characters order in this string spec-
       ifies the order in which	the suggestion checks will be  performed.  For
       example,	 to  perform  all checks in the	same order above, the value of
       the string should be acefhj (without quotes). Or, if you	prefer to  run
       the  history  check  first: hacefj. Finally, you	can ignore one or more
       checks by just  omitting	 the  corresponding  character	(to  skip  all
       checks,	set  the option	value to a single dash (-)). So, to ignore the
       aliases and the ELN checks, set SuggestionStrategy to hcfj. The default
       value for this option is	ehfjac.

       Note: The check for program names in PATH is always executed  at	 last,
       except when the ExternalCommands	option is disabled, in which case sug-
       gestions	for them are simply not	displayed.

       Suggestions will	be printed using one of	the following color codes (see
       the COLOR CODES section above):

       sf:  Used  for  file and	directory names. This includes suggestions for
       ELNs, bookmarks names, files in the  current  directory,	 and  possible
       completions. Default value: 2;4;36 (dimmed underlined cyan)

       sh: Used	for entries in the commands history.

       sc: Used	for aliases and	program	names in PATH.

       sx: Used	for clifm internal commands and	parameters.

       sp:  Greater-than  sign	(>)  used when suggesting ELNs,	bookmarks, and
       aliases names.

       You can set SuggestFiletypeColor	to true	in the configuration  file  to
       use  the	 color of the file type	of the current filename	(as set	in the
       color scheme file) instead of the value of sf. For example, if  a  sug-
       gestion	is  printed  for  a file that is a symbolic link, ln or	or (if
       it's a broken link) will	be used	instead	of sf.

13. SHELL FUNCTIONS
       Clifm includes a	 few  shell  functions	to  perform  specific  actions
       (cd-on-quit,  and  subshell-notice).  Take  a look at the corresponding
       files, in /usr/share/clifm/functions, and follow	the instructions. Nee-
       dles to say, you	can write your own functions.

14. PLUGINS
       Plugins are just	scripts	or programs (written in	any language) intended
       to add, extend or improve clifm's functionalities. They are  linked  to
       actions	names  defined	in  a  dedicated configuration file ($XDG_CON-
       FIG_HOME/clifm/profiles/PROFILE/actions.clifm).

       Note: In	stealth	mode, since access to configuration files is  not  al-
       lowed, plugins are disabled.

       To  list	available actions and the plugins they are linked to, run `ac-
       tions`.

       To execute a given plugin, enter	the corresponding  action  name	 (plus
       parameters if required).

       To  get information about a specific plugin, enter the action name fol-
       lowed by	`--help`.

       Though several plugins are provided at installation time	(in the	 plug-
       ins  directory),	you can	write your owns	as you like, with any language
       you like, and for whatever purpose you want. Writing plugins is	gener-
       ally  quite  easy;  but your mileage may	vary depending on what you are
       trying to achieve. A good place to start	is examining the provided plu-
       gins and	reading	the actions command description, just as the  ENVIRON-
       MENT and	FILES sections below.

       A  convenient helper script is provided to get a	consistent look	across
       all plugins, specially those running fzf. This helper script is located
       in DATADIR/clifm/plugins/plugins-helper,	but it will be	overridden  by
       $XDG_CONFIG_HOME/clifm/plugins/plugins-helper if	found. The location of
       this  file  is set by clifm itself in the CLIFM_PLUGINS_HELPER environ-
       ment variable to	be used	by plugins. Source the file and	use any	of the
       functions and variables provided	by it to write a new fzf plugin:

	   # Source our	plugins	helper
	   if [	-z "$CLIFM_PLUGINS_HELPER" ] ||	! [ -f "$CLIFM_PLUGINS_HELPER"
       ]; then
	       printf "clifm: Unable to	find plugins-helper file\n" >&2
	       exit 1
	   fi
	   # shellcheck	source=/dev/null
	   . "$CLIFM_PLUGINS_HELPER"

       Plugins can talk	to clifm via a dedicated pipe created for this purpose
       and exposed via an environment variable (CLIFM_BUS). Write to the  pipe
       and  clifm  will	hear and handle	the message immediately	after the plu-
       gin's execution.	If the message is a path,  clifm  will	run  the  open
       function,  changing  the	current	directory to the new path, if a	direc-
       tory, or	opening	it with	the default associated application if a	 file.
       Otherwise,  if the message is not a path, it will be taken and executed
       as a command. Examples:

	   'echo "/tmp"	> "$CLIFM_BUS"'	tells clifm to change the current  di-
       rectory to /tmp

	   'echo "s *.png" > "$CLIFM_BUS"' makes clifm select all files	in the
       current directory ending	with ".png"

       The  pipe (CLIFM_BUS) is	deleted	immediately after the execution	of its
       content and recreated before running any	other plugin.

       This is a list of available plugins:
       +---------------------+------------------------------------------+--------------------------------+
       | Action	name	     | Description				| Dependencies			 |
       +---------------------+------------------------------------------+--------------------------------+
       | bn		     | Create files in batch			| -				 |
       +---------------------+------------------------------------------+--------------------------------+
       | bcp		     | Copy files in batch			| -				 |
       +---------------------+------------------------------------------+--------------------------------+
       | bmi		     | Import bookmarks				| -				 |
       +---------------------+------------------------------------------+--------------------------------+
       | clip		     | Interact	with the system	clipboard	| (1)				 |
       +---------------------+------------------------------------------+--------------------------------+
       | unset		     | Test terminal's colors capability	| (2)				 |
       +---------------------+------------------------------------------+--------------------------------+
       | cr		     | Copy files to a remote location		| fzf, and scp,	ffsend,	or croc	 |
       +---------------------+------------------------------------------+--------------------------------+
       | da		     | Disk usage analyzer			| du, fzf			 |
       +---------------------+------------------------------------------+--------------------------------+
       | dr		     | Drag and	drop files			| dragon or dragon-drag-and-drop |
       +---------------------+------------------------------------------+--------------------------------+
       | fdups		     | Find/remove file	dups			| (3)				 |
       +---------------------+------------------------------------------+--------------------------------+
       | +		     | Find files in the current directory	| fzf or rofi			 |
       +---------------------+------------------------------------------+--------------------------------+
       | _ (underscore)	     | Quickly change directory			| fzf				 |
       +---------------------+------------------------------------------+--------------------------------+
       | h		     | Browse the commands history		| fzf				 |
       +---------------------+------------------------------------------+--------------------------------+
       | -  (yes,   just   a | Navigate/select/preview files		| See section below		 |
       | dash)		     |						|				 |
       +---------------------+------------------------------------------+--------------------------------+
       | *		     | Select files (includes flat view)	| fzf, find			 |
       +---------------------+------------------------------------------+--------------------------------+
       | **		     | Deselect	files				| fzf				 |
       +---------------------+------------------------------------------+--------------------------------+
       | unset		     | Show git	repo status			| git (4)			 |
       +---------------------+------------------------------------------+--------------------------------+
       | ih		     | Browse clifm's manpage			| fzf				 |
       +---------------------+------------------------------------------+--------------------------------+
       | i		     | Image thumbnails	previewer		| sxiv,	feh or lsix		 |
       +---------------------+------------------------------------------+--------------------------------+
       | ++		     | Jump to a directory in the jump database	| fzf or rofi			 |
       +---------------------+------------------------------------------+--------------------------------+
       | kd		     | Decrypt a GnuPG encrypted file		| gpg, tar, sed, grep		 |
       +---------------------+------------------------------------------+--------------------------------+
       | ke		     | Encrypt files/dirs using	GnuPG		| gpg, tar, sed, fzf, awk, xargs |
       +---------------------+------------------------------------------+--------------------------------+
       | ml		     | List files by a given MIME type		| fzf, file			 |
       +---------------------+------------------------------------------+--------------------------------+
       | music		     | Create a	music playlist			| mplayer			 |
       +---------------------+------------------------------------------+--------------------------------+
       | gg		     | Pipe files in CWD through a pager	| less,	column			 |
       +---------------------+------------------------------------------+--------------------------------+
       | ptot		     | Preview PDF files as text		| pdftotext			 |
       +---------------------+------------------------------------------+--------------------------------+
       | rrm		     | Recursively remove files			| find,	fzf			 |
       +---------------------+------------------------------------------+--------------------------------+
       | //		     | Search files by content			| fzf, ripgrep			 |
       +---------------------+------------------------------------------+--------------------------------+
       | unset		     | Update plugins				| (5)				 |
       +---------------------+------------------------------------------+--------------------------------+
       | vid		     | Preview video files thumbnails		| ffmpegthumbnailer		 |
       +---------------------+------------------------------------------+--------------------------------+
       | vt		     | Virtual directory for sets of files	| sed				 |
       +---------------------+------------------------------------------+--------------------------------+
       | wall		     | Set image as wallpaper			| (6)				 |
       +---------------------+------------------------------------------+--------------------------------+
       | unset		     | Pick/select files via clifm		| (7)				 |
       +---------------------+------------------------------------------+--------------------------------+
       | Ctrl+y		     | Copy the	line buffer to the clipboard	| (8)				 |
       +---------------------+------------------------------------------+--------------------------------+

       (1)   xclip  or	xsel  (Xorg),  wl-copy/wl-paste	 (Wayland),  clipboard
       (Haiku),	clip (Cygwin), pbcopy/pbget (MacOS), termux-clipboard-get/ter-
       mux-clipboard-set	 (Termux),	   cb	      (cross-platform:
       https://github.com/Slackadays/Clipboard)

       (2) colors.sh (by default unset)

       (3) find, md5sum, sort, uniq, xargs, sed, stat

       (4)  The	 git_status.sh	plugin	is not intended	to be used as a	normal
       plugin, that is,	executed via an	action name, but rather	to be executed
       as a prompt command  (it	 will  be  executed  immediately  before  each
       prompt).	Add this line to the main configuration	file:

	promptcmd /usr/share/clifm/plugins/git_status.sh

       Whereas	this plugin provides basic Git integration, it could be	easily
       modified	(it is just a few lines	long) to include whatever git function
       you might need.

       (5) update.sh (by default unset)

       (6) feh,	xloadimage, hsetroot, or nitrogen (for X); swww	or swaybg (for
       Wayland)

       (7)  file_picker.sh  (by	 default  unset).  Usage  example:   `ls   -ld
       $(file_picker.sh)`

       (8)  Dependencies:  cb,	wl-copy,  xclip,  xsel,	 pbcopy,  termux-clip-
       board-set,  clipboard,  or  clip.  Consult  the	plugin	 file	itself
       (xclip.sh) for more information

       Dependencies of the previewer plugin (fzfnav.sh)

	 archives: atool, bsdtar, or tar
	 images: kitty terminal, imagemagick, and ueberzug or viu or catimg or
       img2txt or pixterm
	 fonts:	fontpreview or fontforge
	 docs: libreoffice, catdoc, odt2txt, pandoc
	 PDF: pdftoppm,	pdftotext or mutool
	 epub: epub-thumbnailer
	 DjVu: djvulibre or djvutxt
	 postscript: ghostscript
	 videos: ffmpegthumbnailer
	 audio:	ffmpeg,	mplayer, or mpv
	 web: w3m, links, elinks, or pandoc
	 markdown: glow
	 highlight: bat, highlight, or pygmentize
	 torrent: transmission-cli
	 json: python or pq
	 file info: exiftool, mediainfo, or file

       To run the pager.sh plugin, for example,	you only need to enter the
       corresponding action name, in this case gg. In case of need, all	plug-
       ins provide a -h,--help switch for a brief usage	description.

       Note: The fzfnav	plugin uses fzf(1) to navigate the filesystem and BFG
       (a script located in the	plugins	directory) to show previews (to	dis-
       play image previews BFG requires	ueberzug(1) or the Kitty protocol via
       the Kitty terminal). A configuration file (BFG.cfg, in the plugins di-
       rectory itself) is provided to customize	the previewer's	behavior.

       Note 2: An alternative files previewing function	(builtin, and thereby
       faster than BFG)	is provided by shotgun.	See the	SHOTGUN	section	above
       for more	information.

       In addition to the builtin BFG previewer, fzfnav	supports the use of
       both Ranger's scope.sh script and pistol(1). To use scope, edit the BFG
       configuration file and set USE_SCOPE to 1 and SCOPE_FILE	to the correct
       path to the scope.sh file (normally $HOME/.config/ranger/scope.sh). To
       use pistol instead, set USE_PISTOL to 1.

       Take a look at the Wiki for more	information:
       https://github.com/clifm/wiki/Advanced#plugins

15. AUTOCOMMANDS
       Heavily	inspired  by Vifm, the autocommands function allows the	user a
       fine-grained control over clifm settings. It is mostly devised as a way
       to improve performance for remote filesystems (usually slower than  lo-
       cal  ones)  by  allowing	 you  to turn off some features	(like the file
       counter)	that might greatly affect performance under some circumstances
       (like remote connections). However, the autocommands  function  is  not
       restricted  to  this specific use case: use it for whatever purpose you
       find useful.

       Note: We	describe here permanent	autocommands, which need to be defined
       in the configuration file. Temporary autocommands (set via the  command
       line  and valid only for	the current directory and the current session)
       are also	available via the auto command.	See above.

       Add a line preceded by the autocmd keyword to  the  main	 configuration
       file. The general syntax	is:
	autocmd	TARGET cmd,cmd,cmd

       TARGET specifies	the object to which subsequent commands	will apply. It
       can match either	directory names	(paths)	or workspaces.

       1.  To  match  directory	 names	use  a	glob  pattern (as specified by
       glob(7)). If no glob metacharacter is provided, the string will be com-
       pared as	is to the current working directory. To	invert the meaning  of
       a  pattern, prepend an exclamation mark.	To match all directories under
       a specific directory (including this directory itself) use  the	double
       asterisk	(**). A	few examples:

	~/Downloads	  Match	exactly	the Downloads directory	(and only this
       directory) in your home directory
	~/Downloads/*	 Recursively match all subdirectories  in  ~/Downloads
       (excluding the Downloads	directory itself)
	/~/Downloads/**	  Recursively  match all subdirectories	in ~/Downloads
       (including the Downloads	directory itself)
	~/Downloads/*.d	 Match all subdirectories in ~/Downloads  ending  with
       ".d" (excluding the Downloads directory itself)
	!~/Downloads	 Match everything except the ~/Downloads directory

       2.  You can match workspaces using the ampersand	character (@) followed
       by the ws keyword and then the workspace	number.	For example, to	 match
       the  third  workspace: @ws3, or,	to match the first workspace, @ws1. To
       match instead all workspaces except the second one: !@ws2.

       TARGET is followed by a comma separated list of commands:

       !CMD: The exclamation mark allows you to	run shell commands, custom bi-
       naries or scripts

       The following codes are used to control clifm's file list:

	Code   Description	     Example
	cs     Color scheme	     cs=zenburn
	fc     File counter	     fc=0
	ft     Files filter	     ft=.*\.pdf$
	fz     Recursive dir sizes   fz=1
	hf,hh  Hidden files	     hf=0
	lm     Light mode	     lm=1
	lv,ll  Long view	     lv=0
	mf     Max files	     mf=100 (1)
	mn     Max filename length   mn=20 (1)
	od     Only directories	     od=1
	pg     Pager		     pg=0
	st     Sort method	     st=5
	sr     Reverse sort	     sr=1

       To remove a value, set the option to an empty value.  For  example,  to
       remove the files	filter and the color scheme: ft=,cs=

       (1)  This option	supports the unset keyword to remove the corresponding
       limit. E.g.: mf=unset,mn=unset

       Examples

	1. Run in light	mode and disable the file counter for the remotes  di-
       rectory:(1)
	   autocmd /media/remotes/** lm=1,fc=0

	2. Just	a friendly reminder:
	   autcomd  ~/important	 !printf  "Important:  keep your fingers outta
       here!\n"	&& read	-n1

	3. This	directory has thousands	of files. Show only the	first  hundred
       and enable the pager:
	   autocmd /usr/bin mf=100,pg=1

	4.  Lots  of media files (with large filenames). Truncate filenames to
       20 chars	max and	run the	files previewer:(2)
	   autocmd ~/Downloads mn=20,!~/.config/clifm/plugins/fzfnav.sh

	5. I want the second workspace,	no matter what the  current  directory
       is, to list files in long view:
	   autocmd @ws2	lv=1

	6. Mmm,	just because I can. Be creative!
	   autocmd /home/user hf=0,cs=nord,lv=1
	   autocmd / lv=1,fc=0,cs=solarized,st=5

       (1) This	is the recommended configuration for remote filesystems.

       (2) As seen here, plugins can be	used as	well: in this case, we want to
       run  fzfnav  (to	 make use of the files preview capability) whenever we
       enter the Downloads directory, usually containing  videos,  music,  and
       images.	NOTE: If you decide to use a plugin, bear in mind that it will
       not be able to communicate with clifm, because the autocommand function
       always  executes	 commands  as  external	 applications using the	system
       shell.

       Bear in mind that autocmd directives are	evaluated from top to  bottom,
       so  that	subsequent matching entries will overwrite options set by pre-
       vious entries.

       Autocommand notifications

       By default, a gray 'A' is printed to the	left of	the prompt whenever an
       autocommand is active for the current directory.

       The behavior of this indicator can be customized	via the	 InformAutocmd
       option in the configuration file.

       The  color  code	 used to colorize this indicator is ac (see the	COLORS
       section above).

       Autocommand files: .cfm.in and .cfm.out

       To use this feature, you	must first set ReadAutocmdFiles	to true	in the
       main configuration file.	However, bear in mind that  autocommand	 files
       will never be read if running on	an untrusted environment (i.e. if run-
       ning with --secure-cmds,	--secure-env, or --secure-env-full).

       Two  files  are	specifically  checked  by  the	autocommands function:
       .cfm.in and .cfm.out (they must be non-empty regular files of  at  most
       PATH_MAX	 (usually  4096)  bytes,  and no NUL byte must be contained in
       them).

       The content of these files is a single instruction, either a shell com-
       mand or,	if you need more elaborated stuff, a  script  (or  custom  bi-
       nary).  Note that codes to modify clifm's settings (as described	above)
       are not available here.

       If a directory contains a file named .cfm.in, clifm will	 execute  (via
       the  system  shell)  its	 content  when entering	this directory (before
       listing files). If the file is named rather .cfm.out, its content  will
       be  executed immediately	after leaving this directory (and before list-
       ing the new directory's content).

       For example, if you want	a simple notification whenever	you  enter  or
       leave  your  home  directory, create both .cfm.in and .cfm.out files in
       the home	directory with the following content:

       For .cfm.in:
	  printf "Entering %s ..." "$PWD" && read -n1 && clear

       For .cfm.out:
	  printf "Leaving %s ..." "$OLDPWD" && read -n1

16. FILE TAGS
       Etiqueta	is clifm's builtin files tagging system

       1. How does Etiqueta work?

       File tags are created via symlinks using	a specific directory under the
       user's	 profile:     ${XDG_CONFIG_DIR:-/home/USER/.config}/clifm/pro-
       files/USER/tags

       Every  time  a new tag is created, a new	directory named	as the tag it-
       self is created in the tags directory. Tagged files are	just  symbolic
       links to	the actual files created in the	appropriate directory. For ex-
       ample,  if  you	tag  ~/myfile.txt  as  work,  a	symbolic link to ~/my-
       file.txt, named myfile.txt will be created in tags/work.

       2. Handling file	tags

       tag is the main Etiqueta	command	and is used to handle file  tags.  Its
       syntax is as follows:

	tag  [add,  del, list, list-full, new, merge, rename, untag] [FILE]...
       [[:]TAG]

       Note: The :TAG notation is used for commands taking both	file  and  tag
       names:  `tag  add FILES(s) :TAG ...`, to	tag files, and `tag untag :TAG
       file1 file2`, to	untag files. Otherwise,	TAG is used (without the lead-
       ing colon). For example:	`tag new docs`,	to  create  a  new  tag	 named
       docs, or	`tag del png`, to delete the tag named png.

       Both short and long command format can be used:

       +--------------+-------------+---------------------------+
       | Short format |	Long format | Description		|
       +--------------+-------------+---------------------------+
       | ta	      |	tag add	    | Tag files			|
       +--------------+-------------+---------------------------+
       | td	      |	tag del	    | Delete tag(s)		|
       +--------------+-------------+---------------------------+
       | tl	      |	tag list    | List tags	or tagged files	|
       +--------------+-------------+---------------------------+
       | tm	      |	tag rename  | Rename tags		|
       +--------------+-------------+---------------------------+
       | tn	      |	tag new	    | Create new tag(s)		|
       +--------------+-------------+---------------------------+
       | tu	      |	tag untag   | Untag file(s)		|
       +--------------+-------------+---------------------------+
       | ty	      |	tag merge   | Merge two	tags		|
       +--------------+-------------+---------------------------+

       3. Usage	examples

       +---------------------+----------------------------+----------------------------------------------+
       | Short format	     | Long format		  | Description					 |
       +---------------------+----------------------------+----------------------------------------------+
       | tl		     | tag list			  | List available tags				 |
       +---------------------+----------------------------+----------------------------------------------+
       | -		     | tag list-full		  | List available tags	and all	tagged files	 |
       +---------------------+----------------------------+----------------------------------------------+
       | tl work	     | tag list	work		  | List all files tagged as work		 |
       +---------------------+----------------------------+----------------------------------------------+
       | tl file.txt	     | tag list	file.txt	  | List tags applied to the file file.txt	 |
       +---------------------+----------------------------+----------------------------------------------+
       | tn dogs cats	     | tag new dogs cats	  | Create two empty tags: dogs	and cats	 |
       +---------------------+----------------------------+----------------------------------------------+
       | ta   *.png  :images | tag add *.png :images :png | Tag	PNG files as both images and png (1) (2) |
       | :png		     |				  |						 |
       +---------------------+----------------------------+----------------------------------------------+
       | ta sel	:special     | tag add sel :special	  | Tag	all selected files as special		 |
       +---------------------+----------------------------+----------------------------------------------+
       | tr documents docs   | tag rename documents docs  | Rename the tag documents as	docs		 |
       +---------------------+----------------------------+----------------------------------------------+
       | ty png	images	     | tag merge png images	  | Merge the tag png into images (3)		 |
       +---------------------+----------------------------+----------------------------------------------+
       | td images	     | tag del images		  | Remove the tag images (4)			 |
       +---------------------+----------------------------+----------------------------------------------+
       | tu :work file1	dir2 | tag untag :work file1 dir2 | Untag a few	files from work	(5)		 |
       +---------------------+----------------------------+----------------------------------------------+

       (1) Tags	are created if they do not exist
       (2) Since add is	the default action, it can be omitted: `tag *.png :im-
       ages :png`.
       (3) All files tagged as png will	be now tagged as images, and  the  png
       tag will	be removed.
       (4) Untag all files tagged as images and	remove the tag itself
       (5)  Tab	completion is available	to complete tagged files. If using the
       fzf mode, multiple files	can be selected	using the the TAB key.

       4. Operating on tagged files

       The t:TAG expression is used to operate on tagged files	via  any  com-
       mand, be	it internal or external. A few examples:

       +--------------------+------------------------------------------------------------------------+
       | Command	    | Description							     |
       +--------------------+------------------------------------------------------------------------+
       | p t:docs	    | Print properties of files	tagged as docs				     |
       +--------------------+------------------------------------------------------------------------+
       | r t:images	    | Remove all files tagged as images					     |
       +--------------------+------------------------------------------------------------------------+
       | stat t:docs t:work | Run stat(1) over all files tagged	as docs	and all	files tagged as	work |
       +--------------------+------------------------------------------------------------------------+

       4.1 Operating on	specific tagged	files

       Note: This feature, as always when multi-selection is involved, is only
       available  when	tab completion mode is set to fzf. See the TAB COMPLE-
       TION section above.

       You may not want	to operate on all files	tagged as some	specific  tag,
       say  work,  but	rather on some files tagged as work. Tab completion is
       used to achieve this aim.

       Let's suppose you have a	tag  named  work  which	 contains  ten	tagged
       files, but you need to operate (say, print the file properties) only on
       two of them, say, work1.odt and work2.odt:

	p t:work<TAB>

       The  list  of  files tagged as work will	be displayed via fzf. Now mark
       the two files you need using the	TAB key, press Enter or	Right, and the
       absolute	path to	both files will	be inserted into the command line. So,
       `p   t:work`   will    be    replaced	by    `p    /path/to/work1.odt
       /path/to/work2.odt`.

17. VIRTUAL DIRECTORIES
       Clifm  is  able	to  read and list files	from the standard input	stream
       (STDIN).	Each file in the list should be	an absolute  path,  terminated
       with  a	new line character (\n)	and stripped from extra	characters not
       belonging to the	path itself. The size of the input  stream  buffer  is
       262MiB  (65536  paths, provided each path takes PATH_MAX	bytes (usually
       4096)).

       Each file passed	via standard input is stored as	a symbolic link	point-
       ing to the original file	in a temporary directory (called here  virtual
       directory)  with	 read-only (0500) permissions. This directory, and all
       its contents, will be deleted at	program	exit.  Use  the	 --virtual-dir
       command	line flag to specify a custom directory	(it if does not	exist,
       it will be created) instead of the default one, created in  the	system
       temporary  directory (usually /tmp/clifm/USER/vdir.XXXXXX, where	XXXXXX
       is a random six digits string).

       The user	can operate on these files as if they were any	other  regular
       file,  since all	operations performed on	these symbolic links (provided
       the current working directory is	the virtual directory where all	 these
       files are stored) are performed on the target files and NOT on the sym-
       bolic links themselves.

       Once  in	 the virtual directory,	files are listed by default using only
       the base	name of	the target file. For example, if the  target  file  is
       /home/user/Downloads/myfile.tar.gz,  this  file	will  be listed	as my-
       file.tar.gz. If this file already exists	in the virtual directory  (be-
       cause  there  is	 another  target  file	with  the same base name, say,
       /home/user/Documents/tars/myfile.tar.gz), a random  six	digits	suffix
       will be appended	to the file (for instance, myfile.tar.gz.12Rgj6).

       Since  this listing mode	does not allow the user	to get a clear idea of
       the actual location of each  listed  file,  a  keybinding  (by  default
       Alt+w)  is  available  to toggle	short (base names only)	and long file-
       names: in this latter case, filenames are  listed  using	 the  absolute
       path  to	the target file, replacing slashes by colons (:). For example,
       if the target file is /home/user/Downloads/myfile.tar.gz,  it  will  be
       listed in the virtual directory as home:user:Downloads:myfile.tar.gz.

       If  you	prefer	the  long  names  approach,  you  can  use  the	--vir-
       tual-dir-full-paths command line	flag.

       Note: Bear in mind that the restore last	path function is disabled when
       listing in this way.

       Clifm provides to ways of using virtual directories:

       1. Reading files	from the standard input

       2. Listing sets of files	via the	virtualize.sh plugin (which is in fact
       a special use case of point 1)

       1. Standard input

       Examples:

	ls -Ad /var/* |	clifm

       This command will pass all files	in the directory /var to clifm

       If you need to perform more specific queries, you can  use  find(1)  as
       follows:

	find  -maxdepth	 1 -size +500k -print0 | tr '\0' '\n' |	sed 's/.//g' |
       clifm

       The above command will pass all files in	the current  directory	bigger
       than 500KiB to clifm.

       You can also use	stream redirection:

	ls -Ad $PWD/* >	list.txt
	clifm <	list.txt

       2. The virtualization plugin

       The  virtualize.sh  plugin,  bound by default to	the vt action name, is
       intended	to provide an easy way	of  listing  sets  or  collections  of
       files,  such  as	selected, tagged, or bookmarked	files. For example, to
       send all	selected files to a virtual directory, you can issue this com-
       mand:

	vt sel

       and, if you want	rather files tagged as PDF:

	vt t:PDF

       Of course, individual files can also be used:

	vt file1 file2 file3

       Once executed, the vt plugin will launch	a new instance of clifm	(on  a
       new  terminal  emulator	window)	where you can operate on the specified
       files as	if they	were just normal files.	Once done, quit	this  new  in-
       stance (via the q command) to return to the primary instance of clifm.

       Note: By	default, the terminal emulator used is xterm(1), but it	can be
       changed by editing the plugin script (virtualize.sh).

       When  navigating	the filesystem,	you can	quickly	go back	to the virtual
       directory using the -d option: `vt -d`. The navigation  keys  (see  the
       KEYBOARD	SHORTCUTS section above) and the CLIFM_VIRTUAL_DIR environment
       variable	 are also available (Shift+Left/Shift+Right or `cd $CLIFM_VIR-
       TUAL_DIR`).

       Tip: Write an alias to make this	even easier:

	alias vtd='cd $CLIFM_VIRTUAL_DIR'

18. NOTE ON SPEED
       Clifm is	by itself quite	fast by	default, but if	speed is still an  is-
       sue, it is possible to get some extra performance.

       The two most time consuming features are:

	1)  The	 file  counter,	used to	print the number of files contained by
       listed directories. Disabling this option produces a  nice  performance
       boost.

	2)  In	normal	mode,  fstatat(3)  is used to gather information about
       listed files. Since this	function, especially  when  executed  hundreds
       (and  even thousands) of	times, is quite	time consuming,	the light mode
       was implemented as an alternative listing process omitting all calls to
       this function (this does	not apply, however, to the long	view: since we
       need to display files information, fstatat(3) is	required).

       When running in light mode, however, a few features are lost:

	1. Only	basic file classification is performed,	namely,	that  provided
       by  the d_type field of a dirent	struct (see readdir(3)). Bear in mind,
       nonetheless, that whenever _DIRENT_HAVE_D_TYPE was not set  at  compile
       time,  or  in  case  of a DT_UNKNOWN value for a	given entry (we	may be
       facing a	filesystem not returning the d_type value, for	example,  loop
       devices),  clifm	will fall back to stat(3) to get basic files classifi-
       cation.

	2. Color per file extension is disabled	for performance	reasons.

	3. The marker for selected files (*) is	lost as	well: to keep track of
       selected	files and thus recognize them in the current list of files, we
       make use	of files device	and inode number, which	 is  provided  by  fs-
       tatat(3).

       Besides	these  two  features, a	few more things	can be disabled	to get
       some extra speed	(though	perhaps	 unnoticeable):	 icons	(if  enabled),
       columns,	 colors, and, if already running without colors, file type in-
       dicators. Because listing lots of files could  be  expensive  and  time
       consuming,  you	can  also try to limit the number of files printed for
       each visited directory (see the mf command above).

       Despite the above, however, it is important to bear in mind that	 list-
       ing  speed  does	not only depend	on the program's code and enabled fea-
       tures, but also on the terminal emulator	used. Old, basic terminal emu-
       lators like Xterm, Aterm, and the kernel	 builtin  console  are	really
       slow  compared to more modern ones like Urxvt, Lxterminal, ST, and Ter-
       minator,	to name	just a few.

       If using	Xterm, a nice speed boost is provided by the fast  scroll  op-
       tion: set fastScroll to true in your ~/.Xresources file.	See xterm(1).

19. KANGAROO FRECENCY ALGORITHM
       The  directory  jumper  function	 is  designed  to learn	the navigation
       habits of the user. The information is stored in	a  database  (see  the
       FILES section below) used to get	the best match for a given string pro-
       vided  by the user. In this sense, Kangaroo is like a quick, smart, and
       evolved cd function.

       The information stored in the database, always per directory, is:
	a) Permanent entry ('+'): this directory will not be removed from  the
       database, no matter its rank
	b) Number of visits
	c) Date	of first visit (seconds	since the Unix epoch)
	d) Date	of the last visit (seconds since Unix epoch)
	e) The absolute	path to	each visited directory

       With  this information it is possible to	build a	ranking	of directories
       to offer	the user the most accurate matches for each query string.  The
       matching	algorithm takes	into account mainly two	factors: frequency and
       recency (which is why this kind of algorithm is often called a frecency
       algorithm).

       After  getting  an initial list of matches based	on the query string(s)
       entered by the user, the	frequency algorithm is applied on  each	 entry
       in  the	list. The algorithm is quite simple: (visits * VISIT-CREDIT) /
       days-since-first-visit. As a result, we get the average of  visits  per
       day since the day of the	first visit (what we call the directory	rank).

       Note: VISIT-CREDIT is a hardcoded value:	200.

       There  are  however  some  further  steps in the	ranking	process: Bonus
       points.

       Extra credits or	penalties are assigned based on	the  directories  last
       access time according to	the following simple algorithms:
	Within last hour:   rank * 4
	Within last day:    rank * 2
	Within last week:   rank / 2
	More than a week:   rank / 4

       If the last query string	matches	the basename of	a directory, the entry
       for  this  directory has	300 extra credits. This	is done	simply because
       users normally use directory basenames as query strings:	they are  eas-
       ier to remember.

       In  the same way, pinned	directories get	1000 extra credits, bookmarked
       directories 500 credits,	directories active in a	workspace 300 credits,
       and directories marked as permanent 300 credits.

       For example: if the query string	is "test",  /media/data/test  will  be
       matched.	 Now, if this directory	was accessed within the	last hour, and
       its rank	was 200, it  becomes  800.  But,  because  the	search	string
       matches its basename, it	gets 300 extra credits,	and, if	this directory
       is  in  addition	 bookmarked,  pinned, and marked as permanent, it gets
       1800 extra credits. In this way the total rank of this directory	in the
       matching	process	is 2900. In doing so, we have more chances of matching
       what the	user actually wanted to	match.

       Once all	entries	in the initial list of matches have been filtered  via
       the  above  procedure  and ranked, we can return	the best ranked	entry.
       The higher rank a directory has,	the more priority it has over the  re-
       maining entries in the initial list of matches.

       Automatic  maintenance  is  done	 on the	database applying a few	simple
       procedures:

	a) If PurgeJumpDB is set to true (see the  main	 configuration	file),
       each entry in the database is checked at	startup	to remove non-existent
       directories.  This  option is set to false by default to	avoid removing
       paths pointing to unmounted filesystems (like removable devices or  re-
       mote locations) which you still might want to keep. Non-existent	direc-
       tories,	however, will be removed soon or later anyway due to their low
       rank value (see below).

	b) Once	the rank of a directory	falls below  MinJumpRank  (by  default
       10),  it	 is  forgotten	and deleted from the database. The MinJumpRank
       value can be customized in the configuration  file.  To	make  non-fre-
       quently	visited	 directories  disappear	quicker	from the database, in-
       crease this value. If set to 0, by contrast, directories	will never  be
       removed from the	database.

	c)  Once  the  sum total of ranks reaches MaxJumpTotalRank (by default
       100000),	each individual	rank is	divided	by a dynamic  factor  so  that
       the  total rank becomes less than or equal to MaxJumpTotalRank. If some
       rank falls in the process below MinJumpRank (and	provided  this	latter
       is  not	0),  it	 is removed from the database. MaxJumpTotalRank	can be
       modified	in the configuration file. The higher the value	of  MaxJumpTo-
       talRank,	the more time directories will be kept in the database.

       Note:  Directories  visited in the last 24 hours, just as pinned, book-
       marked directories, and directories currently used in  some  workspace,
       will not	be removed from	the database, no matter	what their rank	is. In
       other  words, if	you want to indefinitely keep a	given directory	in the
       jump database, bookmark it, or mark it as permanent (edit the database,
       via `je`	or `j --edit`, and prepend a plus sign (+) to the  correspond-
       ing entry).

       The  idea  of  'frecency'  was, as far as I know, first devised and de-
       signed	 by    Mozilla.	   See	   https://wiki.mozilla.org/User:Mcon-
       nor/Past/PlacesFrecency.	 However, it is	also implemented, though using
       different algorithms, by	different projects like	autojump,  z.lua,  and
       zoxide.

20. ENVIRONMENT
       The following variables are read	at initialization time:

       NO_COLOR
	      If set to	any value, clifm will run without colors.

       CLIFM_NO_COLOR
	      Same as NO_COLOR,	but specific to	clifm.

       CLICOLOR_FORCE
	      Force  the  use  of colors, even if the terminal does not	report
	      color support.

       CLIFM_FORCE_COLOR
	      Same as CLICOLOR_FORCE, but accepts a specific color  value  (8,
	      16, 256, truecolor or 24bit).

       COLORTERM
	      If  set to either	truecolor or 24bit, clifm assumes the terminal
	      emulator to be capable of	displaying true	 colors	 (and  thereby
	      also 256 colors),	despite	what the terminfo(5) database reports.

       CLIFM_FILE_COLORS
	      A	colon separated	list of	file type color	codes in the same form
	      specified	above in the COLOR CODES section.

       CLIFM_EXT_COLORS
	      Same as above, but for file extensions.

       CLIFM_IFACE_COLORS
	      Same as above, but for different elements	of clifm's interface.

       CLIFM_DATE_SHADES
	      A	 comma separated list of colors	used to	print timestamps based
	      on age.

       CLIFM_SIZE_SHADES
	      Same as CLIFM_DATE_SHADES, but for file sizes.

       CLIFM_PREVIEW_MAX_SIZE
	      If running with --preview, or PreviewMaxSize is not set  in  the
	      configuration  file,  no	preview	 is generated for files	larger
	      that this	value. The value must be specified in KiB:  for	 exam-
	      ple, 2048	is read	as 2 MiB.

       CLIFM_TEMPLATES_DIR
	      A	custom file templates directory.

       CLIFM_HISTFILE
	      A	custom commands	history	file.

       CLIFM_FILTER
	      Define a file filter. If set, this variable overrides the	Filter
	      option in	the configuration file.

       CLIFM_SUDO_CMD
	      Name  of	the  authenticator  program. Used by the X command (to
	      launch a new instance of clifm as	root),	the  Alt+v  keybinding
	      (to  prepend  the	authenticator program name to the current com-
	      mand line), and for some operations on archives (ISO files). De-
	      faults to	sudo  (or  doas	 if  compiled  on  OpenBSD).  Example:
	      `CLIFM_SUDO_CMD=doas clifm`.

       SHELL
	      An  absolute path	to the shell to	be used	by clifm to run	exter-
	      nal commands. Only values	found in /etc/shells are allowed.

       CLIFM_SHELL
	      Same as SHELL, but specific  to  clifm  (takes  precedence  over
	      SHELL).

       TMPDIR
	      Path to a	directory where	temporary files	will be	created.

       CLIFM_TMPDIR
	      Same as TMPDIR, but specific to clifm (takes precedence over TM-
	      PDIR).

       TERM
	      Terminal type for	which output is	to be prepared.

       FZF_DEFAULT_OPTS
	      A	 quoted	 list  of options to be	passed to fzf (if used for tab
	      completion).

       TIME_STYLE
	      If set from neither --time-style nor TimeStyle (in the  configu-
	      ration file), use	this time style	for the	long view.

       CLIFM_TIME_STYLE
	      Same as TIME_STYLE, but specific to clifm	(takes precedence over
	      TIME_STYLE).

       PTIME_STYLE
	      If set from neither --ptime-style	nor PTimeStyle (in the config-
	      uration  file), use this time style for the p/pp command and the
	      --stat/--stat-full command line switches.

       CLIFM_COLUMNS
	      The number of terminal columns.

       CLIFM_LINES
	      The number of terminal lines.

       CLIFM_MIMETYPES_FILE
	      Set  a  custom  mime.types  file	(instead   of	the   default,
	      ~/.mime.types). Consult the FILE OPENER section form more	infor-
	      mation.

       Except when running in stealth mode, clifm sets the following environ-
       ment variables:

       CLIFM
	      Path to the configuration	directory. By inspecting this variable
	      other  programs  can  find out if	they were spawned by clifm. It
	      can also be used to quickly jump to the configuration directory:
	      `cd $CLIFM` or just `$CLIFM`.

       CLIFMRC
	      Path  to	the  main  configuration  file	(by  default   ~/.con-
	      fig/clifm/profiles/default/clifmrc).

       CLIFM_PID
	      PID number of clifm's running instance.

       CLIFM_VERSION
	      Version number of	clifm's	running	instance.

       CLIFM_VIRTUAL_DIR
	      Path to the currently used virtual directory only	if (and	while)
	      the  virtual directory function is exectued. See the VIRTUAL DI-
	      RECTORIES	section	above.

       SHLVL
	      Incremented by one each time a new shell is started.

       CLIFMLVL
	      Same as SHLVL, but specific to clifm.

       If Notifications	is set to false	for the	current	prompt,	the following
       variables are exported to the environment to be used, if	needed,	by
       your custom prompt:

       CLIFM_STAT_SEL
	      Current number of	selected files.

       CLIFM_STAT_TRASH
	      Current number of	trashed	files.

       CLIFM_STAT_ERROR_MSGS
	      Current number of	error messages.

       CLIFM_STAT_WARNING_MSGS
	      Current number of	warning	messages.

       CLIFM_STAT_NOTICE_MSGS
	      Current number of	notice messages.

       CLIFM_STAT_WS
	      Current workspace	number.

       CLIFM_STAT_EXIT
	      Exit code	of the last executed command.

       CLIFM_STAT_ROOT
	      1	if user	is root	(UID = 0), 0 otherwise.

       CLIFM_STAT_STEALTH
	      1	if running in stealth mode, 0 otherwise.

       When running a plugin, the following environment	variables are set:

       CLIFM_BUS
	      The path to a pipe by means of which plugins can talk to	clifm.
	      See the PLUGINS section for more information.

       CLIFM_COLOR_SCHEME
	      Set to the name of the current color scheme.

       CLIFM_COLORLESS
	      Set to 1 if running without colors.

       CLIFM_CUR_WS
	      Set to the current workspace number.

       CLIFM_DIRS_FIRST
	      Set  to  1 if list-dirs-first is enabled.	Otherwise it is	set to
	      0.

       CLIFM_FILES_COUNTER
	      Set to 1 if files-counter	is enabled. Otherwise it is set	to 0.

       CLIFM_FILES_FILTER
	      Set to the files filter string. Unset if no files	filter is set.

       CLIFM_FILTER_REVERSE
	      Set to 1 if filter-reverse is set	or to 0	otherwise (unset if no
	      files filter is set).

       CLIFM_FOLLOW_LINKS
	      Set to 1 if follow-symlinks is enabled. Otherwise	it is  set  to
	      0.

       CLIFM_LIGHT_MODE
	      Set to 1 if light-mode is	enabled. Otherwise it is set to	0.

       CLIFM_LINE
	      When  running a plugin via a keybinding, this variable holds the
	      content of the current line buffer. For a	usage example see  the
	      xclip.sh plugin.

       CLIFM_LONG_VIEW
	      Set to 1 if long-view is enabled.	Otherwise it is	set to 0.

       CLIFM_MAX_FILES
	      Set to MAX_FILES if max-files is set. Unset otherwise.

       CLIFM_ONLY_DIRS
	      Set to 1 if only-dirs is enabled.	Otherwise it is	set to 0.

       CLIFM_PLUGINS_HELPER
	      Set  to  the  absolute path to the plugins-helper	script used by
	      several plugins.

       CLIFM_PROFILE
	      Set to the name of the current profile.

       CLIFM_SEL_FILES
	      Set to the number	of currently selected files  (unset  if	 there
	      are no selected files).

       CLIFM_SELFILE
	      Set to the path to the current selection file.

       CLIFM_SHOW_HIDDEN
	      Set to 1-3 if show-hidden	is enabled (true, first, last, in this
	      order). Otherwise	it is set to 0.

       CLIFM_SORT_REVERSE
	      Set to 1 if sort-reverse is enabled. Otherwise it	is set to 0.

       CLIFM_SORT_STYLE
	      Set to the current sort method.

       CLIFM_TRASH_FILES
	      Set to the number	of currently trashed files (unset if there are
	      no trashed files).

       CLIFM_TRUNCATE_NAMES
	      Set to 1 if truncate-names is enabled. Otherwise it is set to 0.

21. SECURITY
       Since clifm executes OS commands, it needs to provide a way to securely
       run  these commands, specially when it comes to untrusted environments.
       Two features are	provided to achieve this aim: secure  environment  and
       secure commands.

       Both features are aimed at protecting the program and the system	as
       such from malicious input, either coming	from environment variables or
       from indirect input, that is to say, input coming not from the command
       line (in	which is assumed that it is the	user herself who is executing
       the given command), but from files: this	is the case of default associ-
       ated applications (the mime command), autocommands, aliases, plugins,
       (un)mount commands (using the net command), just	as profile and prompt
       commands.

       In an untrusted environment, an attacker	could cause unexpected and in-
       secure behavior (even command injection)	using environment variables,
       or inject malicious commands via	indirect input,	commands which will be
       later executed by clifm without the user's consent (i.e.	automati-
       cally). This is why we provide a	mechanism to minimize this danger: if
       running in an untrusted environment, the	secure environment and secure
       commands	features are there to prevent (at least	as far as possible)
       this kind of attacks.

       A) Secure environment

       Programs	inherit	the environment	from the parent	process. However, if
       this inherited environment is not trusted, not secure, it is always a
       good idea to sanitize it	using only sane	values,	preventing thus	unde-
       sired and uncontrolled input that might endanger	the program and	the
       system itself.

       The secure-environment function forces clifm to run on a	such a sani-
       tized environment.

       There are two secure-environment	modes, the regular, and	the full one.
       To enable the regular mode, run clifm with the --secure-env command
       line option. Otherwise, enable the full mode using --secure-env-full.

       a) Regular: in this mode, the inherited environment is cleared, though
       a few variables are preserved to	keep clifm running as stable as	possi-
       ble. These preserved variables are: TERM, DISPLAY, LANG,	TZ, and, if
       fzf tab completion mode is enabled, FZF_DEFAULT_OPTS.

       The following variables are set in an environment agnostic way (that
       is, securely):
		- HOME,	SHELL, and USER	are retrieved using getpwuid(3)
		-  PATH	 is  set  consulting _PATH_STDPATH (or _CS_PATH	if the
	      former is	not available)
		- IFS is set to	a sane,	hard-coded value: " \n\t" (space,  new
	      line char, and horizontal	TAB)

       As a plus, 1) core dumps	are disabled, 2) the umask value is set	to
       0077 at startup and the creation	mode (when using the new command) is
       forced to 0700 for directories and 0600 for files, 3) non-standard file
       descriptors (>2)	are closed, 4) SUID/SGID privileges, if	any, are
       dropped,	and 5) autocommand files are not read at all (even if ReadAu-
       tocmdFiles is set to true).

       b) Full:	this mode is just like the regular mode, except	that nothing
       is imported from	the environment	at all and only	PATH, HOME, USER,
       SHELL, and IFS are set (as described above). Everything else remains
       unset, and is the user's	responsibility to set environment variables
       (via the	export function), as needed. In	this case, you might want to
       set, at least, TERM, and, if running in a graphical environment,	DIS-
       PLAY.

       Be aware	that enabling secure-environment might break some functions,
       depending on the	system configuration.

       B) Secure commands

       Some commands are automatically executed	by clifm: (un)mount commands
       (via the	net command), opening applications (via	Lira), aliases,	and
       plugins,	just as	prompt,	profile, and autocommands. These commands are
       read from a configuration file and then executed. Now, if an attacker
       has access to any of these files, she might force clifm to run any ar-
       bitrary command,	and thereby possibly exposing the whole	system.

       Every time a command is thus automatically executed via the system
       shell (i.e. without the user's direct consent), the secure commands
       function	performs four different, though	intrinsically related tasks
       aimed to	mitigate command injection and/or unexpected behavior:

       a) Plugins are disabled.

       b) Only command base names are allowed: nano, for instance, is allowed,
       while /usr/bin/nano is not. In this way we can guarantee	that only com-
       mands found in a	sanitized PATH (see the	point d	below) will be exe-
       cuted. This is done in order to prevent the execution of	custom bina-
       ries/scripts, for example: /tmp/exec_file.

       c) Commands are validated using a whitelist of safe characters (mostly
       to prevent stream redirection, conditional execution, and so on,	for
       example,	'your_command;some_injected_command'). This set	of safe	char-
       acters slightly vary depending on the command being executed (because
       they use	different syntaxes):

	       Net command:		      a-zA-Z -_.,/=
	       Prompt, profile,	autocommands: a-zA-Z -_.,/"'
	       Mime command:		      a-zA-Z -_.,%&

       Commands	containing at least one	unsafe character will be rejected. Of
       course, we cannot (and should not) prevent what looks like legitimate,
       benign commands from being executed. But	we can stop commands that, in
       an untrusted environment, look suspicious. This is specially the	case
       of stream redirection (>), pipes	(|), sequential	(;) and	conditional
       execution (&&, ||), command substitution	($(cmd)), and environment
       variables ($VAR).

       d) A secure environment is set (--secure-env is implied;	to run on a
       fully sanitized environment run as follows: --secure-cmds --se-
       cure-env-full.

22. MISCELLANEOUS NOTES
       Sequential and conditional execution of commands:

       For  each of the	internal commands (see the COMMANDS section above) you
       can use the semicolon to	execute	them sequentially  and/or  the	double
       ampersand    to	  execute    them    conditionally.    For    example:
       `cmd1; cmd2 && cmd3`.

       Though you can use here external	commands as well, bear in  mind	 that,
       whenever	at least one internal command is involved in a chained list of
       commands,  clifm	 will take care	of executing this list (simply because
       the system shell	is not able to understand any of these	commands),  so
       that no shell inter-process function (like pipes), nor any stream redi-
       rection	or  shell  expression  (like  IF  blocks or FOR	loops) will be
       available. However, the shell is	still used to run single external com-
       mands found in the chained list,	but in isolation  from	the  remaining
       commands	in this	list.

       As a rule of thumb, when	using chained commands make sure to always ex-
       pand  ELNs to avoid undesired consequences. If, for instance, you issue
       this command: `touch aaa	&& r 3`, you will end up deleting a  file  you
       were not	intended to delete, simple because after the successful	execu-
       tion  of	 the  first  command, the ELN 3	corresponds now	to a different
       file.

       External	commands:

       Clifm is	not limited to its own set of internal	commands,  like	 open,
       sel,  trash, etc. It can	run external commands as well, provided	exter-
       nal commands are	allowed	(see the -x option, the	ext command,  and  the
       ExternalCommands	option in the configuration file).

       External	 commands  are executed	using the system shell (say, /bin/sh),
       which is	specified by clifm as follows:
	 1. If the CLIFM_SHELL environment variable  is	 set,  this  value  is
       used.
	 2. If the SHELL environment variable is set, this value is used.
	 3.  If	none of	the above, the value is	taken from the passwd database
       (via getpwuid(3)).

       The shell is invoked as follows:	SHELL -c 'CMD  ARG...',	 for  example,
       `/bin/sh	-c 'ls -l'`.

       By  beginning the external command by a colon or	a semicolon (':', ';')
       you tell	clifm not to parse the input string, but instead letting  this
       task to the system shell.

       Bear  in	 mind that clifm is not	intended to be used as a shell,	but as
       the file	manager	it is.

       Terminal	emulators and non-ASCII	characters:

       It depends on the  terminal  emulator  you  use	to  correctly  display
       non-ASCII  characters  and  characters from the extended	ASCII charset.
       If, for example,	you create a filenamed "and"  (the  Spanish  word  for
       'rhea'),	 it will be correctly displayed	by the Linux console, Lxtermi-
       nal, and	Urxvt, but not thus by	more  basic  terminal  emulators  like
       Aterm.

       Spaces and filenames:

       When  dealing with filenames containing spaces, you can use both	single
       and double quotes (e.g.:	"this file" or 'this file') plus the backslash
       character (e.g.:	this\ file).

       Default profile:

       Clifm's default profile is default. To create alternative profiles  use
       the -P command line option or the `pf add` command (see above).

23. FILES
       CONFIGURATION FILE
	      The main configuration file is looked up in these	places (and in
	      this order):

	       1. -c,--config-file switch
	       2. $CLIFMRC variable
	       3. $XDG_CONFIG_HOME/clifm/profiles/PROFILE/clifmrc directory

	      If  $XDG_CONFIG_HOME  is not set,	$HOME/.config is used instead.
	      If running with secure-environment (using	either	--secure-cmds,
	      --secure-env,  or	 --secure-env-full) no environment variable is
	      read, so that the	home directory is taken	instead	from the pass-
	      word database (via getpwuid(3)).

	      PROFILE is by default default (unless set	via -P,--profile).

	      You can access the configuration file either via the config com-
	      mand or pressing F10.

	      A	description for	each option in the configuration file  can  be
	      found in the configuration file itself.

       PROFILE FILE
	      The profile file is $XDG_CONFIG_HOME/clifm/profiles/PROFILE/pro-
	      file.clifm.  In this file	you can	add those commands you want to
	      be  executed  at startup.	You can	also permanently set here some
	      custom variables,	e.g.: 'dir="/path/to/dir"'. This variable  may
	      be  used	as  a  shortcut	 to  that directory, for instance: `cd
	      $dir`. Custom variables can also be temporarily defined  in  the
	      command  prompt:	E.g.:  user@hostname ~ $ var="This is a	test".
	      Temporary	variables will be removed at  program  exit.  Internal
	      variables	 are  disabled	by  default;  enable  them  using  the
	      --int-vars command line switch.

       PROMPTS FILE
	      This  file  contains  prompts  definitions  and  is  located  in
	      DATADIR/clifm/prompts.clifm.  It will be copied automatically to
	      $XDG_CONFIG_HOME/clifm/prompts.clifm if it  doesn't  exist.  The
	      Prompt  line in the color	scheme file should point to one	of the
	      prompt names defined in this file. See the  PROMPT  section  for
	      more information.

       KEYBINDINGS FILE
	      The  keybindings file is $XDG_CONFIG_HOME/clifm/keybindings,cfm.
	      It will be copied	from DATADIR/clifm (usually /usr/share/clifm),
	      and if not found,	it will	be created anew	with  default  values.
	      This  file  is  used  to specify the keyboard shortcuts used for
	      some ClifM's functions. The format for each keybinding is	always
	      "keyseq:function", where 'keyseq'	is an escape sequence  in  GNU
	      emacs  style.  A	more  detailed explanation can be found	in the
	      keybindings file itself.

       PLUGINS DIRECTORY
	      The directory used to store programs or scripts  pointed	to  by
	      actions (in other	words, plugins)	is DATADIR/clifm/plugins (usu-
	      ally  /usr/share/clifm/plugins). To edit these plugins copy them
	      to $XDG_CONFIG_HOME/clifm/plugins	and edit them to your  liking.
	      Plugins  in  this	 local directory take precedence over those in
	      the system one.

       COLORS DIRECTORY
	      This directory, $DATADIR/clifm/colors, contains available	 color
	      schemes  (or  just themes) as files with a .clifm	extension. You
	      can copy these themes to the local colors	 directory  ($XDG_CON-
	      FIG_HOME/clifm/colors)  and  edit	them to	your liking (or	create
	      new themes from the ground up). Themes in	the local  colors  di-
	      rectory  take precedence over those in the system	directory. You
	      can create as many themes	as you want by dropping	them into  the
	      local  colors  directory.	 The  default  color  scheme file (de-
	      fault.clifm) can be used as a guide.

       ACTIONS FILE
	      The  file	 used  to   define   custom   actions	is   $XDG_CON-
	      FIG_HOME/clifm/profiles/PROFILE/actions.clifm. It	will be	copied
	      from DATADIR/clifm (usually /usr/share/clifm), and if not	found,
	      it will be created anew with default values.

       MIMELIST	FILE
	      The   mimelist   file   is  $XDG_CONFIG_HOME/clifm/profiles/PRO-
	      FILE/mimelist.clifm. It is a list	of file	types and  name/exten-
	      sions and	their associated applications used by lira. It will be
	      copied from DATADIR/clifm	(usually /usr/share/clifm).

       PREVIEW FILE
	      The preview file is $XDG_CONFIG_HOME/clifm/profiles/PROFILE/pre-
	      view.clifm  and is shotgun's configuration file. It makes	use of
	      the same syntax used by the mimelist file.  It  will  be	copied
	      from DATADIR/clifm (usually /usr/share/clifm).

       BOOKMARKS FILE
	      The   bookmarks	file  is  $XDG_CONFIG_HOME/clifm/profiles/PRO-
	      FILE/bookmarks.clifm Just	the list of the	user's bookmarks  used
	      by the bookmarks function.

       HISTORY FILE
	      The   history   file   is	 ~/.config/clifm/profiles/PROFILE/his-
	      tory.clifm.  A list of commands entered by the user and used  by
	      the history function.

       COMMANDS	LOG FILE
	      The  commands  log  file is $XDG_CONFIG_HOME/clifm/profiles/PRO-
	      FILE/cmdlogs.clifm. Command logs keep track of commands  entered
	      in  the  command	line.  These logs have this form: "[date] cur-
	      rent_working_directory:command".

       MESSAGES	LOG FILE
	      The messages log	file  is  $XDG_CONFIG_HOME/clifm/profiles/PRO-
	      FILE/msglogs.clifm.  Message  logs  are  a  record of errors and
	      warnings and have	the following form: "[date] message".

       KANGAROO	DATABASE
	      The  directory  jumper   database	  is   stored	in   $XDG_CON-
	      FIG_HOME/clifm/profiles/PROFILE/jump.clifm.

       Note: If	$XDG_CONFIG_HOME is not	set, $HOME/.config/ is used instead.

24. EXAMPLES
       Note 1: Always try TAB. Tab completion is available for many things.

       Note  2:	 Suggestions  for possible completions are printed next	to the
       text typed so far. To accept the	given suggestion press Right (or Alt+f
       to accept only the first/next suggested word). Otherwise,  the  sugges-
       tion is just ignored.

       Get help: F1: manpage F2: keybindings F3: commands

       1. NAVIGATION

       +-------------------------+--------------------------------------------------------------------+
       | Command		 | Description							      |
       +-------------------------+--------------------------------------------------------------------+
       | /etc			 | Change directory to /etc (1)					      |
       +-------------------------+--------------------------------------------------------------------+
       | 5			 | Change to the directory whose ELN is	5 (2)			      |
       +-------------------------+--------------------------------------------------------------------+
       | j <TAB> (also dh <TAB>) | Navigate through visited directories				      |
       +-------------------------+--------------------------------------------------------------------+
       | j xproj		 | Jump	to ~/media/data/docs/work/mike/xproject	(3)		      |
       +-------------------------+--------------------------------------------------------------------+
       | b (Shift+Left,	Alt+j)	 | Go back in the directory history list			      |
       +-------------------------+--------------------------------------------------------------------+
       | f (Shift+Right, Alt+k)	 | Go forth in the directory history list			      |
       +-------------------------+--------------------------------------------------------------------+
       | .. (Shift+Up, Alt+u)	 | Change to the parent	directory				      |
       +-------------------------+--------------------------------------------------------------------+
       | ...			 | Change to the parent	directory of the current parent	directory (4) |
       +-------------------------+--------------------------------------------------------------------+
       | bd w			 | Change to the parent	directory matching "w" (5)		      |
       +-------------------------+--------------------------------------------------------------------+
       | ws2 (Alt+2)		 | Switch to the second	workspace (6)				      |
       +-------------------------+--------------------------------------------------------------------+
       | /*.pdf<TAB>		 | List	PDF files (current dir)					      |
       +-------------------------+--------------------------------------------------------------------+
       | =x<TAB>		 | List	executable files (current dir) (7)			      |
       +-------------------------+--------------------------------------------------------------------+
       | @gzip<TAB>		 | List	files (current dir) whose MIME type includes "gzip"	      |
       +-------------------------+--------------------------------------------------------------------+
       | pin mydir		 | Pin the directory named mydir				      |
       +-------------------------+--------------------------------------------------------------------+
       | ,			 | Change to pinned directory					      |
       +-------------------------+--------------------------------------------------------------------+
       | view (Alt+-)		 | Preview files (current dir) (8)				      |
       +-------------------------+--------------------------------------------------------------------+
       | pg (Alt+0)		 | Run MAS, the	file pager, on the current directory		      |
       +-------------------------+--------------------------------------------------------------------+

	(1) `cd	/etc` also works
	(2)  Press TAB to make sure 5 is the file you want, or just pay	atten-
       tion to the suggestion. Press Right to accept the given suggestion
	(3) This depends on the	database ranking. For more accuracy:  `j  mike
       xproj`. Tab completion is available: `j xproj<TAB>`
	(4)  This  is  the fastback function: each susequent dot after the two
       first dots is understood	as an extra "/.."
	(5) Type `bd <TAB>` to list all	parent directories
	(6) Alt+[1-4] is available for workspaces 1-4
	(7) Type `=<TAB>` to get the list of available file  type  characters.
       Consult the FILE	FILTERS	section	above for more information
	(8) This feature depends on fzf(1)

       2. FILE OPERATIONS

       +--------------------------+---------------------------------------------------------------------------+
       | Command		  | Description								      |
       +--------------------------+---------------------------------------------------------------------------+
       | myfile.txt		  | Open myfile.txt (with the default associated application)		      |
       +--------------------------+---------------------------------------------------------------------------+
       | myfile.txt vi		  | Open myfile.txt using vi (1)					      |
       +--------------------------+---------------------------------------------------------------------------+
       | 24&			  | Open the file whose	ELN is 24 in the background			      |
       +--------------------------+---------------------------------------------------------------------------+
       | n myfile mydir/	  | Create a new file named myfile and a new directory named mydir (2)(3)     |
       +--------------------------+---------------------------------------------------------------------------+
       | p4			  | Print the properties of the	file whose ELN is 4			      |
       +--------------------------+---------------------------------------------------------------------------+
       | pc myfile.txt		  | Edit the permission	set of the file	myfile.txt (use	oc to edit ownership) |
       +--------------------------+---------------------------------------------------------------------------+
       | s *.c			  | Select all c files in the current directory				      |
       +--------------------------+---------------------------------------------------------------------------+
       | s /media/*<TAB>	  | Interactively select files in the directory	/media (4)		      |
       +--------------------------+---------------------------------------------------------------------------+
       | s 1-4 8 19-26		  | Select multiple files in the current directory by ELN		      |
       +--------------------------+---------------------------------------------------------------------------+
       | sb (sel<TAB> or s:<TAB>) | List selected files	(5)						      |
       +--------------------------+---------------------------------------------------------------------------+
       | ds (ds	<TAB>)		  | Selectively	deselect files using a menu				      |
       +--------------------------+---------------------------------------------------------------------------+
       | bm add	mydir/ mybm	  | Bookmark the directory mydir/ as mybm				      |
       +--------------------------+---------------------------------------------------------------------------+
       | bm mybm (b:mybm)	  | Access the bookmark	named mybm (6)					      |
       +--------------------------+---------------------------------------------------------------------------+
       | bm del	mybm		  | Remove the bookmark	named mybm					      |
       +--------------------------+---------------------------------------------------------------------------+
       | bm (Alt+b or b:<TAB>)	  | Open the bookmark manager						      |
       +--------------------------+---------------------------------------------------------------------------+
       | t 1-3 *.old		  | Trash a few	files							      |
       +--------------------------+---------------------------------------------------------------------------+
       | u (u <TAB>)		  | Selectively	restore	trashed	files using a menu			      |
       +--------------------------+---------------------------------------------------------------------------+
       | t del (t del <TAB>)	  | Selectively	remove files from the trash can	using a	menu		      |
       +--------------------------+---------------------------------------------------------------------------+
       | t empty		  | Empty the trash can							      |
       +--------------------------+---------------------------------------------------------------------------+
       | ta *.pdf :mypdfs	  | Tag	all PDF	files in the current directory as mypdfs		      |
       +--------------------------+---------------------------------------------------------------------------+
       | p t:mypdfs		  | Print the file properties of all files tagged as mypdfs		      |
       +--------------------------+---------------------------------------------------------------------------+
       | /*.pdf			  | Search for all PDF files in	the current directory			      |
       +--------------------------+---------------------------------------------------------------------------+
       | c sel			  | Copy selected files	to the current directory			      |
       +--------------------------+---------------------------------------------------------------------------+
       | c *.txt 2		  | Copy all txt file to the directory whose ELN is 2			      |
       +--------------------------+---------------------------------------------------------------------------+
       | r sel			  | Remove all selected	files (7)					      |
       +--------------------------+---------------------------------------------------------------------------+
       | m4			  | Rename the file whose ELN is 4 (8)					      |
       +--------------------------+---------------------------------------------------------------------------+

	(1)  Use the ow	command	to select the opening application from a menu:
       `ow myfile.txt` or `ow myfile.txt <TAB>`
	(2) Note the ending slash in the directory name
	(3) Since clifm	is integrated to the system shell, you	can  also  use
       any  of	the  shell commands you	usually	use to create new files. E.g.:
       `touch myfile` or `nano myfile`
	(4) Only for non-standard tab completion: fzf, fnf, smenu
	(5) You	can also TAB expand the	sel keyword: `p	sel<TAB>` to list  se-
       lected  files  (and  optionally mark multiple selected files to operate
       on)
	(6) Type `bm <TAB>` to get the list of available bookmark names
	(7) To remove files in bulk use	the rr command
	(8) To rename files in bulk use	the br command

       3. MISC

       +----------------------------+---------------------------------------+
       | Command		    | Description			    |
       +----------------------------+---------------------------------------+
       | hh (Alt+.)		    | Toggle hidden files		    |
       +----------------------------+---------------------------------------+
       | ll (Alt+l)		    | Toggle long-view			    |
       +----------------------------+---------------------------------------+
       | rf (Enter -on empty  line- | Clear/refresh the	screen		    |
       | or Ctrl+l)		    |					    |
       +----------------------------+---------------------------------------+
       | Alt+,			    | Toggle list-directories-only	    |
       +----------------------------+---------------------------------------+
       | Alt+Tab, Ctrl+Alt+i	    | Toggle disk usage	analyzer mode	    |
       +----------------------------+---------------------------------------+
       | !<TAB>			    | Navigate through the command history  |
       +----------------------------+---------------------------------------+
       | config	(F10)		    | View/edit	the main configuration file |
       +----------------------------+---------------------------------------+
       | pf set	test		    | Change to	profile	test		    |
       +----------------------------+---------------------------------------+
       | actions		    | List available actions/plugins	    |
       +----------------------------+---------------------------------------+
       | icons on		    | Want icons?			    |
       +----------------------------+---------------------------------------+
       | cs (cs	<TAB>)		    | List available color schemes	    |
       +----------------------------+---------------------------------------+
       | prompt	(prompt	<TAB>)	    | List available prompts		    |
       +----------------------------+---------------------------------------+
       | q			    | I'm tired, quit			    |
       +----------------------------+---------------------------------------+

       There is	a lot more you can do, but this	should be enough to get
       started.

EXIT STATUS
       Clifm returns the exit status of	the last executed command

LICENSE
       This program is distributed under the terms of the GNU GPL version 2 or
       later <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
       This  is	 free  software:  you  are free	to change and redistribute it.
       There is	NO WARRANTY, to	the extent permitted by	law.

BUG AND	FEATURE	REQUESTS
       Report at <https://github.com/leo-arch/clifm/issues>

AUTHOR
       L. M. Abramovich	<leo.clifm@outlook.com>

       For additional contributors, run	`git shortlog  -s`  on	the  clifm.git
       repository.

clifm 1.26.3			 Sep 28, 2025			      CLIFM(1)

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

home | help