An open API service indexing awesome lists of open source software.

https://github.com/araxeus/ls-interactive

Interactive ls command
https://github.com/araxeus/ls-interactive

cli command-line-tool directory explorer filesystem folder-viewer ls lsi

Last synced: 14 days ago
JSON representation

Interactive ls command

Awesome Lists containing this project

README

        

ls-interactive πŸ’»




Version


License: MIT


Maintenance

> Interactive ls command made in rust

![image](https://user-images.githubusercontent.com/78568641/167173566-8762a3a8-4dbf-492a-9883-f48760637bcd.png)

## ⚑ 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](https://github.com/Araxeus/ls-interactive/releases)

2. Extract its content into a folder in PATH ([guide](https://gist.github.com/nex3/c395b2f8fd4b02068be37c961301caa7))

3. Follow shell specific instructions:

Bash (Linux/Mac) or Zsh

* Copy the `lsi` function from [scripts/lsi.sh](https://github.com/Araxeus/ls-interactive/blob/master/scripts/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](https://github.com/Araxeus/ls-interactive/blob/master/scripts/lsi.sh) 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)

```batch
rundll32.exe sysdm.cpl,EditEnvironmentVariables
```

Fish Shell

* Copy [scripts/lsi.fish](https://github.com/Araxeus/ls-interactive/blob/master/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](https://github.com/Araxeus/ls-interactive/blob/master/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:

```ps1
notepad $profile
```

```ps1
gedit $profile
```

Nushell

* Copy the `lsi` function from [scripts/lsi.nu](https://github.com/Araxeus/ls-interactive/blob/master/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:

```bash
config env
```

## πŸ’» How to run it

```bash
lsi
```

or

```bash
lsi some_relative_path
```

## βš™οΈ Build it yourself

(Releases are [automatically](https://github.com/Araxeus/ls-interactive/blob/master/.github/workflows/release.yml) 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](https://github.com/Araxeus/ls-interactive/issues).

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

```mcfunction
cargo check
```

```mcfunction
cargo fmt --all --check
```

```mcfunction
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](./LICENSE) for details.