1CLIFM(1)                         CLIFM Manual                         CLIFM(1)
2
3
4

NAME

6       clifm - The Command Line File Manager
7

SYNOPSIS

9       clifm [OPTION]... [PATH]
10
11

INDEX

13       1. Getting help
14
15       2. Description
16
17       3. Features
18
19       4. Parameters
20          . Positional parameters
21          . Options
22
23       5. Commands
24
25       6. Files Filters
26
27       7. Keyboard shortcuts
28
29       8. Theming
30
31       9. Built-in expansions
32
33       10. Resource opener
34
35       11.  Auto-suggestions  (including  a warning prompt for invalid command
36       names)
37
38       12. Shell functions
39
40       13. Plugins
41
42       14. Autocommands
43
44       15. File tags
45
46       16. Virtual directories
47
48       17. Note on speed
49
50       18. Kangaroo frecency algorithm
51
52       19. Environment
53
54       20. Security
55
56       21. Miscellaneous notes
57
58       22. Files
59
60       23. Examples
61
62

1. GETTING HELP

64       There are several ways of getting help in clifm. Once in  the  program,
65       enter  '?' to see some basic usage examples, or press F1 to access this
66       manpage, F2 to go to the COMMANDS section of this very manpage,  or  F3
67       to go to the KEYBOARD SHORTCUTS section.
68
69       To  get help about some specific topic, type help and then press TAB to
70       get a list of available help topics. Choose the topic you want and then
71       just press Enter.
72
73       Help for all internal commands can be accessed via the -h or --help op‐
74       tions. For example, s -h or s --help.
75
76       A convenient way of getting full information about  clifm  commands  is
77       via  the  'ih'  action, bound by default to the interactive help plugin
78       (ihelp.sh). Just type 'ih' to run the plugin (it depends  on  FZF)  and
79       select the command you want to obtain information about.
80
81       For  a quick introduction jump to the EXAMPLES section at the bottom of
82       this document.
83
84

2. DESCRIPTION

86       Clifm is a Command Line Interface File Manager. This is its  main  fea‐
87       ture  and  strength: all input and interacion is performed via commands
88       typed in a prompt. In other words, clifm is a REPL,  since  it's  basic
89       structure  is simply this: Read (user input via a command line), Evalu‐
90       ate/Execute the command,  Print  the  results,  Loop  (start  all  over
91       again).
92
93       Unlike  most  terminal  file managers out there, indeed, clifm replaces
94       the traditional TUI interface (also known as curses or text-menu  based
95       interface) by a simple command-line interface (REPL). In this sense, it
96       is a file manager, but also a shell extension: search for files,  copy,
97       rename,  and  trash some of them, but, at the same time, update/upgrade
98       your system, add some cronjob, stop a service, and run nano (or vi,  or
99       emacs, if you like).
100
101       Simply  put,  with clifm the command-line is still there, never hidden,
102       but enriched with file management oriented functionalities.
103
104

3. FEATURES

106       Clifm is a completely text-based, shell-like file manager for the  ter‐
107       minal  able to perform all the basic operations you may expect from any
108       other FM. However, its most distinguishing characteristics are:
109
110         a) An extensive and customizable list of color codes to easily  iden‐
111       tify file types and extensions.
112
113         b) The use of short (and even one-character) commands, and entry list
114       numbers (ELN's) instead of file names. Enter  o 12,  for  instance,  to
115       open  a  file with your default text editor or to change to the desired
116       directory. If the autocd and auto-open functions are enabled, which  is
117       the default (see below the acd and ao commands), you only need to enter
118       the ELN to open the file or change to directory: instead of o 12,  just
119       enter 12.
120
121       With  the automatic ELN expansion feature you can use ELN's with exter‐
122       nal commands as well. diff 12 5, for example, will run diff(1) over the
123       files  corresponding  to  ELN's 12 and 5. Ranges are also accepted, for
124       example: rm 1-12 or r 1-12. Since numbers could be a bit tricky when it
125       comes  to  listed  files, TAB completion is available for ELN's and ELN
126       ranges, just as for many other things (see the BUILT-IN EXPANSIONS sec‐
127       tion  below).  Gemini,  a powerful auto-suggestions system (heavily in‐
128       spired by the Fish shell), was developed  with  this  very  purpose  in
129       mind.
130
131         c)  Automatic  files  listing:  Unlike  the shell cd command, clifm's
132       built-in cd function automatically lists files in the new directory.
133
134         d) Several shell capabilities: Fish-like auto-suggestions  that,  to‐
135       gether  with TAB completion, syntax highlighting, and history (for both
136       commands and visited directories) assists the user  when  it  comes  to
137       typing  commands.  This  feature  includes a warning prompt to warn the
138       user when typing an invalid command name.
139
140         e) Bookmarks: keep a list of  your  favorite  directories,  and  even
141       files,  to  get easy access to them. Example: enter bm (or press Alt-b)
142       to open the bookmarks screen and then simply type a number or a  short‐
143       cut name to access the desired bookmark.
144
145         f)  The  Selection  Box allows you to drop files and directories from
146       different parts of the file system (even from  different  instances  of
147       clifm)  and then operate on them with just one command. Example: select
148       a  few  files  in  one  instance  of  the  program  (say  s 12; cd /me‐
149       dia; s 2 5-6)  and  then  paste  them somewhere else using a second in‐
150       stance (v sel, paste sel or Ctrl-Alt-v). Both wildcards (globbing)  and
151       regular expressions are supported. Inverse matching is also allowed for
152       patterns.
153
154         g) The directory history function (back and forth) keeps track of all
155       visited  directories,  so that you can go back and forth to any of them
156       by just entering  b  or  f  (or  just  pressing  Alt-j  and  Alt-k,  or
157       Shift-Left and Shift-Right, respectively). Another way of quickly navi‐
158       gating through visited directories is using Kangaroo, a built-in direc‐
159       tory jumper function. See the j command below.
160
161         h)  An  extensive  list of keyboard shortcuts make it even easier and
162       faster to navigate and operate on your files. For example,  instead  of
163       typing  cd ..  to go back to the parent directory, or s * to select all
164       files in  the  current  directory,  you  can  simply  press  Alt-u  (or
165       Shift-Up) and Alt-a respectively.
166
167         i) The quick search function makes it really easy to quickly find the
168       files you are looking for: just enter a slash followed by the string or
169       regular  expression  you want (ex: /myfile or /.*.png), that's all. In‐
170       verse search is also allowed by prepending an exclamation mark  (!)  to
171       the search pattern.
172
173         j)  Plugins:  Build  your  own custom commands using executable files
174       (shell scripts or binaries). Just drop an  executable  file  (all  lan‐
175       guages  are supported) in the plugins directory, tell clifm to use this
176       executable file via a custom action name, and use it as any other  com‐
177       mand.
178
179         k)  Files preview: Via the fzfnav plugin (see the PLUGINS section be‐
180       low), clifm is able to preview several kinds of  files,  including  not
181       only  text  files, but also GIF's, images, office documents, PDF's, and
182       more. This plugin requires FZF to be installed. For basic  images  pre‐
183       view  ueberzug  is required. A list of optional dependencies to preview
184       different kinds of files is available in the PLUGINS section.
185
186         l) It is blazing fast and incredibly lightweight. With a memory foot‐
187       print below 5 MiB and a disk usage of 0.5 MiB, it can run on really an‐
188       cient hardware. It is so simple that it doesn't require  an  X  session
189       nor  any graphical environment at all, being able thus to perfectly run
190       on the console (TTY) and even on a headless machine via a  SSH  or  any
191       other  remote session. And if this is not enough, you can still try the
192       light mode to make it even faster.
193
194         m) When running in stealth mode, it will leave not trace  at  all  on
195       the host system.
196
197       Because inspired by the KISS principle, clifm is fundamentally aimed to
198       be lightweight, fast, simple, and efficient. On Archlinux's  notion  of
199       simplicity   see:  https://wiki.archlinux.org/index.php/Arch_Linux#Sim‐
200       plicity
201
202       List of clifm features:
203
204         1) FreeDesktop compliant Trash system
205         2) Automatic files listing
206         3) Commands and directory history function
207         4) A powerfull TAB completion/expansion system (see the BUILT-IN  EX‐
208       PANSIONS section below)
209         5) More than 40 customizable keyboard shortcuts
210         6) Wildcards and regex auto-expansion
211         7) Braces auto-expansion
212         8) ELN's auto-expansion
213         9) ELN ranges auto-expansion
214         10) sel keyword auto-expansion
215         11) Bookmarks auto-expansion
216         12) Bash-like quoting system
217         13) Custom aliases and variables
218         14) Full theming support via a single configuration file
219         15) Shell commands execution
220         16) Startup and prompt commands
221         17) User profiles
222         18) Commands sequential and conditional execution
223         19) Lira, a built-in resource opener
224         20) Eleven sorting methods and reverse sorting
225         21) Bulk rename and bulk remove
226         22) Archiving and compression support
227         23) Auto-cd and auto-open
228         24) Plugins support via custom actions linked to executable files
229         25) Symbolic links editor
230         26)  Regular expressions, file type filter, and inverse matching sup‐
231       port for both search and selection functions
232         27) Command substitution and regular  expressions  for  all  internal
233       commands
234         28) Privacy oriented
235         29) Kangaroo, a built-in directory jumper function
236         30) Icons support
237         31) Batch symbolic links
238         32) Files filter via regular expressions for the files list
239         33) Up to eight workspaces
240         34) Fused parameters support for ELN's
241         35)  Advcpmv support (cp and mv with a nice progress bar). Depends on
242       advcpmv (See https://github.com/jarun/advcpmv)
243         36) Fastback function
244         37) Remote file systems management via the net command
245         38) Gemini, a Fish-like auto-suggestions system (including a  warning
246       prompt to highlight invalid command names)
247         39) Syntax highlighting
248         40) Interactive rename functionality for the m command
249         41) Easily mount/unmount storage devices via the media command
250         42)  Control  settings  on a per directory basis via the autocommands
251       function
252         43) Bleach, a built-in file names cleaner
253         44) Backdir: quickly change to a parent directory
254         45) Secure environment (see --secure-env  and  --secure-env-full  op‐
255       tions)
256         46) Secure commands (see the --secure-cmds option)
257         47) URI file scheme support (file://)
258         48)  URL  support when running as standalone resource opener (see the
259       --open option)
260         49) Disk usage analyzer (see the -t option)
261         50) Etiqueta, a files tagging system
262         51) Virtual directories
263         52) Desktop notifications
264
265

4. PARAMETERS

POSITIONAL PARAMETERS

268       If the first non-option parameter is a directory, clifm will  start  in
269       this  directory.  Otherwise,  if not a directory, it will open the file
270       via the default associated application and  exit  (working  thus  as  a
271       stand-alone  resource opener). URL's and the URI file scheme (for local
272       file systems) is supported.
273
274       For example, by running 'clifm /etc/hosts',  the  hosts  file  will  be
275       opened   and   clifm   will   immediately   exit.   In   the  same  way
276       clifm https://some_domain will open this web resource with the applica‐
277       tion associated to the text/html MIME type.
278
279       On  the  other side, the command clifm /etc instructs clifm to start in
280       the directory /etc. If not specified, the first workspace will be used.
281       To  start  in  a  different  workspace use the -w option. For instance:
282       clifm -w4 /etc.
283
284

OPTIONS

286       -a, --no-hidden
287              ignore entries starting with . (default)
288
289       -A, --show-hidden
290              do not ignore entries starting with .
291
292       -b, --bookmarks-file=FILE
293              set an alternative bookmarks file
294
295       -c, --config-file=FILE
296              set an alternative configuration file
297
298       -D, --config-dir=DIR
299              use DIR as an alternative configuration directory. If configura‐
300              tion files do not exist already, they will be created anew here
301
302       -e, --no-eln
303              do  not  print  ELN's  (entry  list  number) at the left of file
304              names. Bear in mind, however, that though ELN's are not printed,
305              they are still there and can be used as always
306
307       -E, --eln-use-workspace-color
308              ELN's use the current workspace color
309
310       -f, --no-dirs-first
311              do not list directories first
312
313       -F, --dirs-first
314              list directories first (default)
315
316       -g, --pager
317              enable Mas, the built-in pager for files listing
318
319       -G, --no-pager
320              disable the pager (default)
321
322       -h, --help
323              show this help and exit
324
325       -H, --horizontal-list
326              list files horizontally instead of vertically ordered
327
328       -i, --no-case-sensitive
329              no case-sensitive files listing (default)
330
331       -I, --case-sensitive
332              case-sensitive files listing
333
334       -k, --keybindings-file=FILE
335              set an alternative keybindings file
336
337       -l, --no-long-view
338              disable long view mode (default)
339
340       -L, --long-view
341              enable long view mode to list files and their properties. By de‐
342              fault, the following information is provided for each file: file
343              name,  file  permissions  (symbolic notation), owner and primary
344              group, last modification time, and size (these fields  could  be
345              turned  on/off  using the PropFields option in the configuration
346              file). To get more detailed information use the p  command  (see
347              below).
348
349       -m, --dirhist-map
350              enable  the directory history map to keep in view previous, cur‐
351              rent and next entries in the directory history list
352
353       -o, --no-autols
354              cd works like the shell cd command: change directory but do  not
355              list files automatically
356
357       -O, --autols
358              cd changes directory and lists files automatically (default)
359
360       -p, --path=PATH
361              use  PATH  as  clifm starting path. Default starting path is the
362              current working directory. If no workspace is specified via  the
363              --workspace option (see below), the first workspace (1) is used.
364              This option is deprecated: use positional parameters instead.
365
366       -P, --profile=PROFILE
367              use PROFILE as profile. If PROFILE does not exist,  it  will  be
368              created. Default profile is 'default'
369
370       -r, --no-refresh-on-empty-line
371              do not refresh the current list of files when pressing the Enter
372              key on an empty line
373
374       -s, --splash
375              enable the splash screen
376
377       -S, --stealth-mode
378              leave no trace on the host system. Nothing is  read  from  files
379              nor  any  file  is  created: all settings are set to the default
380              value. However, most settings can still be controlled  via  com‐
381              mand  line options. Listing colors could be customized via dedi‐
382              cated environment variables (see the ENVIRONMENT section below).
383              Take  a look as well to the history command and the --no-history
384              command line switch.
385
386       -t, --disk-usage-analyzer
387              run in disk  usage  analyzer  mode.  Equivalent  to  --sort=size
388              --long-view --full-dir-size --no-dirs-first --apparent-size. The
389              total size of the current directory, plus the name and  size  of
390              the  largest file will be printed after the list of files. Sizes
391              are calculated using actual device usage (rather  than  apparent
392              size)  in  powers of 1024 (KiB, MiB, etc). To use apparent sizes
393              instead add the --apparent-size  switch.  Press  Ctrl-Alt-i  (or
394              Alt-TAB) to toggle this mode on/off in-place.
395
396       -u, --no-unicode
397              disable unicode
398
399       -U, --unicode
400              enable  unicode to correctly list file names containing accents,
401              tildes, umlauts, non-latin letters, etc. This option is  enabled
402              by default.
403
404       -v, --version
405              show version details and exit
406
407       -w, --workspace=NUM
408              start  in workspace NUM. By default, clifm will recover the last
409              visited directory for each workspace. However, you can  override
410              this  behaviour using positional parameters, as described above,
411              to start in workspace NUM and in path PATH.
412
413       -W, --no-toggle-workspaces
414              workspace keybindings (by default Alt-[1-4]) do not toggle  cur‐
415              rent and previous workspaces
416
417       -x, --no-ext-cmds
418              disallow the use of external, shell commands
419
420       -y, --light-mode
421              enable  the  light mode to speed up clifm. See the NOTE ON SPEED
422              section below.
423
424       -z, --sort=METHOD
425              sort files by METHOD, where METHOD could be one of: 0 = none,  1
426              = name, 2 = size, 3 = atime, 4 = btime (ctime if not available),
427              5 = ctime, 6 = mtime, 7 = version (name if not available),  8  =
428              extension,  9  = inode, 10 = owner, 11 = group. Both numbers and
429              strings are allowed. E.g: --sort=9, --sort=inode.
430
431       --apparent-size
432              use apparent sizes instead of actual device usage
433
434       --bell=TYPE
435              Choose the terminal bell type, where TYPE could be: 0 = none,  1
436              = audible, 2 = visual (requires readline >= 8.1), 3 = flash. De‐
437              faults to 'visible', and, if not possible, 'none'.
438
439       --case-sens-dirjump
440              do not ignore case when consulting the jump database (via the  j
441              command)
442
443       --case-sens-path-comp
444              enable case sensitive path completion
445
446       --cd-on-quit
447              write  last visited directory to $XDG_CONFIG_HOME/clifm/.last to
448              be later accessed by the corresponding shell function at program
449              exit. See the SHELL FUNCTIONS section below.
450
451       --color-scheme=NAME
452              set NAME as color scheme
453
454       --cwd-in-title
455              print current working directory in terminal window title. Other‐
456              wise, only the program name is printed
457
458       --desktop-notifications
459              enable desktop notifications. Enter 'help desktop-notifications'
460              in CliFM for more information
461
462       --disk-usage
463              show disk usage (free/total) for the file system the current di‐
464              rectory belongs to
465
466       --enable-logs
467              enable program logs. See the log command for more information
468
469       --expand-bookmarks
470              expand bookmark names into the corresponding bookmark paths  and
471              enable  TAB  completion for bookmark names as well. If the book‐
472              mark is, .e.g. mybookmark=/my/path, "mybo" will be completed  as
473              "mybookmark", which will be interpreted then as "/my/path"
474
475       --fzytab
476              use fzy to display completion matches
477
478       --full-dir-size
479              if  running  in long view, print directories size and their con‐
480              tents
481
482       --fuzzy-match
483              enable fuzzy matches for completions and suggestions (only  file
484              names and paths)
485
486       --icons
487              enable icons
488
489       --icons-use-file-color
490              instead of an specific color, icons take the color of the corre‐
491              sponding file name (specified either via file type or  via  file
492              extension).  Useful when building custom color schemes. This op‐
493              tion implies --icons. Only if compiled with support  for  either
494              icons-in-terminal  or  Nerdfonts.  The default build is compiled
495              with emoji-icons support, in which case this option  is  ignored
496              (Unicode icons has their own color built-in)
497
498       --list-and-quit
499              list  files  and  quit.  It may be used in conjunction parameter
500              substitution. Ex: 'clifm --list-and-quit /etc'
501
502       --mnt-udisks2
503              use udisks2 instead of udevil (default), for the media command
504
505       --max-dirhist
506              maximum number of visited directories to remember
507
508       --max-files=NUM
509              list only up to NUM files. Use -1 or 'unset' to remove the files
510              limit (default). See the mf command for a more detailed descrip‐
511              tion.
512
513       --max-path=NUM
514              set the maximum number of characters after which the current di‐
515              rectory  in the prompt line will be abbreviated to the directory
516              base name (if \z is used in the prompt)
517
518       --no-cd-auto
519              by default, clifm changes to directories by just specifying  the
520              corresponding  ELN  (e.g.  '12' instead of 'cd 12'). This option
521              forces the use of cd
522
523       --no-control-d-exit
524              do not allow exit on EOF (Control-d)
525
526       --no-dir-jumper
527              disable the directory jumper function
528
529       --no-classify
530              by default, clifm appends a file  type  indicator  character  to
531              file  names  when running with no colors (see the --no-color op‐
532              tion below) and both a directory indicator and a  files  counter
533              for directories when running with colors. Classification charac‐
534              ters are:
535               /n: directories (n = files counter)
536               @: symbolic links
537               |: fifo/pipes
538               =: sockets
539               *: executable files
540               ?: unknown file type Use this option to disable file type clas‐
541              sification.
542
543       --no-clear-screen
544              do not clear the screen before listing files
545
546       --no-color
547              disable colors
548
549       --no-columns
550              disable columns for files listing
551
552       --no-file-cap
553              do not check files capabilities when listing files
554
555       --no-file-ext
556              do not check files extension when listing files
557
558       --no-files-counter
559              disable  the files counter for directories. This option is espe‐
560              cially useful to speed up the listing process; counting files in
561              directories is particularly expensive
562
563       --no-follow-symlink
564              do not follow symbolic links when listing files
565
566       --no-highlight
567              disable  syntax  highlighting.  To customize highlighting colors
568              see the COLOR CODES section below
569
570       --no-history
571              do not write commands into the history file
572
573       --no-open-auto
574              same as no-cd-auto, but for files instead of directories
575
576       --no-refresh-on-resize
577              do not attempt to refresh the list of files upon window's resize
578
579       --no-restore-last-path
580              by default, clifm saves the  last  visited  directory  for  each
581              workspace to be restored in the next session. Use this option to
582              disable this behavior.
583
584       --no-suggestions
585              disable the auto-suggestions system
586
587       --no-tips
588              disable startup tips
589
590       --no-warning-prompt
591              disable the warning prompt (used to  highlight  invalid  command
592              names)
593
594       --no-welcome-message
595              disable the welcome message
596
597       --only-dirs
598              list only directories
599
600       --open=FILE
601              run  as a stand-alone resource opener: open FILE and exit, where
602              FILE could be a regular file or a directory, using either  stan‐
603              dard    notation    (/dir/file)   or   the   URI   file   scheme
604              (file:///dir/file]), or a URL (www.domain or https://domain).
605
606       --opener=APPLICATION
607              specify a resource opener to use. If opener  is  not  set,  Lira
608              will be used instead
609
610       --print-sel
611              always  print  the list of selected files. Since this list could
612              be quite extensive, the maximum  number  of  selected  files  to
613              print  could be specified via the MaxPrintSelfiles option in the
614              configuration file. Defaults to 0 (auto, i.e.  never  take  more
615              than  half  terminal  height). Use -1 to remove the limit or any
616              other positive value.
617
618       --rl-vi-mode
619              set readline to vi editing mode (defaults to emacs editing mode)
620
621       --secure-cmds
622              Filter commands passed to the OS to mitigate  command  injection
623              attacks. Consult the SECURITY section below
624
625       --secure-env
626              run  clifm  in  a secure environment (regular mode). Consult the
627              SECURITY section below
628
629       --secure-env-full
630              run clifm in a secure environment (full mode). Consult the SECU‐
631              RITY section below
632
633       --share-selbox
634              make the Selection Box common (that is, accessible) to different
635              profiles. By default, each profile has a private Selection Box.
636
637       --si   print sizes in powers of 1000, as defined in  the  International
638              System of Units (SI), instead of 1024 (Linux only)
639
640       --smenutab
641              use smenu to display completion matches
642
643       --sort-reverse
644              sort in reverse order, for example: z-a instead of a-z, which is
645              the default order
646
647       --stdtab
648              use the standard mode (readline's built-in) for TAB completion
649
650       --trash-as-rm
651              the r command executes the built-in 'trash' (see the t  command)
652              instead of rm(1) to prevent accidental deletions
653
654       --virtual-dir=PATH
655              use PATH as CliFM's virtual directory
656
657       --virtual-dir-full-paths
658              print file names in virtual directories as full paths instead of
659              just base names
660
661       Options precedence order: 1) command line flags; 2) configuration file;
662       3) default values.
663
664

5. COMMANDS

666       Help  for all commands listed here can be accessed via the -h or --help
667       options.
668
669       NOTE: ELN = Entry List Number. Example: in the line "12 openbox"  (when
670       listing  files),  12  is the ELN corresponding to the file named "open‐
671       box". The slash followed by a number (/xx) after directories  and  sym‐
672       bolic  links to directories (the files counter) indicates the amount of
673       files contained by the corresponding directory, excluding self and par‐
674       ent directories ("." and ".." Respectively).
675
676       NOTE  2:  In case of ELN-filename conflict the backslash can be used to
677       prevent ELN expansion. For example, if we have at least two  files  and
678       one of them in named "2", then clifm cannot know in advance if the com‐
679       mand refers to the ELN 2 or to the file name "2". In we want  the  ELN,
680       we just write the ELN number, for example: s 2. But if we want the file
681       name, we need to escape the file name  using  the  backlash  character:
682       s \2.
683
684       NOTE 3: clifm supports fused parameters for internal commands taking an
685       ELN or range of ELN's as parameters. Much like short options  for  com‐
686       mand  line  programs,  you  can drop or omit the space between internal
687       commands and the corresponding ELN passed as argument. In general,  you
688       can  write  CMDELN instead of CMD ELN. For example: o12 or s1-5 instead
689       of o 12 and s 1-5 respectively. Bear in mind,  however,  that  in  thus
690       omitting the space char TAB completion for ELN's won't be available. If
691       there is a file named o12 (more generally, CMDELN), and if you want  to
692       refer  to this file instead of a clifm command, escape the file name to
693       prevent the split; for example: s \o12.
694
695       NOTE 4: clifm implements a fastback function, that is to say, the  con‐
696       version  of  "... n" or "cmd ... n" into "../.. n" or "cmd ../.. n". In
697       other words, subsequent dots after ".." will  be  converted  each  into
698       "/..". For example, if you are in your home directory and type "..." or
699       "cd ...", and since "..." amounts to "../..", you will be taken to  the
700       root  directory. TAB completion is available for the fastback function:
701       "....bin" -> TAB -> "../../../bin".
702
703
704       FILE/DIR
705              if the autocd and auto-open functions are enabled, which is  the
706              default  value,  open  FILE or change directory to DIR. In other
707              words, FILE amounts to open FILE or o FILE, and DIR  to  cd DIR.
708              ELN's, of course, are allowed. Example: 12.
709
710       /PATTERN [-filetype] [-x] [DIR]
711              this  is  the  quick  search function. Just type / followed by a
712              glob or regular (or extended regular) expression, and clifm will
713              list  all matches in the current working directory. For example,
714              both /*.pdf and /.pdf$ expressions will list all  PDF  files  in
715              the  current  working directory, the former using wildcards, and
716              the second a regular expression.
717
718              Note: By default, the search function attempts to resolve a pat‐
719              tern  first  as  glob, and if no matches, as regular expression.
720              This behavior can be customizad in the configuration  file,  via
721              the SearchStrategy option.
722
723              Note  2:  If  no  further parameter is provided, but only a glob
724              pattern (wildcards), you can expand the pattern into the  corre‐
725              sponding  matches  via  the  TAB key. For example, to list all C
726              files in the current directory: /*.c<TAB>.
727
728              Expressions containing no pattern  metacharacter  are  automati‐
729              cally  transformed  into a glob/regular expression (depending on
730              the value of the SearchStrategy option). For example, /test  be‐
731              comes *test* or /.*test.*.
732
733              By  default,  regular expressions are case insensitive (glob ex‐
734              pressions, by contrast, are always case sensitive). However, you
735              can  enable  case  sensitive  search  by  setting the CaseSensi‐
736              tiveSearch option to true in the configuration file.
737
738              To search for files in any directory other than the current  di‐
739              rectory, specify the directory name as a further parameter. This
740              parameter (DIR) could be an absolute path, a relative  path,  or
741              an  ELN. For example, enter /^A 7 to search for all files start‐
742              ing with 'A' in the directory corresponding to the ELN 7.
743
744              The result of the search could be further filtered by specifying
745              a  filter  type:  -b,  -c, -d, -f, -l, -p, and -s (block device,
746              character  device,  directory,  regular  file,  symbolic   link,
747              FIFO/pipe,  and  socket  respectively. For example, /[.-].*d$ -d
748              Documents/ will list all directories containing a dot or a  dash
749              and ending with 'd' in the directory named Documents.
750
751              The  quick  search function also supports invert search: prepend
752              the exclamation mark (!) to negate a given search  pattern.  For
753              example:  !.*s$ -d /etc  will  match all directories in /etc NOT
754              ending with 's', just as !D* will match all files in the current
755              directory NOT starting with 'D'.
756
757              To perform a recursive search use the -x parameter, and, option‐
758              ally, a search path (DIR) (file type filter is not allowed). The
759              search    will    be    performed   using   find   as   follows:
760              find DIR -name PATTERN. If  no  search  path  is  provided,  the
761              search is executed starting in the current directory. Otherwise,
762              the search starts in DIR.
763
764       ;[CMD], :[CMD]
765              If no CMD, run the system shell in the  current  working  direc‐
766              tory.  If  CMD  is specified, skip all clifm expansions (see the
767              BUILT-IN EXPANSIONS section below)  and  run  the  input  string
768              (CMD) as is via the default system shell.
769
770       ac, ad ELN/FILE...
771              archive/compress  and dearchive/decompress one or multiple files
772              and/or directories. The archiver function brings two modes:  ac,
773              to  generate archives or compressed files, and ad, to decompress
774              or dearchive files, either just listing, extracting, recompress‐
775              ing,  or mounting their content. In this latter case, the mount‐
776              point    used    automatically    is    $HOME/.config/clifm/PRO‐
777              FILE/mounts/ARCHIVE_NAME.
778
779              The  function accepts single and multiple file names, wildcards,
780              ELN  ranges,  and  the  'sel'  keyword.  For  example:   ac sel,
781              ac 4-25 myfile,  or  ad *.tar.gz.  Multiple  archive/compression
782              formats are supported, including Zstandard. When it comes to ISO
783              9660 files only single files are supported.
784
785              The archive mount function for non ISO files depends on archive‐
786              mount, while the remaining functions depend on atool  and  other
787              third-party  utilities  for achive formats support, for example,
788              p7zip. p7zip is also used to manage most  decompressing  options
789              for  ISO 9660 files, except for mount, in which case mount(8) is
790              used. Creation of ISO files is done via genisoimage(1). For more
791              information  consult  atool(1),  archivemount(1),  zstd(1),  and
792              7z(1).
793
794       acd, autocd [on, off, status]
795              toggle the autocd function on/off. If set to on, DIR amounts  to
796              cd DIR.
797
798       actions [edit [APP]]
799              with  no  argument, lists available custom actions (or plugins).
800              Use the 'edit' option to add, remove or  modify  custom  actions
801              (using  APP  if  specified or the default associated application
802              otherwise). The aim of this function is to  allow  the  user  to
803              easily  add  custom  commands  and  functions to clifm. In other
804              words, the actions function is a plugins capability.
805
806              The general procedure is quite simple: a) bind a  custom  action
807              name  to an executable file written in any language you want, be
808              it a shell or Python script, a C program or  whatever  you  like
809              (using  the  actions.clifm file located in the configuration di‐
810              rectory). Example: "myaction=myscript.sh". b) Now, drop the cor‐
811              responding script (in our example, myscript.sh) into the plugins
812              directory (see the FILES section below). 3) Once this  is  done,
813              you can call the script using the custom action name defined be‐
814              fore as  if  it  were  any  other  command:  run  myaction,  and
815              myscript.sh will be executed.
816
817              All  arguments  passed  to  the action command are passed to the
818              script or program as well (which is run via the system shell).
819
820              The plugins provided with clifm (take a look at the plugins  di‐
821              rectory)  could  be  used  as  a starting point to create custom
822              plugins.
823
824       alias [import FILE] [ls,list] [NAME]
825              with no argument (or with ls,list  parameters),  it  prints  the
826              list  of  available aliases, if any. To get the description of a
827              specific alias just enter alias followed by the alias  name.  To
828              write  a  new alias simply enter edit (or press F10) to open the
829              configuration file and add a line like this:  "alias  name='com‐
830              mand args...'" or "alias name='directory'".
831
832              To  import  aliases from a file, provided it contains aliases in
833              the specified form, use the import parameter. Aliases  conflict‐
834              ing with some of the internal commands won't be imported.
835
836              However,  a  neat usage for the alias function is not so much to
837              bind short keys to commands, but to files and  directories  vis‐
838              ited  regularly.  In  this  way,  it is possible to bind as many
839              files or directories, no matter how deep they are  in  the  file
840              system, to very short strings, even single characters. For exam‐
841              ple, "alias w='/some/file/deep/in/the/filesystem'. Now, no  mat‐
842              ter  where we are, we can just enter 'w', provided autocd and/or
843              auto-open function is enabled, to access the file  or  directory
844              we  want.  Theoretically  at  least, this procedure could be re‐
845              peated until the system memory is exhausted.
846
847              To create multiple aliases for files at once, this is the recom‐
848              mended procedure: 1) Select all files you want to alias with the
849              sel function: s file1 file2 file3 .... 2)  Export  the  selected
850              files  into  a temporary file running exp sel; 3) Edit this file
851              to contain only valid alias lines:
852
853               alias a1='file1'
854               alias b1='file2'
855               alias c1='file3'
856
857              NOTE: Make sure alias names do not conflict with other commands,
858              either internal or external. To bypass the conflicts check, per‐
859              formed automatically by the 'alias import' command, you can just
860              edit the aliases file manually (F10).
861
862              4)  Finally, import this file with the alias function: alias im‐
863              port tmp_file. Now, you can access any of these files by  enter‐
864              ing just a few characters: a1, b1, and c1.
865
866       ao, auto-open [on, off, status]
867              toggle the auto-open function on/off. If set to on, FILE amounts
868              to open FILE.
869
870       b, back [h, hist] [clear] [!ELN]
871              unlike cd .., which sends you to the  parent  directory  of  the
872              current  directory,  this  command  (with no argument) sends you
873              back to the previously visited directory.
874
875              clifm keeps a record of all visited  directories.  You  can  see
876              this  list  by  typing b hist, b h or bh, and you can access any
877              element in this list by simply passing the corresponding ELN  in
878              this list to the back command. Example:
879                      :) > ~ $ bh
880                      1 /home/user
881                      2 /etc
882                      3 /proc
883                      :) > ~ $ b !3
884                      :) > /proc $
885
886              NOTE:  the  line printed in green indicates the current position
887              of the back function in the directory history list.
888
889              Finally, you can also clear this history list by typing b clear.
890
891              The best way of navigating the directory history list,  however,
892              is via the directory jumper function. See the j command below.
893
894       bb, bleach ELN/FILE...
895              Bleach  is  a  built-in  file  names  cleaner  (based  on  detox
896              [https://github.com/dharple/detox]), whose main aim is to rename
897              file names using only safe characters.  Bleach cleans file names
898              up either by removing unsafe (extended-ASCII/Unicode) characters
899              without  an ASCII alternative/similar character, or by translat‐
900              ing these unsafe characters into an alternative ASCII  character
901              based on familiarity/similarity.
902
903              These following simple rules are used to compose clean/safe file
904              names:
905                  - NUL (\0) and slash (/) characters  are  completely  disal‐
906              lowed
907                  -  Only characters from the Portable Filename Characters Set
908              (a-zA-Z0-9._-) are allowed
909                  - { [ ( ) ] } are replaced by a dash (-). Everything else is
910              replaced by an underscore (_)
911                  - Unicode characters are translated, whenever possible, into
912              an ASCII replacement. Otherwise, they are just ignored. For  ex‐
913              ample, an upper case A with diacritic (accent, umlaut, diaresis,
914              and so on) will be replaced by an ASCII A, but the  smiley  face
915              emoji will be simply ignored. A few special signs will be trans‐
916              lated into text, for instance, the pound sign will  be  replaced
917              by "_pound_" and the Euro symbol by "EUR". Translations are made
918              via a translation table (cleaner_table.h)
919                  - File names never start with a dash (-)
920                  - Files named . and .. are not allowed
921                  - Append .bleach to one character long file names
922                  - Do not let a replacement file name start with a dot  (hid‐
923              den) if the original does not
924                  - Max file name length is NAME_MAX (usually 255)
925
926              Modified file names will be listed on screen asking the user for
927              confirmation, allowing besides to edit  (by  pressing  'e')  the
928              list of modified file names via a text editor.
929
930              If the replacement file name already exists, a dash and a number
931              (starting from 1) will be appended. Ex: file-3.
932
933       bd [NAME]
934              bd is the backdir function: it takes you back to the parent  di‐
935              rectory matching NAME.
936
937              With  no arguments, bd prints a menu with all parent directories
938              relative to the current directory, allowing the user  to  select
939              an  entry.  Otherwise,  it checks the absolute current directory
940              against the provided query string (NAME): if only one  match  is
941              found,  it  automatically changes to that directory; if multiple
942              matches are found, the list of matches is presented to the  user
943              in  a  selection  menu.  If  NAME  is  a directory name, bd just
944              changes to that directory, be it a parent of the current  direc‐
945              tory or not.
946
947              TAB completion and suggestions are available for this function.
948
949              Example:
950
951              Provided  that the current directory is /home/user/git/reposito‐
952              ries/lambda, entering bd  git  will  take  you  immediatelly  to
953              /home/user/git.
954
955              Note that there is no need to type the entire directory name; if
956              the query is unambiguous, only a few characters, and  even  just
957              one,  suffices  to match the appropriate directory. In our exam‐
958              ple, bd g is enough to take you to /home/user/git, just as bd  h
959              will take you to /home.
960
961              The  query  string  could match any part of a directory name: bd
962              er, for instance, will take you to /home/user, since  it  is  an
963              unambiguous query.
964
965       bl ELN/FILE...
966              Create symbolic links (in the current directory) for each speci‐
967              fied file. The user will be asked to enter a specific suffix for
968              the  symlinks.  If none is specified, the basename of the corre‐
969              sponding file is used.
970
971       bm, bookmarks [a, add PATH] [d, del] [edit] [SHORTCUT, NAME]
972              with no argument, open the bookmarks menu. Here you can cd  into
973              the desired bookmark by entering either its ELN, its shortcut or
974              its name. In this screen you can also add, remove or  edit  your
975              bookmarks by simply typing 'e' to edit the bookmarks file (which
976              is simply a list of lines with this format: [shortcut]name:path.
977              Ex: [d]documents:/home/user/documents).
978
979              If  you  want to add or remove a bookmark directly from the com‐
980              mand line, use the 'a' and 'd' arguments respectively.  Example:
981              bm a /media/misc or bm d. You can also open a bookmark by typing
982              'bm shortcut' or bm name (in which latter case TAB completion is
983              available).
984
985              A  handy  use  for  the bookmarks function, provided the expand-
986              bookmarks option is enabled, is to create bookmarks using  short
987              names, which will be later easily accessible via TAB completion.
988
989              To  operate  on specific bookmark paths, you can use the b: con‐
990              struct (mostly useful if using the FZF mode for TAB completion).
991              For  example,  type p b:<TAB>, select the bookmarks you want and
992              press Enter, to print the file properties of the selected  book‐
993              marks (multi-selection is available).
994
995       br, bulk ELN/FILE...
996              rename at once all files passed as arguments to the function. It
997              accepts single and multiple file names, wildcards,  ELN  ranges,
998              and the 'sel' keyword. Example: br myfile 4-10 sel.
999
1000              Each  file name will be copied into a temporary file, which will
1001              be opened with the default text editor (via the mime  function),
1002              letting  the user modify it. Once the file has been modified and
1003              saved, the modifications are printed on the screen and the  user
1004              is  asked  whether  to  proceed with the actual bulk renaming or
1005              not.
1006
1007              This built-in bulk rename function won't  deal  with  deletions,
1008              replacements,  file  name  conflicts and the like. For a smarter
1009              alternative use qmv(1).
1010
1011       c, l [e, edit], m, md, r
1012              short for the following commands respectively: cp -iRp,  ln -sn,
1013              mv -i,  mkdir -p, and rm -I (for files) or rm -dIr (for directo‐
1014              ries).
1015
1016              By default, the c, m, and r commands execute cp(1),  mv(1),  and
1017              rm(1)   respectively   in  interactive  mode  (using  the  -i/-I
1018              switches) to ask for confirmation before operations. Since  this
1019              might  sometimes be quite intrusive (specially when operating on
1020              large amount of files), it is possible to turn interactivity off
1021              in two different ways:
1022
1023                a)  For  the current command only: via the -f, --force switch.
1024              Example: c -f sel, m -f sel, or r -f *.
1025
1026                b) Permanently. Use the cpCmd, mvCmd, and rmForce  options  in
1027              the  configuration file to permanently set any of these commands
1028              to non-interactive mode.
1029
1030              On systems not supporting the -I switch  (NetBSD,  OpenBSD,  and
1031              MacOS), the r command executes rm(1) as follows: rm -drf for di‐
1032              rectories, and rm -f for files.  Note  that,  if  compiled  with
1033              _BE_POSIX, the -d flag is not available, in which case rm -rf is
1034              used instead.
1035
1036              To use these commands without any of these  arguments,  or  with
1037              any  other  argument  you  want,  just  use  the non-abbreviated
1038              (shell) command, for instance, cp instead of c. Of  course,  you
1039              can also create aliases to use you preferred commands, for exam‐
1040              ple, "c='cp -adp'". Consult the alias command above for more in‐
1041              formation.
1042
1043              The l command allows the use of the e, edit option to modify the
1044              destination of a symbolic link. Example:  l edit 12  (or  le 12)
1045              to  relink the symbolic link corresponding to the file whose ELN
1046              is 12.
1047
1048              When using the sel keyword and no destiny is provided, c  and  m
1049              will  copy/move selected files into the current directory. When‐
1050              ever sel is not used, but just a source file name (and  no  des‐
1051              tiny  is  provided),  the m command behaves much like the imv(1)
1052              shell command (from the `renameutils` package), providing an in‐
1053              teractive  renaming function: it prompts the user to enter a new
1054              name using the source file name as base, so  that  it  does  not
1055              need  to  be  typed twice. For this alternative prompt, only TAB
1056              completion for file names is available.
1057
1058              clifm supports advcp(1), wcp, and rsync(1) to copy  files  (they
1059              include  a  progress  bar). To use them instead of cp(1) set the
1060              corresponding option (cpCmd) in the configuration file. If advcp
1061              is selected, the command used is advcp -giRp (or advcp -gRp, for
1062              non-interactive mode). If rsync, the command is rsync -avP.  wcp
1063              takes no argument.
1064
1065              advmv(1)  is also supported to move files (to add a progress bar
1066              to the move command). Use the mvCmd option in the  configuration
1067              file  to  choose  this alternative implementation of mv. In this
1068              case, the command used is advmv -gi (or advmv -g for  non-inter‐
1069              active mode).
1070
1071
1072       colors print the color codes list currently used for files listing.
1073
1074       cd [ELN/DIR]
1075              Change the current working directory to ELN/DIR.
1076
1077              Directories check order:
1078                1.  If no argument, change to the home directory (HOME, or, if
1079              HOME is not set, the sixth field of the entry  corresponding  to
1080              the current user in /etc/passwd)
1081                2.  If argument is an absolute path (begins with a slash char‐
1082              acter), or the first component is dot (.) or dot-dot (..),  con‐
1083              vert  to canonical form (via realpath(3)) and, if a valid direc‐
1084              tory, change into that directory.
1085                3. Check CDPATH environment variable and append /DIR  to  each
1086              of  the paths specified here. If the result of the concatenation
1087              is a valid directory, change into it.
1088                4. Check directories in the current working  directory.  If  a
1089              matching directory is found, change to it.
1090
1091              You  can  use either ELN's or a string to indicate the directory
1092              you want. Ex: cd 12 or cd ~/media. If  autocd  is  enabled  (de‐
1093              fault),  cd 12 and cd ~/media could be written as 12 and ~/media
1094              respectively as well.
1095
1096              Unlike the shell cd(1) command, clifm's built-in cd function not
1097              only  changes  the current directory, but also lists its content
1098              (provided the option CdListsAutomatically is enabled,  which  is
1099              the  default)  according to a comprehensive list of color codes.
1100              By default, the output of cd is much like  this  shell  command:
1101              cd DIR && ls --color=auto --group-directories-first.
1102
1103              Automatic files listing can be disabled by either setting AutoLs
1104              to "false" in the configuration file or running clifm  with  the
1105              -o or --no-autols option.
1106
1107       cl, columns [on, off]
1108              toggle columns on/off.
1109
1110       cmd, commands
1111              show this list of commands. A more convenient way of getting in‐
1112              formation about clifm  commands  is  via  the  interactive  help
1113              plugin  (depends on fzf), by default bound to the "ihelp" action
1114              name.
1115
1116       cs, colorschemes [edit [APP]] [NAME]
1117              with no arguments, list available color schemes.  Use  the  edit
1118              option  to open/edit the configuration file of the current color
1119              scheme (open with APP if specified or via the default associated
1120              application).  Otherwise,  just switch to the color scheme NAME.
1121              TAB completion is available.
1122
1123       d, dup FILE...
1124              Duplicate files passed as parameters, either directories or reg‐
1125              ular  files. The user will be asked for a destiny directory. Du‐
1126              plicated file names are generated by appending  ".copy"  to  the
1127              basename  of each source file. For example: d /my/file will copy
1128              /my/file into the directory selected by the user  as  file.copy.
1129              If  file.copy  already  exists, an extra suffix will be added as
1130              follows: file.copy-N, where N is a positive integer (starting at
1131              1).
1132
1133              If  rsync(1)  is  found, it will be used as follows: rsync -acz‐
1134              vAXHS --progress. Else, cp(1) will be used: cp -a.
1135
1136       dc [on, off, status]
1137              toggle the files counter function on/off.
1138
1139       ds, desel [*, a, all] [FILE]...
1140              deselect one or more selected files.
1141
1142              If no parameter is passed, the user is prompted to  either  mark
1143              selected  files  to be deselected or to edit the selections file
1144              (entering 'e') via a text editor to manually deselect files.
1145
1146              Use *, a or all to deselect all selected entries  at  once.  Ex:
1147              ds *.
1148
1149              You  can  also pass the file name(s) (or ELN's) to be deselected
1150              as a parameter. For example: ds myfile 24.
1151
1152              TAB completion is available for this command.
1153
1154       edit [reset] [APPLICATION]
1155              edit the main configuration file (F10 key is also available). If
1156              an application is specified, it will be used to open the config‐
1157              uration file. Use the 'reset' option to generate a fresh config‐
1158              uration  file  and  create  a  backup copy of the old one (named
1159              clifmrc.YYYYMMDD@HH:MM:SS).
1160
1161       exp [FILE]...
1162              with no argument, export the list of files in the current  work‐
1163              ing  directory to a temporary file. Otherwise, export only those
1164              specified as further arguments: they could be directories,  file
1165              names, ELN's or some search expression like "*.c".
1166
1167       ext [on, off, status]
1168              toggle external commands on/off.
1169
1170       f, forth [h, hist] [clear] [!ELN]
1171              it works just like the back function, but it goes forward in the
1172              history record. Of course, you can  use  f hist,  f h,  fh,  and
1173              f !ELN.
1174
1175       fc, filescounter [on, off, status]
1176              By default, clifm prints the amount of files contained by listed
1177              directories next to directories name. However, since this is  an
1178              expensive  feature,  It  might  be  desirable, for example, when
1179              listing files in a remote machine, to disable this feature.  Use
1180              the  'off'  option to disable it. To permanently disable it, use
1181              the FilesCounter option in the configuration file.
1182
1183       ff, dirs-first [on, off, status]
1184              toggle list directories first on/off.
1185
1186       fs     Print an extract from  'What  is  Free  Software?',  written  by
1187              Richard Stallman.
1188
1189       ft, filter [unset] [[!]REGEX]
1190              with  no  argument, print the current filter. To remove the cur‐
1191              rent filter use the 'unset' option. To set a  new  filter  enter
1192              ft [!]REGEX. Use the exclamation mark to reverse the behavior or
1193              a filter. For example: ft !^. will prevent hidden files from be‐
1194              ing  listed,  just as 'ft ^D' will list only files starting with
1195              'D'.
1196
1197              The filter will be lost at program exit. To  permanently  set  a
1198              files  filter use the Filter option (in the configuration file).
1199              You can also use the CLIFM_FILTER environment variable (see  be‐
1200              low),  though  the value of this variable will be lost at system
1201              shutdown or reboot.
1202
1203       fz [on, off]
1204              Toggle full directory size on/off (only for long view mode).
1205
1206       hf, hidden [on, off, status]
1207              toggle hidden files on/off.
1208
1209       history [edit [APP]] [clear] [-n] [on, off, status]
1210              with no arguments, it shows the history list. If clear is passed
1211              as argument, it will delete all entries in the history file. Use
1212              'edit' to open the history file and modify  it  if  needed  (the
1213              file  will be opened with APP, if specified, or with the default
1214              associated application otherwise). -n tells the history  command
1215              to list only the last 'n' commands in the history list. Finally,
1216              you can disable history (subsequent entries won't be written  to
1217              the history file) via history off.
1218
1219              You  can  use  the  exclamation mark (!) to perform some history
1220              commands:
1221                !!: Execute the last command.
1222                !n: Execute the command number 'n' in the history list.
1223                !-n: Execute the last-n command in the history list.
1224                ![STRING]: Execute command starting with STRING.  TAB  comple‐
1225              tion is available in this case.
1226
1227              TAB completion is available: just type ! and then TAB to see the
1228              complete list of history commands, or !str and then TAB  to  see
1229              the list of entries matching 'STR'.
1230
1231       icons [on, off]
1232              toggle icons on/off
1233
1234       j, jc, jl, jp [STR]..., jo [NUM], je
1235              j is the fastest way of using Kangaroo, a directory jumper func‐
1236              tion to quickly navigate through the jump database (i.e. a data‐
1237              base of visited directories).
1238
1239              With no argument, j just lists the entries in the jump database,
1240              printing the order number of the corresponding entry, the number
1241              of  visits,  the days since the first visit, the rank value, and
1242              the directory name itself (an asterisk next to  the  rank  value
1243              means  that  the corresponding directory is bookmarked, the cur‐
1244              rent directory in  some  workspace  or  pinned).  Otherwise,  it
1245              searches  for  STR  in  the database and cd into the best ranked
1246              matching  entry.  Example:  j D  will  probably  take   you   to
1247              /home/user/Downloads,  provided  this directory has been already
1248              visited and is the best ranked match in the database. For a more
1249              detailed  description of the matching algorithm see the KANGAROO
1250              FREQUENCY ALGORITHM section below.
1251
1252              Multiple query strings could be passed to the function. For  ex‐
1253              ample,  j et mo  will  first check for 'et' in the jump database
1254              and then will further filter the search using the second parame‐
1255              ter:  'mo'.  It will most probably take you (again, provided the
1256              directory has been already visited and is the best ranked match)
1257              to /etc/modprobe.d directory. Bear in mind that if STR is an ac‐
1258              tual directory, jump will just cd into it without performing any
1259              query.
1260
1261              The  backslash  (\)  and the slash (/) could be used to instruct
1262              Kangaroo to search for the string query only  in  the  first  or
1263              last  path  segment  of each entry in the database respectively.
1264              Let's suppose we have two entries matching src in the  database:
1265              /media/src/images  and  /home/user/Downloads/clifm/src.  If  the
1266              first entry is better ranked than the second, j src  will  match
1267              this  first entry. However, if what we really want is the second
1268              entry, appending a slash to the query string instructs  Kangaroo
1269              to  only match entries having src in the last path segment, here
1270              /home/user/Downloads/clifm/src.
1271
1272              Since it is not always obvious or easy to know where  exactly  a
1273              query  string will take you, clifm (if the suggestions system is
1274              enabled) will print, at  the  right  of  the  cursor,  the  path
1275              matched by Kangaroo. If that is the actually intended path, just
1276              press the Right arrow key to accept the  suggestion.  Otherwise,
1277              it will be ignored. You can also use TAB completion to print the
1278              list of matches for the current query string. For example:  j  -
1279              c<TAB>  to  list  all entries in the directory history list con‐
1280              taining a dash (-) and a 'c'.
1281
1282              j accepts five modifiers: 'e', 'p' 'c', 'o', and 'l', the  first
1283              standing  for  "edit",  the  second  for "parent", the third for
1284              "child", the fourth for "order", and the last  one  for  'list'.
1285              Thus,  je will open the jump database to be edited if needed; jc
1286              will search for files querying only child  directories  relative
1287              to  the current working directory, while jp will do the same but
1288              for parent directories. jo allows to  specify  an  order  number
1289              (the  left most value in the jump list) instead of a string or a
1290              file name, in which case no matching process is  performed.  Fi‐
1291              nally, jl just prints the matches for the given query string(s),
1292              but without changing the current directory. Examples:
1293
1294              jp foo will take you to the most visited parent  directory  con‐
1295              taining the string "foo".
1296
1297              jc bar test  will  take  you to the most visited child directory
1298              containing the strings "bar" and "test".
1299
1300              jo 13 will cd into the path corresponding to  the  order  number
1301              13. TAB completion is available to expand order numbers into the
1302              corresponding paths.
1303
1304              jl foo will print all entries in the database matching the  word
1305              "foo".
1306
1307              To  reset  or  modify the jump database as you wish, simply open
1308              the jump file using the je command, edit whatever  needs  to  be
1309              edited, save changes, and close the editor.
1310
1311              An  alternative way of navigating the jump database is using the
1312              jumper plugin (located in the plugins directory and bound by de‐
1313              fault  to  the "++" action name), which uses fzf to enable fuzzy
1314              searches. Just enter ++ to perform a fuzzy search over the  jump
1315              database.
1316
1317       kb, keybinds [edit [APP]] [reset] [readline]
1318              with  no  argument,  prints the current keyboard codes and their
1319              associated functions. To edit the keybindings file, use the edit
1320              option  (the file will be opened with APP, if specified, or with
1321              the default associated application otherwise).  If  you  somehow
1322              messed  up  your keybindings, use the 'reset' option to create a
1323              fresh keybindings file with the default values. To list readline
1324              keybindings,  use  the  readline option. Bear in mind that these
1325              keybindings are not provided by clifm, but by  readline  itself,
1326              and  as  such depend on the system settings (they can be custom‐
1327              ized however via the ~/.inputrc file).
1328
1329       lm [on, off]
1330              Toggle the light mode on/off. This option, aimed to  make  files
1331              listing  faster  than the default mode, is especially useful for
1332              really old hardware or when working on remote machines. For more
1333              details see the NOTE ON SPEED section below.
1334
1335       log [clear] [on, off, status]
1336              with  no  arguments,  it prints the contents of the log file. If
1337              clear is passed as argument, all the logs will be  deleted.  on,
1338              off, and status enable, disable, and check the status of the log
1339              function for the current session.
1340
1341       media
1342
1343              NOTE: This command is Linux-specific
1344
1345              List available storage devices and  mount/unmount  the  selected
1346              one  using  either udevil or udisks2 (at least one of these must
1347              be installed. udevil will be preferred over udisks2). If the de‐
1348              vice  is  unmounted,  it  will  be automatically mounted, and if
1349              mounted, it will be automatically unmounted.
1350
1351              Though mountpoints are determined by  the  mounting  application
1352              itself (udevil or udisks2), clifm will automatically cd into the
1353              corresponding mountpoint whenever the mount operation  was  suc‐
1354              cesfull.
1355
1356              When  unmounting,  and  if  the  current directory is inside the
1357              mountpoint, clifm will attempt to cd into the  previous  visited
1358              directory,  and,  if  none,  into the home directory, before un‐
1359              mounting the device.
1360
1361              To get information about a device, enter iELN, for example, i12,
1362              provided '12' is the ELN of the device you want.
1363
1364       mf [NUM, unset]
1365              List only up to NUM files (valid range: >= 0). Use unset to list
1366              all files  (default).  An  indicator  (listed_files/total_files)
1367              will  be  printed  below the list of files whenever some file is
1368              excluded from the current list (e.g. 20/310). Note however  that
1369              though  some  files are excluded, all of them are loaded anyway,
1370              so that you can still perform any valid operation on  them.  For
1371              example,  even if only 10 files are listed, you can still search
1372              for ALL symbolic links in the corresponding directory using  the
1373              appropriate command: /* -l.
1374
1375       mm, mime [info ELN/FILENAME] [edit] [import]
1376              This  is  Lira,  clifm's resource opener. The info option prints
1377              the MIME information about ELN/FILENAME: its MIME type, and,  if
1378              any,  the  application  associated  to  this file name or to the
1379              file's MIME type.
1380
1381              The edit option allows you to edit and customize the  MIME  list
1382              file. So, if a file has no default associated application, first
1383              get its MIME info or its file extension (running  mm info FILE),
1384              and then add a value for it to the MIME list file using the edit
1385              option (mm edit or F6). Check the RESOURCE OPENER section  below
1386              for information about the mimelist file syntax.
1387
1388              Finally, via the import option clifm will try to import MIME as‐
1389              sociations from the system looking for  mimeapps.list  files  in
1390              those  paths  specified  by  the  Freedesktop specification (see
1391              https://specifications.freedesktop.org/mime-apps-spec/mime-apps-
1392              spec-latest.html).  If at least one MIME association is success‐
1393              fuly imported, it will be stored as mimelist.clifm.XXXXXX (where
1394              XXXXXX  is  a  random six digits alphanumerical string). You can
1395              add these new associations to your mimelist file using the  mime
1396              edit command.
1397
1398       mp, mountpoints
1399              list available mountpoints and change the current working direc‐
1400              tory to the selected mountpoint.
1401
1402       msg, messages [clear]
1403              with no arguments, prints the list of messages  in  the  current
1404              session.  The  clear  option  tells  clifm to empty the messages
1405              list.
1406
1407       n, new [FILE]... [DIR/]...
1408              create new empty files and/or directories. If a file  name  ends
1409              with  a slash (/), it will be taken as a directory name and cre‐
1410              ated via the shell command mkdir -p. Else, it  will  be  created
1411              via touch(1). Ex: n myfile mydir/, to create a file named myfile
1412              and a directory named mydir. If no file name is  specified,  the
1413              user will be asked for one. If one or more of the specified file
1414              names already exist, ".new" will be appended to the file name.
1415
1416       net [NAME] [edit] [m, mount NAME] [u, unmount NAME]
1417              1. The configuration file
1418
1419              The net command manages connections to remote systems via a sim‐
1420              ple   samba-like  configuration  file  ($HOME/.config/clifm/pro‐
1421              files/PROFILE/nets.clifm). Here you can specify multiple remotes
1422              and  options  for each of these remotes. Syntax example for this
1423              file:
1424
1425               [remote_name]
1426               Comment=A nice descriptive comment
1427               Mountpoint=/path/to/mountpoint
1428               MountCmd=sudo mount.cifs //192.168.0.12/share %m -o OPTIONS
1429               UnmountCmd=sudo umount %m
1430               AutoUnmount=true (Auto-unmount this remote at exit)
1431               AutoMount=false (Auto-mount this remote at startup)
1432
1433              Note: %m could be used as a placeholder for Mountpoint. %m  will
1434              be replaced by the value of Mountpoint.
1435
1436              1.a. Mounting remote file systems
1437
1438              A Samba share:
1439                [samba_share]
1440                Comment=My samba share
1441                Mountpoint="~/.config/clifm/mounts/smb_share"
1442                MountCmd=sudo   mount.cifs  //192.168.0.26/samba_share  %m  -o
1443              mapchars,credentials=/etc/samba/credentials/samba_share
1444                UnmountCmd=sudo umount %m
1445                AutoUnmount=false
1446                AutoMount=false
1447
1448              A SSH file system (sshfs):
1449                [ssh_share]
1450                Comment=My ssh share
1451                Mountpoint="/media/ssh"
1452                MountCmd=sshfs user@192.168.0.26: %m -C -p 22
1453                UnmountCmd=fusermount3 -u %m
1454                AutoUnmount=true
1455                AutoMount=false
1456
1457              1.b. Mounting local file systems
1458
1459              Though originally intended to manage remote  file  systems,  net
1460              can also manage local file systems. Just provide the appropriate
1461              mount and unmount commands. Since the device  name  assigned  by
1462              the kernel might change accross reboots (specially when it comes
1463              to removable drives), it is recommended to mount using  the  de‐
1464              vice's  UUID  (Universal Unique Identifier) instead of the drive
1465              name. For example:
1466
1467                MountCmd=sudo mount -U c98d91g4-6781... %m
1468
1469              Here's an example of how to set up net to mount USB devices, one
1470              with a FAT file system, and another with an ISO9660 file system:
1471
1472                [Sandisk USB]
1473                Comment=Sandisk USB drive
1474                Mountpoint="/media/usb"
1475                MountCmd=sudo   mount   -o   gid=1000,fmask=113,dmask=002   -U
1476              5847-xxxx %m
1477                UnmountCmd=sudo umount %m
1478                AutoUnmount=false
1479                AutoMount=false
1480
1481                [Kingston USB]
1482                Comment=Kingston USB drive
1483                Mountpoint="/media/usb2"
1484                MountCmd=sudo mount -t iso9660 -U 2020-10-01-15-xx-yy-zz %m
1485                UnmountCmd=sudo umount %m
1486                AutoUnmount=false
1487                AutoMount=false
1488
1489              NOTE: The gid, fmask, and dmask options are used  to  allow  the
1490              user to access the mountpoint without elevated privileges.
1491
1492              If the device data is unknown, as it often happens when it comes
1493              to removable devices, you should use the media command instead.
1494
1495              2. Command syntax
1496
1497              Without arguments, net lists the configuration for  each  remote
1498              available in the configuration file.
1499
1500              Use  the  edit option to edit the remotes configuration file. If
1501              no further argument is specified, the file will be  opened  with
1502              the  current  resource opener. However, you can pass an applica‐
1503              tion as second parameter to open to configuration file. Example:
1504              'net edit nano'.
1505
1506              If not already mounted, the m, mount option mounts the specified
1507              remote using the mount command and the  mounpoint  specified  in
1508              the confifuration file and automatically cd into the correspond‐
1509              ing mountpoint. Example: net m smb_work. m, mount could be omit‐
1510              ted, so that net smb_work amounts to net m smb_work. TAB comple‐
1511              tion is available for this function.
1512
1513              The u, unmount option unmounts the specified  remote  using  the
1514              unmount  command  specified in the configuration file. For exam‐
1515              ple: net u smb_work. TAB completion is also available  for  this
1516              function.
1517
1518              NOTE:  If  you only need to copy some files to a remote location
1519              (including mobile phones) without the  need  to  mount  the  re‐
1520              source, you can make use of the cprm.sh plugin, bound by default
1521              to the cr action. Just set up your remotes (cr  edit)  and  then
1522              simply send the file you want (cr FILE). That's all.
1523
1524       o, open ELN/FILE [APPLICATION]
1525              open  FILE,  which  can  be either a directory, in which case it
1526              works just like the cd command (see above), a regular file, or a
1527              symbolic  link  to either of the two. For example: o 12, o file‐
1528              name, o /path/to/filename.
1529
1530              By default, the open function will open files with  the  default
1531              application  associated  to them via Lira, the built-in resource
1532              opener (see the mime command above). However,  if  you  want  to
1533              open  a file with a different application, just add the applica‐
1534              tion name as second argument, e.g. o 12 leafpad or o12 leafpad.
1535
1536              If you want to run the program in the background, simply add the
1537              ampersand  character, as usual: o 12 &, o 12&, o12& or (if auto-
1538              open is enabled) just 12&.
1539
1540              If the file to be opened is an archive/compressed file, the  ar‐
1541              chive  function  (see the ad command above) will be executed in‐
1542              stead.
1543
1544       ow ELN/FILE [APPLICATION]
1545              Print a list of available applications associated to  _ELN/FILE‐
1546              NAME  (either via its MIME type or its file extension), allowing
1547              the user to choose one of these applications, and then open  the
1548              file  with  the  selected  application. In simple words, this is
1549              what in most GUI file managers is called Open with... This  com‐
1550              mand  supports  TAB  completion:  just type "ow filename ", then
1551              press TAB, and those applications able to open FILENAME will  be
1552              listed.
1553
1554       opener [default] [APPLICATION]
1555              with  no argument, prints the currently used resource opener (by
1556              default, Lira, clifm's built-in opener). Otherwise, set APPLICA‐
1557              TION as opener or, if default is passed instead, use Lira.
1558
1559       p, pr, prop ELN/FILE...
1560              print  file properties for ELN/FILE. The output of this function
1561              is much like the combined output of ls -l and stat. By  default,
1562              directories size is not shown. Use pp instead of just p to print
1563              directories size as well (it could take longer depending on  the
1564              directory's content).
1565
1566              If  you  need to list the properties of all files in the current
1567              directory, try the long view mode (Alt-l). Fields  displayed  in
1568              this  mode  can be customized using the PropFields option in the
1569              configuration file.
1570
1571              For more information about file details consult the file-details
1572              help topic: help file-details.
1573
1574       path, cwd
1575              print the current working directory.
1576
1577       pf, prof, profile [ls, list] [set, add, del PROFILE]
1578              with  no  arguments,  prints the name of the currently used pro‐
1579              file. Use the ls or list option to list available  profiles.  To
1580              switch,  add  or delete a profile, use the set, add, and del op‐
1581              tions respectively followed by the corresponding  profile  name.
1582              Bear  in  mind that, when switching profiles, command line argu‐
1583              ments will be ignored.
1584
1585       pg, pager [on, off, status]
1586              toggle Mas, the built-in pager, on/off. Useful to list  directo‐
1587              ries  with  hundreds or thousands of files, the pager will start
1588              working, if set to on, whenever the screen is not enough to list
1589              all files.
1590
1591              Once  in  the pager, press the Down arrow key, Space or Enter to
1592              move downwards one line, or PageDown to move downwards an entire
1593              page. To go upwards, use the shortcuts provided by your terminal
1594              emulator, for example, Alt-PageUp or Alt-Up. Press 'c', 'p',  or
1595              'q' keys to stop the pager, and 'h' or '?' for help.
1596
1597       pin [FILE/DIR]
1598              pin a file or a directory to be accessed later via the comma (,)
1599              keyword. For example, run pin mydir and  then  access  mydir  as
1600              follows:  cd   where  the comma is automatically expanded to the
1601              pinned file, in this case mydir. The comma keyword could be used
1602              with any command, either internal or external, e.g, ls .
1603
1604              With  no  arguments,  the  pin command prints the current pinned
1605              file, if any. If an argument is given, it will  be  taken  as  a
1606              file  name  to  be pinned. Running this command again, frees the
1607              previous pinned file and sets a new one. In  other  words,  only
1608              one pin is supported at a time.
1609
1610              An  easy  alternative to create as many pins or shortcuts as you
1611              want, and how you want, is to use the alias function.  Bookmarks
1612              could also be used to achieve a very similar result.
1613
1614              At  program  exit,  the  pinned file is written to a file in the
1615              configuration directory (as .pin) to be loaded in the next  ses‐
1616              sion.
1617
1618       prompt [NAME, list, edit, reload]
1619              Temporarily  change the current prompt to the prompt named NAME.
1620              Available prompts (which can be listed via prompt list  or  just
1621              prompt  <TAB>)  are  defined  in  the  prompts file ($HOME/.con‐
1622              fig/clifm/prompts.clifm). To permanently set a prompt, edit your
1623              color  scheme  file  (via the cs edit command) and set Prompt to
1624              either a prompt code and  a  prompt  name  (as  defined  in  the
1625              prompts file).
1626
1627       q, quit, exit, Q
1628              Gracefully  quit  clifm. Use Q to gracefully quit and enable the
1629              CD on  quit  functionality  (write  last  visited  directory  to
1630              $XDG_CONFIG/clifm/.last  to  be  later read by a shell function.
1631              See the SHELL FUNCTIONS section below).
1632
1633       rf, refresh
1634              refresh the screen, that is, reprint files in the current direc‐
1635              tory  and update the prompt. If the current directory is not ac‐
1636              cessible for any reason, rf will go up until it finds an  acces‐
1637              sible one and then will change to that directory.
1638
1639       rl, reload
1640              Reload  all  settings, except those passed as command line argu‐
1641              ments, from the configuration file.
1642
1643       rr [DIR] [EDITOR]
1644              Remove files and/or directories in bulk using a text editor.
1645
1646              rr sends all files in DIR (or in the current directory if DIR is
1647              omitted)  to  a temporary file and opens it using EDITOR (or the
1648              default associated application for text/plain MIME type, if EDI‐
1649              TOR is omitted).
1650
1651              Once  in the editor, remove the lines corresponding to the files
1652              you want to delete. Save changes and close the  editor.  Removed
1653              files will be listed and the user asked for confirmation.
1654
1655       s, sel ELN/FILE... [[!]PATTERN] [-filetype] [:PATH]
1656              send  one  or multiple elements (either files or directories) to
1657              the Selection Box. sel accepts individual elements, range of el‐
1658              ements,  say 1-6, file names and paths, just as wildcards (glob‐
1659              bing)       and       regular       expressions.        Example:
1660              s 1 4-10 r file* file name  /path/to/filename.  To  deselect se‐
1661              lected files, use the ds command (see above), or  the  M-d  key‐
1662              board shortcut.
1663
1664              If  not  in light mode, once a file is selected, and if the file
1665              is in the current working directory, the corresponding file name
1666              will  be marked with an asterisk (colored according to the value
1667              of li in the color scheme file (by default bold green)), at  the
1668              left of the file name (and at the right of its ELN).
1669
1670              Just  as  in the search function, it is also possible to further
1671              filter the list of matches indicating the desired file type. For
1672              instance, s  -d will select all directories in the current work‐
1673              ing directory. For available file type filters  see  the  search
1674              function above.
1675
1676              By default, the selection function operates on the current work‐
1677              ing directory. To select files in any other  directory  use  the
1678              ":PATH"  expression.  For  example,  to select all regular files
1679              with a .conf extension in the /etc directory, the command  would
1680              be: s .*\.conf$ -r :/etc, or using wildcards: s *.conf -r :/etc.
1681
1682              Just  as in the case of the search function, inverse matching is
1683              supported for patterns, either wildcards or regular expressions.
1684              To  invert  or reverse the meaning and action of a pattern, just
1685              prepend an exclamation mark (!). E.g., to select all  non-hidden
1686              regular  files  in  the Documents directory, issue this command:
1687              s !^. -r :Documents, or, to select all directories in /etc,  ex‐
1688              cept those ending with ".d": s !*.d -d :/etc.
1689
1690              Glob  and  regular expressions could be used together. For exam‐
1691              ple: s ^[r|R].*d$ /etc/*.conf will  select  all  files  starting
1692              with  either 'r' or 'R' and ending with 'd' in the current work‐
1693              ing directory, plus all .conf files in the /etc directory.  How‐
1694              ever, this use is discouraged if both patterns refer to the same
1695              directory, since the second one will probably override  the  re‐
1696              sult of the first one.
1697
1698              It  is important to note that glob expressions are evaluated be‐
1699              fore regular expressions, in such a way that  any  pattern  that
1700              could be understood by both kinds of pattern matching mechanisms
1701              will be evaluated first according to the former, that is,  as  a
1702              glob  expression.  For  example,  '.*',  as  regular expression,
1703              should match all files.  However,  since  glob  expressions  are
1704              evaluated  first, it will only match hidden files. To select all
1705              files using a glob expression, try '.* *', or,  with  a  regular
1706              expression:  '^'  or  '(.*?)'. The keyboard shortcut M-a is also
1707              available to perform the same operation.
1708
1709              The Selection Box is accessible to different  instances  of  the
1710              program,  provided  they  use  the same profile (see the profile
1711              command below). By default, indeed, each profile keeps a private
1712              Selection  Box, being thus not accessible to other profiles. You
1713              can nonetheless modify this behavior via the ShareSelbox  option
1714              in  the configuration file. If the ShareSelbox option is enabled
1715              (see the configuration  file),  selected  files  are  stored  in
1716              /tmp/clifm/username/.selbox.clifm.  Otherwise,  /tmp/clifm/user‐
1717              name/.selbox_profilename.clifm is used (this is the default).
1718
1719              To operate on selected files, use the sel keyword.
1720
1721              Note:  If there is a file named sel in  the  current  directory,
1722              use  ./sel  to distinguish it from the sel keyword. For example,
1723              enter p ./sel to tell CliFM that you want to get the  properties
1724              of  the  file  named  sel rather than the properties of the cur‐
1725              rently selected files.
1726
1727              For more information consult the BUILT-IN EXPANSIONS section be‐
1728              low.
1729
1730
1731       sb, selbox
1732              show the elements currently contained in the Selection Box.
1733
1734       splash show the splash screen.
1735
1736       st, sort [METHOD] [rev]
1737              with  no  argument,  print the current sorting method. Else, set
1738              sorting method to METHOD, where METHOD could  be  one  of:  0  =
1739              none,  1 = name, 2 = size, 3 = atime, 4 = btime (ctime, if btime
1740              is not available), 5 = ctime, 6 = mtime, 7 = version  (name,  if
1741              ctime  is  not  available),  8  = extension, and 9 = inode, 10 =
1742              owner, and 11 = group. Both numbers and names are allowed.  Bear
1743              in  mind  that methods 10 and 11 sort by owner and group ID num‐
1744              ber, not by owner and group names.
1745
1746              By default, files are sorted from less to more (ex: from 'a'  to
1747              'z'  if  using  the "name" method). Use the rev option to invert
1748              this order. Ex: st rev or st 3 rev. Switch back to the  previous
1749              ordering running st rev again.
1750
1751       stats  print  statistics  about  files  in  the  current directory (not
1752              available in light mode).
1753
1754       t, tr, trash [ELN/FILE]... [ls, list] [clear, empty] [del [FILE]...]]
1755              with no argument (or by passing the ls option),  it  prints  the
1756              list  of  currently  trashed files. The clear or empty parameter
1757              removes all files from the trash can, while  the  del  parameter
1758              lists  trashed  files allowing the user to remove one or more of
1759              them. If using del,  TAB  completion  to  list/select  currently
1760              trashed files is available.
1761
1762              The  trash  directory  is  $XDG_DATA_HOME/Trash,  usually ~/.lo‐
1763              cal/share/Trash. Since this trash system follows the Freedesktop
1764              specification,  it  is able to handle files trashed by different
1765              Trash implementations.
1766
1767              To undelete/untrash trashed files see the undel command below.
1768
1769       tag  [ls,  list]  [new]  [rm,  remove]  [mv,  rename]  [untag]  [merge]
1770       [FILE]... [[:]TAG]
1771              tag is the main Etiqueta command, clifm's built-in files tagging
1772              system. See the FILE TAGS section for a complete description  of
1773              this command.
1774
1775       te FILE...
1776              toggle  executable  bit (on user, group, and others) on FILE(s).
1777              It is equivalent to the -x and +x options for the chmod(1)  com‐
1778              mand.
1779
1780       tips   print the list of clifm tips
1781
1782       u, undel, untrash [*, a, all] [FILE]...
1783              If  file  names  are passed as parameters, undelete these files,
1784              that is, restore them to  their  original  location.  Otherwise,
1785              this  function prints a list of currently trashed files allowing
1786              you to choose one or more of these files to  be  undeleted.  Use
1787              the  *,  a  or  all  parameters to undelete all trashed files at
1788              once. TAB completion to list/select currently trashed  files  is
1789              available.
1790
1791       uc, unicode [on, off, status]
1792              toggle unicode on/off.
1793
1794       unpin  this  command  takes  no argument. It just frees the current pin
1795              and, if it exists, deletes the .pin file generated  by  the  pin
1796              command..TP  v,  vv,  paste  sel [DESTINY] the 'paste sel' or 'v
1797              sel' command copies the currently selected files, if  any,  into
1798              the  current working directory. To copy these files into another
1799              directory, tell 'paste' where to copy these  files.  Ex:  'paste
1800              sel  /path/to/directory'.  The copy command (c) could be used in
1801              the same way: 'c sel' indeed copies selected files into the cur‐
1802              rent directory. Use the 'vv' command instead of just 'v' to copy
1803              selected files into DESTINY and rename them  at  once:  'vv  sel
1804              DIR'.
1805
1806       ver, version
1807              show clifm version details.
1808
1809       ws [NUM/NAME, +, -]
1810              clifm  offers up to eight workspaces, each with its own indepen‐
1811              dent path.
1812
1813              With no argument, the ws command prints the list  of  workspaces
1814              and its corresponding paths, highlighting the current workspace.
1815              Use NUM to switch to  workspace  NUM,  NAME  to  switch  to  the
1816              workspace  named  NAME,  the plus sign (+) to switch to the next
1817              workspace, and the minus sign (-)  to  switch  to  the  previous
1818              workspace.  Four  keyboard  shortcuts  are  available  to easily
1819              switch to any of the first four workspaces: Alt-[1-4].
1820
1821              Every time an empty workspace is created, it starts in the  path
1822              to  the  workspace from which it was invoked (in other words, in
1823              the current working directory).
1824
1825              Though by default workspaces are  unnamed,  you  can  name  them
1826              wathever you like using the WorkspaceNames option in the config‐
1827              uration file.
1828
1829       x, X [DIR]
1830              open DIR, or the current working directory if DIR is not  speci‐
1831              fied,  in  a new instance of clifm (as root if X, as the current
1832              unprivileged user if x) using the value of TerminalCmd (from the
1833              configuration  file)  as terminal emulator. If this value is not
1834              set, xterm will be used  as  fallback  terminal  emulator.  This
1835              function is only available for graphical environments.
1836
1837

6. FILE FILTERS

1839       clifm offers four kinds of file filters:
1840
1841        a)  A  dot  filter  to permanently exclude hidden files from the files
1842       list. See the -A and -a options above.
1843
1844        b) Files filter via regular expressions (using the  Filter  option  in
1845       the  configuration  file  or  the CLIFM_FILTER environment variable) to
1846       permanently exclude certain groups of file names, for  example,  backup
1847       files or files ending with a tilde (~).
1848
1849        c) Local filter via the Quick search function (supporting both regular
1850       expressions, wildcards, and invert matching) to temporarily filter  the
1851       current list of files.
1852
1853       d) Filtering files via the TAB key:
1854
1855       You  can  filter  files using wildcards (always preceded by a command).
1856       For example: p *.pdf<TAB> to get a list of PDF files in the current di‐
1857       rectory.
1858
1859       Files  can be filtered as well using the '=' keyword followed by a file
1860       type filter character. For example, =l<TAB> to get a list  of  symbolic
1861       links in the current directory. The list of available file type charac‐
1862       ters is as follows:
1863
1864        b: Block devices
1865        c: Character devices
1866        C: Files with capabilities
1867        d: Directories
1868        f: Regular files
1869        g: SGID files
1870        h: Multi-hardlink files (directories excluded)
1871        l: Symbolic links
1872        o: Other-writable files
1873        p: FIFO/pipes
1874        s: Sockets
1875        t: Files with the sticky bit set
1876        u: SUID files
1877        x: Executable files
1878
1879       If using FZF for TAB completion, multi-selection is allowed.
1880
1881

7. KEYBOARD SHORTCUTS

1883       Right, C-f: Accept the entire current suggestion
1884
1885       Alt-Right, Alt-f: Accept only the first word of the current  suggestion
1886       (up to first slash or space)
1887
1888       Alt-c: Clear the current command line buffer
1889
1890       Alt-q: Delete last word (up to last slash or space)
1891
1892       Alt-i, Alt-.: Toggle hidden files on/off
1893
1894       Alt-l: Toggle long view mode on/off
1895
1896       Alt-g: Toggle list-directories-first on/off
1897
1898       Alt-,: Toggle list only directories on/off
1899
1900       C-Alt-l: Toggle max file name length on/off
1901
1902       C-Alt-i:, Alt-TAB: Toggle disk usage analyzer on/off
1903
1904       Alt-w: Toggle full path file names in virtual directories
1905
1906       C-l:  Refresh the screen (reprint files in current directory and update
1907       prompt)
1908
1909       Alt-t: Clear program messages
1910
1911       Alt-m: List mountpoints
1912
1913       Alt-b: Launch the Bookmarks Manager
1914
1915       Alt-h: Show directory history
1916
1917       Alt-n: Create new file or directory
1918
1919       Alt-s: Open the Selection Box
1920
1921       Alt-a: Select all files in the current working directory
1922
1923       Alt-d: Deselect all selected files
1924
1925       Alt-p: Change to pinned directory
1926
1927       Alt-1: Switch to workspace 1
1928
1929       Alt-2: Switch to workspace 2
1930
1931       Alt-3: Switch to workspace 3
1932
1933       Alt-4: Switch to workspace 4
1934
1935       Alt-r: Change to root directory
1936
1937       Alt-e, Home: Change to home directory
1938
1939       Alt-u, S-Up: Change to parent directory
1940
1941       Alt-j, S-Left: Change to previous visited directory
1942
1943       Alt-k, S-Right: Change to next visited directory
1944
1945       C-Alt-j: Change to first visited directory
1946
1947       C-Alt-k: Change to last visited directory
1948
1949       C-Alt-o: Switch to previous profile
1950
1951       C-Alt-p: Switch to next profile
1952
1953       C-Alt-a: Archive selected files
1954
1955       C-Alt-e: Export selected files
1956
1957       C-Alt-r: Rename selected files
1958
1959       C-Alt-d: Remove selected files
1960
1961       C-Alt-t: Trash selected files
1962
1963       C-Alt-u: Restore trashed files
1964
1965       C-Alt-b: Bookmark last selected file/directory
1966
1967       C-Alt-g: Open/change-to last selected file/directory
1968
1969       C-Alt-n: Move selected files into the current directory
1970
1971       C-Alt-v: Copy selected files into the current directory
1972
1973       Alt-y: Toggle light mode on/off
1974
1975       Alt-z: Switch to previous sorting method
1976
1977       Alt-x: Switch to next sorting method
1978
1979       C-x: Launch new instance of the program
1980
1981       F1: Go to the manpage
1982
1983       F2: List commands
1984
1985       F3: List keybindings
1986
1987       F6: Open the MIME list file
1988
1989       F7: Open the jump database file
1990
1991       F8: Open the current color scheme file
1992
1993       F9: Open the keybindings file
1994
1995       F10: Open the configuration file
1996
1997       F11: Open the bookmarks file
1998
1999       F12: Quit
2000
2001       NOTE: C stands for Control and S for Shift.
2002
2003       NOTE 2: Some of these keybindings might not work on your console/termi‐
2004       nal  emulator,  depending  on your system. Some useful tips on this re‐
2005       gard:
2006
2007       Haiku terminal: Most of these keybindings won't work on the Haiku  ter‐
2008       minal,  since  Alt plays here the role Ctrl usually plays in most other
2009       systems (see the Haiku documentation). To fix this just set your custom
2010       keybindings.
2011
2012       Kernel  built-in  console: Key sequences involving the Shift key (S-up,
2013       S-left, and S-right in our case) will just not work. Use  the  alterna‐
2014       tive key sequences instead: M-u, M-j, and M-k respectively
2015
2016       NetBSD  (wsvt25) and OpenBSD (vt220) kernel consoles: Key sequences in‐
2017       volving the Alt key won't work out of the box. Here's how  to  make  it
2018       work:
2019
2020               On OpenBSD:
2021               1)  Copy  /etc/examples/wsconsctl.conf  to /etc (if it does not
2022              already exist)
2023               2) Add the metaesc flag to your current keyboard enconding. For
2024              example keyboard.encoding=us.metaesc
2025               You  might  need  to reboot the machine for changes to take ef‐
2026              fect.
2027
2028               On NetBSD:
2029               Add the metaesc flag  to  your  current  encoding  in  /etc/ws‐
2030              cons.conf. Example: encoding us.metaesc
2031               You  might  need  to reboot the machine for changes to take ef‐
2032              fect.
2033
2034       Konsole: If Shift+left and Shift+right are not  already  bound  to  any
2035       function,  you  need to bind them manually. Go to Settings -> Edit cur‐
2036       rent profile -> Keyboard -> Default (Xfree4), and add these values:
2037               Left+Shift    \E[1;2D
2038               Right+Shift   \E[1;2C
2039
2040              If they are already bound, by contrast, you only need to unbound
2041              them. Go to "Settings -> Configure keyboard shortcuts", click on
2042              the corresponding keybinding, and set it to "Custom (none)").
2043
2044       Terminology/Yakuake: Shift+left and Shift+right are  already  bound  to
2045       other  functions,  so  that  you only need to unbind them or rebind the
2046       corresponding functions to different key sequences.
2047
2048       Of course, the above two procedures should be similar in case  of  key‐
2049       binding issues in other terminal emulators.
2050
2051       In  case some of these keybindings are already used by your Window Man‐
2052       ager, you only need to unbind the key or rebind the corresponding func‐
2053       tion  to another key. Since each Window Manager uses its own mechanisms
2054       to set/unset keybindings, you should consult the appropriate manual.
2055
2056       Customizing keybindings
2057
2058       The above are the default keyboard  shortcuts.  However,  they  can  be
2059       freely  modified  using  the 'kb edit' command (or pressing F9) or just
2060       editing the keybindings file (see the FILES section below) to your lik‐
2061       ing.
2062
2063       Since  clifm does not depend on the curses library, keybindings are set
2064       up via ANSI escape codes, for example, "\[17~" for the F6 key. The  two
2065       main difficulties with ANSI escape codes are: 1) They are not intuitive
2066       at all, and 2) They vary depending on the terminal emulator used.  This
2067       is  why  we provide a plugin (kbgen) to more easily configure your key‐
2068       bindings.
2069
2070       The plugin can be found in the plugins directory as a  C  source  file.
2071       The  first step, therefore, is to compile this source file to produce a
2072       binary file. Compile as follows:
2073
2074        gcc -o kbgen kbgen.c
2075
2076       Note: Depending on your system, you might  need  to  link  against  the
2077       curses library adding either -lcurses or -lncurses to the above line.
2078
2079       Now, just run the plugin entering './kbgen'. Use either octal, hexadec‐
2080       imal codes or symbols. Example: For F12 'kbgen' will print the  follow‐
2081       ing lines:
2082
2083               Hex  | Oct  | Symbol
2084               ---- | ---- | ------
2085               \x1b | \033 | ESC (\e)
2086               \x5b | \133 | [
2087               \x32 | \062 | 2
2088               \x34 | \064 | 4
2089               \x7e | \176 | ~
2090
2091       In  this  case, supposing you want to use F12 to open the configuration
2092       file, the keybinding would be any of the following:
2093
2094               open-config:\x1b\x5b\x32\x34\x7e (Hex)
2095               open-config:\033\133\062\064\176 (Oct)
2096               open-config:\e[24~ (Symbol)
2097
2098       GNU emacs escape sequences are also allowed (ex: "\M-a", Alt-a in  most
2099       keyboards,  or "\C-r" for Ctrl-r). Some codes, especially those involv‐
2100       ing keys like Ctrl or the arrow keys, vary depending  on  the  terminal
2101       emulator  and  the  system settings. These keybindings should be set up
2102       thus on a per terminal basis. You can also consult the  terminfo  data‐
2103       base via the infocmp command. See terminfo(5) and infocmp(1).
2104
2105       Readline keybindings
2106
2107       System  readline  keybindings for command line editing, such as Ctrl-a,
2108       to move the cursor to the beginning of the line, or Ctrl-e, to move  it
2109       to the end, should work out of the box. Of course, you can modify read‐
2110       line keybindings using the $HOME/.inputrc file, either globally or  for
2111       some  specific terminal or application. In this latter case, it is pos‐
2112       sible to set keybindings specifically for clifm using  the  application
2113       construct, that is, telling readline that the following keybindings ap‐
2114       ply only to clifm. For example, to bind the function  "kill-whole-line"
2115       to Ctrl-b, add the following lines to your .inputrc file:
2116
2117               $if clifm
2118               "\C-b": kill-whole-line
2119               $endif
2120
2121       Keybindings for plugins
2122
2123       clifm  provides  four  customizable keybindings for custom plugins. The
2124       procedure for setting a keybinding for a plugin is the following:
2125               1) Copy your plugin to the plugins directory (or use any of the
2126              plugins already in there)
2127               2)  Link pluginx (where 'x' is the plugin number [1-4]) to your
2128              plugin using the 'actions  edit'  command.  Ex:  "plugin1=myplu‐
2129              gin.sh"
2130               3)  Set  a  keybinding for pluginx using the 'kb edit' command.
2131              Ex: "plugin1:\M-7"
2132
2133

8. THEMING

2135       All customization settings (theming) are made from a single  configura‐
2136       tion   file   (the   color   scheme  file),  installed  by  default  in
2137       XDG_DATA_DIRS/clifm/colors (usuallly  /usr/local/share/clifm/colors  or
2138       /usr/share/clifm/colors),  though  color scheme files found in XDG_CON‐
2139       FIG_HOME/clifm/colors (usually HOME/.config/clifm/colors)  take  prece‐
2140       dence.
2141
2142       Note: Color scheme files are copied automatically into the local colors
2143       directory when running the cs edit command.
2144
2145       Each color scheme file includes:
2146
2147        FiletypeColors = Colors for different file types, such  as  directory,
2148       regular files, and so on. See the COLORS section below.
2149
2150        InterfaceColors  =  Colors  for clifm's interface, such as ELN's, file
2151       properties bits, suggestions, syntax highlighting, etc. See the  COLORS
2152       section below.
2153
2154        ExtColors  =  Colors for files based of file name's extension. See the
2155       COLORS section below.
2156
2157        DirIconColor = Color for the directory icon (when icons are  enabled).
2158       See the COLORS section below. Only when using icons-in-terminal or Ner‐
2159       fonts. If using rather emoji-icons (default build), this option is  ig‐
2160       nored.
2161
2162        Prompt = Define CliFM's prompt. See the THE PROMPT section below.
2163
2164        DividingLine  =  The  line  dividing the current list of files and the
2165       prompt. See the THE DIVIDING LINE below.
2166
2167        FzfTabOptions = Options to be passed to fzf when using  the  fzf  mode
2168       for  TAB completion, including colors. See the BUILT-IN EXPANSIONS sec‐
2169       tion below.
2170
2171       The color scheme (or just theme) can be set either via the command line
2172       (--color-scheme=NAME),  via the ColorScheme option in the main configu‐
2173       ration file, or using the cs command, for instance, cs  mytheme.  Enter
2174       just  cs to list available color schemes (TAB completion is available).
2175       To edit the current color scheme enter cs edit.
2176
2177       1. COLORS
2178
2179       All color codes are specified in the corresponding  color  scheme  file
2180       (by  default  ~/.config/clifm/colors/default.clifm).  You can edit this
2181       file pressing F8 or entering cs edit.
2182
2183       Color codes
2184
2185       Colors are specified using the same format used by dircolors(1) and the
2186       LS_COLORS environment variable, namely, a colon separated list of codes
2187       with this general format: filetype=color. This is the list of file type
2188       codes  (you'll  find  them in the FiletypeColors section of the current
2189       color scheme file):
2190
2191               di = directory
2192               ed = empty directory
2193               nd = directory with no read permission
2194               ne = empty directory with no read permission
2195               fi = regular file
2196               ef = empty regular file
2197               nf = file with no access permission
2198               ln = symlink
2199               mh = multi-hardlink file
2200               or = orphaned or broken symlink
2201               bd = block device
2202               cd = character device
2203               pi = FIFO, pipe
2204               so = socket
2205               su = SUID file
2206               sg = SGID file
2207               tw = sticky and other writable directory
2208               st = sticky and not other writable directory
2209               ow = other writable directory
2210               ex = executable file
2211               ee = empty executable file
2212               ca = file with capabilities
2213               no = unknown file type
2214               uf = unaccessible files (fstatat(3) error)
2215
2216
2217       The following codes are used for different interface elements  (in  the
2218       InterfaceColors section of the current color scheme file):
2219
2220               Suggestions
2221               sb = shell built-ins
2222               sc = aliases and shell command names
2223               sf = ELN's plus bookmarks, file, tag, and directory names
2224               sh = commands history entries
2225               sx = suggestions for clifm's internal commands and parameters
2226               sp  =  suggestions pointer (ex: 56 > filename, where '>' is the
2227              suggestion pointer)
2228
2229               Syntax highlighting
2230               hb = brackets '()[]{}'
2231               hc = comments (lines starting with '#')
2232               hd = slashes
2233               he = expansion chars '~*'
2234               hn = numbers
2235               hp = option parameters (starting with '-')
2236               hq = quoted strings (both single and double quotes)
2237               hr = process redirection (>)
2238               hs = process separators (; & |)
2239               hv = variable names (starting with '$')
2240
2241               Prompt elements
2242               li = selected files
2243               ti = trash indicator
2244               em = error message indicator
2245               wm = warning message indicator
2246               nm = notice message indicator
2247               si = stealth mode indicator
2248               tx = command line text (regular prompt)
2249               wp = command line text (warning prompt)
2250
2251               File properties
2252               dn = Dash (unset property)
2253               dr = Read permission bit
2254               dw = Write permission bit
2255               dxd = Executable permission bit (directories)
2256               dxr = Executable permission bit (regular files)
2257               dp = SUID, SGID, sticky bit
2258               dg = File ID (UID, GID) whenever the current user owns the file
2259              or is in the file's group
2260               dd = Last modification time
2261               dz = Directories size
2262               do = Octal value for file properties
2263
2264               Miscellaneous interface elements
2265               bm  = bookmarked directory in the bookmarks screen
2266               fc  = files counter
2267               df  = default color
2268               dl  = dividing line
2269               el  = ELN color
2270               mi   =  misc  indicators (disk usage, sort method, bulk rename,
2271              jump database list)
2272               ts  = matching suffix for possible TAB completed entries
2273               tt  = tilde for trimmed file names
2274               wc  = welcome message
2275               wsN = color for workspace N (1-8)
2276               xs  = exit code: success
2277               xf  = exit code: failure
2278
2279       Color codes are just traditional ANSI color codes less the escape char‐
2280       acter  and the final 'm'. Thus, for instance, if you want non-empty di‐
2281       rectories to be bold blue, add this to the FiletypeColors line  in  the
2282       corresponding color scheme file: di=01;34. If you want ELN's to be red,
2283       add this code to the InterfaceColors line: el=00;31
2284
2285       Color codes can be used for file  extensions  as  well  (regular  files
2286       only)  using  this  format: *.ext=color. For example, to print C source
2287       files in bold green, add this to the ExtColors line in the  correspond‐
2288       ing color scheme file: *.c=01;32
2289
2290       Note:  Non-accessible  (non-readable  by  the current user), executable
2291       (including SUID and SGID)  files,  and  files  with  capabilities  take
2292       precedence over file extensions. For example, the file file.mp3, if ex‐
2293       ecutable, will be printed using the color code associated to executable
2294       files (ex) even if there is a color code associated to .mp3 files.
2295
2296       Six  digits  hexadecimal  color  codes are supported as well using this
2297       general format: #RRGGBB[-[1-9]], where 1-9 is a display attribute.  For
2298       example, if you want directories to be bold Spring Green: di=#00ff7f-1.
2299
2300       Color variables
2301
2302       Up  to  64 custom color variables can be used via the define keyword to
2303       make it easier to build and read theme files. Example:
2304
2305               define RED=00;31
2306               define MY_SPECIAL_COLOR=04;38;2;255;255;0;48;2;0;14;191
2307
2308               FiletpeColors="di=RED:"
2309               InterfaceColors="el=MY_SPECIAL_COLOR:"
2310
2311       These variables can only be used for  FiletypeColors,  InterfaceColors,
2312       ExtColors,  and  DirIconColor. The Prompt line (if using a prompt code)
2313       use full ANSI escape sequences instead.
2314
2315       Though by default clifm uses only 8 colors (16 with the high  intensity
2316       variant), you can use 256 and RGB colors as well. Example:
2317
2318               fi=04;38;2;245;76;00;48;2;00;00;255
2319
2320       will  print  regular files underlined and using a bold orange RGB color
2321       on a blue background. In this case, just make sure to  use  a  terminal
2322       emulator  supporting  RGB colors. To test your terminal color capabili‐
2323       ties use the colors.sh script (in the plugins directory).
2324
2325       NOTE: It might happen that, for some reason, you need to force clifm to
2326       use colors despite the value of the TERM variable. The OpenBSD console,
2327       for example, sets TERM to vt220 by default,  which,  according  to  the
2328       terminfo database, does not support color. However, the OpenBSD console
2329       does  actually  support  color.  In  this  case,  you   can   set   the
2330       CLIFM_FORCE_COLOR  to  either true or  1 to use color even if the value
2331       of TERM says otherwise.
2332
2333       To see a colored list of the currently used file color codes run cc  or
2334       colors in clifm.
2335
2336       To  run  colorless use the --no-color command line option or set either
2337       CLIFM_NO_COLOR or NO_COLOR environment variables to any value. For more
2338       information about the no-color initiative see https://no-color.org/
2339
2340       For  a full no-color experience recall to edit your prompt removing all
2341       color codes.
2342
2343       2. THE PROMPT
2344
2345       clifm's prompt (regular and warning ones) is taken from the Prompt line
2346       in  the color scheme file using a prompt name as defined in the prompts
2347       file, for example, Prompt="security-scanner".
2348
2349       Prompts can be customized via the prompt edit command.
2350
2351       Each prompt is built following almost the same escape codes  and  rules
2352       used by the Bash prompt, except that it does not accept shell functions
2353       (like conditionals  and  loops).  Command  substitution  (in  the  form
2354       $(cmd)),  string  literals,  and  escape codes can be used to build the
2355       prompt line and its colors. This is a list of supported escape codes:
2356
2357       \e: Escape character
2358
2359       \s: The name of the shell (everything after the last  slash)  currently
2360       used by clifm
2361
2362       \S:  Current workspace number (or name, if named), colored according to
2363       wsN code in the InterfaceColors section in the color scheme file
2364
2365       \l: Print an 'L' if in light mode
2366
2367       \P: The current profile name
2368
2369       \u: The username
2370
2371       \H: The full hostname
2372
2373       \h: The hostname, up to the first ‘.’
2374
2375       \n: A newline character
2376
2377       \r: A carriage return
2378
2379       \a: A bell character
2380
2381       \d: The date, in abbreviated form (ex: “Tue May 26”)
2382
2383       \t: The time, in 24-hour HH:MM:SS format
2384
2385       \T: The time, in 12-hour HH:MM:SS format
2386
2387       \@: The time, in 12-hour am/pm format
2388
2389       \A: The time, in 24-hour HH:MM format
2390
2391       \w: The full current working directory, with $HOME abbreviated  with  a
2392       tilde
2393
2394       \W: The basename of $PWD, with $HOME abbreviated with a tilde
2395
2396       \p:  A  mix of the two above, it abbreviates the current working direc‐
2397       tory only if longer than PathMax (a value defined in the  configuration
2398       file).
2399
2400       \z: Exit code of the last executed command (colored according to the xs
2401       (success) and xf (failure) codes in InterfaceColors in the color scheme
2402       file)
2403
2404       \$ '#', if the effective user ID is 0, and '$' otherwise
2405
2406       \nnn: The character whose ASCII code is the octal value nnn
2407
2408       \\: A literal backslash
2409
2410       \[: Begin a sequence of non-printing characters. This is mostly used to
2411       add color to the prompt line
2412
2413       \]: End a sequence of non-printing characters
2414
2415       The following files statistics escape codes are  also  recognized  (not
2416       available in light mode):
2417
2418       \D: Amount of sub-directories in the current directory
2419
2420       \R: Amount of regular files in the current directory
2421
2422       \X: Amount of executable files in the current directory
2423
2424       \.: Amount of hidden files in the current directory
2425
2426       \U: Amount of SUID files in the current directory
2427
2428       \G: Amount of SGID files in the current directory
2429
2430       \F: Amount of FIFO/pipe files in the current directory
2431
2432       \K: Amount of socket files in the current directory
2433
2434       \B: Amount of block device files in the current directory
2435
2436       \C: Amount of character device files in the current directory
2437
2438       \x: Amount of files with capabilities in the current directory
2439
2440       \L: Amount of symbolic links in the current directory
2441
2442       \o: Amount of broken symbolic links in the current directory
2443
2444       \M: Amount of multi-link files in the current directory
2445
2446       \E:  Amount  of  files  with  extended attributes in the current direc‐
2447       tory.TP
2448
2449       \O: Amount of other-writable files in the current directory
2450
2451       \": Amount of files with the sticky bit set in the current directory
2452
2453       \?: Amount of files of unknown file type in the current directory
2454
2455       \!: Amount of unstatable files in the current directory
2456
2457       Escape codes for prompt notifications (mostly used for  custom  prompts
2458       which  need to handle notifications themselves, in which case Notifica‐
2459       tions should be set to false in the color scheme file to prevent  auto‐
2460       matic insertion of notifications at the left of the prompt):
2461
2462       \*: '*' + amount of selected files
2463
2464       \%: 'T' + amount of trashed files
2465
2466       \#: 'R' if root user
2467
2468       \): 'W' + amount of warning messages
2469
2470       \(: 'E' + amount of error messages
2471
2472       \=: 'N' + amount of notice messages
2473
2474       Note: Except for '\#', nothing is printed if the number is zero.
2475
2476       By default, for example, clifm's prompt line is this:
2477
2478              "\[\e[0m\][\S\[\e[0m\]]\l                \A                \u:\H
2479              \[\e[00;36m\]\w\n\[\e[0m\]<\z\[\e[0m\]>\[\e[0;34m\]  \$\[\e[0m\]
2480              "
2481
2482
2483       which once decoded should look something like this:
2484
2485               [1] 13:45 user:hostname /my/path
2486               <0> $
2487
2488       with  the  workspace number printed in blue, the path in cyan, the last
2489       exit status in green, and the dollar sign in blue.
2490
2491       A more "classic" prompt could be construed as follows:
2492
2493               "\u@\U \w> "
2494
2495       or, using now command substitution:
2496
2497               "$(whoami)@$(hostname) $(pwd)> "
2498
2499
2500       Advanced prompt customization
2501
2502       Besides commands substitution, which  allows  you  to  include  in  the
2503       prompt  any information you like via shell scripts or simple shell com‐
2504       mands, the use of Unicode characters allows you to build  colorful  and
2505       modern prompts.
2506
2507       Inserting Unicode characters in the prompt can be made in two ways:
2508
2509       a) Pasting the character itself using a text editor
2510
2511       b)  Entering  the  octal  code corresponding to the character. Use hex‐
2512       dump(1) as follows to get the appropriate hex code:
2513
2514               echo -ne "[paste the char here]" | hexdump -c
2515
2516       The first line of the output will be something along these lines:
2517
2518               00000000  256 234 356               |...|
2519
2520       In this case, the octal code is: "256 234 356". So, to insert this Uni‐
2521       code character in the prompt, add it as follows:
2522
2523               Prompt="... \256\234\356 ..."
2524
2525       Note: Make sure you have installed a font able to display Unicode char‐
2526       acters.
2527
2528       A few advanced prompt examples can be found in the prompts file.
2529
2530       A simple use case for the files statistics escape codes
2531
2532       We all want to keep our systems safe. One of the many ways to get a bit
2533       of safety is by checking that there is not file in our file system that
2534       could somehow endanger our machines. SUID, SGID, executable, and other-
2535       writable  files  are  to  be  count among these dangers. This is why it
2536       could be useful to build a little files scanner for  our  prompt  using
2537       the above mentioned files statistics escape codes. This is the code for
2538       our scanner:
2539
2540               \[\e[0m\]\[\e[1;31m\]\U\[\e[0m\]:\[\e[1;33m\]\G\[\e[0m\]:
2541               \[\e[1;32m\]\O\[\e[0m\]:\[\e[1;34m\]\X\[\e[0m\]"
2542
2543       By adding this code to our prompt line, we get something like this:
2544
2545               24:2:-:2389
2546
2547       This tells us that in the current  directory  we  have  24  SUID  files
2548       (printed  in  bold  red), 2 SGID files (bold yellow), no other-writable
2549       file, and 2389 executable files.
2550
2551       NOTE: A predefined prompt with this files  scanner  integrated  can  be
2552       found in the prompts.clifm file.
2553
2554       NOTE  2:  Most of the information these escape codes rely on depends on
2555       stat(3). Now, since stat(3) is not used when running in light mode (for
2556       performance reasons), this information won't be available in light mode
2557       either.
2558
2559
2560       Prompt notifications
2561
2562       A bold red 'R' at the left of the prompt reminds the user that the pro‐
2563       gram is running as root. A bold green asterisk indicates that there are
2564       elements in the Selection Box. In the same way, a yellow 'T' means that
2565       there  are  currently  files  in the trash can, just as a bold blue 'S'
2566       means that the program is running in stealth mode. Finally, clifm makes
2567       use  of  three  kind  of messages: errors (a red 'E' at the left of the
2568       prompt), warnings (a yellow 'W'), and simple notices (a green 'N').
2569
2570       If Notifications is set to "false" in the prompts file, the above noti‐
2571       fications won't be printed by the prompt, but is still available to the
2572       user as escape codes (see above) and environment variables (see the EN‐
2573       VIRONMENT section below) to build custom prompts.
2574
2575       The Warning Prompt
2576
2577       The  suggestions  system  includes a secondary, warning prompt, used to
2578       highlight wrong/invalid/non-existent command  names.  Once  an  invalid
2579       command  is entered, the regular prompt will be switched to the warning
2580       prompt and the whole input line will turn dimmed red (though it can  be
2581       customized to your liking).
2582
2583       The wrong command name check is omitted if the input string:
2584
2585               Is quoted (ex: "string" or 'string')
2586               Is bracketed (ex: (string), [string], or {string})
2587               It  starts  with a stream redirection character (ex: <string or
2588              >string)
2589               Is a comment (ex: #string)
2590               It starts with one or more spaces
2591               Is an assignment (ex: foo=var)
2592               It is escaped (ex: \string)
2593
2594       The warning prompt could be customized by means of the same rules  used
2595       by  the  regular prompt. To use a custom warning prompt just modify the
2596       WarningPrompt line in the prompts file (via the prompt  edit  command).
2597       It defaults to
2598
2599               "\[\e[0m\]\[\e[00;02;31m\](!) > "
2600
2601       the  last line of the regular prompt will become "(!) > ", printed in a
2602       dimmed red color, including the input string.
2603
2604       To change the color of the input text while in the warning  prompt  use
2605       the  wp  color code (see the COLOR CODES section above). It defaults to
2606       dimmed red, just as the warning prompt itself.
2607
2608       To disable this feature use the --no-warning-prompt command line switch
2609       or set the EnableWarningPrompt option to false in the prompts file.
2610
2611       NOTE:  Bear  in mind that the warning prompt depends on the suggestions
2612       system, so that it won't be available if this system is disabled.
2613
2614
2615       3. THE DIVIDING LINE
2616
2617       The line dividing the current list of files and the prompt. It could be
2618       customized  via the DividingLine option in the color scheme file to fit
2619       your prompt design and/or color scheme.
2620
2621       DividingLine accepts one or more ASCII or Unicode characters  (in  both
2622       cases  you  only  need  to type/paste here the chosen character(s)). If
2623       only one character is specified (by default, "-"), it will  be  repeat‐
2624       edly  printed  to  fulfill the current line up to the right edge of the
2625       screen or terminal window. If you don't want to cover the  whole  line,
2626       just specify three or more characters, in which case only these charac‐
2627       ters (and no  more)  will  be  used  as  dividing  line.  For  example:
2628       "------->". To use an empty line, set DividingLineChar to "0" (that is,
2629       as a character, not as a number). Finally, is this value is not set,  a
2630       special  line drawn with box-drawing characters will be used (box-draw‐
2631       ing characters are not supported by all terminal-emulators).
2632
2633       The color of this line is set via the dl color code in the color scheme
2634       file. Consult the COLOR CODE section above for more information.
2635
2636       4. FZF WINDOW
2637              Refer to the TAB completion section below.
2638
2639
2640
2641       9. BUILT-IN EXPANSIONS
2642
2643       The SEL keyword
2644
2645       clifm will automatically expand the 'sel' keyword: 'sel' indeed amounts
2646       to 'file1 file2 file3 ...' In this way, you can use the  'sel'  keyword
2647       with any command.
2648
2649       If  you  want to set the executable bit on several files, for instance,
2650       simply select the files you want and then run this command:  'chmod  +x
2651       sel'.  Or,  if  you want to copy or move several files into some direc‐
2652       tory: 'cp sel 12', or 'mv sel 12' (provided the ELN 12 corresponds to a
2653       directory), respectively.
2654
2655       If the destiny directory is omitted, selected files are copied into the
2656       current working directory, that is to say, 'mv sel' amounts to 'mv  sel
2657       .'.
2658
2659       To  trash or remove selected files, simply run 'tr sel' or 'rm sel' re‐
2660       spectively. The same goes for wildcards and braces: 'chmod +x  *',  for
2661       example,  will  set  the  executable bit on all files (excluding hidden
2662       files) in the current working directory, while 'chmod  +x  file{1,2,3}'
2663       will do it for file1, file2, and file3 respectively.
2664
2665       If  using  the FZF mode for TAB completion (see below), you can operate
2666       only on some selected files as follows: type 'CMD sel' and, without ap‐
2667       pending  any  space char, press TAB: the list of selected files will be
2668       displayed. Choose one or more of them (use TAB to mark entries) to  op‐
2669       erate  only  on  those  specific  files. For example, to print the file
2670       properties of some specific selected  files:  p  sel->TAB,  select  the
2671       files  you want via TAB, press Enter or Right (marked files will be in‐
2672       serted in the command line), and the press Enter, as usual.
2673
2674       TAB completion
2675
2676       There are four modes for TAB completion: standard  (interface  provided
2677       by  readline),  fzf,  which  depends  on  FZF (https://github.com/june
2678       gunn/fzf)  (version  0.18.0  or  later),  fzy  (https://github.com/leo-
2679       arch/fzy),  and  smenu (https://github.com/p-gen/smenu). By default, if
2680       the fzf binary is found in PATH, clifm will attempt to use fzf to  dis‐
2681       play  completions. You can force the use of the remaining modes via the
2682       --std-tab-comp, --fzytab, and --smenutab  command  line  switches.  The
2683       TabCompletionMode  option in the configuration file can be used to per‐
2684       manently set the TAB completion mode.
2685
2686       If using the fzf mode, the completions interface can be customized  us‐
2687       ing the FzfTabOptions option in the color scheme file. --height, --mar‐
2688       gin, +i/-i, --read0, --query, and --ansi will be  appended  to  set  up
2689       some  details  of  the completions interface. Set this value to none to
2690       pass no option, to the empty string to load the default values,  or  to
2691       any  other  custom value. Unless set to none, any option specified here
2692       will override FZF_DEFAULT_OPTS.
2693
2694       Default values for this option are:
2695               --color=16,prompt:6,fg+:-1,pointer:4,hl:5,hl+:5,gut‐
2696              ter:-1,marker:2  --bind tab:accept,right:accept,left:abort --in‐
2697              line-info --layout=reverse-list
2698
2699       Consult fzf(1) for more information.
2700
2701       If set neither in FzfTabOptions nor in FZF_DEFAULT_OPTS  (in  this  or‐
2702       der),  the height of the FZF window is set to the default value: 40% of
2703       the current terminal amount of line/rows.
2704
2705       To use FZF  global  values  (defined  in  FZF_DEFAULT_OPTS),  just  set
2706       FzfTabOptions to none.
2707
2708       If  using  the  smenu  mode,  the interface can be customized using the
2709       CLIFM_SMENU_OPTIONS environment variable. For example:
2710
2711               export CLIFM_SMENU_OPTIONS="-a  t:2,b  b:4  c:r  ct:2,r  sf:6,r
2712              st:5,r mt:5,b"
2713
2714       Consult smenu(1) for more information.
2715
2716       For information about how to customize fzy consult fzy(1).
2717
2718       clifm  can  perform  fuzzy  TAB completion (just as suggestions, if en‐
2719       abled) for file names and paths (e.g. 'dwn<TAB>' is completed as 'Down‐
2720       loads').  To  enable  this  feature  use the --fuzzy-match command line
2721       switch.
2722
2723       Besides the default TAB completion for command names and paths, you can
2724       also  expand  ELN's using the TAB key. Example: type 'o 12', press TAB,
2725       and it becomes 'o filename ', or, if  12  refers  to  a  directory,  'o
2726       dir/'.  clifm uses a Bash-style quoting system, so that this file name:
2727       "this is a test@version{1}"  is  expanded  as  follows:  this\  is\  a\
2728       test\@version\{1\}
2729
2730       ELN's  and ELN ranges will be also automatically expanded, provided the
2731       corresponding ELN's actually exist, that is to say, provided some  file
2732       name  is listed on the screen under those numbers. For example: 'diff 1
2733       118' will only expand '1', but not '118', if there is no  ELN  118.  In
2734       the  same way, the range 1-118 will only be expanded provided there are
2735       118 or more elements listed on the screen.
2736
2737       Since ranges could be a bit tricky, TAB completion is available to make
2738       sure this range actually includes the desired file names.
2739
2740       If  this  feature  somehow  conflicts with the command you want to run,
2741       say, 'chmod 644 ...', because the current amount of files is  equal  or
2742       larger than 644 (in which case clifm will expand that number), then you
2743       can simply run the command as external: ';chmod 644 ...'
2744
2745       TAB completion for commands, paths, users home  directory,  workspaces,
2746       wildcards*,  file  types*,  environment variables, bookmarks, profiles,
2747       color schemes, file tags, search patterns, commands history,  directory
2748       history  (via  the  jump  command),  remote  resources,  sort  methods,
2749       ranges*, the 'sel' keyword*, trashed files*, plus the deselect* and the
2750       open-with commands (ow) is also available. To make use of the bookmarks
2751       completion, make sure to specify some name for  your  bookmarks,  since
2752       these names are used by the completion function.
2753
2754       * When using FZF mode for TAB completion, multi-selection is available:
2755       Press TAB to expand possible selections, then press TAB again  to  mark
2756       desired  entries.  Once  desired entries are marked, press Enter or the
2757       Right arrow key: marked entries will be inserted into the command line.
2758       Multi-selection  is also available for the following commands, provided
2759       there is no  slash  in  the  query  string:  ac,  ad,  bb,  br,  d/dup,
2760       p/pr/prop, r, s, t/tr/trash, and te.
2761
2762       Of  course,  combinations of all these features is also possible. Exam‐
2763       ple: 'cp sel file* 2 23-31 .' will copy all selected  files,  plus  all
2764       files  whose name starts with "file", plus those files corresponding to
2765       the ELN's 2, and 23 to 31, into the current working directory.
2766
2767       In addition to completions and expansions, an  auto-suggestions  system
2768       is also available. See the AUTO-SUGGESTIONS section below.
2769
2770

10. RESOURCE OPENER

2772       As  clifm's  built-in resource opener, Lira takes care of opening files
2773       when no opening application has been specified in the command line.  It
2774       does this by automatically parsing a MIME list file (see the FILES sec‐
2775       tion below): it looks first for a matching pattern (either a MIME  type
2776       or a file name), then checks the existence of the command associated to
2777       this pattern, and finally executes it.
2778
2779       Lira is controlled via the mime command. File associations  are  stored
2780       in the MIME list file.
2781
2782       When  running for the first time, or whenever the MIME list file cannot
2783       be found, clifm will copy the MIME definitions file  from  the  DATADIR
2784       directory  (usually  /usr/share/clifm/mimelist.clifm) to the local con‐
2785       figuration directory.
2786
2787       Lira will check the file line by line, and if a matching line is found,
2788       and if at least one of the specified applications exists, this applica‐
2789       tion will be used to open the corresponding associated file. Else,  the
2790       next  line will be checked. In other words, the precedence order is top
2791       to bottom (for lines) and left to right (for applications).
2792
2793       NOTE: In case of directories (whose MIME type is inode/directory),  the
2794       entry will be used only for the open-with command (ow).
2795
2796       This MIME list file follows a few simple syntax rules:
2797
2798       Each line in the MIME list file consists of:
2799
2800       a) 'X' or '!X' to specify GUI and non-GUI environments respectively;
2801
2802       b) 'N' to instruct Lira to match a file name instead of a MIME type;
2803
2804       c)  A  left  value,  containing either a file name or a MIME type to be
2805       matched. Regular expressions are supported;
2806
2807       d) A right value, a list of semicolon separated commands  (and  option‐
2808       ally  the  commands  parameters)  to be associated to the corresponding
2809       left value;
2810
2811       Note that the syntax departs here from the Freedesktop specification in
2812       that  we  do not rely on desktop files (mostly used by desktop environ‐
2813       ments), but rather on commands and parameters.  In  general  thus,  the
2814       syntax is this:
2815
2816               [!]X[:N]:REGEX=CMD [ARGS] [%f];CMD [ARGS] [%f]; ...
2817
2818       Use  the  %f placeholder to specify the position of the file name to be
2819       opened in the command. For example,  'mpv  %f  --terminal=no'  will  be
2820       translated  into  'mpv  FILE  --terminal=no'. If the placeholder is not
2821       specified, the file name will be  appended  to  command  string.  Thus,
2822       this: 'mpv --terminal=no' amounts to this: 'mpv --terminal=no FILE'.
2823
2824       Running the opening application in the background:
2825
2826       For GUI applications:
2827
2828               APP %f &>/dev/null &
2829
2830       For terminal applications:
2831
2832               TERM -e APP %f &>/dev/null &
2833
2834       Replace  'TERM'  and  'APP'  by the corresponding values. The -e option
2835       might vary depending on the terminal emulator used (TERM).
2836
2837       NOTE: In case of archives, the built-in ad command  could  be  used  as
2838       opening application.
2839
2840       NOTE  2:  Environment  variables  (e.g. $EDITOR, $VISUAL, $BROWSER, and
2841       even $PAGER) are also recognized by Lira. You can even set custom envi‐
2842       ronment variables to be used exclusively by clifm. For example, you can
2843       set CLIFM_TERM, CLIFM_EDITOR, and CLIFM_PDF, and then use them  to  de‐
2844       fine some associations:
2845
2846               X:text/plain=$CLIFM_TERM -e $CLIFM_EDITOR %f &
2847               X:N:.*\.pdf$=$CLIFM_PDF %f &
2848
2849       Examples:
2850
2851       Match a full file name:
2852
2853               X:N:some_filename:leafpad;mousepad;kate;gedit
2854
2855       Note: the 'N' character indicates that this rule is intended to match a
2856       file name instead of a MIME type, just as 'X' means that this  rule  is
2857       aimed  to  graphical  environments  and '!X' that it is aimed rather to
2858       non-graphical environments.
2859
2860       Note 2: If the file name contains a dot, quote it like this: some_file‐
2861       name.ext (to prevent the REGEX parser from interpreting the dot)
2862
2863       Match multiple file names (starting with 'str'):
2864
2865               X:N:^str.*:leafpad;mousepad;kate;gedit
2866
2867       Match a single extension:
2868
2869               X:N:.*\.txt$:leafpad;mousepad;kate;gedit
2870               !X:N:.*\.^txt$:nano;vim;vi;emacs
2871
2872       Match multiple extensions:
2873
2874        X:N:.*\.(sh|c|py|pl)$:geany;leafpad;nano
2875
2876       Match single mimetype:
2877
2878               X:^audio/mp3$=mpv    %f   --terminal=no;ffplay   -nodisp   -au‐
2879              toexit;mpv;mplayer
2880
2881       Match mutiple mimetypes:
2882
2883               X:^audio/.*=mplayer;mplayer2;vlc;gmplayer;smplayer;totem
2884
2885       In case of MIME types, you can also write the entire expression without
2886       relying on any regular expression. For example:
2887
2888               !X:text/plain=$TERM -e $EDITOR %f &>/dev/null &
2889
2890       For  more information take a look at the mimelist file itself (F6 or mm
2891       edit).
2892
2893       Using clifm as a standalone resource opener
2894
2895       Thought clifm is a file manager, it can be used as  a  simple  resource
2896       opener via the --open command line option. For example:
2897
2898               clifm --open /path/to/my_file.jpg
2899               clifm --open /path/to/my_dir
2900               clifm --open https://some_domain
2901
2902       NOTE: When opening web resources clifm will query the mimelist file us‐
2903       ing text/html as MIME type. Whatever association it finds for this spe‐
2904       cific MIME type will be used to open the web resource.
2905
2906       Positional  parameters  could  be  used as well, provided the parameter
2907       does not point to a directory name, in which case it will  be  used  as
2908       clifm starting path. For instance:
2909
2910               clifm /path/to/my_file.jpg
2911               clifm https://some_domain
2912
2913

11. AUTO-SUGGESTIONS

2915       Gemini  is  a  built-in suggestions system (similar to that provided by
2916       the Fish shell). As you type, Gemini will suggest possible  completions
2917       right after the current cursor position.
2918
2919       The following checks are availabe (the order can be customized, see be‐
2920       low):
2921
2922       a. ELN's
2923
2924       b. clifm commands and parameters (including the sel keyword)
2925
2926       c. Entries in the command history list (already used commands)
2927
2928       d. File names in the current working directory
2929
2930       e. Entries in the jump database
2931
2932       f. Aliases names
2933
2934       g. Bookmarks names
2935
2936       h. Program names in PATH
2937
2938       i. Shell builtins
2939
2940       NOTE: The shell name is taken from /bin/sh.  The  following  shell  are
2941       supported:  bash,  dash,  fish,  ksh,  tcsh, and zsh. Command names are
2942       checked in the following order: clifm internal  commands,  commands  in
2943       PATH, and shell builtins.
2944
2945       To accept the entire suggestion, just press Right or Ctrl-f: the cursor
2946       will move to the end of the suggested command and the suggestion  color
2947       will change to that of the typed text; next, you can press Enter to ex‐
2948       ecute the command as usual. Otherwise, if the  suggestion  is  not  ac‐
2949       cepted, it will be simply ignored and you can continue editing the cur‐
2950       rent command line however you want.
2951
2952       To aceppt the first suggested word only (up to first slash  or  space),
2953       press  rather  Alt-Right or Alt-f. Not available for ELN's, aliases and
2954       bookmarks names.
2955
2956       Bear in mind that suggestions for ELN's, aliases and  bookmarks  names,
2957       and the jump function (invoked by the j command) do not work as the re‐
2958       maining suggestions: they do not suggest possible completions  for  the
2959       current  input,  but rather the value pointed to by it. For example, if
2960       you type "12" and the current list of files includes a file name  whose
2961       ELN  is  '12',  the file name corresponding to this ELN will be printed
2962       next to "12" as follows: 12_ > filename (where the  underscore  is  the
2963       current  cursor position). Press 'Right' or 'Ctrl-f' to accept the sug‐
2964       gestion, in which case the text typed so far will be  replaced  by  the
2965       suggestion.
2966
2967       The  order of the suggestion checks could be customized via the Sugges‐
2968       tionStrategy option in the configuration file. Each check is assigned a
2969       lowercase letter:
2970
2971        a = Aliases names
2972        b = Bookmark names
2973        c = Possible completions
2974        e = ELN's
2975        f = Files in the current directory
2976        h = Entries in the commands history
2977        j = Entries in the jump database
2978
2979       The  value  taken by SuggestionStrategy is a string of seven(7) charac‐
2980       ters containing the above letters. The letters  order  in  this  string
2981       specifies  the  order in which the suggestion checks will be performed.
2982       For example, to perform all checks in the same order above,  the  value
2983       of  the string should be abcefhj (without quotes). Or, if you prefer to
2984       run the history check first: habcefj. Finally, you can  ignore  one  or
2985       more  checks  using a dash (-). So, to ignore the bookmarks and aliases
2986       checks, set SuggestionStrategy to h--cefj. The default value  for  this
2987       option is ehfjbac.
2988
2989       Note:  The  check for program names in PATH is always executed at last,
2990       except when the ExternalCommands option is disabled, in which case sug‐
2991       gestions for them are simply not displayed.
2992
2993       Suggestions will be printed using one of the following color codes (see
2994       the COLOR CODES section above):
2995
2996       sf: Used for file and directory names. This  includes  suggestions  for
2997       ELN's,  bookmarks  names,  files in the current directory, and possible
2998       completions. Default value: 02;04;36 (dimmed underlined cyan)
2999
3000       sh: Used for entries in the  commands  history.  Default  value:  02;35
3001       (dimmed magenta)
3002
3003       sc:  Used  for  aliases and program names in PATH. Default value: 02;31
3004       (dimmed red)
3005
3006       sx: Used for clifm internal commands  and  parameters.  Default  value:
3007       02;32 (dimmed green)
3008
3009       sp:  Greater-than  sign  (>) used when suggesting ELN's, bookmarks, and
3010       aliases names. Default value: 02;31 (dimmed red)
3011
3012       You can set SuggestFiletypeColor to "true" in the configuration file to
3013       use  the color of the file type of the current file name (as set in the
3014       color scheme file) instead of the value of sf. For example, if  a  sug‐
3015       gestion  is  printed for a file that is a symbolic link, ln or or (if a
3016       broken link) will be used instead of sf.
3017
3018       Note: Suggestions are disabled for the FreeBSD and the  NetBSD  default
3019       consoles. Take a look at the Wiki for more information.
3020
3021

12. SHELL FUNCTIONS

3023       clifm  includes  a few shell functions to perform specific actions (cd-
3024       on-quit, file-picker, and subshell-notice). Take a look at  the  corre‐
3025       sponding  files, in /usr/share/clifm/functions, and follow the instruc‐
3026       tions. Needles to say, you can write your own functions.
3027
3028

13. PLUGINS

3030       Plugins are just scripts or programs (written in any language) aimed to
3031       add,  extend or improve CliFM's functionalities. They are linked to ac‐
3032       tions  names  defined  in  a  dedicated  configuration  file  (XDG_CON‐
3033       FIG_HOME/clifm/profiles/PROFILE/actions.clifm):   entering  the  action
3034       name immediately executes the corresponding plugin.
3035
3036       Note: In stealth mode, since access to configuration files is  not  al‐
3037       lowed, plugins are disabled.
3038
3039       Though  several plugins are provided at installation time (in the plug‐
3040       ins directory), you can write your owns as you like, with any  language
3041       you  like, and for whatever goal you want. Writing plugins is generally
3042       quite easy; but your mileage may vary depending on what you are  trying
3043       to  achieve. A good place to start is examining the provide plugins and
3044       reading the actions command description, and the ENVIRONMENT and  FILES
3045       sections below.
3046
3047       A  convenient helper script is provided to get a consistent look across
3048       all plugins, specially those running FZF. This helper script is located
3049       in  DATADIR/clifm/plugins/plugins-helper,  but it will be overridden by
3050       XDG_CONFIG_HOME/clifm/plugins/plugins-helper if found. The location  of
3051       this  file  is set by clifm itself in the CLIFM_PLUGINS_HELPER environ‐
3052       ment variable to be used by plugins. Source the file and use any of the
3053       functions and variables provided by it to write a new FZF plugin:
3054
3055           # Source our plugins helper
3056           if [ -z "$CLIFM_PLUGINS_HELPER" ] || ! [ -f "$CLIFM_PLUGINS_HELPER"
3057       ]; then
3058               printf "clifm: Unable to find plugins-helper file\n" >&2
3059               exit 1
3060           fi
3061           # shellcheck source=/dev/null
3062           . "$CLIFM_PLUGINS_HELPER"
3063
3064       Plugins can talk to CliFM via a dedicated pipe created for this purpose
3065       and  exposed via an environment variable (CLIFM_BUS). Just write to the
3066       pipe and clifm will hear and handle the message immediately  after  the
3067       plugin's  execution.  If the message is a path, clifm will run the open
3068       function, changing the current directory to the new path, if  a  direc‐
3069       tory,  or opening it with the resource opener, if a file. Otherwise, if
3070       the message is not a path, it will be taken and executed as a  command.
3071       Examples:
3072
3073           ´echo  "/tmp" > "$CLIFM_BUS"´ tells clifm to change the current di‐
3074       rectory to /tmp
3075
3076           ´echo "s *.png" > "$CLIFM_BUS"´ makes clifm select all files in the
3077       current directory ending with ".png"
3078
3079       The  pipe (CLIFM_BUS) is deleted immediately after the execution of its
3080       content and recreated before running any other plugin.
3081
3082       This is a list of available plugins:
3083
3084       ┌────────────┬──────────────────────────────────────────┬─────────────────────┬────────────────────────────────────────────────────────────┐
3085Action name Description                              Plugin              Dependencies                                               
3086       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3087bn          │ Create files in batch                    │ batch_create.sh     │ -                                                          │
3088       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3089bcp         │ Copy files in batch                      │ batch_copy.sh       │ -                                                          │
3090       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3091bi          │ Import bookmarks                         │ bm_import.sh        │ -                                                          │
3092       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3093clip        │ Interact with the primary clipboard      │ clip.sh             │ xlip                                                       │
3094       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3095       │            │ Test you terminal colors capability      │ colors.sh           │ -                                                          │
3096       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3097cr          │ Copy files to remote location            │ cprm.sh             │ fzf, and scp, ffsend, or croc                              │
3098       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3099da          │ Disk usage analyzer                      │ disk_analyzer.sh    │ du, fzf                                                    │
3100       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3101dr          │ Drag and drop files                      │ dragondrop.sh       │ dragon or dragon-drag-and-drop                             │
3102       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3103fdups       │ Find and remove file duplicates          │ fdups.sh            │ find, md5sum, sort, uniq, xargs, sed, stat                 │
3104       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3105+           │ Find files in the current directory      │ finder.sh           │ fzf or rofi                                                │
3106       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3107       │_   (under‐ │ Quickly change directory                 │ fzcd.sh             │ fzf                                                        │
3108       │score)      │                                          │                     │                                                            │
3109       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3110dh          │ Browse the directory history             │ fzfdirhist.sh       │ fzf                                                        │
3111       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3112h           │ Browse the commands history              │ fzfhist.h           │ fzf                                                        │
3113       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3114       │-     (yes, │ Navigate/select/preview files            │ fzfnav.sh/BFG.sh    │ See the section below                                      │
3115       │just      a │                                          │                     │                                                            │
3116       │dash)       │                                          │                     │                                                            │
3117       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3118*           │ Select files                             │ fzfsel.sh           │ fzf                                                        │
3119       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3120**          │ Deselect files                           │ fzfdesel.sh         │ fzf                                                        │
3121       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3122       │            │ Show git repo status                     │ git.sh              │ git                                                        │
3123       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3124ih          │ Browse clifm's manpage                   │ ihelp.sh            │ fzf                                                        │
3125       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3126i           │ Image thumbnails previewer               │ img_viewer.sh       │ sxiv, feh or lsix                                          │
3127       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3128++          │ Jump to a directory in the jump database │ jumper.sh           │ fzf or rofi                                                │
3129       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3130kbgen       │ Get escape codes for keybindings         │ kbgen.c             │ Needs to be compiled first (gcc -o kbgen kbgen.c -lcurses) │
3131       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3132kd          │ Decrypt a GnuPG encrypted file           │ decrypt.sh          │ gpg, tar, sed, grep                                        │
3133       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3134ke          │ Encrypt files/dirs using GnuPG           │ encrypt.sh          │ gpg, tar, sed, fzf, awk, xargs                             │
3135       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3136ml          │ List files by a given MIME type          │ mime_list.sh        │ fzf, file                                                  │
3137       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3138music       │ Create a music playlist                  │ music_player.sh     │ mplayer                                                    │
3139       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3140gg          │ Pipe files in CWD through a pager        │ pager.sh            │ less, column                                               │
3141       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3142ptot        │ Preview PDF files as text                │ pdf_viewer.sh       │ pdftotext                                                  │
3143       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3144rrm         │ Recursively remove files                 │ recur_rm.sh         │ find, fzf                                                  │
3145       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3146//          │ Search files by content                  │ rgfind.sh           │ fzf, ripgrep                                               │
3147       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3148       │            │ Update plugins                           │ update.sh           │ -                                                          │
3149       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3150vid         │ Preview video files thumbnails           │ vid_viewer.sh       │ ffmpegthumbnailer                                          │
3151       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3152vt          │ Virtual directory for sets of files      │ virtualize.sh       │ sed                                                        │
3153       ├────────────┼──────────────────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────┤
3154wall        │ Set image as wallpaper                   │ wallpaper_setter.sh │ feh, xloadimage, or hsetroot                               │
3155       └────────────┴──────────────────────────────────────────┴─────────────────────┴────────────────────────────────────────────────────────────┘
3156
3157       Dependencies of the previewer plugin (fzfnav.sh)
3158
3159         archives: atool, bsdtar, or tar
3160         images: kitty terminal, imagemagick, and ueberzug or viu or catimg or
3161       img2txt or pixterm
3162         fonts: fontpreview or fontforge
3163         docs: libreoffice, catdoc, odt2txt, pandoc
3164         PDF: pdftoppm, pdftotext or mutool
3165         epub: epub-thumbnailer
3166         DjVu: djvulibre or djvutxt
3167         postscript: ghostscript
3168         videos: ffmpegthumbnailer
3169         audio: ffmpeg, mplayer, or mpv
3170         web: w3m, links, elinks, or pandoc
3171         markdown: glow
3172         highlight: bat, highlight, or pygmentize
3173         torrent: transmission-cli
3174         json: python or pq
3175         file info: exiftool, mediainfo, or file
3176
3177
3178       To run the pager.sh plugin, for example, you only  need  to  enter  the
3179       corresponding  action name, in this case gg. In case of need, all plug‐
3180       ins provide a -h,--help switch for a brief usage description.
3181
3182       Note: The fzfnav plugin uses fzf(1) to navigate the file system and BFG
3183       (a  script  located in the plugins directory) to show previews (to show
3184       files preview BFG requires ueberzug to be installed or the Kitty proto‐
3185       col  via  the  Kitty  terminal).  A configuration file (BFG.cfg, in the
3186       plugins directory itlsef) is provided to customize the previewer's  be‐
3187       havior.
3188
3189       In  addition  to the built-in BFG previewer, fzfnav supports the use of
3190       both Ranger's scope.sh script and pistol. To use scope, just  edit  the
3191       BFG  configuration  file  and  set USE_SCOPE to 1 and SCOPE_FILE to the
3192       correct   path   to   the   scope.sh   file    (normally    $HOME/.con‐
3193       fig/ranger/scope.sh). To use pistol instead, set USE_PISTOL to 1.
3194
3195       Note  2:  The  git_status plugin is not intended to be used as a normal
3196       plugin, that is, executed via an action name, but rather to be executed
3197       as a prompt command:
3198
3199               promptcmd /usr/share/clifm/plugins/git_status.sh
3200
3201       Whereas  this plugin provides basic Git integration, it could be easily
3202       modified (it is just a few lines long) to include whatever git function
3203       you might need.
3204
3205       Take     a     look    at    the    Wiki    for    more    information:
3206       https://github.com/clifm/wiki/Advanced#plugins
3207
3208

14. AUTOCOMMANDS

3210       Heavily inspired by Vifm, the autocommands function allows the  user  a
3211       fine-grained control over clifm settings. It is mostly devised as a way
3212       to improve performance for remote file systems (usually slower than lo‐
3213       cal  ones)  by  allowing  you to turn off some features (like the files
3214       counter) that might greatly affect performance under some circumstances
3215       (like  remote connections). However, this function is not restricted to
3216       this use: use it for whatever purpose you find useful.
3217
3218       Add a line preceded by the autocmd keyword to the config file. The gen‐
3219       eral syntax is: autocmd PATTERN cmd,cmd,cmd
3220
3221       PATTERN  is  a  glob  expression  to  match directory names. If no glob
3222       metacharacter is provided, the string will be compared  as  is  to  the
3223       current  working directory. To invert the meaning of a pattern, prepend
3224       an exclamation mark: !PATTERN
3225
3226       PATTERN is followed by a comma separated list of commands:
3227
3228       !CMD: The exclamation mark allows you to run shell commands, custom bi‐
3229       naries or scripts
3230
3231       The following codes are used to control clifm's files list:
3232
3233        Code   Description           Example
3234        cs     Color scheme          cs=zenburn
3235        fc     Files counter         fc=0
3236        hf     Hidden files          hf=0
3237        lm     Light mode            lm=1
3238        lv     Long/detail view      lv=0
3239        mf     Max files             mf=100
3240        mn     Max file name length  mn=20
3241        od     Only directories      od=1
3242        pg     Pager                 pg=0
3243        st     Sort method           st=5
3244        sr     Reverse sort          sr=1
3245
3246       A few example lines:
3247
3248        1. Run in light mode and disable the files counter for the remotes di‐
3249       rectory:
3250           autocmd /media/remotes/** lm=1,fc=0
3251
3252        2. Just a friendly reminder:
3253           autcomd ~/important !printf "Important:  keep  your  fingers  outta
3254       here!\n" && read -n1
3255
3256        3.  This directory has thousands of files. Show only the first hundred
3257       and enable the pager:
3258           autocmd /usr/bin mf=100,pg=1
3259
3260        4. Lots of media files (with large file names). Trim file names to  20
3261       chars max and  run the files previewer:
3262           autocmd ~/Downloads mn=20,!~/.config/clifm/plugins/fzfnav.sh
3263
3264        5. Mmm, just because I can. Be creative!
3265           autocmd /home/user hf=0,cs=nord,lv=1
3266           autocmd / lv=1,fc=0,cs=solarized,st=5
3267
3268
3269       The first example is the recommended configuration for directories con‐
3270       taining remote file systems
3271
3272       As seen in the fifth example, plugins could be used here  as  well:  in
3273       this  case, we want to run fzfnav (to make use of the files preview ca‐
3274       pability) whenever we enter into the Downloads directory, usually  con‐
3275       taining videos, music, and images.
3276
3277       NOTE: If you decide to use a plugin, bear in mind that it won't be able
3278       to communicate with clifm, because autocommands  always  executes  com‐
3279       mands as external applications using the system shell.
3280
3281       Autocommand files: .cfm.in and .cfm.out
3282
3283       Two  files  are  specifically  checked  by  the  autocommands function:
3284       .cfm.in and .cfm.out.
3285
3286       The content of these files is a single instruction, either a shell com‐
3287       mand  or,  if  you  need more elaborated stuff, a script (or custom bi‐
3288       nary). Note that codes to modify clifm's settings (as described  above)
3289       are not available here.
3290
3291       If  a  directory contains a file named .cfm.in, clifm will execute (via
3292       the system shell) its content  when  entering  this  directory  (before
3293       listing  files). If the file is named rather .cfm.out, its content will
3294       be executed immediately after leaving this directory (and before  list‐
3295       ing the new directory's content).
3296
3297       For  example,  if  you want a simple notification whenever you enter or
3298       leave your home directory, just create both .cfm.in and .cfm.out  files
3299       in the home directory with the following content:
3300
3301       For .cfm.in:
3302          printf "Entering %s ...\n" "$PWD"
3303
3304       For .cfm.out:
3305          printf "Leaving %s ...\n" "$OLDPWD"
3306
3307

15. FILE TAGS

3309       Etiqueta is clifm's built-in files tagging system
3310
3311       1. How Etiqueta works?
3312
3313       File  tags  are  created via symlinks using an specific directory under
3314       the  user's  profile:  ${XDG_CONFIG_DIR:-/home/USER/.config}/clifm/pro‐
3315       files/USER/tags
3316
3317       Every  time  a new tag is created, a new directory named as the tag it‐
3318       self is created in the tags directory. Tagged files are  just  symbolic
3319       links to the actual files created in the appropriate directory. For ex‐
3320       ample, if you tag ~/myfile.txt  as  work,  a  symbolic  link  to  ~/my‐
3321       file.txt, named myfile.txt will be created in tags/work.
3322
3323       2. Handling file tags
3324
3325       tag  is  the main Etiqueta command and is used to handle file tags. Its
3326       syntax is as follows:
3327
3328        tag [ls,  list]  [new]  [rm,  remove]  [mv,  rename]  [untag]  [merge]
3329       [FILE]... [[:]TAG]
3330
3331       NOTE:  the  :TAG notation is used for commands taking both file and tag
3332       names: 'tag FILES(s) :TAG ...', to tag files, and 'tag untag :TAG file1
3333       file2',  to  untag  files.  Otherwise, TAG is used (without the leading
3334       colon). For example: 'tag new docs', to create a new tag named docs, or
3335       'tag remove png', to delete the tag named png.
3336
3337       The following command shortcuts are available:
3338        ta    Tag files
3339        td    Delete tag(s)
3340        tl    List tags or tagged files
3341        tm    Rename (mv) tag
3342        tn    Create new tag(s)
3343        tu    Untag file(s)
3344        ty    Merge two tags
3345
3346       3. Usage examples
3347
3348       - List available tags:
3349
3350        tl
3351
3352       - Tag all .PNG files in the current directory as both images and png:
3353
3354        ta *.png :images :png
3355
3356       NOTE: Tags are created if they do not exist
3357
3358       - Tag all selected files as special:
3359
3360        ta sel :special
3361
3362       - List all files tagged as work and all files tagged as documents:
3363
3364        tl work documents
3365
3366       - Rename the tag documents as docs:
3367
3368        tm documents docs
3369
3370       - Merge the tag png into images:
3371
3372        ty png images
3373
3374       NOTE: All files tagged as png will be now tagged as images, and the png
3375       tag will be removed.
3376
3377       - Remove the tag images (untag all files tagged as images):
3378
3379        td images
3380
3381       - Untag a few files from the work:
3382
3383        tu :work file1 image.png dir2
3384
3385       NOTE: TAB completion is available to complete tagged  files.  If  using
3386       the FZF mode, multi-selection is also available via the TAB key.
3387
3388       4. Operating on tagged files
3389
3390       The  t:TAG  construct  (or tag expression) is used to operate on tagged
3391       files via any command, be it internal or external. A few examples:
3392
3393       - Print the file properties of all files tagged as docs:
3394
3395        p t:docs
3396
3397       NOTE: TAB completion is available to expand tag expressions into one or
3398       more  of  the corresponding tagged files. If using the FZF mode, multi-
3399       selection is also available via the TAB key.
3400
3401       - Remove all files tagged as images:
3402
3403        r t:images
3404
3405       - Run stat(1) over all files tagged as work and  all  files  tagged  as
3406       docs:
3407
3408        stat t:work t:docs
3409
3410       4.1 Operating on specific tagged files
3411
3412       NOTE: This feature, as always when multi-selection is involved, is only
3413       available when TAB completion mode is set to FZF. See the  TAB  comple‐
3414       tion subsection of the BUILT-IN-EXPANSIONS section above.
3415
3416       You might not want to operate on all files tagged as some specific tag,
3417       say work, but rather on some files tagged as work.  TAB  completion  is
3418       used to achieve this aim.
3419
3420       Let's  suppose  you  have  a  tag  named work which contains ten tagged
3421       files, but you need to operate (say, print the file properties) only on
3422       two of them, say, work1.odt and work2.odt:
3423
3424        p t:work<TAB>
3425
3426       The  list  of  files tagged as work will be displayed via FZF. Now just
3427       mark the two files you need using TAB, press Enter or  Right,  and  the
3428       full  path to both files will be inserted into the command line. So, 'p
3429       t:work' will be replaced by 'p /path/to/work1.odt /path/to/work2.odt'.
3430
3431

16. VIRTUAL DIRECTORIES

3433       CliFM is able to read and list files from  the  standard  input  stream
3434       (STDIN).  Each  file in the list should be an absolute path, terminated
3435       with a new line character (\n) and stripped from extra  characters  not
3436       belonging  to  the  path itself. The size of the input stream buffer is
3437       262MiB (65536 paths, provided each path takes PATH_MAX bytes  (4096  by
3438       default)).
3439
3440       Each file passed via standard input is stored as a symbolic link point‐
3441       ing to the original file in a temporary directory (called here  virtual
3442       directory)  with  read-only (0500) permissions. This directory, and all
3443       its contents, will be deleted at program exit.  Use  the  --virtual-dir
3444       command  line flag to specify a custom directory (it if does not exist,
3445       it will be created) instead of the default one, created in  the  system
3446       temporary  directory (usually /tmp/clifm/USER/vdir.XXXXXX, where XXXXXX
3447       is a random six digits string).
3448
3449       The user can operate on these files as if they were any  other  regular
3450       file,  since all operations performed on these symbolic links (provided
3451       the current working directory is the virtual directory where all  these
3452       files are stored) are performed on the target files and NOT on the sym‐
3453       bolic links themselves.
3454
3455       Once in the virtual directory, files are listed by default  using  only
3456       the  base  name  of the target file. For example, if the target file is
3457       /home/user/Downloads/myfile.tar.gz, this file will  be  listed  as  my‐
3458       file.tar.gz.  If this file already exists in the virtual directory (be‐
3459       cause there is another target  file  with  the  same  base  name,  say,
3460       /home/user/Documents/tars/myfile.tar.gz),  a  random  six digits suffix
3461       will be appended to the file (for instance, myfile.tar.gz.12Rgj6).
3462
3463       Since this listing mode does not allow the user to get a clear idea  of
3464       the  actual location of each listed file, a keybinding (by default Alt-
3465       w) is available to toggle short (base names only) and long file  names:
3466       in  this  latter case, file names are listed using the full path to the
3467       target file, replacing slashes by colons (:). For example, if the  tar‐
3468       get  file  is  /home/user/Downloads/myfile.tar.gz, it will be listed in
3469       the virtual directory as home:user:Downloads:myfile.tar.gz.
3470
3471       If you prefer the long names approach, you can use  the  --virtual-dir-
3472       full-paths command line flag.
3473
3474       Note: Bear in mind that the restore last path function is disabled when
3475       listing in this way.
3476
3477       CliFM provides to ways of using virtual directories:
3478
3479       1. Reading files from the standard input
3480
3481       2. Listing sets of files via the virtualize.sh plugin (which is in fact
3482       a special use case of point 1)
3483
3484       1. Standard input
3485
3486       Examples:
3487
3488       ls -Ad /var/* | clifm
3489
3490       This command will pass all files in the directory /var to CliFM
3491
3492       If  you  need  to perform more specific queries, you can use find(1) as
3493       follows:
3494
3495       find -maxdepth 1 -size +500k -print0 | tr ' ' '0 | sed 's/.//g' | clifm
3496
3497       The above command will pass all files in the current  directory  bigger
3498       than 500KiB to CliFM.
3499
3500       You can also use stream redirection:
3501
3502       ls -Ad $PWD/* > list.txt
3503        clifm < list.txt
3504
3505       2. The virtualization plugin
3506
3507       The  virtualize.sh  plugin,  bound by default to the vt action name, is
3508       intended to provide an easy way  of  listing  sets  or  collections  of
3509       files,  such  as selected, tagged, or bookmarked files. For example, to
3510       send all selected files to a virtual directory, you can issue this com‐
3511       mand:
3512
3513       vt sel
3514
3515       and, if you want rather files tagged as PDF:
3516
3517       vt t:PDF
3518
3519       Of course, individual files can also be used:
3520
3521       vt file1 file2 file3
3522
3523       Once  executed, the vt plugin will launch a new instance of CliFM (on a
3524       new terminal emulator window) where you can operate  on  the  specified
3525       files  as  if they were just normal files. Once done, quit this new in‐
3526       stance (via the q command) to return to the primary instance of CliFM.
3527
3528       Note: By default, the terminal emulator used is xterm(1), but can  eas‐
3529       ily be customized by just editing the plugin script (virtualize.sh).
3530
3531       If  navigating  the file system, you can quickly go back to the virtual
3532       directory using the -d option: vt -d. The navigation keys (see the KEY‐
3533       BOARD  SHORTCUTS  section  above) and the CLIFM_VIRTUAL_DIR environment
3534       variable are also available (Shift-Left/Shift-Right or  cd  $CLIFM_VIR‐
3535       TUAL_DIR).
3536
3537       Tip: Write an alias to make this even easier:
3538
3539       alias vtd='cd $CLIFM_VIRTUAL_DIR'
3540
3541

17. NOTE ON SPEED

3543       clifm  is by itself quite fast by default, but if speed is still an is‐
3544       sue, it is possible to get some extra performance.
3545
3546       The two most time consuming features are:
3547
3548        1) The files counter, used to print the amount of files  contained  by
3549       listed  directories.  Disabling this option produces a nice performance
3550       boost.
3551
3552        2) In normal mode, fstatat(3) is  used  to  gather  information  about
3553       listed  files.  Since  this function, especially when executed hundreds
3554       (and even thousands) of times, is quite time consuming, the light  mode
3555       was implemented as an alternative listing process omitting all calls to
3556       it.
3557
3558       When running in light mode, however, a few features are lost:
3559
3560        1. Only basic file classification is performed, namely, that  provided
3561       by  the d_type field of a dirent struct (see readdir(3)). Bear in mind,
3562       nonetheless, that whenever _DIRENT_HAVE_D_TYPE was not set  at  compile
3563       time,  or  in case of a DT_UNKNOWN value for a given entry (we might be
3564       facing a file system not returning the d_type value, for example,  loop
3565       devices),  clifm will fall back to stat(3) to get basic files classifi‐
3566       cation.
3567
3568        2. Color per file extension is disabled for performance reasons.
3569
3570        3. The marker for selected files (*) is lost as well: to keep track of
3571       selected files and thus recognize them in the current list of files, we
3572       make use of files device and inode number, which  is  provided  by  fs‐
3573       tatat(3).
3574
3575       Besides  these  two  features, a few more things can be disabled to get
3576       some extra speed (though perhaps  unnoticeable):  icons  (if  enabled),
3577       columns,  colors, and, if already running without colors, file type in‐
3578       dicators. Because listing lots of files could  be  expensive  and  time
3579       consuming,  you  can  also try to limit the amount of files printed for
3580       each visited directory (see the mf command above).
3581
3582       Despite the above, however, it is important to bear in mind that  list‐
3583       ing  speed  does not only depend on the program's code and enabled fea‐
3584       tures, but also on the terminal emulator used. Old, basic terminal emu‐
3585       lators  like  Xterm,  Aterm, and the kernel built-in console are really
3586       slow compared to more modern ones like Urxvt, Lxterminal, ST, and  Ter‐
3587       minator, to name just a few.
3588
3589       If  using  Xterm, a nice speed boost is provided by the fast scroll op‐
3590       tion: set fastScroll to true in your ~/.Xresources file. See xterm(1).
3591
3592

18. KANGAROO FRECENCY ALGORITHM

3594       The directory jumper function  is  designed  to  learn  the  navigation
3595       habits  of  the  user. The information is stored in a database (see the
3596       FILES section below) used to get the best match for a given string pro‐
3597       vided  by the user. In this sense, Kangaroo is like a quick, smart, and
3598       evolved cd function.
3599
3600       The information stored in the database, always per directory, is:
3601        a) Number of visits
3602        b) Date of first visit (seconds since the Unix epoch)
3603        c) Date of the last visit
3604        d) The full path to each visited directory
3605
3606       With this information it is possible to construct a ranking of directo‐
3607       ries to offer the user the most accurate matches for each query string.
3608       The matching algorithm takes into account mainly two factors: frequency
3609       and recency (which is why this kind of algorithm is often called a fre‐
3610       cency algorithm).
3611
3612       After getting an initial list of matches based on the  query  string(s)
3613       entered  by  the user, the frequency algorithm is applied on each entry
3614       in the list. The algorithm is quite simple:  (visits  *  100)  /  days-
3615       since-first-visit.  As  a  result, we get the average of visits per day
3616       since the day of the first visit (what we call the directory rank).
3617
3618       There are however some further steps  in  the  ranking  process:  Bonus
3619       points.
3620
3621       Extra  credits  or penalties are assigned based on the directories last
3622       access time according to the following simple algorithms:
3623        Within last hour:                                     rank * 4
3624        Within last day:                                      rank * 2
3625        Within last week:                                     rank / 2
3626        More than a week:                                     rank / 4
3627
3628       If the last query string matches the basename of a directory, the entry
3629       for  this  directory has 300 extra credits. This is done simply because
3630       we normally use directory basenames as query strings: they  are  easier
3631       to remember.
3632
3633       In  the same way, pinned directories get 1000 extra credits, bookmarked
3634       directories 500 credits, and directories currently in a  workspace  300
3635       credits.
3636
3637       For  example:  if  the query string is "test", /media/data/test will be
3638       matched. Now, if this directory was accessed within the last hour,  and
3639       its  rank  was  200,  it  becomes  800.  But, because the search string
3640       matches its basename, it gets 300 extra credits, and, if this directory
3641       is  in  addition  bookmarked and pinned, it gets 1500 extra credits. In
3642       this way the total rank of this directory in the  matching  process  is
3643       2600. In doing this, we have more chances of matching what the user ac‐
3644       tually wanted to match.
3645
3646       Once all entries in the initial list of matches have been filtered  via
3647       the  above  procedure  and ranked, we can return the best ranked entry.
3648       The higher rank a directory has, the more priority it has over the  re‐
3649       maining entries in the initial list of matches.
3650
3651       Automatic  maintenance  is  done  on the database applying a few simple
3652       procedures:
3653
3654        a) Each entry in the database is checked at startup to remove  non-ex‐
3655       istent directories.
3656
3657        b)  Once  the  rank of a directory falls below MinJumpRank (by default
3658       10), it is forgotten and deleted from  the  database.  The  MinJumpRank
3659       value  can  be  customized  in the configuration file. To make non-fre‐
3660       quently visited directories disappear quicker from  the  database,  in‐
3661       crease this value.
3662
3663        c)  Once  the  sum total of ranks reaches MaxJumpTotalRank (by default
3664       100000), each individual rank is divided by a dynamic  factor  so  that
3665       the  total rank becomes less than or equal to MaxJumpTotalRank. If some
3666       rank falls in the process below MinJumpRank, it  is  removed  from  the
3667       database.  MaxJumpTotalRank  can be modified in the configuration file.
3668       The higher the value of MaxJumpTotalRank,  the  more  time  directories
3669       will be kept in the database.
3670
3671       NOTE: Directories visited in the last 24 hours will not be removed from
3672       the database, no matter what their rank is.
3673
3674       The idea of 'frecency' was, as far as I know,  first  devised  and  de‐
3675       signed     by    Mozilla.    See    https://wiki.mozilla.org/User:Mcon‐
3676       nor/Past/PlacesFrecency. However, it is also implemented, though  using
3677       different  algorithms,  by different projects like autojump, z.lua, and
3678       zoxide.
3679
3680

19. ENVIRONMENT

3682       The following variables are read at initialization time:
3683
3684       NO_COLOR
3685              If set to any value, clifm will run colorless
3686
3687       CLIFM_NO_COLOR
3688              Same as NO_COLOR, but specific to clifm
3689
3690       CLIFM_FILE_COLORS
3691              A colon separated list of file type color codes in the same form
3692              specified above in the COLOR CODES section
3693
3694       CLIFM_EXT_COLORS
3695              Same as above, but for file extensions
3696
3697       CLIFM_IFACE_COLORS
3698              Same as above, but for different element of ClIFM's interface
3699
3700       CLIFM_FORCE_COLOR
3701              Force  the  use  of colors, even if the terminal informs that it
3702              does not support colors
3703
3704       CLIFM_FILTER
3705              Define a file filter. If set, this variable overrides the Filter
3706              option in the configuration file
3707
3708       CLIFM_SUDO_CMD
3709              Name  of  the  authenticator  program (used by the X command, to
3710              launch a new instance of CliFM as root, and the  Alt-v  keybind‐
3711              ing,  to  prepend  the  authenticator  program  name (by default
3712              "sudo", or "doas" if compiled on OpenBSD) to the current command
3713              line
3714
3715       FZF_DEFAULT_OPTS
3716              A  quoted  list  of options to be passed to FZF (if used for TAB
3717              completion)
3718
3719       Except when running in stealth mode, clifm sets the following  environ‐
3720       ment variables:
3721
3722       CLIFM  This variable is set to the path to the configuration directory.
3723              By inspecting this variable other programs can find out if  they
3724              were  spawned by clifm. It can also be used to quickly jump into
3725              the configuration directory: 'cd $CLIFM' or just '$CLIFM'
3726
3727       CLIFM_PLUGINS_HELPER
3728              Set to the full path to the plugins-helper script used  by  many
3729              plugins.
3730
3731       CLIFM_PROFILE
3732              This  variable  is set to the current profile of clifm (if using
3733              two or more instances of clifm  under  different  profiles,  the
3734              last  one will be used). Specially useful to develop clifm plug‐
3735              ins on a per profile basis.
3736
3737       CLIFM_SELFILE
3738              The path to the current selection file.
3739
3740       CLIFM_COLORLESS
3741              Set  to  1  if  running   colorless   (via   the   NO_COLOR   or
3742              CLIFM_NO_COLOR  environment variables, or the --no-color command
3743              line option).
3744
3745       CLIFM_BUS
3746              This variable contains the path to a  pipe  by  means  of  which
3747              plugins  can talk to clifm. See the PLUGINS section for more in‐
3748              formation..TP CLIFM_VIRTUAL_DIR This variable is set to the path
3749              to  the currently used virtual directory only if (and while) the
3750              virtual directory function is exectued. See the VIRTUAL DIRECTO‐
3751              RIES section above.
3752
3753       If  Notifications is set to false for the current prompt, the following
3754       variables are exported to the environment to be  used,  if  needed,  by
3755       your custom prompt:
3756
3757       CLIFM_STAT_SEL
3758              Current amount of selected files
3759
3760       CLIFM_STAT_TRASH
3761              Current amount of trashed files
3762
3763       CLIFM_STAT_ERROR_MSGS
3764              Current amount of error messages
3765
3766       CLIFM_STAT_WARNING_MSGS
3767              Current amount of warning messages
3768
3769       CLIFM_STAT_NOTICE_MSGS
3770              Current amount of notice messages
3771
3772       CLIFM_STAT_WS
3773              Current workspace number
3774
3775       CLIFM_STAT_EXIT
3776              Exit code of the last executed command
3777
3778       CLIFM_STAT_ROOT
3779              1 if user is root (UID = 0), 0 otherwise
3780
3781       CLIFM_STAT_STEALTH
3782              1 if running in stealth mode, 0 otherwise
3783
3784

20. SECURITY

3786       Since clifm executes OS commands, it needs to provide a way to securely
3787       run these commands, specially when it comes to untrusted  environments.
3788       Two  features  are provided to achieve this aim: secure environment and
3789       secure commands.
3790
3791       Both features are aimed to protect the program and the system  as  such
3792       from  malicious input, either coming from environment variables or from
3793       indirect input, that is to say, input coming not from the command  line
3794       (in  which  is assumed that it is the user herself who is executing the
3795       given command), but from files: this is the case of default  associated
3796       applications  (the mime command), autocommands, (un)mount commands (via
3797       the net command), just as profile and prompt commands.
3798
3799       In an untrusted environment, an attacker could cause unexpected and in‐
3800       secure  behavior  (even command injection) using environment variables,
3801       or inject malicious commands via indirect input, commands which will be
3802       later  executed  by  clifm  without  the user's consent (i.e. automati‐
3803       cally). This is why we provide a mechanism to minimize this danger:  if
3804       running  in an untrusted environment, the secure environment and secure
3805       commands features are there to prevent (at least as  far  as  possible)
3806       this kind of attacks.
3807
3808       A) Secure environment
3809
3810       Programs  inherit  the environment from the parent process. However, if
3811       this inherited environment is not trusted, not secure, it is  always  a
3812       good  idea to sanitize it using only sane values, preventing thus unde‐
3813       sired and uncontrolled input that might endanger the  program  and  the
3814       system itself.
3815
3816       The  secure-environment  function forces clifm to run on a such a sani‐
3817       tized environment.
3818
3819       There are two secure-environment modes, the regular, and the full  one.
3820       To  enable  the  regular  mode, run clifm with the --secure-env command
3821       line option. Otherwise, enable the full mode using --secure-env-full.
3822
3823       a) Regular: in this mode, the inherited environment is cleared,  though
3824       a few variables are preserved to keep clifm running as stable as possi‐
3825       ble. These preserved variables are: TERM, DISPLAY, LANG,  TZ,  and,  if
3826       FZF TAB completion mode is enabled, FZF_DEFAULT_OPTS.
3827
3828       The  following  variables  are set in an environment agnostic way (that
3829       is, securely):
3830                - HOME, SHELL, and USER are retrieved using getpwuid(3)
3831                - PATH is set consulting _PATH_STDPATH  (or  _CS_PATH  if  the
3832              former is not available)
3833                - IFS is set to a sane, hard-coded value: " \n\t"
3834
3835       b)  Full:  this mode is just like the regular mode, except that nothing
3836       is imported from the environment at all and only PATH and IFS  are  set
3837       (as  described above). Everything else remains unset, and is the user's
3838       responsibility to set environment variables (via the export  function),
3839       as needed. In this case, you might want to set, at least, TERM, and, if
3840       running in a graphical environment, DISPLAY.
3841
3842       Be aware that enabling secure-environment might break  some  functions,
3843       depending on the system configuration.
3844
3845       B) Secure commands
3846
3847       Some  commands  are automatically executed by clifm: (un)mount commands
3848       (via the net command), opening applications (via Lira), just as prompt,
3849       profile, and autocommands. These commands are read from a configuration
3850       file and then executed. Now, if an attacker has access to any of  these
3851       files,  she might force clifm to run any arbitrary command, and thereby
3852       possibly exposing the whole system.
3853
3854       Every time a command is thus  automatically  executed  via  the  system
3855       shell  (i.e.  without  the  user's direct consent), the secure commands
3856       function performs three different, though intrinsically  related  tasks
3857       aimed to mitigate command injection and/or unexpected behavior:
3858
3859       a) Only command base names are allowed: nano, for instance, is allowed,
3860       while /usr/bin/nano is not. In this way we can guarantee that only com‐
3861       mands  found  in  a sanitized PATH (see the point c below) will be exe‐
3862       cuted. This is done in order to prevent the execution of  custom  bina‐
3863       ries/scripts, for example: /tmp/exec_file.
3864
3865       b)  Commands are validated using a whitelist of safe characters (mostly
3866       to prevent stream redirection, conditional execution, and  so  on,  for
3867       example,  'your_command;some_injected_command'). This set of safe char‐
3868       acters slightly vary depending on the command being  executed  (because
3869       they use different syntaxes):
3870
3871               Net command:                   a-zA-Z -_.,/=
3872               Prompt, profile, autocommands: a-zA-Z -_.,/"'
3873               Mime command:                  a-zA-Z -_.,%&
3874
3875       Commands  containing at least one unsafe character will be rejected. Of
3876       course, we cannot (and should not) prevent what looks like  legitimate,
3877       benign  commands from being executed. But we can stop commands that, in
3878       an untrusted environment, look suspicious. This is specially  the  case
3879       of  stream  redirection  (>), pipes (|), sequential (;) and conditional
3880       execution (&&, ||),  command  substitution  ($(cmd)),  and  environment
3881       variables ($VAR).
3882
3883       c) Unless already running in a secure environment (via the --secure-env
3884       or --secure-env-full options), a sanitized environment will be  created
3885       for  the  command  to be executed (returning afterwards to the original
3886       environment). The values for this secure environment are as follows:
3887
3888               PATH               Taken from _PATH_STDPATH (or _CS_PATH)
3889               IFS                " \t\n"
3890               USER, HOME, SHELL  Retrieved from  the  password  database  via
3891              getpwuid(3)
3892               LOGNAME            Same as USER
3893               DISPLAY, TZ, LANG, TERM Imported from the environment and sani‐
3894              tized
3895               LC_ALL             Same as LANG
3896
3897

21. MISCELLANEOUS NOTES

3899       Sequential and conditional execution of commands:
3900
3901       For each of the internal commands (see the COMMANDS section above)  you
3902       can  use  the  semicolon to execute them sequentially and/or the double
3903       ampersand to execute them conditionally. Example: cmd1; cmd2 && cmd3.
3904
3905       Though you can use here external commands as well, bear in  mind  that,
3906       whenever at least one internal command is involved in a chained list of
3907       commands, clifm will take care of executing this list  (simply  because
3908       the  system  shell  isn't able to understand any of these commands), so
3909       that no shell inter-process function (like pipes), nor any stream redi‐
3910       rection  or  shell  expression  (like  IF  blocks or FOR loops) will be
3911       available. However, the shell is still used to run single external com‐
3912       mands  found  in  the chained list, but in isolation from the remaining
3913       commands in this list.
3914
3915       As a rule of thumb, when using chained commands make sure to always ex‐
3916       pand ELN's to avoid undesired consequences. If, for instance, you issue
3917       this command: touch aaa && r 3, you will end up  deleting  a  file  you
3918       were not intended to delete, simple because after the successful execu‐
3919       tion of the first command, the ELN 3 corresponds  now  to  a  different
3920       file.
3921
3922
3923       External commands:
3924
3925       clifm  is  not  limited to its own set of internal commands, like open,
3926       sel, trash, etc., but it can run any external command as well, provided
3927       external  commands  are allowed (see the -x option, the ext command, or
3928       the configuration file). By beginning the external command by  a  colon
3929       or a semicolon (':', ';') you tell clifm not to parse the input string,
3930       but instead letting this task to the system  shell.  However,  bear  in
3931       mind  that clifm is not intended to be used as a shell, but as the file
3932       manager it is.
3933
3934
3935       Terminal emulators and non-ASCII characters:
3936
3937       It depends on the  terminal  emulator  you  use  to  correctly  display
3938       non-ASCII  characters  and  characters from the extended ASCII charset.
3939       If, for example, you create a file named "ñandú" (the Spanish word  for
3940       'rhea'),  it will be correctly displayed by the Linux console, Lxtermi‐
3941       nal, and Urxvt, but not thus by Xterm or Aterm.
3942
3943
3944       .Xresources:
3945
3946       clifm will create $HOME/.Xresources, if it doesn't already  exist,  for
3947       keybindings  to  work  correctly. However, some (and even all) of these
3948       keybindings might not work in some terminals, though they do work  fine
3949       on the console (TTY), xvt-like terminal emulators like Urxvt and Aterm,
3950       and xterm-like ones. However, keybinding can be edited freely  to  make
3951       them work on any terminal emulator.
3952
3953
3954       Spaces and escape codes:
3955
3956       When dealing with file names containing spaces, you can use both single
3957       and double quotes (ex: "this file" or  'this  file')  plus  escape  se‐
3958       quences (ex: this\ file).
3959
3960
3961       Starting path:
3962
3963       By default, clifm starts in the current working directory. However, you
3964       can always specify a different path by passing it as positional parame‐
3965       ter.  Ex:  clifm  /home/user/misc.  You can also permanently set up the
3966       starting path in the clifm configuration file. If  the  RestoreLastPath
3967       option is set to true, clifm will start instead in the last visited di‐
3968       rectory (and in the last used workspace), unless the starting path (and
3969       optionally the workspace number) is specified via command line.
3970
3971
3972       Default profile:
3973
3974       clifm's  default  profile  is "default". To create alternative profiles
3975       use the -P command line option or the 'pf add' command (see above).
3976
3977

22. FILES

3979       CONFIGURATION FILE
3980              The configuration file  is  $XDG_CONFIG_HOME/clifm/profiles/PRO‐
3981              FILE/clifmrc.  It  will  be  copied  from DATADIR/clifm (usually
3982              /usr/local/share/clifm), and if not found, it  will  be  created
3983              anew  with default values. Here you can permanently set up clifm
3984              options, define aliases, prompt commands, and autocommands.
3985
3986              A description for each option in the configuration file  can  be
3987              found in the configuration file itself.
3988
3989       PROFILE FILE
3990              The profile file is $XDG_CONFIG_HOME/clifm/profiles/PROFILE/pro‐
3991              file.clifm.  In this file you can add those commands you want to
3992              be  executed  at startup. You can also permanently set here some
3993              custom variables, ex: 'dir="/path/to/dir"'. This variable may be
3994              used  as  a shortcut to that directory, for instance: 'cd $dir'.
3995              Custom variables could also be temporarily defined via the  com‐
3996              mand  prompt: Ex: user@hostname ~ $ var="This is a test". Tempo‐
3997              rary variables will be removed at program exit.
3998
3999       PROMPTS FILE
4000              This  file  contains  prompts  definitions  and  is  located  in
4001              DATADIR/clifm/prompts.clifm.  It  will  be  copied automatically
4002              into $XDG_CONFIG_HOME/clifm/prompts.clifm if it  doesn't  exist.
4003              The  Prompt line in the color scheme file should point to one of
4004              the prompt names defined in this file. See  the  PROMPT  section
4005              for more information.
4006
4007       KEYBINDINGS FILE
4008              The  keybindings file is $XDG_CONFIG_HOME/clifm/keybindings,cfm.
4009              It will be copied from DATADIR/clifm (usually /usr/share/clifm),
4010              and  if  not found, it will be created anew with default values.
4011              This file is used to specify the  keyboard  shortcuts  used  for
4012              some ClifM's functions. The format for each keybinding is always
4013              "keyseq:function", where 'keyseq' is an escape sequence  in  GNU
4014              emacs  style.  A  more  detailed explanation can be found in the
4015              keybindings file itself.
4016
4017       PLUGINS DIRECTORY
4018              The directory used to store programs or scripts  pointed  to  by
4019              actions (in other words, plugins) is DATADIR/clifm/plugins (usu‐
4020              ally /usr/share/clifm/plugins). To edit these plugins copy  them
4021              to  $XDG_CONFIG_HOME/clifm/plugins and edit them to your liking.
4022              Plugins in this local directory take precedence  over  those  in
4023              the system one.
4024
4025       COLORS DIRECTORY
4026              This  directory, $DATADIR/clifm/colors, contains available color
4027              schemes (or just themes) as files with a .clifm  extension.  You
4028              can  copy  these themes to the local colors directory ($XDG_CON‐
4029              FIG_HOME/clifm/colors) and edit them to  your  liking  (or  just
4030              create  new themes from the ground up). Themes in the local col‐
4031              ors directory take precedence over those in  the  system  direc‐
4032              tory. You can create as many themes as you want by just dropping
4033              them into the local colors directory. The default  color  scheme
4034              file (default.clifm) can be used as a guide.
4035
4036       ACTIONS FILE
4037              The   file   used   to   define   custom  actions  is  $XDG_CON‐
4038              FIG_HOME/clifm/profiles/PROFILE/actions.clifm. It will be copied
4039              from DATADIR/clifm (usually /usr/share/clifm), and if not found,
4040              it will be created anew with default values.
4041
4042       MIMELIST FILE:
4043              The  mime  list  file  is   $XDG_CONFIG_HOME/clifm/profiles/PRO‐
4044              FILE/mimelist.clifm.  It is a list of file types and file exten‐
4045              sions and their associated applications used by lira. It will be
4046              copied from DATADIR/clifm (usually /usr/share/clifm).
4047
4048       BOOKMARKS FILE
4049              The   bookmarks   file  is  $XDG_CONFIG_HOME/clifm/profiles/PRO‐
4050              FILE/bookmarks.clifm Just the list of the user's bookmarks  used
4051              by the bookmarks function.
4052
4053
4054       HISTORY FILE
4055              The   history   file   is  ~/.config/clifm/profiles/PROFILE/his‐
4056              tory.clifm.  A list of commands entered by the user and used  by
4057              the history function.
4058
4059       LOG FILE
4060              The    log    file    is    $XDG_CONFIG_HOME/clifm/profiles/PRO‐
4061              FILE/log.clifm.  This file contains CliFM's logs. There are  two
4062              kinds of logs: 1. messages, and 2. commands.
4063
4064              Message  logs  are  a record of errors and warnings and have the
4065              following form: "m:[date] msg". Enable these logs using the Logs
4066              option in the configuration file, the --enable-logs flag, or the
4067              log command.
4068
4069              Command logs keep track of external commands and  internal  com‐
4070              mands  able to modify the filesystem. These logs have this form:
4071              "c:[date] current_working_directory:cmd". Enable these logs  via
4072              the CmdLogs option in the configuration file.
4073
4074       KANGAROO DATABASE
4075              The   directory   jumper   database   is   stored  in  $XDG_CON‐
4076              FIG_HOME/clifm/profiles/PROFILE/jump.clifm.
4077
4078       NOTE: If $XDG_CONFIG_HOME is not set, $HOME/.config/ is used instead.
4079
4080

23. EXAMPLES

4082       NOTE: Always try TAB. TAB completion is available for many things
4083
4084       NOTE 2: Suggestions for possible completion will be printed next to the
4085       text typed so far. To accept the given suggestion, press Right (or Alt-
4086       f to accept only the first suggested word). Otherwise,  the  suggestion
4087       is just ignored
4088
4089       Get help: F1: manpage F2: keybindings F3: commands
4090
4091       - Change directory to /etc:
4092
4093           /etc
4094
4095       -  Change-to/open  the directory/file whose ELN is 5 in the current di‐
4096       rectory:
4097
4098           5
4099
4100       TIP: Press TAB to make sure 5 is the file you want. If the  suggestions
4101       system  is enabled, just pay attention to the suggestion. Press Left to
4102       accept the given suggestion
4103
4104       - Open myfile.txt (with the default associated application):
4105
4106           myfile.txt
4107
4108       - Open myfile.txt using vi:
4109
4110           myfile.txt vi (or vi myfile.txt)
4111
4112       - Open the file whose ELN is 24 in the background:
4113
4114           24&
4115
4116       - Jump to ~/media/data/docs/work/mike/xproject:
4117
4118           j xproj
4119
4120       NOTE: This depends however on the database ranking. For more  accuracy:
4121       'j mike xproj'
4122
4123       - Go back to the directory you came from:
4124
4125           b (or Shift-Left or Alt-j)
4126
4127       NOTE:  Enter  f,  or press Shift-Right or Alt-k to go back to the first
4128       directory
4129
4130       - Create a new file named myfile and a new directory named mydir:
4131
4132           n myfile mydir/
4133
4134       NOTE: Since clifm is integrated to the system shell, you can  also  use
4135       any  of  the  shell  commands  you usually use to create new files. Ex:
4136       'touch myfile' or 'nano myfile'
4137
4138       - Change to detail/long view mode:
4139
4140           Alt-l
4141
4142       - Print the properties of the file whose ELN is 4:
4143
4144           p4
4145
4146       - Reprint the list of files in the current directory:
4147
4148           rf
4149
4150       - Select all c files in the current directory:
4151
4152           s *.c
4153
4154       - Select multiple files in the current directory by ELN:
4155
4156           s 1-4 8 19-26
4157
4158       - List selected files:
4159
4160           sb
4161
4162       - Deselect a few files:
4163
4164           ds
4165
4166       - Send a few files to the trash can:
4167
4168           t 1-3 *.old
4169
4170       - Undelete trashed files:
4171
4172           u
4173
4174       - Remove files from the trash can:
4175
4176           t del
4177
4178       - Empty the trash can:
4179
4180           t empty
4181
4182       - Tag all PDF files in the current directory as mypdfs:
4183
4184           ta *.pdf :mypdfs
4185
4186       - Print the file properties of all files tagged as mypdfs:
4187
4188           p t:mypdfs
4189
4190       - Search for all PDF files in the current dirctory:
4191
4192           /*.pdf
4193
4194       - Create a directory named mydir and cd into it:
4195
4196           n mydir/ && mydir
4197
4198       - Copy selected files into the current directory:
4199
4200           c sel
4201
4202       - Remove all selected files:
4203
4204           r sel
4205
4206       NOTE: To remove files in bulk via a text editor use the rr command.
4207
4208       - Rename the file whose ELN is 12:
4209
4210           m12
4211
4212       - Bookmark mydir:
4213
4214           bm add mydir
4215
4216       - Open the bookmarks screen. Once there, enter the bookmark ELN (1 ...)
4217       or its hotkey ([xx]) to open it:
4218
4219           bm (or Ctrl-b)
4220
4221       - Switch to workspace 2:
4222
4223           ws2 (or Alt-2)
4224
4225       - View and/or edit the configuration file:
4226
4227           edit (or F10)
4228
4229       - Change to profile test:
4230
4231           pf set test
4232
4233       - Show hidden files:
4234
4235           hf on (or Alt-.)
4236
4237       List available actions/plugins:
4238
4239           actions
4240
4241       - Want file previews?
4242
4243           - (yes, just a dash)
4244
4245       NOTE:  This  runs  the plugin fzfnav.sh. Take a look at the manpage for
4246       needed dependencies
4247
4248       - Want icons?
4249
4250           icons on
4251
4252       - I'm tired, quit:
4253
4254           q
4255
4256       There is a lot more you can do, but this should be enough  to  get  you
4257       started.
4258
4259

EXIT STATUS

4261       clifm returns the exit status of the last executed command
4262
4263

CONFORMING TO

4265       clifm is C99 compliant, and, if compiled with the _BE_POSIX flag, it is
4266       POSIX.1-2008 compliant as well. If not, just a single  non-POSIX  func‐
4267       tion is used: statx(2) (Linux specific), to get files birth time.
4268
4269

BUGS AND FEATURE REQUESTS

4271       Report at <https://github.com/leo-arch/clifm/issues>
4272
4273

AUTHOR

4275       L. M. Abramovich
4276
4277
4278
4279clifm 1.7                        Aug 24, 2022                         CLIFM(1)
Impressum