ls-interactive icon indicating copy to clipboard operation
ls-interactive copied to clipboard

Interactive ls command

ls-interactive πŸ’»

Version License: MIT Maintenance

Interactive ls command made in rust

image

⚑ Features

🌟 Navigate between folders/files using arrow keys

🌟 Browse folders / Open files with native apps using using Enter

🌟 Open folder in terminal (CD to folder) using Shift+Enter or Alt+Enter

🌟 Open folder in file manager using Ctrl+Enter

🌟 Type anything to filter current folder content using fuzzy search

🌟 Top button (πŸ“ ..) opens the parent directory (LeftArrow can also be used when fuzzy text field is empty)

🌟 Press Esc to exit

on Linux/Mac Shift+Enter or Ctrl+Enter might not work

see https://github.com/crossterm-rs/crossterm/issues/669

πŸ›  Installation

  1. Download zip package from releases page

  2. Extract its content into a folder in PATH (guide)

  3. Follow shell specific instructions:

Bash (Linux/Mac) or Zsh
  • Copy the lsi function from scripts/lsi.sh to your ~/.bashrc or ~/.zshrc file:

    https://github.com/Araxeus/ls-interactive/blob/f1cd2db8a7bddb5aee5e0d3e2482d85b11d76f31/scripts/lsi.sh#L3-L8

Batch (Windows CMD)
  • Copy scripts/lsi.bat into a folder that is in your %PATH% environment variable

    https://github.com/Araxeus/ls-interactive/blob/f1cd2db8a7bddb5aee5e0d3e2482d85b11d76f31/scripts/lsi.bat#L3-L5

    you can open you environment variables settings using the command below: (or by searching for env in the start menu)

    rundll32.exe sysdm.cpl,EditEnvironmentVariables
    
Fish Shell
  • Copy scripts/lsi.fish into ~/.config/fish/functions/

    OR copy the function inside into your ~/.config/fish/config.fish file

    https://github.com/Araxeus/ls-interactive/blob/f1cd2db8a7bddb5aee5e0d3e2482d85b11d76f31/scripts/lsi.fish#L7-L13

Powershell
  • Copy the lsi function from scripts/lsi.ps1 to your Microsoft.PowerShell_profile.ps1

    https://github.com/Araxeus/ls-interactive/blob/f1cd2db8a7bddb5aee5e0d3e2482d85b11d76f31/scripts/lsi.ps1#L7-L10

    you can open your profile using one of the following commands:

    notepad $profile
    

    gedit $profile
    
Nushell
  • Copy the lsi function from scripts/lsi.nu to your env.nu

    https://github.com/Araxeus/ls-interactive/blob/f6d2fd227137dcf1136fb4136b86ae9896d0d21c/scripts/lsi.nu#L4-L10

    you can open your environment file using the following command:

    config env
    

πŸ’» How to run it

lsi

or

lsi some_relative_path

βš™οΈ Build it yourself

(Releases are automatically built by github actions)

  • install rust

  • clone/download the repo

  • run in project directory:

    • cargo run: to run in dev mode
    • cargo build --release: to build locally,
      • executable will be in /target/release and named ls_interactive
      • launch script will be in the /scripts directory

🀝Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Before submitting a Pull Request, verify your changes with all following commands:

cargo check
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -W clippy::pedantic -W clippy::cargo -W clippy::nursery

❀️ Show your support

Give a ⭐ if this package helped you!

πŸ“œ License

MIT. See LICENSE file for details.