The KISS file manager: CLI-based, ultra-lightweight, lightning fast, and written in C

Overview

The KISS file manager: CLI-based, ultra-lightweight, lightning fast, and written in C

clifm clifm-git clifm-colors-git privacy License


Did I say it's fast?

Rationale

Why in this world do we need another file manager? In the first place, just because I can do it, write it, and learn (a lot) in the process, just because this is a free world, and very specially, a free community; and, needless to say, alternatives are at the heart of freedom.

Secondly, because I'm sure I'm not the only person in this world looking for a non-bloated, KISS file manager: it just does whatever needs to be done using as little resources as possible. No GUI, no curses, but just a command line, shell-like file manager: 5MiB of RAM and 400KiB of disk space (plus some willingness to try something different and new) is all you need.

Finally, because CliFM, unlike most file managers out there, is certainly a file manager, but also a shell extension. Almost everything you do on your shell can be done in this file manager as well: search for files, copy, rename, and trash some of them, but, at the same time, update/upgrade your system, add some cronjob, stop a service, and run nano (or vi, or emacs, if you like).

Description

CliFM is a completely command-line-based, shell-like file manager able to perform all the basic operations you may expect from any other FM. Besides these common operations, such as copy, move, remove, etc, CliFM most distinctive features are:

  • It is REALLY CLI-based. No GUI nor TUI or curses at all, just a command line. Since it does not need any GUI, it can run on the Linux built-in console and even on a SSH or any other remote session.

  • With a memory footprint below 5 MiB and a disk usage of 0.5 MiB, it is incredibly lightweight and fast, and as such, able to run on really old hardware.

fast

  • The use of short (and even one-character) commands, and list numbers (ELN's) for filenames. For example, instead of typing: cp file1 file2 file3 file4 dir/, you can do this: c 1-4 7. Shorter and quicker. If the auto-cd and auto-open functions are enabled, which is the default, you can change to directories or open files by just entering the corresponding ELN. So, instead of cd 12 or o 12 you can just enter 12; even shorter and quicker. As a plus, ELN's can also be used with external commands. Example: diff 1 5 or ls -l 12 14. If numbers are a bit tricky to you, as they are to me, you can use the TAB key to expand the ELN to the corresponding filename. So, type r 56, then TAB, and it becomes r filename.

  • Bookmarks: With CliFM bookmarks function, accessing your preferred files and/or directories could be as easy as this: bm (or Alt-b), to call the bookmarks function, and then 1 (or whatever is the number corresponding to your bookmark).

bookmarks

  • Files selection: the ability to select (and deselect) files from here and there, even in different instances of the program, and then operate on them as you whish via the Selection Box or the sel keyword. Example: s 1 4 56 33 will send the files corresponding to these ELN's to the Selection Box. Then, by typing sb you can check the contents of the Selection Box. Let's suppose you want to copy a couple of files from your home directory to some distant path, say /media/data/misc. Instead of copying all these files individually, you just select the files and then tell the paste command where to copy them:

s 1 2 3 6 (or s 1-3 6) and then paste sel /media/data/misc

The selection function supports wildcards, regular expressions, inverse matching, filetype filter and path specification. For example, to list all regular files in the /etc directory, except those ending with .conf, issue this command: s !*.conf -r :/etc, or, using a regular expression: s !.*\.conf$ -r :/etc.

You can also use the 'sel' keyword with external commands. Example: s 1-4 7 10 && file sel.

Of course, you can deselect some or all selected files whenever you want with the desel or ds command: ds *, or just press Alt-d.

selection box

  • Open files without the need to specify any program. Via lira (the built-in resource opener), if no program was specified, CliFM will open the file with the default program associated to that kind of files. To open a file may be as simple as this: o 12, or o 12 & if you want it running in the background. Of course, you can also set a custom resource opener.

  • Quick search: type /REGEX and CliFM will list all matches for the corresponding REGEX pattern. Example: /.*\.png$ will list all the PNG files in the current directory. If you want to search for files in another directory, just tell the search function where to search: /.*\.png$ /media/images. And, if you want to further filter the search, you still can specify what kind of files you want. For example: /[.-].*d$ -d /etc will list all directories (-d) in /etc containing a dot or a slash and ending with 'd'. The quick search function also supports invert search: prepend the exclamation mark (!) to negate or reverse a given search pattern. For example: !.*s$ -d /etc will match all directories in /etc NOT ending with 'd', just as !D* will match all files in the current directory not starting with 'D'.

quick search

  • A Freedesktop compliant trash system to be able to recover deleted files.

  • Extended color codes: Just like the ls command, CliFM uses customizable color codes to identify file types and extensions. However, and unlike ls, CliFM is also able to distinguish between empty and non-empty files or directories, broken and non-broken symlinks, files and directories with or without read permission, multi-hardlink files, and more. Once in CliFM, type colors or cc to see the list of currently used color codes.

colors

  • Files counter: It also displays the amount of files contained by listed directories or symlinks to directories.

dirs

  • Directory history map: Keep in sight previous, current, and next entries in the directory history list for easiest and fastest navigation through visited directories.

  • PLUGINS via custom actions: Use custom action names, as if they were any other command, to run programs or scripts written in any language and extend thus CliFM functionality to fit your needs. This is basically an easy way of building custom commands for CliFM.

  • Stealth mode: Leave no trace on the host system. No file is read, no file is written.

  • Quickly and easily navigate through the jump database (i.e. a list of visited directories) via Kangaroo, a built-in directory jumper function similar to autojump, z.lua, and zoxide.

dirjump

  • Batch link: Create multiple symbolic links at once.

  • Icons support 😏 (depends on the icons-in-terminal project)

  1. Install icons-in-terminal.
  2. Run CliFM with the --icons command line option, or, once in the program, enter icons on.

icons

  • NEW: Fastback function

fastback

Because file manager, but also half-shell, CliFM also provides the following features:

  • Unicode suppport
  • TAB-completion for commands, paths, ELN's, profiles, bookmarks, color schemes, and the directory jumper function
  • Bash-like quoting system
  • History function
  • Shell commands execution
  • Glob and regular expressions, including inverse matching
  • Aliases
  • Logs
  • Prompt and profile commands
  • Bash-like prompt customization
  • Sequential and conditional commands execution
  • User profiles
  • Customizable keyboard shortcuts
  • Lira, a built-in resource opener supporting both extension and mimetype matching. NEW: Lira supports now regular expressions.
  • Mas, a built-in pager for files listing
  • Eleven sorting methods: name, size, atime, btime, ctime, mtime, version, extension, inode, owner, and group. It also supports reverse sorting.
  • Bulk rename
  • Archives and compression support (including Zstandard and ISO 9660)
  • Auto-cd and auto-open
  • Symlinks editor
  • Disk usage
  • CD on quit, file picker (as shell functions)
  • Plugins: PDF reader, image/video previews, wallpaper setter, music playlist, updates check, drag and drop, finder, jumper, clipboard, FZF navigation/file previewing (NEW: including support for Ranger's scope.sh file previewer script and pistol), FZF selection, interactive help, and search files by content via Ripgrep (NEW)
  • Batch links
  • Read and list files form standard input
  • Exclude certain groups of filenames via the files filter using regular expressions
  • Up to eight workspaces
  • Fused parameters for ELN's
  • Advcpmv support (cp and mv with a progress bar)
  • NEW: Four customizable keybindings for custom plugins
  • Color schemes

NOTE: By default, CliFM ships only one color scheme, but more are provided by clifm-colors. The package is also available in the AUR.

colors

Finally, all CliFM options could be handled directly via command line, by passing parameters to the program, or via plain text configuration files, located in $XDG_CONFIG_HOME/clifm/.

Insofar as it is heavily inspired by the KISS principle, CliFM is fundamentally aimed to be lightweight, fast, and simple. And if you think it's not fast enough, you can always try the light mode to make it even faster.

Dependencies:

glibc and coreutils, of course, but also libcap, acl, file, and readline. For Archlinux users, all these dependenciess are part of the core reposiroty. In Debian systems two packages must be installed before compilation: libcap-dev and libreadline-dev. In Fedora based systems you need libcap-devel and readline-devel.

Optional dependencies: sshfs, curlftpfs, and cifs-utils (for remote filesystems support); atool, archivemount, genisoimage, p7zip, and cdrtools (for archiving and compression support), and icons-in-terminal to enable the icons feature.

Compiling and Running CliFM:

Arch Linux

You'll find the corresponding packages on the AUR: the stable and the development version.

Of course, you can also clone, build, and install the package using the PKGBUILD file:

$ git clone https://github.com/leo-arch/clifm.git
$ cd clifm
$ makepkg -si

Other Linux distributions (or FreeBSD):

  1. Clone the repository

     $ git clone https://github.com/leo-arch/clifm.git
     $ cd clifm
    
  2. You have two options here:

Via make

Run make (this is the recommended procedure) as follows:

$ sudo make install

You should find the binary file in /usr/bin, so that you can run it as any other program:

$ clifm

To uninstall clifm issue this command wherever the Makefile is located:

$ sudo make uninstall

Manually via gcc (tcc and clang also work).

On Linux:
$ gcc -O3 -march=native -fstack-protector-strong -s -o clifm clifm.c -lcap -lreadline -lacl

To enable POSIX compliance, pass this option to the compiler: -D_BE_POSIX. The only two features disabled in this way are: a) files birth time, only available on Linux via statx(2), which is Linux-specific, and strverscmp(3), a GNU extension used to sort files by version.

On FreeBSD:
$ gcc -O3 -march=native -fstack-protector-strong -s -o clifm clifm.c -lintl -lreadline

Run the binary file produced by gcc:

$ ./clifm

Of course, you can copy this binary to /usr/bin or /usr/local/bin, or anywhere in your PATH, and then run the program as always:

$ clifm

Do not forget to install the manpage as well (the full help is in here):

$ sudo cp manpage /usr/share/man/man1/clifm.1
$ sudo gzip /usr/share/man/man1/clifm.1

Then you can access the manpage as always: man clifm

Finally, copy the plugins to the local plugins directory:

$ cp -r /usr/share/clifm/plugins $HOME/.config/clifm

Support

CliFM is C99 and POSIX-1.2008 compliant (if compiled with the _BE_POSIX flag). It works on Linux and FreeBSD, on i686, x86_64, and ARM architectures.

License

This project is licensed under the GPL version 2 (or later) license. See the LICENSE file for details.

First steps

Try the help command to learn more about CliFM. Once in the CliFM prompt, type help or ?. To jump into the COMMANDS section in the manpage, simply enter cmd or press F2. Press F1 to access the full manpage and F3 to access the keybindings help page.

Just try it and let me know. It gets better and better. I myself use it as my main, and indeed only, file manager; it couldn't be so bad, isn't it?

Comments
  • `br` fails with `mime: /tmp//clifm/user/.clifmXXXXX: No associated application found`

    `br` fails with `mime: /tmp//clifm/user/.clifmXXXXX: No associated application found`

    Describe the bug Kinda embarrassed about reporting to this one, because the developer has the most awesome documentation I have seen.

    Attempting to rename a bunch of files with the php extension, and am continuously running into the same error.

    mime: /tmp//clifm/user/.clifmXXXXX: No associated application found
    br: Inappropriate file type or format
    

    To Reproduce Steps to reproduce the behavior:

    1. Run br file\(*\).php or br file*.php
    2. Then see error

    Expected behavior I have yet to get this command to work correctly, so I can only imagine nvim is supposed to open a temp file listing all the files desired to be renamed.

    Desktop (please complete the following information):

    • OS: OpenBSD
    • Terminal: kitty
    • CliFM version: Latest
    • Installation source: Git

    Additional context

    Mime file settings. (Just FYI, [F6] doesn't work either)

    !X:N:$XDG_CONFIG/clifm/%f=nvim
    !X:N:/tmp/clifm/user/%f=nvim
    
    !X:E:^cfm$=nvim
    !X:E:^clifm$=nvim
    
    X:(^text/.*|application/json|inode/x-empty)=nvim-qt;emacs;ed;leafpad;mousepad;kate;gedit;pluma
    !X:(^text/*|application/json|inode/x-empty)=nvim;micro;jed;nano;vi;emacs;ed
    !X:^text$=nvim
    
    .*=pistol;xdg-open;mimeo;mimeopen -n;whippet -m;open;linopen;
    
    question solved Not our issue 
    opened by anoduck 38
  • macOS build fixes

    macOS build fixes

    Fix all build errors except memrchr, which does not exist on macOS. See https://www.gnu.org/software/gnulib/manual/html_node/memrchr.html.

    cc -o clifm src/*.c -I/opt/local/include -L/opt/local/lib
    src/aux.c:207:25: error: implicit declaration of function 'memrchr' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                                    const char *slash = memrchr(res, '/', res_len);
                                                        ^
    src/aux.c:207:25: note: did you mean 'memchr'?
    /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/string.h:70:7: note: 'memchr' declared here
    void    *memchr(const void *__s, int __c, size_t __n);
             ^
    
    opened by l2dy 29
  • Log from outside files interferes on stuff

    Log from outside files interferes on stuff

    damn bro, caught in 1366x768p 📷

    https://user-images.githubusercontent.com/98880063/164325010-49d9040e-73d4-4d87-a72e-465679bfdb5b.mp4

    https://user-images.githubusercontent.com/98880063/164325015-3afc4d8c-6e17-4ef6-bee4-b6f432f3df20.mp4

    this even caused clifm to hang i coundnt do anything and had to close the window

    improvement done 
    opened by DNDEBUG 27
  • Option to have a list of programs in the clifmrc

    Option to have a list of programs in the clifmrc

    add an option on clifmrc to list what programs clifm can run instead of having to read everythign from $PATH this would also help to prevent mistakes or wasting time with tab

    also an option to make the name of the binaries explicit so the user will have to explicitly tipe the name of the binary to be able to run it

    and clifm causes some mistakes with options from other programs i noticed it with wget and aria2c so it would be good to only accept the programs options after the name of the program and if the user wnats to use something from clifm he will have to specify lets say i want to do somethign with the file 20

    program option option $20 i don't know how you could do that and i don't think using $ is a good idea maybe $ELN20

    so the moment i tipe the program name clifm stops listening unless i set some flag to use clifm options

    improvement done 
    opened by DNDEBUG 25
  • ac/ad overrides 'lira' config

    ac/ad overrides 'lira' config

    I have configured lira to open cbr/cbz files with zathura, and xopp with xournalpp, but as these files are basically archive clifm opens them using ac. I think if there is association defined in mimelist.cfm it should be preferred.

    bug 
    opened by Docbroke 21
  • build failure

    build failure

    src/name_cleaner.c:323:13: error: 'curlen' undeclared (first use in this function); did you mean 'cur_len'?
      323 |         if (curlen == 3 && *p == '.' && *(p + 1) == '.' && !*(p + 2))
          |             ^~~~~~
          |             cur_len
    
    
    solved 
    opened by Docbroke 17
  • warning: 'memchr' specified bound 4096 exceeds source size 8 (and similar)

    warning: 'memchr' specified bound 4096 exceeds source size 8 (and similar)

    Describe the bug There are quite a few instances during compilation warning about memchr out of bounds.

    /builddir/build/BUILD/clifm-1.6/src/strings.c:185:33: warning: 'memchr' specified bound 4096 exceeds source size 8 [-Wstringop-overrea
    d]
      185 |         return (size_t)((char *)memchr(s, '\0', MAX_STR_LEN) - s);
          |                                 ^
    /builddir/build/BUILD/clifm-1.6/src/config.c: In function 'read_config':
    /builddir/build/BUILD/clifm-1.6/src/config.c:2069:30: note: source object allocated here
     2069 |                         char opt_str[SUG_STRATS + 1] = "";
          |                              ^
    In function 'xstrnlen',
        inlined from 'get_last_path.isra' at /builddir/build/BUILD/clifm-1.6/src/init.c:2254:28:
    /builddir/build/BUILD/clifm-1.6/src/strings.c:185:33: warning: 'memchr' specified bound 4096 exceeds source size 4094 [-Wstringop-over
    read]
      185 |         return (size_t)((char *)memchr(s, '\0', MAX_STR_LEN) - s);
          |                                 ^
    

    Full build log: https://kojipkgs.fedoraproject.org//work/tasks/9805/90929805/build.log

    To Reproduce Steps to reproduce the behavior:

    1. Compile code with full verbosity.

    Expected behavior No potential memory out of bounds scenarios.

    Screenshots N/A

    Desktop (please complete the following information):

    • OS: Fedora (all versions)
    • Terminal N/A
    • CliFM version 1.6
    • Installation source GitHub source package

    Additional context N/A

    bug solved 
    opened by jonathanspw 16
  • Questions about trashing

    Questions about trashing

    have you made sure that deleting stuff in the trash only deletes files there? might be dangerous if for example a symbolic link directs to ~ and clifm deletes someone's home folder also is there an option to print a list of files being deleted? also clifm should ask for confirmation when deleting a file outside the trash

    solved support 
    opened by DNDEBUG 16
  • clifm should respect the user's `$EDITOR`

    clifm should respect the user's `$EDITOR`

    clifm seems to always edit text files using nano despite my globally having configured $EDITOR to launch vim. The $EDITOR variable is supported by many programs, and has been a CLI standard for years. clifm should respect the users choice if they have $EDITOR set, and if not, then fall back to nano. Most notably git respects the $EDITOR variable, and I imagine a lot of people have this set because of that.

    More info: https://bash.cyberciti.biz/guide/$EDITOR_variable

    improvement done 
    opened by scottchiefbaker 16
  • issues in using m (move) command

    issues in using m (move) command

    I found some difficulties in using m command to change file name.

    1. Once you start changing file name, with m there is no way to cancel and go back to original name, other than typing it again.
    2. Sometimes ( I don't know how to reproduce), after m <file>, when I move to the beginning or middle of filename and start deleting/editing characters, suddenly cursor appears at different location editing something else in the filename.
    bug working on it 
    opened by Docbroke 14
  • Which tool is used for previewing gifs?

    Which tool is used for previewing gifs?

    Hi there! nice cli file manager :D . which tool is used for previewing gifs in clifm? ueberzug? all gif cli viewers I have seen convert the gif to ascii or some format . I have seen the demo video and clifm plays the gif in its original form , How did you do that.

    opened by siduck 12
  • Q doesn't work on Windows

    Q doesn't work on Windows

    Describe the bug Q (quit and change directory) doesn't work on Windows.

    To Reproduce Type Q on Windows :)

    Additional context The problem is here that the current directory of the parent process must be changed after clifm (the child process) has ended. That's why a shell script is used on Unix like operating systems.

    On Windows the parent process is mostly cmd.exe, the Windows command interpreter. This would need at least a real batch file with a chdir in it but I'm not sure how to start it.

    But it fails also when I use a real shell like GNU bash as the parent process on Windows. Perhaps a reason is that the COMSPEC environment variable contains still cmd.exe in this case. Instead there's an additional BASH variable in this case, also a SHELL variable containing bash. But, I see the problem: every shell has it's own variables - how to find the shell that is really used?

    Not that important, I just saw it doesn't work.

    opened by muellerto 0
  • file names with spaces, start an application using the MIME type

    file names with spaces, start an application using the MIME type

    Describe the bug When the user tries to start a MIME type dependent application on a file having spaces (or other crap) in it's name it will not be successful on Windows.

    To Reproduce Some people like spaces in their file names. When you have such file names and you press [Enter] or o or ow starting the application will probably not be successful because the command line parameter (the file name) is wrong coded.

    Windows applications like Winword.exe expect that a command line parameter having inner spaces is written as

    winword.exe "my wonderful file name with spaces.doc"
    

    If the filename itself contains " it must be doubled:

    winword.exe "my wonderful file name with spaces and ""hello"".doc"
    

    clifm does instead encode the spaces like

    winword.exe my%20wonderful%20file%20name%20with%20spaces.doc
    

    This leads to a file not found error in the very most applications.

    Expected behavior Do not encode spaces on Windows, put file names into "...".

    opened by muellerto 0
  • typing .. or ... or ....

    typing .. or ... or ....

    clifm allows to go upwards typing ... You can also type more dots, each additional dot is then expanded into /.., this means when you type ... it means ../.., .... means ../../.. Because of that implicit expansion the resulting relative path is explained right of the cursor:

    <0> $ ....._ ../../../../                        _ = cursor
    

    Good so far.

    But where do I really get when I press [Enter]? The explanation shows a relative path but where is it? The path can even be wrong (none existent) but will be shown.

    I suggest two things:

    • show the absolute resulting path here, the directory where I really get into
    • show when the path gets wrong, when the user type to many dots
    improvement done 
    opened by muellerto 9
  • AppImage requires recent glibc

    AppImage requires recent glibc

    I am happy to see there is now an appimage for clifm. Unfortunately it requires a recent version of glibc.

    This section of appimage concepts decribes well what i would like: https://docs.appimage.org/introduction/concepts.html#build-on-old-systems-run-on-newer-systems

    Thanks in advance!

    opened by ath3 1
  • treat bookmarks, tags, and selection box like virtual directories

    treat bookmarks, tags, and selection box like virtual directories

    Bookmarks, tags, and the selection box are collections of files and/or directories, and their utility would be enhanced by treating them as if they were virtual directories, with all the existing clifm capabilities that would make these collections even more powerful.

    I'm thinking as I'm writing, but perhaps a new command "virtualize" that could accept as arguments the existing bookmark, tag, or selection box commands and options, for example:

    • virtualize sb
    • virtualize t:mypdfs
    • virtualize bm

    For each of these scenarios, clifm would present the result set as if it were a directory full of files and/or subdirectories for further interaction using the existing clifm commands and shortcuts.

    Perhaps this change could be implemented in part by making bookmarks and the selection box special cases of the tags function. This would also enable bookmarking of files as well as directories.

    I think this will bring new power to an already highly functional application.

    improvement suggestion 
    opened by knodalyte 17
  • a few pager problems

    a few pager problems

    Describe the bug

    1. In kitty, only the bottom row is visible while in the pager, the rest of the screen is black. Alacritty and WezTerm work fine, so not sure if it's kitty's or clifm's problem.
    2. Mouse scrolling doesn't work when in the pager, only when you exit it, you can scroll a bit upward.
    3. You cannot switch workspaces while in the pager.
    4. When you re-enter a workspace, you automatically get put back into the pager, even if you previously scrolled to the bottom and were back in the cli.

    Expected behavior

    1. Mouse scrolling should work just like when not using the pager.
    2. Workspaces should be switchable while in the pager.
    3. When the user re-enters a workspace, continue where they left off, either in the cli or the pager.

    Desktop:

    • OS: Arch Linux
    • Terminal: kitty 0.25, alacritty, wezterm
    • CliFM version: clifm-git 1.5.1.r387.gd87c838a
    • Installation source: AUR
    suggestion 
    opened by deathtrip 5
Releases(v1.8)
  • v1.8(Oct 18, 2022)

    CliFM 1.8 (Otis)

    Get distro-specific binary packages from the OpenSuse Build System

    Download CliFM


    New features/Improvements :sunglasses: :godmode:


    Bug fixes :beetle: :bug:

    • [x] Issues with the ESC key in the interactive rename prompt
    • [x] Not honoring none in FzfTabOptions
    • [x] No file type color for /path/to/dir/GLOB<TAB>
    • [x] Wrong file colors when running as root
    • [x] Script in $HOME not working with arguments (e.g. ~/script.sh arg) in mimelist.clifm file
    • [x] fzfnav plugin not working with Ranger's scope.sh
    • [x] C-p keybinding is slow to respond
    • [x] C-p and C-n keybindings do not highlight history lines
    • [x] BAEJ suggestion (ex: ELN) not colored if it contains spaces
    • [x] If wrong command and C-x fails, error is printed using the wrong command color
    • [x] bl dir/file file creates only one symlink (file.link)
    • [x] Secondary prompts have issues with Unicode strings.
    • [x] Termux: TAB completing/accepting suggestion of Unicode strings not working
    • [x] Bulk create plugin (bn) stops creating files as soon as a unique quote (' or ") is found (ex. Peter's dog)
    • [x] Cannot create directory with n command if file name contains spaces
    • [x] fzfnav previews not working on Wayland
    • [x] Help message covered by image preview in fzfnav plugin
    • [x] The "Calculating..." message in the pp command is not correctly removed on some terminals
    • [x] Pager not working as expected on the Linux console
    • [x] The dragon plugin does not work with file names containing spaces
    • [x] The manpage parser stopped working due to the file extension change
    • [x] Multi-byte char takes color of previous char (if colored)
    • [x] Suggestion not removed when entering a tilde path
    • [x] Ctrl-Alt-d (remove sel) not working: conflicts with C-d to quit
    • [x] Screen refreshed upon command error: messages are lost
    • [x] Suggestion partially printed with j cmd
    • [x] FZF tab offset is broken: select a few files (make sure it takes more than one line), insert all of them, type sel again and the press TAB: FZF menu appears next to the end of the screen, making its contents unreadable.
    • [x] Wrong path as first word errs like a failed search
    • [x] fzfsel and fzfdesel plugins not working
    • [x] Wrong columns when longest file name is a directory
    • [x] mime command not taking filenames/ELNs as parameters
    • [x] Recursive search not honoring case insensitive search option
    • [x] FzfTabOptions not protected against command injection when running with --secure-cmds
    • [x] Crash when only one file is listed and TAB is the first key pressed
    • [x] Wrong path color when completing unique match via TAB
    • [x] Suggestions are broken on high-latency remote connections
    Source code(tar.gz)
    Source code(zip)
    clifm-1.8.tar.gz(1.24 MB)
    clifm-1.8.tar.gz.sha256sum(65 bytes)
  • v1.7(Aug 24, 2022)

    clifm 1.7 (Elaine)

    Thanks to @knodalyte, @anoduck, @Baerbeisser, @DNDEBUG, @mhdzli, @harriot, @FluffyJay1, and @jggamba for all your comments, tests, and suggestions.

    Special thanks go to @jonathanspw, for all the work done on the Fedora package, and to @laurentlbm, for the Termux package :+1:


    Get distro-specific binary packages from the OpenSuse Build System

    Download CliFM


    New features/Improvements :sunglasses: :godmode:


    Bug fixes :beetle: :bug:

    • [x] Plugins not respecting --no-color
    • [x] Extraneous first entry in long view when toggling max file name length
    • [x] Command line garbage when deleting the whole line with the del key
    • [x] No suggestion when recovering from wrong command
    • [x] No color for history lines if readline.clifm isn't found
    • [x] Inconsistent file colors when listing, searching, and printing file properties
    • [x] Color for inaccessible directory name is extended up to properties in long view (light mode)
    • [x] alias import not completing/suggesting file names
    • [x] Dangling temporary file in bulk rename
    • [x] Jumbled output when running with -y --no-eln --no-color
    • [x] Secondary groups not honored when checking file access
    • [x] Bleach lists all files even if they don't need to be cleaned up
    • [x] Screen not refreshed on Enter if backspace was previously pressed on empty line
    • [x] Suggestions for aliases is broken
    • [x] Hex colors not working for file extensions
    • [x] fzfnav plugin works only once
    • [x] mime import overwrites current mimelist file
    • [x] br without parameters returns error exit code (1)
    • [x] rr command not working without an explicit path
    • [x] mm command not working with ELN's
    • [x] Bulk rename opens temporary file even for failed glob expressions
    • [x] ACL files in long view break columns symmetry
    • [x] No highlighting after recovering from wrong command
    • [x] The file picker function does not work when selected file names contain spaces
    • [x] Switching workspaces via keybinds sometimes errs with ws: filename: No such workspace
    • [x] edit is running vis(1), which is not a text editor on BSD systems
    • [x] Trivial messages are being logged
    • [x] Wrong finder offset when expanding glob expressions via TAB
    • [x] Switching workspaces via keybinds not working if there's text in the command line
    • [x] ./<TAB> not listing directories
    • [x] Wrong finder window offset when fuzzy-match is enabled
    • [x] Completion for the ZSH shell are broken
    • [x] Home not reduced to tilde on FreeBSD
    • [x] Enter a single &: crash!
    • [x] Multiple screen refresh when moving back and forth via keybinds
    • [x] Removing a symlink to dir via the r command attempts to remove the target
    Source code(tar.gz)
    Source code(zip)
    clifm-1.7-x86_64.AppImage(1.65 MB)
    clifm-1.7-x86_64.AppImage.sha256sum(65 bytes)
    clifm-1.7.tar.gz(1.24 MB)
    clifm-1.7.tar.gz.sha256sum(66 bytes)
  • v1.6(Jun 28, 2022)

    CliFM 1.6 (Guybrush)

    Get distro-specific binary packages from the OpenSuse Build System

    Download CliFM


    New features/Modifications :sunglasses: :godmode: :+1:

    • [x] Rename PromptStyle option in the color scheme file to Notifications=true/false
    • [x] File type expansion via TAB: =d<TAB>
    • [x] Search pattern completion: /<TAB>
    • [x] Apparent size is enabled by default in disk usage analyzer
    • [x] Make ApparentSize an option in the config file
    • [x] Use separate indicators for error, warning, and notice messages
    • [x] Prompt messages indicators should be kept across profiles
    • [x] Add wildcards (glob) TAB expansion
    • [x] Select all (C-s), deselect all (C-a), and toggle select (C-t) keybinds for TAB completion (fzf mode)
    • [x] Add only-dirs option to autocommands (od)
    • [x] Help topics
    • [x] File type modifiers for the search function are now the same used by find(1)
    • [x] Usage message for the search function
    • [x] Search strategies
    • [x] More friendly file names in the selection box
    • [x] Trash is now enabled in stealth mode
    • [x] ELN's color is now regular cyan
    • [x] New option: -r, --refresh-on-empty-line
    • [x] New option: -E, --eln-use-workspace-color
    • [x] Current workspace color for dividing line if dl is unset
    • [x] TAB completion for users home directory
    • [x] List removed/trashed files
    • [x] Replace references to "folders" by "directories"
    • [x] Fuzzy TAB completion for file names and paths
    • [x] prompt command to quickly switch prompts
    • [x] More color schemes by default
    • [x] Support for emojis as icons
    • [x] Suggestions for sort numbers
    • [x] Complete with file names instead of bookmark names when adding a new bookmark (bm add)
    • [x] Improve algorithm to calculate total selected files size
    • [x] Default to FZF TAB completion if fzf is found
    • [x] Reload files when (de)selecting or (un)trashing files with descriptive messages
    • [x] Better TAB completion for selection and other functions
    • [x] Visual bell style (readline >= 8.1)
    • [x] Hex color codes support
    • [x] Notice message if config files are reloaded
    • [x] Built-in support for rsync(1) to copy files
    • [x] New plugin (rrm): recursively remove files via FZF
    • [x] Do not record ELN& entries into history
    • [x] Allow controlling STDERR and STDOUT when opening files via Lira
    • [x] Move instead of cp/rm when trashing files
    • [x] Do not suggest/autocomplete/expand CliFM internals if command starts with a semicolon or a colon, or if we're in a comment (#).
    • [x] Add keybind (C-A-i, Alt-TAB) to toggle disk usage analyzer mode on/off
    • [x] MaxNameLen defaults to 20
    • [x] Improved bookmarks interface
    • [x] Consistently reload the list of files either upon files or interface modifications
    • [x] Reload files list after exiting the bookmarks screen
    • [x] Reload the bookmarks screen when entering invalid bookmark
    • [x] Temporarily disable commands history via history [on, off, status]. --no-history is also available
    • [x] TAB completion for the alias command
    • [x] Properly align list of aliases and actions
    • [x] New command: fz, to toggle full dir size on/off in place
    • [x] Removed colorizeProperties option from the config file
    • [x] Total size for selected files calculates full directories size
    • [x] Allow sizes in powers of 1000 instead of 1024 (--si)
    • [x] Prepend cd to jump completion when autocd is disabled
    • [x] Improve img_viewer plugin
    • [x] New plugin, cr, to copy files to remotes
    • [x] New plugin, da, to inspect files and directories sizes
    • [x] New plugin, bmi, to import bookmarks from either Ranger or MC
    • [x] Add install rules for cmake
    • [x] Do not sort reverse by default in disk usage analyzer mode
    • [x] New plugin, fdups, to find and remove duplicate files
    • [x] Enable exit on EOF (Ctrl-d) by default (disable with --no-control-d-exits)
    • [x] A new line should be printed before quitting via keybind (Ctrl-d, F12)

    Bug fixes :beetle: :bug:

    • [x] Symlinks to directory wrongly sorted in disk usage analyzer mode
    • [x] 'pp' command displays wrong size for symlinks to directory
    • [x] Garbage first entry when toggling disk usage analyzer
    • [x] Only-dirs not showing symlinks to directory
    • [x] Cannot get properties of the root dir (p /)
    • [x] Wrong size for empty directories and symlinks to directory in long view mode
    • [x] Slash not appended to suggested symlinks to directory
    • [x] TAB completion of first word (if multiple matches) removes second word
    • [x] Delete last word deletes from end of line instead of current cursor position
    • [x] Switch to comment color if file name contains a hash char
    • [x] Error indicator in the prompt not honored when there are multiple messages
    • [x] No history line color when pressing UP for the first time
    • [x] Wrong baej suggestion offset when editing line
    • [x] Prepend sudo function messed up with current completion color
    • [x] Autocmds not playing nice with profiles
    • [x] Some plugins not working from autocommands
    • [x] Cannot use backslash in search expression
    • [x] ? ELN in search list when not searching in CWD
    • [x] Inconsistent color for search files in light mode
    • [x] No deselection message on error
    • [x] Unable to select the root directory
    • [x] Wrong cursor position while editing line
    • [x] pp cmd does not work with tilde
    • [x] File overwritten when untrashing file with same name
    • [x] st does not suggest mtime but a file name instead
    • [x] Wrong exit code at exit
    • [x] File extension color in TAB completion even if --no-file-ext
    • [x] Alt keybinds not working on SSH
    • [x] Box drawing dividing line not working
    • [x] Segfault when not path is defined for a bookmark
    • [x] The rename function cannot rename files named as numbers
    • [x] Bookmarks names and shortcuts do not work with spaces
    • [x] sel doesn't expand braces correctly
    • [x] Incomplete prompt when using standard TAB completion
    • [x] Wrong color for regular files when using GNU ls(1) in fzfnav plugin
    • [x] Leading space in file names when running with --no-eln
    • [x] Wrong "FZF not found message" when running with --fzftab
    • [x] Keybinds not working when running new instance as root (X)
    • [x] Double error message if invalid file type in quick search
    • [x] li color code not respected
    • [x] Wrong cursor line for suggestions after resizing terminal
    • [x] Segfault when removing current directory from outside
    • [x] rgfind plugin not working with multi-word strings
    • [x] Wrong cursor position after editing line (first word)
    • [x] Plugins cannot know we're running colorless when using --no-color only
    • [x] Wrong exit code after suggestion
    • [x] Sel indicator not updated when selected file is (re)moved
    • [x] Suggestions do not recognize fish builtins
    • [x] No error message when 2nd parameter is opening app and it fails (or does not exist)
    • [x] ELN expanded to alias if file name is an alias name
    • [x] Cannot bookmarks files containing spaces in their names
    • [x] Plugins return wrong exit status (always zero)
    • [x] Total size indicator for selected files is broken
    • [x] Correcting a wrong file name as first word do not recover the normal prompt
    • [x] ELN runs mime-import if it refers to a file named import
    • [x] Starting path does not work when the path contains references to self or parent directories (dot or double dot)
    • [x] --open crashes CliFM
    • [x] Completions/suggestions for jump produces wrong values when compiled with _BE_POSIX on Linux
    • [x] TAB completion for jump does not honor case insensitive
    • [x] Bookmarks not reloaded after bm edit
    • [x] Some plugins not working: img_viewer, vid_viewer, and music_player
    • [x] Built-in export command not working
    Source code(tar.gz)
    Source code(zip)
    clifm-1.6.tar.gz(1.20 MB)
    clifm-1.6.tar.gz.sha256sum(65 bytes)
  • v1.5.1(Mar 26, 2022)

  • v1.5(Mar 26, 2022)

    CliFM 1.5 (Nano)

    Thanks to @l2dy for making the MacOS port possible!

    New features

    • [x] Better handle non-alphanumeric chars when sorting
    • [x] Crtl-Alt-q: Toggle max file name len on/off
    • [x] Define DATADIR at compile time via the Makefile
    • [x] MacOS port!
    • [x] New instance function is available to all supported platforms
    • [x] Force the use of colors via CLIFM_FORCE_COLOR environment variable
    • [x] Accept more word delimiters for accept first suggested word and delete last word functions
    • [x] DirIconsColor renamed DirIconColorin the color scheme file
    • [x] Color variables support for the color scheme file
    • [x] Light theme included
    • [x] Suckless mode compilation via CLIFM_SUCKLESS
    • [x] Improved theming support: interface stuff (including colors, prompt, warning prompt, dividing line, and FZF options) is defined now in the color scheme file.
    • [x] Customizable color codes for files properties
    • [x] Remove files in bulk via a text editor
    • [x] Etiqueta, a files tagging system
    • [x] --sort accepts strings as well as numeric values
    • [x] Improved format for the properties string in long mode
    • [x] Command line switch (--apparent-size) to use apparent sizes intead of actual device usage
    • [x] Disk usage analyzer mode via -t, --disk-usage-analyzer
    • [x] New command: stats, to print files statistics
    • [x] New prompt: Security scanner
    • [x] New escape codes for the prompt (files statistics)
    • [x] Allow the warning prompt to understand escape sequences
    • [x] Colorize command history ELN's
    • [x] Add color and correctly PAD ELN's in directory history screen
    • [x] Correctly pad ELN's in bookmarks screen
    • [x] Replace the plugins-helper check in all plugins by a simple environment variable check: CLIFM_PLUGINS_HELPER
    • [x] --version just prints the version number

    Bug Fixes

    • [x] Wrong size for selected files after moving previous selected files
    • [x] Error when getting length of file name containing invalid multi-byte sequence
    • [x] The interactive rename function fails with ~/ file names
    • [x] CLIFM_STAT_TRASH reporting wrong number of trashed files
    • [x] Wrong cursor position when suggestion is longer than NAME_MAX
    • [x] Crash when ExtColors holds a really long string
    • [x] Some entries not working in the interactive help plugin.
    • [x] Wrong FZF offset with dynamic prompt changes (e.g. exit code)
    • [x] When suggesting file names, the last matching one is suggested instead of the first one, as expected
    • [x] Attempting to use suggestions in terminals that do not support it
    • [x] Attempting to use colors in terminals that do not support color
    • [x] Wrongly restoring regular after switching workspaces
    • [x] exit internal command triggers the warning prompt
    • [x] Color for all workspaces in the prompt is cyan when --no-color is passed
    • [x] Missing new line char after getting media info
    • [x] Invalid value passed to the st function results in sorting by none
    • [x] Conflict between mime parameters(edit, info, and import) if there are files in CWD named likewise
    • [x] Suggestions are colored in the Linux console even with --no-color
    • [x] Double error message when invalid color scheme is passed via command line
    • [x] Suggestions for shell built-in are colored even with --no-color
    • [x] Gibberish when no date info in properties function
    • [x] Inconsistently using apparent and real sizes
    • [x] Root indicator printed in color even with --no-color
    • [x] Fix mem leak when unrecognized escape code in prompt lines
    • [x] Fix mem leak if duplicated entries in the config file
    • [x] Conditional execution fails with fused parameters
    • [x] Deletion time for trashed files cannot be read by other trash implementations
    • [x] Wrong mountpoint for mounted archives
    • [x] Wrong completions in FZF tab when no parameter is passed to the jump command
    • [x] Wrong completion/suggestion offset for strings starting with chars that need to be quoted
    • [x] Hidden files wrongly sort in version sort

    Download CliFM

    Source code(tar.gz)
    Source code(zip)
  • v1.4(Jan 17, 2022)

    CliFM v1.4 (Alma)

    New features/improvements

    • [x] Little descriptive message for the temp file of the bulk rename function
    • [x] Colorize files properties (long view and 'pr' command)
    • [x] Enable FZF TAB completion mode via CLIFM_USE_FZF environment variable
    • [x] -h can be used to access internal commands help
    • [x] Support the URI file scheme
    • [x] Support URL's when running as standalone opener
    • [x] Add support for gio as resource opener
    • [x] Lira matches file names now instead of just extensions
    • [x] Lira can now open URL's when used as standalone resource opener
    • [x] Lira can perform tilde expansion now
    • [x] Device information function for the media command
    • [x] bl suffix generation defaults to .link in case the user enters no string
    • [x] --help includes examples for each internal command
    • [x] TAB completion for environment variables
    • [x] Add number of items to prompt indicators (sel, trash, and messages)
    • [x] kb edit, cs edit, and actions edit allow second parameter to specify opening application
    • [x] Add a header to plugins to let the user know what it is/does
    • [x] Remove calls to system shell from Lira's code
    • [x] Secure environment and secure commands function
    • [x] Allow FZF tab to select multiple entries (several commands)
    • [x] The dup command can duplicate now multiple files at once
    • [x] Customizable tilde color for trimmed files
    • [x] Improved Unicode support
    • [x] Handle file names with embedded control characters
    • [x] Better help (with pager)
    • [x] Allow passing no option to FZF for TAB completion
    • [x] FZF theme is now 16 colors by default
    • [x] A plugins helper script to get a consistent look for all FZF plugins
    • [x] All FZF plugins now honor NO_COLOR
    • [x] Add support for NO_COLOR environment variable
    • [x] --no-color option now makes CliFM truly colorless
    • [x] More image viewers and video players support out of the box
    • [x] Add neovim and micro-emacs to the list of default applications for plain text files
    • [x] Improve mime_list plugin using FZF
    • [x] Backdir (bd): Quickly changes to a parent directory
    • [x] When the files filter is set, print the number of excluded files
    • [x] Allow quoted expressions for the filter command
    • [x] Make Bleach conformant to the Portable Filename Character set
    • [x] Read CLIFM_FZF_HEIGHT to get a coherent look for all plugins using fzf
    • [x] fzfnav allows now to customize the FZF window height via BFG.cfm (#87)
    • [x] Better sort lock, autosave, and backup files generated by emacs and other programs
    • [x] New autocommands mode via .cfm.in (entering dir) and .cfm.out (leaving dir) special files
    • [x] Little export implementation
    • [x] Allow Lira to understand environment variables (#86)
    • [x] Add nsxiv support to the mimelist file (sxiv is now unmaintained)

    Bug fixes

    • [x] c and m commands sometimes fail when destiny parameter is specified
    • [x] Auto-unmount not working for the net command
    • [x] ow lists duplicated entries with TAB completion
    • [x] No order number expansion for jo command
    • [x] Wrong completions for paths starting wiht tilde
    • [x] Won't work when invoked by another program, e.g. via a shell script
    • [x] Hang when variable defined in profile and internal variables are disabled
    • [x] plugins-helper not found for FZF plugins
    • [x] Extraction path for archives triggers the warning prompt
    • [x] Prompt does not recover color after warning prompt
    • [x] No colors when running in stealth mode
    • [x] When running on Wayland Lira does not recognize any graphical application
    • [x] FZF TAB completion fails with directory names containing spaces
    • [x] Error compiling with _NO_FZF flag
    • [x] Directories with spaces no further completed in FZF TAB
    • [x] Cannot execute command m4: shell cmd m4 gets executed instead
    • [x] Invalid free in dup command when destiny is specified
    • [x] No usage message for vv command
    • [x] File names are wrongly displayed in fzfdesel plugin
    • [x] Wrong path when selecting ./FILENAME
    • [x] Gibberish in long view when files are trimmed (VTE terminals)
    • [x] Unable to kill external program via Ctrl-c
    • [x] MaxFilenameLen not working with Unicode file names (#91)
    • [x] pin command (,) triggers the warning prompt
    • [x] mm info does not correctly display opening application when it has parameters
    • [x] Crash when going forth to non-existing dir
    • [x] The --no-color option does not produce a truly colorless interface
    • [x] Wrong executable name for kakoune editor in mimelist.cfm
    • [x] The rename prompt is garbled when renaming too long files names
    • [x] ELN& triggering the warning prompt
    • [x] 'sel keyword suggested even if there are no selected files
    • [x] Not switching color scheme with autocommands
    • [x] Executable scripts not opened as regular files
    • [x] File names with non standard characters not correctly escaped with TAB completion

    Download CliFM

    Get distro-specific binary packages from the OpenSuse Build System

    Source code(tar.gz)
    Source code(zip)
    clifm-1.4.tar.gz(1.11 MB)
    clifm-1.4.tar.gz.sig(438 bytes)
  • v1.3(Dec 5, 2021)

    CliFM v1.3 (Sebastian)

    My gratitude to @Docbroke for all his suggestions and bug reports.

    New features/improvements

    • [x] Bleach, a file names cleaner
    • [x] Improved sorting for Unicode file names
    • [x] Version sort for non-GNU systems
    • [x] Environment variables expansion
    • [x] TAB completion for undel and trash del commands
    • [x] Allow directories to be opened via external applications
    • [x] ad could be used now as opening application in the mimelist file
    • [x] Vifm-like Autocommands
    • [x] Customizable colors for workspaces
    • [x] New cmd: media, to handle mount/unmount of storage devices
    • [x] Get out of mountpoint before unmounting
    • [x] New keybinding (Alt-q) to delete last typed word
    • [x] TAB completion for the sel keyword and the deselect command
    • [x] Allow ds to deselect files passed as parameters
    • [x] Mark selected files in the files list
    • [x] New default colors for: some specific file extensions, files counter
    • [x] Case insensitive files search
    • [x] --list-on-the-fly option renamed to --autols (same for config file)
    • [x] Allow setting a max file name length for listed files
    • [x] The mf command accepts now the unset parameter
    • [x] Interactive rename functionality for the m command.
    • [x] Open-with command (ow)
    • [x] ls(1)-like listing mode
    • [x] Suggestions for shell builtins
    • [x] Independent color for the suggestions pointer (>)
    • [x] ELN padding for file names alignment
    • [x] Allow editing the history file via history edit
    • [x] The refresh function does not reset the last cmd exit code anymore
    • [x] New plugin: fzfdirhist
    • [x] TAB completion and suggestions for cmd names after process separator chars
    • [x] Warning prompt for invalid command names
    • [x] FZF mode for TAB completion
    • [x] Syntax highlighting
    • [x] \z returns exit code instead of ASCII face
    • [x] The alias function supports now both single and double quotes
    • [x] The ds command allows now the user to manually edit the selections file
    • [x] Optionally allow to quit CliFM with Ctrl-d
    • [x] Add icon-in-terminal reference to the icons command in the manpage
    • [x] Home key not bound anymore to anything
    • [x] Do not split commands not taking ELN's or numbers as parameters
    • [x] Append .new to file name when creating an already existent file name with the new command.
    • [x] Use mkstemp() instead of manually creating the file
    • [x] Use the P_tmpdir macro to get tmp dir
    • [x] Unique temp file for bulk rename
    • [x] Add broken link error message when opening a broken symlink
    • [x] Allow cd command to understand CDPATH environment variable

    Bug fixes

    • [x] Accept suggestion removes ./ from command line
    • [x] Bulk rename not working with vis editor
    • [x] Unable to operate on file names with embedded backslashes
    • [x] Custom color scheme not loaded at startup
    • [x] MinFilenameTrim overriden by MaxFilenameLen
    • [x] Unicode file names not correctly trimmed in detail view
    • [x] When it comes to archives, Lira overrides user's choice in mimelist.cfm in favor of ad.
    • [x] bm bm_name not working if ExpandBookmarks is set to true (#76).
    • [x] Crash when no mountpoint is specified in the net config file
    • [x] Files list not refreshed when creating broken symlink in Linux
    • [x] Parameters to new command wrongly taken as regular expressions
    • [x] Colors for file extensions contains non-alphabetic stuff not working
    • [x] Symlink to dir not colored as symlink in the selection box
    • [x] Wrong ELN color when setting custom files counter color
    • [x] Command line colors (suggestions, highlight) produce gibberish on evilvte and vte (legacy) terminals
    • [x] Wrong message for unrecognized command line options
    • [x] Tilde not expanded for --opener parameter
    • [x] Not honoring --no-colors when editing the configuration file
    • [x] Crash when setting starting path from the config file
    • [x] Wrong TAB completion in subprompts
    • [x] Text and files counter colors not honored
    • [x] Not selecting files when inverse patterns
    • [x] The color of files listed for possible completions does not honor CliFM specific colors
    • [x] When changing filetype colors on the fly, that is, editing the color schemes file while running CliFM, colors for possible completions won't be updated until next start
    • [x] Shell built-in functions not working if running as ;cmd
    • [x] Not compiling on musl systems like Void Linux
    • [x] Missing --no-eln option from internal help
    • [x] DivLineChar not working fine when it contains only spaces.
    • [x] Wrong suggestion offset after dash
    • [x] dup doesn't work with file names starting with tilde
    • [x] dup cmd does not refresh the screen
    • [x] Refuses to trash max len file name
    • [x] vi command mode not working when suggestions are enabled
    • [x] Fused param not working
    • [x] List only dirs works backwards in OpenBSD
    • [x] Wrong file type (and color) for files in loop devices
    • [x] Not unpinning pinned file
    • [x] Selection box not cleared after removing selected files
    • [x] Batch rename not renaming

    Download CliFM

    Get distro-specific binary packages from the OpenSuse Build System

    Source code(tar.gz)
    Source code(zip)
    clifm-1.3.tar.gz(8.21 MB)
    clifm-1.3.tar.gz.sig(438 bytes)
  • v1.2.2(Sep 5, 2021)

    CliFM v1.2.2 (Laura)

    This is mostly a bug fixes release

    New features/improvements

    • Add files selection capability to fzfnav plugin
    • Use libmagic instead of calling file(1) to check ISO and compressed files
    • Use file descriptors instead of file names to avoid CWE-367.
    • Allow disabling some files checks for better performance
    • Support for Alexey Tourbin faster qsort implementation

    Bug fixes

    • Default colors not honored when running the first time
    • Suggestions not enabled by default
    • Autocd fails with directories containing spaces
    • ihelp plugin and F1-F2 not working if MANPAGER is set
    • Reverse files filter not working in light mode
    • PATH programs are loaded even if external commands are disabled
    • Fused parameters function splits numbers in parameters themselves
    • Error when running mime info in stealth mode
    • Attempting to read color schemes file in stealth mode
    • Calls to access(3) when loading PATH programs in light mode
    • Long option for light mode not working
    • No cursor after --list-and-quit in light mode

    Download CliFM

    Get distro-specific binary packages from the OpenSuse Build System

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Aug 29, 2021)

    CliFM v1.2.1 (Ana)

    New features

    • [x] Fish-like auto-suggestions system :sunglasses:
    • [x] Allow compiling features in/out
    • [x] Automatic maintenance of the directory history list
    • [x] Directly query libmagic library instead of calling file(1) to get MIME types
    • [x] Haiku specific keybinds files
    • [x] Allow Unicode and strings to further customize the dividing line
    • [x] Monitor file system changes via inotify (Linux) and kqueue (BSD)
    • [x] A more consistent color experience out of the box
    • [x] Custom readline init file to avoid keybinds conflicts
    • [x] Xterm keybindings work now out of the box
    • [x] The jump function can now match first and last segments of paths
    • [x] Improved prompt customization features
    • [x] Nerdfonts support for icons
    • [x] Absolute paths and tilde in the mime file
    • [x] Process backgrounding with "CMD&" (besides "CMD &")
    • [x] %f placeholder support to Lira for improved flexibility
    • [x] Header file containing usage messages to improve maintainability
    • [x] The net command is now a completely new remotes management function
    • [x] ihelp plugin is now POSIX
    • [x] catimg and chafa are used to animate gifs
    • [x] Kitty image protocol support to fzfnav plugin
    • [x] Improved compatibility with POSIX systems
    • [x] Port to OpenBSD
    • [x] Port to NetBSD
    • [x] Port to Haiku
    • [x] Add import function to mime command
    • [x] Lira is able to discriminate between GUI and non-GUI environments
    • [x] clifmrc, keybindings, and actions.cfm files are now taken from DATADIR
    • [x] The keybindings file is now keybindings.cfm
    • [x] Lira uses now the built-in mimelist file by default
    • [x] Load plugins and color schemes from system dirs besides local dirs
    • [x] lsd support for directory previews
    • [x] Add DESTDIR to the Makefile for a more flexible installation process
    • [x] New command: create file duplicate
    • [x] Exa support for directories preview
    • [x] Hide cursor while listing files
    • [x] Automated static analysis
    • [x] --open is now deprecated. Use positional parameters to open files
    • [x] Configuration file for BFG
    • [x] Hashes as filenames to uniquely identify cached files (for BFG)
    • [x] New option: -d, --config-dir, to specify alternative config dir
    • [x] Dirjump and path completion are now case-insensitive by default
    • [x] case-ins-path-comp is now case-sens-path-comp
    • [x] case-ins-dirjump is now case-sens-dirjump
    • [x] -x option is now --no-ext-cmds
    • [x] New logo/icon color
    • [x] Keep selected files in view (optional)
    • [x] Batch copy plugin
    • [x] Reverse files filter

    Bug fixes

    • [x] pp is broken on POSIX systems
    • [x] Excessive padding for files output when max_files is set
    • [x] fzfnav plugin unable to match anything containing a 'q'
    • [x] Memory leak when opening file and exit
    • [x] No cursor after --list-and-quit
    • [x] Crash if using mime command with a directory
    • [x] Crash in archiving function (ac)
    • [x] F1-F3 not working on Eterm terminal
    • [x] Corrupted terminal with long CJK directory names (#48)
    • [x] Crash in stealth mode when using TAB completion
    • [x] Pygmentize is misspelled in BFG.sh
    • [x] Sticky bit not correctly shown in file properties
    • [x] Hardcoding sudo won't work on OpenBSD (it uses doas)
    • [x] Wrong size when image is converted to text in fzfnav
    • [x] After running fzfnav mouse scroll stops working
    • [x] Double slash when selecting file in the root directory
    • [x] r command not working on POSIX systems
    • [x] Some plugins won't work on systems using POSIX ls
    • [x] Manpage not working on NetBSD
    • [x] cmd, and F1-F3 keybinds not working on POSIX systems
    • [x] fzfnav plugin: md5sum not found on BSD systems
    • [x] ihelp plugin not working on non-linux systems
    • [x] fzfnav plugin cannot found BFG.sh file
    • [x] ihelp plugin not working if manpage isn't in /usr/share
    • [x] fzfnav plugin fails when BFG.cfg is not in HOME
    • [x] Prompt printing garbage when using color codes
    • [x] fzfnav not changing directory after exit
    • [x] Not honoring cwd when RestoreLastPath is false (@Chiheisen)
    • [x] Smb crash when no options passed (@Chiheisen)
    • [x] New profile still creating old clifm_profile file
    • [x] Mounpoints not working in FreeBSD (patched by Alexey Dokuchaev, danfe)
    • [x] Crash if current directory is deleted
    • [x] Fused parameter not split when followed by path containing slash
    • [x] . and .. not expanded when using internal commands
    • [x] When changing to dirs outside HOME, term title is not updated
    • [x] Tilde as path does not work for positional parameters
    • [x] When files counter is disabled, inaccessible dirs are not colored as they should
    • [x] Not honoring --list-and-quit when empty directory
    • [x] Crash when navigating in light mode
    • [x] Zombie processes after plugins execution
    • [x] Error when specifying starting path from command line
    • [x] 1 app & doesn't work: the command is not backgrounded
    • [x] Plugins not working out of the box: mark them as executable upon installation
    • [x] Keybinds for workspaces not assigned in config file
    • [x] Keybind for copy sel files (C-A-v) not working when a file is overwritten (no STDOUT)
    • [x] Symlinking a file in CWD outside CWD produces a broken symlink
    • [x] fzfnav refuses to create pipe (via mkfifo)
    • [x] Extension colors are wrong: the last ext color found (alphabetically) overrides previous ones

    Download CliFM

    Distro-specific binary packages can be downloaded from OBS

    Source code(tar.gz)
    Source code(zip)
  • v1.1(May 29, 2021)

    Version 1.1 (Nonos)

    New features

    • SVG preview support
    • New plugin: batch files/dirs creation
    • We finally have a decent logo! (#17 )
    • Command and keybinding for files/directories creation
    • Hard coded values in config file replaced by DEF_ macros
    • Prompt modifier for current profile name (\P)
    • Git integration (via script as prompt command)
    • clang-format for automatic formatting (thanks to @sundaran1122)
    • TAB completion for sort
    • sort accepts now names as well
    • Allow operating on particular selected files (as plugin)
    • Permanent reminder when running as root
    • Unicode is now enabled by default
    • Set plugin name as terminal title when running plugins
    • Warn the user when using , and no file is pinned
    • Default mimelist file copied to /usr/share/clifm
    • External commands are enabled by default
    • Remove x functions for better portability
    • Source code split into multiple files for better maintainability (thanks @sundaran1122)
    • Clean up Makefile (thanks @sundaran1122)
    • Subshell prompt notice (as shell code)
    • Positional parameters for starting path (-p is now deprecated)
    • Completions for ZSH
    • New plugin: rgfind: Search files by content via Ripgrep, and fzfdeselect
    • All plugins are now POSIX compliant
    • REGEX support for Lira mimelist file (both MIME types and extensions)
    • fzfnav plugin supports now Ranger's scope previewer script and pistol
    • Command substitution support for the prompt
    • Set terminal window title
    • Do not remove bookmarked, pinned directories, or directories in a workspace from the jump db
    • Fastback function: ... n -> ../.. n
    • Keybindings for plugins. Four keybinds allowed

    Bug fixes

    • Misspellings in the manpage (#21 )
    • Cannot cd .. when current directory does not exist
    • Trying to save selected files in stealth mode
    • Calling the manpage is broken
    • Dirhist map not correctly updated
    • Aliases names not null terminated
    • TAB completion for internal commands is broken
    • Old mime syntax was still used to create the mimelist file
    • Extension icon not honored if file is executable, SUID, SGID, or multi-hardlink
    • Fused parameters not working with number zero
    • When using the quit keybinding, terminal input is not printed to STDOUT.
    • Unable to access workspace if stored path for that workspace doesn't exist anymore
    • Wrong error message for options taking parameters, both long and short
    • cd_on_quit shell function stopped working
    • Lira not accepting applications with parameters in the mimelist file
    • Crash when running CliFM from within CliFM
    • r * not removing directories
    • Search strings must not be deescaped
    • Local plugins are overwritten at every run
    • Cannot select files starting with tilde

    Download CliFM

    Distro-specific binary packages can be downloaded from OBS

    Source code(tar.gz)
    Source code(zip)
    clifm-1.1-1-x86_64.pkg.tar.zst(269.37 KB)
    clifm-1.1-x86_64.deb(195.91 KB)
  • v1.0(Apr 10, 2021)

    After 5 years of development, version 1.0 (Mario) is ready!

    Tons of new features

    • Optional case insensitive path completion and directory jumping
    • Recursive search via find
    • New option to disable ELN's
    • New matching algorithm for the directory jumper using frecency (frequency + recency).
    • Only-list-matches (no cd) option for the directory jumper (jl).
    • Option to run trash in place or rm to prevent accidental deletions
    • Copy selected files and bulk rename them at once
    • Invert search/selection: exclude via exclamation mark
    • Advcpmv support (wcp is also supported to copy files)
    • Fused parameters support for ELN's: o12 instead of o 12
    • Files list max
    • New sorting methods: owner and group
    • Improved long view formatting
    • New, much faster long view function
    • New, faster listing algorithm: scandir(3) was replaced by readdir(3) and qsort(3)
    • Workspaces (up to 8)
    • String support for cmd history
    • REGEX filter to exclude group of filenames from the files list
    • Option to disable columns
    • Read stdin: cmd | clifm or clifm < list.txt
    • Plugins can now talk to CliFM via a dedicated pipe (CLIFM_BUS)
    • Batch link
    • Icons support (depends on icons-in-terminal)
    • Tested on both tmux and screen
    • Kangaroo, a built-in directory jumper similar to autojump, z.lua, and zoxide
    • REGEX for all internal commands
    • File picker and CD on quit (as shell functions)
    • Integration with FZF via plugins
    • Plugins: Music playlist, pdf reader, wallpaper setter, image/video preview, updates check, fuzzy finder, fuzzy jumper, drag and drop, FZF navigation, FZF selection, and interactive help plugins
    • Completions for Bash
    • Theming support via color schemes
    • Pinned file/dir
    • Show only directories option
    • Environment variables
    • Bookmark names expansion
    • New command line options
    • Stealth mode
    • Support for custom keybindings and configuration files
    • More than 20 new keybinds
    • Lock terminal
    • Filetype filter for selections
    • Allow changing readline to vi editing mode

    Bug Fixes

    • Select /home and you get a negative size
    • dir_size function not properly handling large sizes
    • When switching between light and normal mode in the program, Enter does not work in the pager
    • Not extracting archives containing spaces in name
    • Wrong columns width with kanji alphabets (CJK)
    • r * refuses to remove directories
    • Export not exporting files in CWD when no parameter is passed
    • Wrong list dir when scandir(3) error
    • Bad keybinds in config file
    • autocd and auto-open not enabled when external commands are not enabled
    • Bookmarking a file (with bm add) without shortcut and name won't work
    • Crash when saving dirhist and there is no directory history
    • Select a directory in root and you get this: //dir
    • Bookmark names expansion may conflict with filenames in CWD
    • Issue with background color when using RGB colors
    • Wrong filenames for files selected in root dir
    • Wrong color for directories with no read permission
    • Memory leak in file_info structure
    • Selected files are not deselected after r sel.
    • Filetype filter not working in current working directory
    • In Alt-{i,f,y} keybindings the first line of the prompt is not printed
    • Clear screen not working in long mode
    • Dirhist stuck at non-existing directory
    Source code(tar.gz)
    Source code(zip)
    clifm-1.0-x86_64.deb(188.26 KB)
  • v0.29.2(Feb 12, 2021)

  • v0.29.1(Feb 12, 2021)

    New features

    • Disk usage

    Bug fixes

    • Add_dirhist function produces a crash after a while of navigating
    • Directory history index not properly updating
    Source code(tar.gz)
    Source code(zip)
  • v0.29.0(Feb 11, 2021)

    New features

    • Directory history map
    • Customizable keybindings
    • Persistent directory history list
    • Command substitution support for internal commands
    • Expansions for all parameters of the search function
    • Nested brace expansion for internal commands

    Bug fixes

    • ELN-filename conflict
    • save_dirhist error when running with wrong command line option
    • Readline history not reset after history clear
    Source code(tar.gz)
    Source code(zip)
  • v0.28.0(Feb 5, 2021)

    New features

    • Customizable actions via shell scripts
    • Restore last visited directory option
    • Symlink editor
    • Custom colors for file extensions
    • New file type colors: multi-hardlinks and non-stat'able files
    • New sort methods: extension and inode
    • Print total size of selected files

    Bug fixes

    • Profile changed after editing the config file
    • Crash/leaks with wrong color codes in config file
    • Non-stat'able files are not shown
    • Command line options not respected when switching profiles
    • Crash when switching between long and normal mode
    • No TAB completion for actions when there are no aliases
    Source code(tar.gz)
    Source code(zip)
  • v0.27.3(Feb 1, 2021)

    New features

    • Open now performs archives decompression
    • ISO 9660 support
    • Arrow keys navigation

    Bug fixes

    • Free error in empty directories
    • Tilde (~/file) not working with auto-open
    • sudo is broken!!!
    • Regular files with absolute path not working with auto-open.
    • Symlinks to dir with absolute path not working with autocd.
    • Autocd and autoopen not working in light mode.
    Source code(tar.gz)
    Source code(zip)
  • v0.27.2(Jan 30, 2021)

    New features:

    • Improved clear current line function
    • Try $XDG_CONFIG_HOME for config directory
    • Auto-cd and auto-open functions

    Bug fixes:

    • Sort method incorrectly informed
    • Wrong mime error message
    Source code(tar.gz)
    Source code(zip)
  • v0.27.1(Jan 28, 2021)

  • v0.27.0(Jan 27, 2021)

  • v0.25.0(Jan 23, 2021)

  • v0.24.0(Jan 22, 2021)

    New Features

    • Light mode
    • Share the Selection Box among different profiles

    Bug fixes

    • List symlinks to directories as directories
    • Non-executable files removed from command completion
    • User defined variables fixed
    • 'pf set' issue fixed
    Source code(tar.gz)
    Source code(zip)
  • v0.23.0(Jan 21, 2021)

  • v0.22.1(Jan 18, 2021)

Owner
leo-arch
I love computers since I was a kid. Though I am a philosophy professor with a philosophy PhD , I use my spare time to learn about Linux and programming.
leo-arch
A CLI program that helps you find classes and plan pre-requisites. Written in C++ and Python.

CourseHelper A CLI program created to help you prepare for course registration. Note: At the moment, this project is built specifically for other UCLA

Kyle Chui 1 Jan 25, 2022
A CLI for extracting libraries from Apple's dyld shared cache file

dyld-shared-cache-extractor As of macOS Big Sur, instead of shipping the system libraries with macOS, Apple ships a generated cache of all built in dy

Keith Smiley 224 Nov 16, 2022
File's sizes as a markdown table (CLI)

File's sizes as a markdown table (CLI)

Reaper 5 Feb 6, 2022
A lightweight utility for parsing PE file formats (EXE, DLL, SYS) written in C/C++

peParser A lightweight utility for parsing PE file formats (EXE, DLL, SYS). Windows Portable Executable (PE) files includes a variety of parsable data

null 6 Sep 15, 2022
Flexible and fast Z-shell plugin manager that will allow installing everything from GitHub and other sites.

ZINIT News Zinit Wiki Quick Start Install Automatic Installation (Recommended) Manual Installation Usage Introduction Plugins and snippets Upgrade Zin

z-shell 26 Nov 15, 2022
Fegeya Freud, CLI FPaper renderer, based on Totem (`less`-like tool without `--help`)

Fegeya Freud, CLI FPaper renderer, based on Totem (`less`-like tool without `--help`)

Ferhat Geçdoğan 3 Jun 11, 2021
A CLI based solver for the popular word guessing game WORDLE

Project WAR WAR stands for Wordle Answer and Resolver About Wordle is a web-based word game developed by Welsh-born software engineer Josh Wardle, for

Yeluri Ketan 2 Feb 19, 2022
Zinit is a flexible and fast Zshell plugin manager

zinit Note: Sebastian Gniazdowski, the original zinit dev, deleted zdharma randomly. This is a reliable fork / place for the continuation of the proje

null 1.5k Nov 19, 2022
n³ The unorthodox terminal file manager

n³ The unorthodox terminal file manager

Mischievous Meerkat 15.2k Nov 19, 2022
C++ lib and CLI for playing media files on a Chromecast

castr - a CLI and C++ library to cast media files to Chromecast devices using the built in Default Media Receiver

null 33 Oct 31, 2022
Creating CLI's just got a whole lot better

Staq Creating CLI's just got a whole lot better. Don't worry about CLI colouring, networking, Size of Executables, Speed ever again Have any doubts? R

null 9 Jun 1, 2021
CLI Application that provides the Freedesktop Secret Service using Pass as its backend!

pass-secrets CLI Application that provides the Freedesktop Secret Service using Pass as its backend! Status Currently working to store secrets with pr

null 21 Sep 13, 2022
Um CLI para encontrar os seus alias

Manager-Alias Que tal gerenciar todos os seus alias de um único local? Pesquisar e encontrar o que você precisa sem ter que ficar lendo diversos arqui

Wiris Rafael Januario Wernek 3 Oct 26, 2021
Port of ani-cli with more features 😉

Port of ani-cli with more features ??

Dinkan 14 Jun 25, 2022
The Efficient Study Planner (ESP) is a CLI app that gives an optimized plan to study for an upcoming exam.

Welcome to Efficient Study Planner ?? Optimize your study plan with ESP! Table of Contents About The Project Tech Stack Prerequisites How To Use? Lice

Md Ausaf Rashid 3 Aug 3, 2022
CLI to play a word-guessing game like Wordle

Lexeme What is this? Python program to play a word-guessing game like Wordle, but… More addictive because you can play it over and over and over, not

Dan Lenski 6 Oct 26, 2022
This is a simple CLI interface helper library for C.

LIBCCLI This is a very simple shell like interface for CLI activities. More will be added to this, but for now, this is the basic idea:

Steven Rostedt 40 Sep 24, 2022
CLI for single-cell analyses

CLI for single-cell analyses This repository provides a no-frills command-line interface for single-cell RNA-seq data analysis from a Matrix Market fi

Aaron Lun 2 Jan 28, 2022
SimPle SHell - minimalist Unix interactive shell written in a single C file

SimPle SHell - minimalist Unix interactive shell written in a single C file. The shell does not support scripting yet and is in an early stage of development. If you notice any bug, please open an issue on github.

sewe2000 2 Oct 24, 2021