LF - Feature Rich Terminal Manager for Linux

In this guide, we will cover the installation and usage of LF file manager on Linux. LF which is an abbreviation of (List files) is console file manager written in Go.

LF provides minimalistic and nice curses interface with a view on the directory hierarchy on terminal. It gives you a quick way to switch directories and browse the file system.

Features of LF File Manager

LF comes with the following features

  • Since it is written in Go, it shipped as a single binary without any runtime dependencies (except for terminfo database)
  • Uses Server/client architecture to allow sharing of files selection between multiple instances
  • LF is cross-platform - Runs on Linux, OSX, BSDs, Windows (partial)
  • Has fast startup and low memory footprint (due to native code and static binaries)
  • Easy to configure and tweak using shell commands
  • It has customizable keybindings ( uses vi and readline defaults)
  • Provides Preview filtering (for source-highlighting, archives, pdfs/images as text etc.)

LF leaves some other features to be handled by OS third-party tools, this include:

  • Tabs or windows (handled by window manager or terminal multiplexer)
  • Image previews (cool but no standard available)
  • Built-in pager/editor (handled by your pager/editor of choice)

Installing LF on Linux / Unix (Standard way)

Now that we've covered the basics of LF tool, let us proceed to the installation. A standard way to install LF is by downloading the binary package and placing it in your $PATH directory.

Go to LF Releases page on github, download version relevant to your Operating system. For me I'll pull Linux 64-bit version:

$ wget https://github.com/gokcehan/lf/releases/download/r6/lf-linux-amd64.tar.gz \
-O lf-linux-amd64.tar.gz

Available versions are for Linux, Windows, OpenBSD, NetBSD, both 32-bit and 64-bit CPU Architectures.

After downloading the package, extract it using tar:

$ tar xvf lf-linux-amd64.tar.gz

Replace lf-linux-amd64.tar.gz with your valid file name. A b inary file called ` will be extracted to your current working directory:

Make the file executable:

$ chmod +x lf

Copy the file to /usr/local/bin directory:

$ sudo mv lf /usr/local/bin
$ which lf 
$ lf --help
Usage of lf:
-cpuprofile string
path to the file to write the CPU profile
show documentation
-last-dir-path string
path to the file to write the last dir on exit (to use for cd)
-memprofile string
path to the file to write the memory profile
-remote string
send remote command to server
-selection-path string
path to the file to write selected files on open (to use as open file dialog)
start server (automatic)
show version

Installing LF From Packages

Few packages have been created for Arch Linux & Void Linux. This can easily be installed by using the system package manager.

Installing LF on Arch Linux from AUR

On Arch Linux, install lf package using AUR helper of your choice. Refer to our guide How to Install Packages on Arch Linux

On my Arch, I'm using.yay

$ yay -S lf

It will ask you to download the git version or more stable one. I'll choose lf-git version.

You can also use yaourt for this:

$ yaourt -S lf

Installing LF on Void Linux from Package Manager

For Void Linux users, the Package is available in the repository.

Install with

$ sudo xbps-install lf

Using LF File Manager

After the installation lf command should start the application in the current directory. You can run:

$ lf -help

to see command line options.

To read through the documentation use:

$ lf -doc

If you run lf on the terminal,  you should get a window like below

You can easily navigate using arrow keys.

As an example, by using<right arrow> or l key, I can play a Video file from lf

The following commands are provided by lf with default keybindings:

up                    (default 'k' and '<up>')
half-up               (default '<c-u>')
page-up               (default '<c-b>' and '<pgup>')
down                  (default 'j' and '<down>')
half-down             (default '<c-d>')
page-down             (default '<c-f>' and '<pgdn>')
updir                 (default 'h' and '<left>')
open                  (default 'l' and '<right>')
quit                  (default 'q')
top                   (default 'gg' and '<home>')
bottom                (default 'G' and '<end>')
toggle                (default '<space>')
invert                (default 'v')
unmark                (default 'u')
copy                  (default 'y')
cut                   (default 'd')
paste                 (default 'p')
clear                 (default 'c')
redraw                (default '<c-l>')
reload                (default '<c-r>')
read                  (default ':')
shell                 (default '$')
shell-pipe            (default '%')
shell-wait            (default '!')
shell-async           (default '&')
search                (default '/')
search-back           (default '?')
search-next           (default 'n')
search-prev           (default 'N')

Note that many things still change frequently in lf which may require users to modify their configurations. For further customizations, read the Official lf Administration guide.

Read Also

Josphat Mutai 2:51 am

About Josphat Mutai

Red Hat Certified Engineer with more than 2 years experience managing critical Cloud Infrastructures and Services. Passionate about Technology and loves testing and reviewing gadgets and Open-source tools.

Author Archive Page

Have anything to say?

Your email address will not be published. Required fields are marked *

All comments are subject to moderation.