Skip to content

horriblename/lf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LF-sixel

⚠️ Important Note ⚠️

the sixel PR has been merged upstream (since r31), go use that. If you were previously using this fork, just set sixel true and no other change is needed, if you have trouble with migrating from this fork, open an issue here.


This is a fork of lf with support for sixel graphics.

Sixel support requires a sixel-capable terminal and is only available on Unix systems (only tested on Linux but BSD distributions and MacOS should work).

sixel-screenshot

For lf users moving to lf-sixel...

Sixel sequences can be passed directly to lf for displaying, cleaning, and caching. An example config based on cirala's lfimg can be found here. For those managing their own previewer:

  • use chafa "$1" -f sixel -s "$(($2-2))x$3" in your previewer script
  • remember to use exit 0, any other exit code indicates that the user's previewer and cleaner scripts will handle cleaning and caching.
  • you don't need a cleaner script for sixel previewing

LF

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

Go Build 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 releases for pre-built binaries.

Building from the source requires Go.

On Unix:

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

On Windows cmd:

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

On Windows powershell:

$env:CGO_ENABLED = '0'
go install -ldflags="-s -w" github.com/horriblename/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 17.6%
  • Shell 2.6%
  • PowerShell 0.7%
  • Nushell 0.6%
  • Vim Script 0.2%
  • Batchfile 0.1%