souvikinator / lsx

ls Xtended : A command line utility that lets you navigate through terminal like a pro 😎.
MIT License
174 stars 9 forks source link
cd cli go golang hacktoberfest hacktoberfest2021 linux linux-shell ls ls-xtended lsx shell terminal


lsx

Navigate through terminal like a pro 😎

license codebeat badge go report card

💻 Demo⚗️ Install & Update🐜 Contribution ❗Known Issues

❓ Why?

It's a pain to cd and ls multiple times to reach desired directory in terminal (this maybe subjective). ls-Xtended (lsx) solves this problem by allowing users to smoothly navigate and search directories on the go with just one command. It also allows to create alias for paths making it easier for users to remember the path to the desired directory.

It also ranks your directories based on how often you access them and placing them on top of the list to reduce searching and navigation time.

💻 Demo

Note: once you reach the desired destination, use ctr+c to exit and stay in the desired destination

Navigate through terminal and perform search:

lsx

Show hidden files as well

lsx -a

Set alias for directory paths

lsx set-alias -n somealias -p path/to/be/aliased

or

lsx set-alias --path-name somealias --path path/to/be/aliased

Updating Alias

set-alias can also be used to update any existing alias. Let's say alias abc already exists for path a/b/c. on can update it like so:

lsx set-alias -n abc -p d/e/f

List alias created by user

lsx alias

Use alias

lsx somealias

Remove existing alias

lsx remove-alias aliasname

⚗️ Install

⚠️ make sure:

  • Must have Go installed
  • GOPATH is set and $GOPATH/bin is added to PATH

Run following command

curl https://raw.githubusercontent.com/souvikinator/lsx/master/install.sh | bash

and you are ready to go, restart your terminal. Enjoy!

Note: zsh, bash and fish shell users just need to run the installation script and lsx will be ready to use. In case the command is not working add following line at the end of your shell resource file (.bashrc, .zshrc...):

source ~/.config/lsx/lsx.sh

and then restart your terminal

open an issue if still facing installation problems

How to update?

running the command used for installing updates lsx

restart your terminal and you are good to go.

🐜 Contribution

You can improve this project by contributing in following ways:

and any other way if not mentioned here.

❗Known Issues

As of now the installation process is painful and the reason is a program runs as a child process in a terminal so eveything happens withing that child process. When we change the directory from go program the directory changes for that executable or to be specific "for that child process" and not of the shell. Which is why one needs to source a script in their shell resource file (.zshrc, .bashrc...).

The script contains a bash function as a wrapper around the lsx binary to make the whole cd thing work. This is what is prevent lsx to be distributed using some package manager.

If anyone can comeup with something then feel free to open issue.