Install zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Add customizations into .zshrc

Add plugins: zsh-syntax-highlighting, zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

add to plugins section in .zshrc

plugins=( 
    git
    zsh-syntax-highlighting
    zsh-autosuggestions
)

Optional: install power10k for better looking

git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

And add following to .zshrc

source $ZSH_CUSTOM/themes/powerlevel10k/powerlevel10k.zsh-theme
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

Optional: install oh-my-posh for better looking

#macos
brew install jandedobbeleer/oh-my-posh/oh-my-posh
 
#linux (installed to ~/bin)
curl -s https://ohmyposh.dev/install.sh | bash -s -- -d ~/bin

Configure oh-my-posh theme

eval "$(oh-my-posh init zsh --config $(brew --prefix oh-my-posh)/themes/jandedobbeleer.omp.json)"

Theme I used

{
 
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
 
"blocks": [
 
{
 
"alignment": "left",
 
"segments": [
 
{
 
"foreground": "#7eb8da",
 
"style": "plain",
 
"template": "\u250f[<#ffffff>\ueb99</> {{ .UserName }}@{{ .HostName }}]",
 
"type": "session"
 
},
 
{
 
"foreground": "#be9ddf",
 
"properties": {
 
"style": "dallas",
 
"threshold": 0
 
},
 
"style": "diamond",
 
"template": "[<#ffffff>\uf252</> {{ .FormattedMs }}s]",
 
"type": "executiontime"
 
},
 
{
 
"properties": {
 
"root_icon": "\uf292"
 
},
 
"style": "diamond",
 
"template": "\uf0e7",
 
"type": "root"
 
},
 
{
 
"foreground": "#be9ddf",
 
"style": "diamond",
 
"template": "[<#ffffff>\ue266</> RAM: {{ (div ((sub .PhysicalTotalMemory .PhysicalFreeMemory)|float64) 1073741824.0) }}/{{ (div .PhysicalTotalMemory 1073741824.0) }}GB]",
 
"type": "sysinfo"
 
},
 
{
 
"foreground": "#7eb8da",
 
"properties": {
 
"time_format": "Mon at 3:04:05 PM"
 
},
 
"style": "diamond",
 
"template": "[<#ffffff>\uf073 </>{{ .CurrentDate | date .Format }}]",
 
"type": "time"
 
},
 
{
 
"foreground": "#ffa5d8",
 
"properties": {
 
"fetch_stash_count": true,
 
"fetch_status": true,
 
"fetch_upstream_icon": true
 
},
 
"style": "plain",
 
"template": "[<#ffffff>{{ .UpstreamIcon }}</>{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} <#ffffff>\uf044</> {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} <#ffffff>\uf046</> {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} <#ffffff>\ueb4b</> {{ .StashCount }}{{ end }}]",
 
"type": "git"
 
},
 
{
 
"foreground": "#ffa5d8",
 
"style": "plain",
 
"template": "[{{ .Profile }}{{if .Region}}@{{ .Region }}{{ end }}]",
 
"type": "aws"
 
},
 
{
 
"foreground": "#ffa5d8",
 
"style": "plain",
 
"template": "[{{.Context}}{{if .Namespace}} :: {{.Namespace}}{{end}}]",
 
"type": "kubectl"
 
},
 
{
 
"foreground": "#ffa5d8",
 
"style": "plain",
 
"template": "[\uf0e7]",
 
"type": "root"
 
},
 
{
 
"foreground": "#ffa5d8",
 
"style": "powerline",
 
"template": "[<#ffffff>\uea6c</> Error, check your command]",
 
"type": "status"
 
}
 
],
 
"type": "prompt"
 
},
 
{
 
"alignment": "left",
 
"newline": true,
 
"segments": [
 
{
 
"foreground": "#7eb8da",
 
"properties": {
 
"style": "full"
 
},
 
"style": "plain",
 
"template": "\u2516[<#98bfad>{{ .Path }}</>]",
 
"type": "path"
 
}
 
],
 
"type": "prompt"
 
},
 
{
 
"alignment": "left",
 
"newline": true,
 
"segments": [
 
{
 
"foreground": "#7eb8da",
 
"style": "plain",
 
"template": "\u2514\u2500Δ",
 
"type": "text"
 
},
 
{
 
"type": "python",
 
"style": "diamond",
 
"foreground": "#7eb8da",
 
"template": "{{ if .Venv }} [<#ffffff>\uE235</> {{ .Venv }}{{ end }}]",
 
"properties": {
 
"fetch_virtual_env": true
 
}
 
}
 
],
 
"type": "prompt"
 
}
 
],
 
"final_space": true,
 
"version": 2
 
}

Finally, reload terminal or exec zsh

Fix conda after install zsh

[miniconda3_location]/bin/conda init zsh