{"id":14563336,"url":"https://github.com/souvikinator/lsx","last_synced_at":"2025-03-17T10:34:37.114Z","repository":{"id":45084687,"uuid":"417732300","full_name":"souvikinator/lsx","owner":"souvikinator","description":"ls Xtended : A command line utility that lets you navigate through terminal like a pro 😎. ","archived":false,"fork":false,"pushed_at":"2022-02-09T21:20:48.000Z","size":9999,"stargazers_count":174,"open_issues_count":3,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-27T22:31:29.397Z","etag":null,"topics":["cd","cli","go","golang","hacktoberfest","hacktoberfest2021","linux","linux-shell","ls","ls-xtended","lsx","shell","terminal"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/souvikinator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-16T05:52:36.000Z","updated_at":"2024-09-03T12:56:25.000Z","dependencies_parsed_at":"2022-07-13T08:21:21.432Z","dependency_job_id":null,"html_url":"https://github.com/souvikinator/lsx","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souvikinator%2Flsx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souvikinator%2Flsx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souvikinator%2Flsx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souvikinator%2Flsx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/souvikinator","download_url":"https://codeload.github.com/souvikinator/lsx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243858016,"owners_count":20359261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cd","cli","go","golang","hacktoberfest","hacktoberfest2021","linux","linux-shell","ls","ls-xtended","lsx","shell","terminal"],"created_at":"2024-09-07T02:01:52.218Z","updated_at":"2025-03-17T10:34:36.519Z","avatar_url":"https://github.com/souvikinator.png","language":"Go","readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n\u003ca href=\"https://github.com/souvikinator/lsx\"\u003e\u003cimg src=\"https://github.com/souvikinator/lsx/raw/master/assets/lsx-logo.png\" alt=\"lsx\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eNavigate through terminal like a pro 😎\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://opensource.org/licenses/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/licence-MIT-brightgreen\"\n         alt=\"license\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/souvikinator/lsx/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/souvikinator/lsx\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codebeat.co/projects/github-com-souvikinator-lsx-master\"\u003e\u003cimg alt=\"codebeat badge\" src=\"https://codebeat.co/badges/08315931-e796-4828-bfb0-18b6750d6f2a\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/made%20with-Go-blue\"\u003e\n  \u003cimg src=\"https://goreportcard.com/badge/github.com/souvikinator/lsx\" alt=\"go report card\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"#-Demo\"\u003e💻 Demo\u003c/a\u003e •\n  \u003ca href=\"#%EF%B8%8F-install\"\u003e⚗️ Install \u0026 Update\u003c/a\u003e •\n\t\u003ca href=\"#-contribution\"\u003e🐜 Contribution\u003c/a\u003e •\n\t\u003ca href=\"#known-issues\"\u003e ❗Known Issues \u003c/a\u003e\n\u003c/p\u003e\n\n# ❓ Why?\n\nIt'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.\n\n**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.**\n\n# 💻 Demo\n\n\u003e **Note**: once you reach the desired destination, use `ctr+c` to exit and stay in the desired destination\n\n## Navigate through terminal and perform search:\n\n- use `/` to trigger search and start typing to search\n\n```bash\nlsx\n```\n\n\u003cimg src=\"https://github.com/souvikinator/lsx/blob/master/assets/demo.gif\" width=\"50%\" height=\"50%\" /\u003e\n\n## Show hidden files as well\n\n```bash\nlsx -a\n```\n\t\n\u003cimg src=\"https://github.com/souvikinator/lsx/blob/master/assets/all-mode.gif\" width=50% height=50%\u003e\n\n## Set **alias** for directory paths\n\n```bash\nlsx set-alias -n somealias -p path/to/be/aliased\n```\n\nor\n\n```bash\nlsx set-alias --path-name somealias --path path/to/be/aliased\n```\n\n\u003cimg src=\"https://github.com/souvikinator/lsx/blob/master/assets/set-alias.gif\" width=50% height=50%\u003e\n\n## Updating Alias\n\n`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:\n\n```bash\nlsx set-alias -n abc -p d/e/f\n```\n\n## List **alias** created by user\n\n```bash\nlsx alias\n```\n\n\u003cimg src=\"https://github.com/souvikinator/lsx/blob/master/assets/list-alias.gif\" width=50% height=50%\u003e\n\n## Use **alias**\n\n```bash\nlsx somealias\n```\n\n\u003cimg src=\"https://github.com/souvikinator/lsx/raw/master/assets/use-alias.gif\" width=50% height=50%\u003e\n\n## Remove existing **alias**\n\n```bash\nlsx remove-alias aliasname\n```\n\n\u003cimg src=\"https://github.com/souvikinator/lsx/blob/master/assets/remove-alias.gif\" width=50% height=50%\u003e\n\n# ⚗️ Install\n\n\u003e ## **⚠️** make sure:\n\u003e - Must have Go installed \n\u003e - GOPATH is set and `$GOPATH/bin` is added to [PATH](https://stackoverflow.com/questions/21001387/how-do-i-set-the-gopath-environment-variable-on-ubuntu-what-file-must-i-edit)\n\n### Run following command \n\n```bash\ncurl https://raw.githubusercontent.com/souvikinator/lsx/master/install.sh | bash\n```\n\nand you are ready to go, restart your terminal. Enjoy!\n\n\u003e **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`...):\n\u003e\n\u003e `source ~/.config/lsx/lsx.sh`\n\u003e\n\u003e and then restart your terminal\n\n**open an issue if still facing installation problems**\n\n## How to update?\n\n\u003e running the command used for installing updates `lsx`\n\nrestart your terminal and you are good to go.\n\n# 🐜 Contribution\n\nYou can improve this project by contributing in following ways:\n\n- report bugs\n- fix issues\n- request features\n- asking questions (just open an issue)\n\nand any other way if not mentioned here.\n\n# ❗Known Issues\n\nAs 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`...).\n\nThe 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.\n\nIf anyone can comeup with something then feel free to open issue.\n","funding_links":[],"categories":["cli"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouvikinator%2Flsx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsouvikinator%2Flsx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouvikinator%2Flsx/lists"}