Skip to content

Instantly share code, notes, and snippets.

@bendog
Last active June 12, 2026 05:53
Show Gist options
  • Select an option

  • Save bendog/b55df6d90385e7dd475b12fbb0b1024f to your computer and use it in GitHub Desktop.

Select an option

Save bendog/b55df6d90385e7dd475b12fbb0b1024f to your computer and use it in GitHub Desktop.
ZSH setup

setting up a Mac with zsh

install HomeBrew for Mac

go to https://brew.sh

Note: Be sure to run the commands which brew tells you to run at the end of your brew install!

install and setup zsh

echo $SHELL

if this is zsh go to the next stage, if not check zsh is installed

which zsh

if zsh is found

go to install oh-my-zsh

if zsh is not found, install with brew following the steps below

brew install zsh

to set zsh as your shell use chsh

chsh -s `which zsh`

close and reopen the terminal

install and setup oh-my-zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

install nerd fonts

I use the example of Meslo Nerd Font, feel free to install one you prefer.

Examples can be found here https://www.nerdfonts.com/font-downloads

brew search nerd-font 
# select your fond from that list and install
brew install --cask font-meslo-lg-nerd-font

Note: You may need to restart your mac for these fonts to show up

WARNING: In your Mac Terminal app, make sure you use a nerd font as your font of choice before you continue

Install iterm2

https://iterm2.com/

brew install --cask iterm2

See iterm2_profile.json for a profile for item2

Note: if you use it be sure to update the lines to reflect your username and not mine.

...
  "Log Directory" : "\/Users\/bendog\/.local\/log\/iterm2",
...
  "Working Directory" : "\/Users\/bendog", 
...

install PowerLevel10k

https://github.com/romkatv/powerlevel10k#oh-my-zsh

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Now, edit the ZSH_THEME in ~/.zshrc file into :

ZSH_THEME="powerlevel10k/powerlevel10k"

then run

source ~/.zshrc

if for some reason you need to re-run your config, you can use this command.

p10k configure

additional zsh tools

Download zsh-autosuggestions :

git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions 

Download zsh-syntax-higlighting :

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

Download zsh-direnv :

git clone https://github.com/ptavares/zsh-direnv.git $ZSH_CUSTOM/plugins/zsh-direnv

Oh-my-zsh plugins

Edit ~/.zshrc file, find plugins=(git) replace plugins=(git) with :

plugins=(
  # autoswitch_virtualenv
  aws
  git
  zsh-autosuggestions
  zsh-direnv
  zsh-syntax-highlighting
  )

ZSH History file length maxium uplift

Set the history size of your file to be larger than the default 50k lines/

Find the history section in your ~/.zshrc file and add teh HISTSIZE and SAVEHIST values as below.

# HIST_STAMPS="mm/dd/yyyy"
HISTSIZE=1000000
SAVEHIST=$HISTSIZE

ZSH editor defaults

Sick of having to remember the :q! command to get out of vim? change your default editor!

# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
  # If we're in an SSH session, use nano
  export EDITOR='nano'
else
  # If we're not in an SSH session, use code
  export EDITOR='code --wait'
fi

When ready

Reopen your terminal, now you should be able to use the auto suggestions and syntax highlighting.

{
"Ansi 7 Color (Light)" : {
"Red Component" : 0.93333333333333335,
"Color Space" : "sRGB",
"Blue Component" : 0.83529411764705885,
"Green Component" : 0.90980392156862744
},
"Ansi 15 Color (Light)" : {
"Red Component" : 0.99215686274509807,
"Color Space" : "sRGB",
"Blue Component" : 0.8901960784313725,
"Green Component" : 0.96470588235294119
},
"Ansi 2 Color (Light)" : {
"Red Component" : 0.52156862745098043,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Green Component" : 0.59999999999999998
},
"Bold Color" : {
"Red Component" : 0.062745101749897003,
"Color Space" : "sRGB",
"Blue Component" : 0.062745101749897003,
"Alpha Component" : 1,
"Green Component" : 0.062745101749897003
},
"Ansi 1 Color (Dark)" : {
"Red Component" : 0.86274509803921573,
"Color Space" : "sRGB",
"Blue Component" : 0.18431372549019609,
"Green Component" : 0.19607843137254902
},
"Use Bright Bold" : true,
"Ansi 9 Color (Light)" : {
"Red Component" : 0.79607843137254897,
"Color Space" : "sRGB",
"Blue Component" : 0.086274509803921567,
"Green Component" : 0.29411764705882354
},
"Ansi 8 Color (Dark)" : {
"Red Component" : 0.39999997615814209,
"Color Space" : "P3",
"Blue Component" : 0.39999997615814209,
"Alpha Component" : 1,
"Green Component" : 0.39999997615814209
},
"Background Color" : {
"Red Component" : 0.97999999999999998,
"Color Space" : "sRGB",
"Blue Component" : 0.97999999999999998,
"Alpha Component" : 1,
"Green Component" : 0.97999999999999998
},
"Columns" : 120,
"Plain Text Logging" : 0,
"Ansi 8 Color" : {
"Red Component" : 0.40781760215759277,
"Color Space" : "sRGB",
"Blue Component" : 0.4078223705291748,
"Alpha Component" : 1,
"Green Component" : 0.40782788395881653
},
"Right Option Key Sends" : 0,
"Ansi 4 Color (Light)" : {
"Red Component" : 0.14901960784313725,
"Color Space" : "sRGB",
"Blue Component" : 0.82352941176470584,
"Green Component" : 0.54509803921568623
},
"Blinking Cursor" : true,
"Selected Text Color (Light)" : {
"Red Component" : 0.34509803921568627,
"Color Space" : "sRGB",
"Blue Component" : 0.45882352941176469,
"Green Component" : 0.43137254901960786
},
"Selected Text Color (Dark)" : {
"Red Component" : 0.57647058823529407,
"Color Space" : "sRGB",
"Blue Component" : 0.63137254901960782,
"Green Component" : 0.63137254901960782
},
"Ansi 3 Color (Dark)" : {
"Red Component" : 0.70980392156862748,
"Color Space" : "P3",
"Blue Component" : 0,
"Alpha Component" : 1,
"Green Component" : 0.53725490196078429
},
"Keyboard Map" : {
"0xf728-0x0" : {
"Action" : 11,
"Text" : "0x4"
},
"0xf702-0x280000" : {
"Action" : 10,
"Text" : "b"
},
"0xf702-0x300000" : {
"Action" : 11,
"Text" : "0x1"
},
"0xf703-0x280000" : {
"Action" : 10,
"Text" : "f"
},
"0xf728-0x80000" : {
"Action" : 10,
"Text" : "d"
},
"0x7f-0x100000" : {
"Action" : 11,
"Text" : "0x15"
},
"0xf703-0x300000" : {
"Action" : 11,
"Text" : "0x5"
},
"0x7f-0x80000" : {
"Action" : 11,
"Text" : "0x1b 0x7f"
}
},
"Visual Bell" : true,
"Log Directory" : "\/Users\/bendog\/.local\/log\/iterm2",
"Cursor Text Color" : {
"Red Component" : 1,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 1,
"Green Component" : 1
},
"Scrollback Lines" : 0,
"Selection Color (Light)" : {
"Red Component" : 0.93333333333333335,
"Color Space" : "sRGB",
"Blue Component" : 0.83529411764705885,
"Green Component" : 0.90980392156862744
},
"Ansi 0 Color" : {
"Red Component" : 0.078431375324726105,
"Color Space" : "sRGB",
"Blue Component" : 0.11764705926179886,
"Alpha Component" : 1,
"Green Component" : 0.098039217293262482
},
"Match Background Color (Dark)" : {
"Red Component" : 0.99697142839431763,
"Color Space" : "P3",
"Blue Component" : 0.32116127014160156,
"Alpha Component" : 1,
"Green Component" : 0.98600882291793823
},
"Ansi 11 Color (Light)" : {
"Red Component" : 0.396078431372549,
"Color Space" : "sRGB",
"Blue Component" : 0.51372549019607838,
"Green Component" : 0.4823529411764706
},
"Ansi 5 Color (Dark)" : {
"Red Component" : 0.82745098039215681,
"Color Space" : "sRGB",
"Blue Component" : 0.50980392156862742,
"Green Component" : 0.21176470588235294
},
"Cursor Text Color (Light)" : {
"Red Component" : 0.93333333333333335,
"Color Space" : "sRGB",
"Blue Component" : 0.83529411764705885,
"Green Component" : 0.90980392156862744
},
"Silence Bell" : false,
"Automatically Log" : true,
"Rows" : 32,
"Guid" : "98A5BE41-732E-4378-A2BB-7D6AF3BE60B7",
"Ansi 14 Color (Dark)" : {
"Red Component" : 0.63494636103049995,
"Color Space" : "P3",
"Blue Component" : 0.79209757845233841,
"Alpha Component" : 1,
"Green Component" : 0.8079833984375
},
"Use Cursor Guide (Dark)" : false,
"Ansi 15 Color (Dark)" : {
"Red Component" : 0.99215686274509807,
"Color Space" : "sRGB",
"Blue Component" : 0.8901960784313725,
"Green Component" : 0.96470588235294119
},
"Ansi 0 Color (Dark)" : {
"Red Component" : 0.027450980392156862,
"Color Space" : "sRGB",
"Blue Component" : 0.25882352941176473,
"Green Component" : 0.21176470588235294
},
"Ambiguous Double Width" : false,
"Option Key Sends" : 0,
"Ansi 3 Color" : {
"Red Component" : 0.78058648109436035,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 1,
"Green Component" : 0.76959484815597534
},
"Window Type" : 0,
"BM Growl" : true,
"Prompt Before Closing 2" : 2,
"Command" : "",
"Selected Text Color" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 1,
"Green Component" : 0
},
"Ansi 14 Color (Light)" : {
"Red Component" : 0.57647058823529407,
"Color Space" : "sRGB",
"Blue Component" : 0.63137254901960782,
"Green Component" : 0.63137254901960782
},
"Cursor Guide Color (Dark)" : {
"Red Component" : 0.70213186740875244,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 0.25,
"Green Component" : 0.9268307089805603
},
"Send Code When Idle" : false,
"Ansi 6 Color" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.78166204690933228,
"Alpha Component" : 1,
"Green Component" : 0.77425903081893921
},
"Jobs to Ignore" : [
"rlogin",
"ssh",
"slogin",
"telnet"
],
"Badge Color (Dark)" : {
"Red Component" : 1,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 0.5,
"Green Component" : 0.1491314172744751
},
"Cursor Color" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 1,
"Green Component" : 0
},
"Vertical Spacing" : 1.01,
"Disable Window Resizing" : true,
"Close Sessions On End" : true,
"Selection Color (Dark)" : {
"Red Component" : 0.027450980392156862,
"Color Space" : "sRGB",
"Blue Component" : 0.25882352941176473,
"Green Component" : 0.21176470588235294
},
"Default Bookmark" : "No",
"Foreground Color (Light)" : {
"Red Component" : 0.396078431372549,
"Color Space" : "sRGB",
"Blue Component" : 0.51372549019607838,
"Green Component" : 0.4823529411764706
},
"Custom Command" : "No",
"Background Color (Dark)" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.21176470588235294,
"Green Component" : 0.16862745098039217
},
"Ansi 9 Color" : {
"Red Component" : 0.8659515380859375,
"Color Space" : "sRGB",
"Blue Component" : 0.45833224058151245,
"Alpha Component" : 1,
"Green Component" : 0.47524076700210571
},
"Ansi 14 Color" : {
"Red Component" : 0.37597531080245972,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 1,
"Green Component" : 0.99263292551040649
},
"Flashing Bell" : true,
"Use Italic Font" : true,
"Ansi 13 Color (Dark)" : {
"Red Component" : 0.866424560546875,
"Color Space" : "P3",
"Blue Component" : 0.71994288641323156,
"Alpha Component" : 1,
"Green Component" : 0.585641407884683
},
"Cursor Guide Color (Light)" : {
"Red Component" : 0.70213186740875244,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 0.25,
"Green Component" : 0.9268307089805603
},
"Ansi 12 Color" : {
"Red Component" : 0.65349078178405762,
"Color Space" : "sRGB",
"Blue Component" : 0.9485321044921875,
"Alpha Component" : 1,
"Green Component" : 0.67044717073440552
},
"Ansi 10 Color (Light)" : {
"Red Component" : 0.34509803921568627,
"Color Space" : "sRGB",
"Blue Component" : 0.45882352941176469,
"Green Component" : 0.43137254901960786
},
"Non-ASCII Anti Aliased" : true,
"Ansi 10 Color" : {
"Red Component" : 0.3450070321559906,
"Color Space" : "sRGB",
"Blue Component" : 0.56541937589645386,
"Alpha Component" : 1,
"Green Component" : 0.9042816162109375
},
"Foreground Color" : {
"Red Component" : 0.062745101749897003,
"Color Space" : "sRGB",
"Blue Component" : 0.062745101749897003,
"Alpha Component" : 1,
"Green Component" : 0.062745101749897003
},
"Link Color (Light)" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.73423302173614502,
"Alpha Component" : 1,
"Green Component" : 0.35916060209274292
},
"Description" : "Default",
"Ansi 7 Color (Dark)" : {
"Red Component" : 0.93333333333333335,
"Color Space" : "sRGB",
"Blue Component" : 0.83529411764705885,
"Green Component" : 0.90980392156862744
},
"Sync Title" : false,
"Ansi 1 Color" : {
"Red Component" : 0.7074432373046875,
"Color Space" : "sRGB",
"Blue Component" : 0.16300037503242493,
"Alpha Component" : 1,
"Green Component" : 0.23660069704055786
},
"Name" : "Default",
"Transparency" : 0,
"Horizontal Spacing" : 1,
"Cursor Color (Dark)" : {
"Red Component" : 0.51372549019607838,
"Color Space" : "sRGB",
"Blue Component" : 0.58823529411764708,
"Green Component" : 0.58039215686274515
},
"Ansi 2 Color (Dark)" : {
"Red Component" : 0.52156862745098043,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Green Component" : 0.59999999999999998
},
"Ansi 9 Color (Dark)" : {
"Red Component" : 0.74097018583626906,
"Color Space" : "P3",
"Blue Component" : 0.41697433362497421,
"Alpha Component" : 1,
"Green Component" : 0.46315291991954688
},
"Badge Color" : {
"Red Component" : 0.74613857269287109,
"Color Space" : "sRGB",
"Blue Component" : 0.11610633134841919,
"Alpha Component" : 0.5,
"Green Component" : 0.11610633134841919
},
"Ansi 13 Color (Light)" : {
"Red Component" : 0.42352941176470588,
"Color Space" : "sRGB",
"Blue Component" : 0.7686274509803922,
"Green Component" : 0.44313725490196076
},
"Idle Code" : 0,
"Ansi 4 Color" : {
"Red Component" : 0.15404300391674042,
"Color Space" : "sRGB",
"Blue Component" : 0.78216177225112915,
"Alpha Component" : 1,
"Green Component" : 0.26474356651306152
},
"Bold Color (Dark)" : {
"Red Component" : 0.57647058823529407,
"Color Space" : "sRGB",
"Blue Component" : 0.63137254901960782,
"Green Component" : 0.63137254901960782
},
"Screen" : -1,
"Ansi 4 Color (Dark)" : {
"Red Component" : 0.14901960784313725,
"Color Space" : "sRGB",
"Blue Component" : 0.82352941176470584,
"Green Component" : 0.54509803921568623
},
"Cursor Text Color (Dark)" : {
"Red Component" : 0.027450980392156862,
"Color Space" : "sRGB",
"Blue Component" : 0.25882352941176473,
"Green Component" : 0.21176470588235294
},
"Selection Color" : {
"Red Component" : 0.70196080207824707,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 1,
"Green Component" : 0.84313726425170898
},
"Use Non-ASCII Font" : false,
"Badge Color (Light)" : {
"Red Component" : 1,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 0.5,
"Green Component" : 0.1491314172744751
},
"Character Encoding" : 4,
"Ansi 11 Color (Dark)" : {
"Red Component" : 0.9075927734375,
"Color Space" : "P3",
"Blue Component" : 0.4637621686220989,
"Alpha Component" : 1,
"Green Component" : 0.80152664036636934
},
"Show Timestamps" : 0,
"Icon" : 1,
"Bold Color (Light)" : {
"Red Component" : 0.34509803921568627,
"Color Space" : "sRGB",
"Blue Component" : 0.45882352941176469,
"Green Component" : 0.43137254901960786
},
"Ansi 12 Color (Dark)" : {
"Red Component" : 0.54080281470649427,
"Color Space" : "P3",
"Blue Component" : 0.86669921875,
"Alpha Component" : 1,
"Green Component" : 0.70305374160261835
},
"Ansi 7 Color" : {
"Red Component" : 0.7810397744178772,
"Color Space" : "sRGB",
"Blue Component" : 0.78104829788208008,
"Alpha Component" : 1,
"Green Component" : 0.78105825185775757
},
"Non Ascii Font" : "Monaco 12",
"Ansi 6 Color (Dark)" : {
"Red Component" : 0.16470588235294117,
"Color Space" : "sRGB",
"Blue Component" : 0.59607843137254901,
"Green Component" : 0.63137254901960782
},
"Cursor Guide Color" : {
"Red Component" : 0.52338260412216187,
"Color Space" : "sRGB",
"Blue Component" : 0.85319280624389648,
"Alpha Component" : 0.25,
"Green Component" : 0.77217715978622437
},
"Custom Directory" : "No",
"Working Directory" : "\/Users\/bendog",
"ASCII Anti Aliased" : true,
"Shortcut" : "",
"Mouse Reporting" : true,
"Tags" : [
],
"Ansi 6 Color (Light)" : {
"Red Component" : 0.16470588235294117,
"Color Space" : "sRGB",
"Blue Component" : 0.59607843137254901,
"Green Component" : 0.63137254901960782
},
"Match Background Color (Light)" : {
"Red Component" : 0.99697142839431763,
"Color Space" : "P3",
"Blue Component" : 0.32116127014160156,
"Alpha Component" : 1,
"Green Component" : 0.98600882291793823
},
"Background Image Location" : "",
"Ansi 1 Color (Light)" : {
"Red Component" : 0.86274509803921573,
"Color Space" : "sRGB",
"Blue Component" : 0.18431372549019609,
"Green Component" : 0.19607843137254902
},
"Use Bold Font" : true,
"Ansi 8 Color (Light)" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.21176470588235294,
"Green Component" : 0.16862745098039217
},
"Ansi 2 Color" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 1,
"Green Component" : 0.7607843279838562
},
"Normal Font" : "MesloLGMNFM-Regular 11",
"Unlimited Scrollback" : true,
"Ansi 12 Color (Light)" : {
"Red Component" : 0.51372549019607838,
"Color Space" : "sRGB",
"Blue Component" : 0.58823529411764708,
"Green Component" : 0.58039215686274515
},
"Treat Option as Alt" : true,
"Ansi 10 Color (Dark)" : {
"Red Component" : 0.65619568610556023,
"Color Space" : "P3",
"Blue Component" : 0.42830840828492472,
"Alpha Component" : 1,
"Green Component" : 0.7196044921875
},
"Ansi 3 Color (Light)" : {
"Red Component" : 0.70980392156862748,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Green Component" : 0.53725490196078429
},
"Cursor Color (Light)" : {
"Red Component" : 0.396078431372549,
"Color Space" : "sRGB",
"Blue Component" : 0.51372549019607838,
"Green Component" : 0.4823529411764706
},
"Ansi 15 Color" : {
"Red Component" : 0.99999600648880005,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 1,
"Green Component" : 1
},
"Blur" : false,
"Use Separate Colors for Light and Dark Mode" : true,
"Session Close Undo Timeout" : 15,
"Background Color (Light)" : {
"Red Component" : 0.99215686274509807,
"Color Space" : "sRGB",
"Blue Component" : 0.8901960784313725,
"Green Component" : 0.96470588235294119
},
"Terminal Type" : "xterm-256color",
"Ansi 13 Color" : {
"Red Component" : 0.8821563720703125,
"Color Space" : "sRGB",
"Blue Component" : 0.8821563720703125,
"Alpha Component" : 1,
"Green Component" : 0.4927266538143158
},
"Ansi 5 Color (Light)" : {
"Red Component" : 0.82745098039215681,
"Color Space" : "sRGB",
"Blue Component" : 0.50980392156862742,
"Green Component" : 0.21176470588235294
},
"Foreground Color (Dark)" : {
"Red Component" : 0.51372549019607838,
"Color Space" : "sRGB",
"Blue Component" : 0.58823529411764708,
"Green Component" : 0.58039215686274515
},
"Link Color" : {
"Red Component" : 0.19802422821521759,
"Color Space" : "sRGB",
"Blue Component" : 0.9337158203125,
"Alpha Component" : 1,
"Green Component" : 0.55789834260940552
},
"Link Color (Dark)" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.73423302173614502,
"Alpha Component" : 1,
"Green Component" : 0.35916060209274292
},
"Ansi 11 Color" : {
"Red Component" : 0.9259033203125,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 1,
"Green Component" : 0.8833775520324707
},
"Ansi 5 Color" : {
"Red Component" : 0.752197265625,
"Color Space" : "sRGB",
"Blue Component" : 0.74494361877441406,
"Alpha Component" : 1,
"Green Component" : 0.24931684136390686
},
"Ansi 0 Color (Light)" : {
"Red Component" : 0.027450980392156862,
"Color Space" : "sRGB",
"Blue Component" : 0.25882352941176473,
"Green Component" : 0.21176470588235294
}
}

Setup Python

commands for installing python

brew install python
brew install pyenv
brew install uv poetry

confirm uv and poetry

$ uv --version
uv 0.6.4 (Homebrew 2025-03-03)

$ which uv 
/opt/homebrew/bin/uv

$ poetry --version
Poetry (version 2.1.1)

$ which poetry
/opt/homebrew/bin/poetry

add pyenv settings to ~/.zprofile

cat <<'EOF' >> ~/.zprofile
# PyEnv settings
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
# end of PyEnv settings
EOF

then run source on that file

source ~/.zprofile

update zsh plugins

edit ~/.zshrc and add pyenv and pipenv to the plugins

plugins=(
  # autoswitch_virtualenv
  aws
  git
  pyenv
  uv
  zsh-autosuggestions 
  zsh-syntax-highlighting
  )

Aliases

Do these in a new terminal window

install fancy helper tools for aliases

brew install lsd eza

enable .aliases file

add this line to ~/.zshrc under the aliases section

if [ -f ~/.aliases ]; then
  source $HOME/.aliases
fi

add the aliases to the .aliases file

edit the ~/.aliases file with code ~/.aliases and add these lines

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ls="lsd"
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Use eza for tree
alias tree='eza --tree --long'

# use bat for help docs
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'

# mac DNS flush
alias flushdnscache='sudo killall -HUP mDNSResponder; sleep 1; echo "macOS DNS Cache Reset"'

alias randompw='openssl rand -base64 8 |md5 |head -c32;echo'

alias tf='terraform'


function ports() {
    netstat -Watnlv | grep LISTEN | awk '{"ps -o comm= -p " $9 | getline procname;colred="\033[01;31m";colclr="\033[0m"; print colred "proto: " colclr $1 colred " | addr.port: " colclr $4 colred " | pid: " colclr $9 colred " | name: " colclr procname;  }' | column -t -s "|"
}

whoseport() {
  lsof -i ":$1" | grep LISTEN
}

function docker_rm_images() {
    docker rmi $2 $(docker image ls | grep $1 | awk '{print $3}'  )  
}

export PROJECT_DIR="$HOME/Projects"

function project() {
    local sub_dir="$1"
    local dir="$PROJECT_DIR/${sub_dir}"
    echo "$dir"
    if [[ ! -e "$dir" ]]
    then
        # if dir doesn't exist prompt to create one 
        echo "Doesn't exist, create a new one? [y/N] "
        read confirm
        if [[ ! "$confirm" =~ ^[Yy] ]]
        then
            echo "exit"
            [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 # handle exits from shell or function but don't exit interactive shell
        else
            echo "creating ${dir}"
            mkdir -p "$dir";
        fi
    fi
    cd "$dir"
}

alias pj='project'

# Git Tools

alias gs='git status'

# git remote rename
function git_remote_rename() {
    local remote="$1"
    local oldname="$2"
    local newname="$3"
    echo "$remote:$oldname -> $remote:$newname"
    if git ls-remote --heads "$remote" \
        | cut -f2 \
        | sed 's:refs/heads/::' \
        | grep -q ^"$newname"$; then
        echo "Error: $newname already exists"
        exit 1
    fi
    git push "${remote}" "${remote}/${oldname}:refs/heads/${newname}" ":${oldname}"
}

function git_remote_bulk_rename() {
    # usage: git_remote_bulk_rename origin CR feature/
    # result: origin:CR-2135 -> origin:feature/CR-2135
    local remote="$1"
    local prefix = "$2"
    local newprefix = "$3"
    echo "${remote}:${prefix}... -> ${remote}:${newprefix}${prefix}..."
    git ls-remote --heads origin \
        | cut -f2 | sed 's:refs/heads/::' \
        | grep ^"${prefix}.*"$ \
        | while read line ; do \
            git_remote_rename "${remote}" "${line}" "${newprefix}${line}" ; \
        done
}

alias git-prune='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d'

alias git-fetch-all-branches='for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done'

Setup Git

install new git tools

brew install difftastic

ignore all .DS_Store files

echo ".DS_Store" >> ~/.gitignore
git config --global core.excludesFile ~/.gitignore

add git lg alias for better git log

cat <<'EOF' >> ~/.gitconfig
[alias]
    lg = lg1
    lg1 = lg1-specific --all
    lg2 = lg2-specific --all
    lg3 = lg3-specific --all

    lg1-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
    lg2-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
    lg3-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(auto)%d%C(reset)%n''          %C(white)%s%C(reset)%n''          %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)' 
[diff]
    external = difft
EOF

Extra tools from homebrew

some extra tooling which would be good from homebrew

brew install aws-cdk aws-sam-cli awscli bat black cmake \
diceware eksctl gh glab httpie iredis isort jq k9s kubernetes-cli \
make openssl pgcli pillow pipx pre-commit rename ruff telnet \
terraform terraform-docs tflint tfsec thefuck trivy vite watch yarn

congifure git helper apps

GitHub CLI

gh auth login
gh alias set view 'repo view --web'

GitLab CLI

glab auth login 
glab alias set view 'repo view -w'

Add gl alias for glab

echo "\nalias gl='glab'\n" >> $HOME/.aliases
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment