Zsh And Oh My Zsh
Zsh is the interactive shell used by the terminal. Oh My Zsh manages the prompt, plugins, and theme conventions used by this setup.
Official Resources
| Resource | URL |
|---|---|
| Zsh | zsh.org |
| Oh My Zsh | ohmyz.sh |
| zsh-autosuggestions | github.com/zsh-users/zsh-autosuggestions |
What It Is Used For Here
| Use | Notes |
|---|---|
| Prompt | Uses Oh My Zsh robbyrussell with the prompt arrow replaced by 👼. |
| History | Shares shell history across tabs and sessions. |
| Suggestions | Enables zsh-autosuggestions when the plugin is installed. |
| Local commands | Adds ~/.local/bin to PATH so commands like tmux-dev work anywhere. |
| Local overrides | Loads ~/.zshrc.local for machine-specific config that should not be committed. |
Install Oh My Zsh
The tracked zsh/.zshrc is portable. It contains only shell behavior that should be shared between machines.
Install Oh My Zsh manually:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Install zsh-autosuggestions:
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestionsThen install the zsh config:
cd ~/.config/dotfiles
bin/dotfiles-install zsh
source ~/.zshrcThe interactive bootstrap can also install Oh My Zsh and zsh-autosuggestions for you:
~/.config/dotfiles/bin/bootstrap zshBefore installing this package on a machine that already has a large .zshrc, move machine-specific exports and generated tool paths to ~/.zshrc.local. The installer backs up the existing .zshrc, but the tracked config should stay portable.
Prompt Icon
The prompt icon is controlled by this line in zsh/.zshrc:
PROMPT="${PROMPT//➜/👼}"The robbyrussell theme normally renders ➜. This line keeps the rest of the theme unchanged and only replaces that symbol.
To use a different icon, replace 👼 with another symbol:
PROMPT="${PROMPT//➜/❯}"After changing it, reload the shell:
source ~/.zshrcIf the prompt does not change, open a new terminal tab or check that ~/.zshrc points to the repo:
ls -la ~/.zshrcLocal Configuration
Keep machine-specific configuration in ~/.zshrc.local:
export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="$ANDROID_HOME/platform-tools:$PATH"That file is intentionally not managed by this repo.
Examples of values that belong in ~/.zshrc.local:
SDK paths
work credentials
machine-specific aliases
tool-generated PATH entries
private tokens