Skip to content

ilyagr/lf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README for this fork of lf

This is an unsupported and unofficial fork. The official repository for the lf file manager is at https://github.com/gokcehan/lf This fork is intended to be a preview of upcoming lf features. It also includes a few additional minor features that I like but may not be added to the official versions.

Currently, it is very similar to the official version of lf. The main difference is a support of LF_PAGER environment variable; I'm unsure if that's the optimal design.

This fork is meant to contain my open pull requests from https://github.com/gokcehan/lf/pull/ (if any).

Fork installation

Occasionally, I make binaries available at https://github.com/ilyagr/lf/releases/. My plan is that release r28-ig2 in my repo would be the second release I make that is based on the r28 official lf release. It may or may not include a description of which features it includes. Most of its features will hopefully be a preview of the r29 official version of lf.

Alternatively, compiling Go programs is spectacularly fast and easy. The steps would be:

  1. Install Go. I use sudo apt install golang-1.19 on Debian. This may require and use the Debian backports repository. Alternatively, see http://go.dev for official instructions.

  2. Clone this repo: git clone https://github.com/ilyagr/lf && cd lf.

  3. Run gen/build.sh (or see below for Windows instructions). If all is well, it will seem like nothing happened. An lf binary will appear in the same directory.

  4. Copy the resulting lf binary to somewhere in your PATH.

Fork details and warnings

The ilya branch should be a merge of several feature branches. Each commit should describe what it does. This is a little difficult to see in gihub's view of repo history. You may need to clone the repo and use another tool (git log, gitk, tig).

WARNING: I force-push the ilya branch regularly and without warning, whenever I update any of the branches or rebase them on top of a new upstream commit. This is because I use jj to manage this repo. There's no way to find out where the ilya branch was previously other than the taggged releases. You can see a diff between a tag and the present ilya branch via an URL like https://github.com/ilyagr/lf/compare/ilya..r28-ig1.

Original README follows.


LF

Google Groups | Wiki | #lf (on Libera.Chat) | #lf:matrix.org (with IRC bridge)

Go Report Card Go Reference

This is a work in progress. Use at your own risk.

lf (as in "list files") is a terminal file manager written in Go with a heavy inspiration from ranger file manager. See faq for more information and tutorial for a gentle introduction with screencasts.

multicol-screenshot singlecol-screenshot

Features

  • Cross-platform (Linux, macOS, BSDs, Windows)
  • Single binary without any runtime dependencies
  • Fast startup and low memory footprint due to native code and static binaries
  • Asynchronous IO operations to avoid UI locking
  • Server/client architecture and remote commands to manage multiple instances
  • Extendable and configurable with shell commands
  • Customizable keybindings (vi and readline defaults)
  • A reasonable set of other features (see the documentation)

Non-Features

  • Tabs or windows (better handled by window manager or terminal multiplexer)
  • Builtin pager/editor (better handled by your pager/editor of choice)
  • Builtin commands for file operations (better handled by the underlying shell tools including but not limited to mkdir, touch, chmod, chown, chgrp, and ln)

Installation

See packages for community maintained packages.

See releases for pre-built binaries.

Building from the source requires Go.

On Unix:

env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/gokcehan/lf@latest

On Windows cmd:

set CGO_ENABLED=0
go install -ldflags="-s -w" github.com/gokcehan/lf@latest

On Windows powershell:

$env:CGO_ENABLED = '0'
go install -ldflags="-s -w" github.com/gokcehan/lf@latest

Usage

After the installation lf command should start the application in the current directory.

Run lf -help to see command line options.

Run lf -doc to see the documentation.

See etc directory to integrate lf to your shell and/or editor. Example configuration files along with example colors and icons files can also be found in this directory.

See integrations to integrate lf to other tools.

See tips for more examples.

Contributing

See contributing for guidelines.

Packages

No packages published

Languages

  • Go 78.2%
  • Roff 18.1%
  • Shell 2.6%
  • Other 1.1%