{"id":24985294,"url":"https://github.com/feliperdamaceno/shell-environment-setup","last_synced_at":"2026-05-04T03:32:35.089Z","repository":{"id":275480357,"uuid":"926185426","full_name":"feliperdamaceno/shell-environment-setup","owner":"feliperdamaceno","description":"This guide provides instructions for setting up my development shell environment. It's tailored to my personal preferences and requirements, but feel free to use it as a foundation to create your own customized setup.","archived":false,"fork":false,"pushed_at":"2025-05-28T22:55:32.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-28T23:31:13.391Z","etag":null,"topics":["powerlevel10k","zinit","zoxide","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/feliperdamaceno.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-02T18:47:56.000Z","updated_at":"2025-05-28T22:55:35.000Z","dependencies_parsed_at":"2025-02-02T20:26:35.017Z","dependency_job_id":"b5d385ab-43e1-4f12-a92b-b4bb8593af1a","html_url":"https://github.com/feliperdamaceno/shell-environment-setup","commit_stats":null,"previous_names":["feliperdamaceno/shell-environment-setup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/feliperdamaceno/shell-environment-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feliperdamaceno%2Fshell-environment-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feliperdamaceno%2Fshell-environment-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feliperdamaceno%2Fshell-environment-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feliperdamaceno%2Fshell-environment-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feliperdamaceno","download_url":"https://codeload.github.com/feliperdamaceno/shell-environment-setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feliperdamaceno%2Fshell-environment-setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32593857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["powerlevel10k","zinit","zoxide","zsh"],"created_at":"2025-02-04T10:51:25.703Z","updated_at":"2026-05-04T03:32:35.084Z","avatar_url":"https://github.com/feliperdamaceno.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Shell Environment Setup\n\nThis guide provides instructions for setting up my development shell\nenvironment. It's tailored to my personal preferences and requirements, but feel\nfree to use it as a foundation to create your own customized setup.\n\n### 1. Installing ZSH\n\nThere are two main ways to install Zsh:\n\n- With the package manager of your choice, e.g. `sudo apt install zsh`.\n- From the source by following\n  [the instructions from the Zsh FAQ](https://zsh.sourceforge.io/FAQ/zshfaq01.html#l7)\n\nOnce installed, verify installation by running `zsh --version`.\n\nFinally, to make it your default shell run `chsh -s $(which zsh)`.\n\n### 2. Installing a Package Manager\n\nIn order to install and manage ZSH plugins, we're using `zinit` package manager.\n\nTo install follow the instructions on their\n[official repository](https://github.com/zdharma-continuum/zinit).\n\n\\* The recommendation is to follow the manual installation, so that your\n`.zshrc` config can be more organized.\n\n### 3. Installing a Nerd Font\n\nIn order for all glyphs to work, you need to make sure to install one of the\nNerd Font options available on their [website] (https://www.nerdfonts.com/).\n\n\\* The recommended font is `Jetbrains Mono`.\n\n### 4. Installing Oh My Posh\n\nFollow the guide on their\n[official website](https://ohmyposh.dev/docs/installation/linux).\n\nTo add the prompt customizations, copy the `prompt.toml` file to\n`~/.config/ohmyposh/`.\n\nThen, include into your `.zshrc` file the following:\n\n```shell\n# Prompt\neval \"$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/prompt.toml)\"\n```\n\n### 5. Installing `zinit` core plugins\n\n\\* For the last plugin to work properly, first make sure to to have **manually**\nintalled [`fzf`](https://github.com/junegunn/fzf), and have included the\nfollowing to your `.zshrc` config:\n\n```shell\n# Source/Load fzf\n[ -f ~/.fzf.zsh ] \u0026\u0026 source ~/.fzf.zsh\n```\n\nOnce that is done, to get the most of your shell, include the followig lines in\nyour `.zshrc`:\n\n```shell\n# Add in zsh plugins\nzinit light zsh-users/zsh-syntax-highlighting\nzinit light zsh-users/zsh-autosuggestions\nzinit light zsh-users/zsh-completions\nzinit light Aloxaf/fzf-tab\n\n# Load Completions\nautoload -Uz compinit \u0026\u0026 compinit\n\nzinit cdreplay -q\n```\n\nThis will install all the required plugins to enable shell auto completions and\na good syntax highlighting.\n\nWe can also include some snippets available on `Oh My Zsh` by including\n`zinit snippet OMZL::\u003cpluging-name\u003e` line in your config.\n\nHere, we will include `git` aliases:\n\n```shell\n# Add in snippets\nzinit snippet OMZL::git.zsh\nzinit snippet OMZP::git\n```\n\nFor more plugins, check their\n[official plugin list](https://github.com/ohmyzsh/ohmyzsh/wiki/plugins).\n\nFinally, to ensure your auto completions menu uses the emacs keybindings as well\nas correcting some search behaviors, include the following to `.zshrc`:\n\n```shell\n# Keybindings\nbindkey -e\nbindkey '^p' history-search-backward\nbindkey '^n' history-search-forward\nbindkey '^[w' kill-region\n```\n\n### 6. Configuring Auto Completions\n\nTo enhance the auto completions functionality, include the following lines in\nyour `.zshrc`:\n\n```shell\n# History\nHISTSIZE=5000\nHISTFILE=~/.zsh_history\nSAVEHIST=$HISTSIZE\nHISTDUP=erase\nsetopt appendhistory\nsetopt sharehistory\nsetopt hist_ignore_space\nsetopt hist_ignore_all_dups\nsetopt hist_save_no_dups\nsetopt hist_ignore_dups\nsetopt hist_find_no_dups\n```\n\nThen, include the following styling options to enhance the layout and behavior\nof the auto completions:\n\n```shell\n# Completion Styling\nzstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'\nzstyle ':completion:*' list-colors \"${LS_COLORS}\"\nzstyle ':completion:*' menu select\nzstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'\nzstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'\n```\n\n### 7. Better Shell:\n\nThe default CLI commands can be improved by installing a few alternatives:\n\n- [bat](https://github.com/sharkdp/bat)\n- [eza](https://github.com/eza-community/eza)\n- [fd](https://github.com/sharkdp/fd)\n\nThen setup the following aliases and path in `.zshrc`:\n\n```shell\n# Path\nexport PATH=\"$PATH:$HOME/.local/bin\"\n\n# Aliases\nalias cat=\"bat\"\nalias ls=\"eza\"\nalias la=\"eza -a\"\n```\n\nAs for the programming languages version manager, install the following:\n\n- [asdf](https://github.com/asdf-vm/asdf)\n\n\\* Make sure to add the binary under `$HOME/.local/bin`. \n\n### 8. Extra Aliases:\n\nThere are a few more aliases to include in order to make the navigation via the\nCLI more plesant, for example:\n\n```shell\n# Aliases\nalias c=\"clear\"\n```\n\n### 9. Install Zoxide\n\nFollow the instructions from the official repo:\nhttps://github.com/ajeetdsouza/zoxide.\n\nOnce that is ready, add `eval \"$(zoxide init --cmd cd zsh)\"` to the end of\n`~/.zshrc` file.\n\n### 10. SSH Agent\n\nIn order for your SSH agent to start when you shell is being loaded, include the\nfollowing at the very start of your `~/.zshrc` file:\n\n```shell\n# Start ssh agent on load\neval \"$(ssh-agent -s)\" \u0026\u0026 clear\n```\n\n## Licence\n\nThis is an open-source project and is available under the\n[**MIT License**](LICENSE). You are free to use, modify, and distribute the code\nin accordance with the terms of the license.\n\n## Contributors\n\nContributions are highly appreciated! If you encounter any issues or have\nsuggestions for improvements, please feel free to open an issue or submit a pull\nrequest.\n\n[feliperdamaceno](https://github.com/feliperdamaceno)\n\n## Contact me\n\nLinkedin: [feliperdamaceno](https://www.linkedin.com/in/feliperdamaceno)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeliperdamaceno%2Fshell-environment-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeliperdamaceno%2Fshell-environment-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeliperdamaceno%2Fshell-environment-setup/lists"}