S
Swadhin Biswas
Merge pull request #12 from swadhinbiswas/fix/publish-token
committed 7 months ago
.github fix: use env var for CARGO_REGISTRY_TOKEN instead of --token flag 7 months ago
config feat: major v4.5.0 release with GNU ls compatibility and comprehensive documentation 1 years ago
docs feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
src feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
tools build(release): add release packaging script and notes for v4.5.0 1 years ago
.gitignore Feat:Moved to Rust 8 months ago
BENCHMARKS.md Feat:Moved to Rust 8 months ago
BRANCH_PROTECTION.md feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
Cargo.lock chore: bump version to 5.1.0 for crates.io release 7 months ago
Cargo.toml chore: bump version to 5.1.0 for crates.io release 7 months ago
CHANGELOG.md chore: bump version to 5.0.1 and update changelog 8 months ago
CODE_OF_CONDUCT.md docs(install): fix GitHub owner to swadhinbiswas and clarify both lsf and column.py are required; remove pipe-to-bash in quick reference 1 years ago
codecov.yml ci(codecov): integrate test coverage reporting with token authentication 1 years ago
column.py feat: major v4.5.0 release with GNU ls compatibility and comprehensive documentation 1 years ago
CONTRIBUTING.md feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
deny.toml feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
index.html feat: add dark/light theme toggle, consolidate publish into release workflow 7 months ago
install-standalone.sh feat(install): add standalone installer for pipe-to-bash convenience 1 years ago
INSTALL.md feat: major v4.5.0 release with GNU ls compatibility and comprehensive documentation 1 years ago
install.sh FIX:tested 8 months ago
LICENSE feat: major v4.5.0 release with GNU ls compatibility and comprehensive documentation 1 years ago
lsf FIX:tested 8 months ago
Makefile Feat:Moved to Rust 8 months ago
QUICK_REFERENCE.md docs: overhaul documentation for v5.0.0 Rust rewrite 8 months ago
README.md # Changelog 8 months ago
RELEASE_NOTES.md chore(release): update changelog and release notes for v4.5.1 1 years ago
rust-toolchain.toml feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
rustfmt.toml feat: add --git flag, overhaul CI/CD, rewrite website, prepare for crates.io 7 months ago
SECURITY.md docs(install): fix GitHub owner to swadhinbiswas and clarify both lsf and column.py are required; remove pipe-to-bash in quick reference 1 years ago
tag_release.sh Feat:Moved to Rust 8 months ago
test_flags.sh feat: major v4.5.0 release with GNU ls compatibility and comprehensive documentation 1 years ago
test_lsf.py ci(codecov): integrate test coverage reporting with token authentication 1 years ago
README.md

πŸ“‚ ls-f

GitHub release (latest by date) License: MIT GitHub Sponsors

ls-f is a modern, blazing-fast ls replacement. Originally a bash wrapper, it has been completely rewritten in Rust (v5.0.0) to provide superior performance, a native tree view, and zero runtime dependencies.

Example output screenshot


✨ Key Features

  • πŸš€ Performance: Native Rust implementation, matching GNU ls speed even with icons and colors.
  • 🎨 Nerd Font Icons: Rich set of icons for hundreds of file types and extensions.
  • 🌳 Tree View: Recursive tree visualization built-in via --tree.
  • 🌿 Git Integration: View file git status (staged, modified, etc.) with --git.
  • 🌈 ANSI Colors: Intelligent colorization for file types, permissions, and metadata.
  • βš™οΈ GNU Compatibility: Supports standard flags: -l, -a, -R, -h, -t, -S, -v, and more.
  • πŸ“¦ Zero Dependencies: Single static binaryβ€”no Bash or Python required for the Rust version.

πŸ“Š Benchmarks (v5.0.0)

lsf is optimized for speed. Benchmarked against GNU ls (coreutils 9.1) with --color=always.

Scenario GNU ls lsf Winner
Small dir (grid) 0.75 ms 0.65 ms πŸ† lsf
Large dir (7.3k files) 10.2 ms 12.9 ms πŸ† GNU ls
Long format (large dir) 18.4 ms 18.3 ms πŸ† lsf
Tree View (recursive) N/A 17.2 ms πŸ† lsf

Icons add ~0% measurable overhead to lsf. See BENCHMARKS.md for details.


πŸš€ Installation

Prerequisites

  • A Nerd Font must be set in your terminal for icons to render.

1. Build from Source (Rust - Recommended)

The Rust version (v5.0.0) provides the best performance and features.

git clone https://github.com/swadhinbiswas/ls-f.git
cd ls-f
make install  # Installs to /usr/local/bin

Or via cargo: cargo install --path .


πŸ“– Usage

Simply use lsf where you would use ls.

lsf              # Grid view with icons
lsf -la          # Long format, hidden files
lsf --tree       # Recursive tree view
lsf --git        # Show git status indicators
lsf --depth 2    # Limit tree/recursive depth

Setting up the Alias

Add this to your shell profile (.bashrc, .zshrc, or .config/fish/config.fish):

alias ls='lsf'

πŸ”§ Troubleshooting

  • Icons look like boxes? You need a Nerd Font. Check terminal font settings.
  • Command not found? Ensure /usr/local/bin or ~/.local/bin is in your $PATH.
  • Colors missing? Ensure your terminal supports ANSI colors. Try lsf --color=always.

Detailed guides:


🀝 Contributing

Contributions are welcome!

  1. Fork the repo.
  2. Create your branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

πŸ’– Support the Project

If you find ls-f helpful, consider supporting its development:

Recent Sponsors


πŸ“„ License

Distributed under the MIT License. See LICENSE for details.


Created by swadhinbiswas

About

ls-f is a Linux terminal ls that displays file-type-specific icons using Nerd Fonts. It enhances file listings by adding colorful, meaningful icons for different file types . Works on all Linux distributions and all terminals that support Nerd Fonts. πŸš€

None license
Updated 22 days ago

Languages

  • Rust 47%
  • Shell 41.2%
  • Python 11.8%