You learn a lot about new tools and automating setup when you setup a new laptop. This is an attempt to document some key features, and nice-to-haves that can be replicated in future setups.

  1. Increase Mouse Pointer Speed: I do this on all laptops to avoid pain associated to scrolling in my fingers.
System Preferences -> Trackpad -> Increase speed

2. Enable Point to Click: Allows clicking without pressuring my fingers

System Preferences -> Trackpad -> Enable Point to Click

3. Enable App Expose: Enables seeing which tabs of a software are open with a 4 finger swipe down gesture.

AllTrackpad preferences -> More Gestures -> Enable App Expose

4. Enable 3 finger drag: I don’t like clicking and dragging, as it offers less control and puts more pressure on my fingers and thumb. This makes the whole dragging experience a lot smoother.

Accessibility -> Mouse and Trackpad -> Trackpad Options -> Enable Dragging -> 3 Finger Drag

5. Install Homebrew: The most popular package manager on Mac

#Install Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Add the variables to the path for brew
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

6. Install Iterm2: A very powerful alternative to the default Mac Terminal. I just use rudimentary features such as splitting terminal, the easy copy and pasting it offers etc. But people use a lot more complex features.

brew install iterm2

The remaining steps are inside iterm2

7. Install zsh: A powerful alternative to bash with additional features and support for plugins and themes.

brew install zsh

8. Install oh-my-zsh: The most popular plugin framework for zsh

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

9. Install IntelliJ Community Edition: World’s most powerful IDE

Download the installer, click install, drag to applications when it asks to.

10. Install Visual Studio Code: World’s most versatile IDE

Download Visual Studio Code, and drag it into applications.

11. Install Sublime Text: Simple and clean text editor. It can be used as an IDE also, but I use it plainly as a text editor.

Download and drag to applications

12. Add sublime CLI to path

echo 'export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin:$PATH"' >> ~/.zprofile

13. Change iterm2 theme:

Open Iterm -> Preferences -> Profiles -> Colors -> Color Presets -> Choose your favourite theme or download one from the internet

14. Enable autosuggestions for oh-my-zsh. This keeps giving you suggestions from history. Makes using the terminal a much nicer experience.

https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh

15. Enable natural editing in Iterm: This allows word skips in terminal just the way we do in text editors by pressing Alt/Cmd and Right/Left Arrow.

iTerm → Preferences → Profiles → Keys → Presets... → Natural Text Editing

16. Install Auto Jump: This is a powerful tool with many features. I just use one feature — type j and the name of the folder you want to go to. Auto jump takes you there based on the history of folders used in the terminal. While installing, choose the manual setup.

#https://github.com/wting/autojump#manual
git clone git://github.com/wting/autojump.git
cd autojump
./install.py or ./uninstall.py

The installer will then ask you to add 2 lines to .zshrc. Do that and restart iterm.

17. Install JumpCut / Flycut (jumpcut fork): These are clipboard managers which remember what has been copied, and allow pasting any of those copies.

Install manually and give access to the app in accessibility.

18. Install Open JDK 11: Since I’m going to be working on some JVM Ecosystem Language or the other.

brew install openjdk@11
echo 'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc

19. Enable git plugin on oh-my-zsh: In the list of enabled plugins for oh-my-zsh in ~/.zshrc, add git. Search for the word plugins=(<enabled plugins here>). Add git to the list. The list of plugins is separated by spaces.

20. Add the following aliases: The git plugin (and any plugins you enable on oh my zsh gives you loads of aliases). I add these 3 aliases on my machines —

#Alias to edit the .zshrc file, which loads everytime a new terminal window is opened. 
alias zc="subl ~/.zshrc"
#Alias to reload source from .zshrc
alias zs="source ~/.zshrc"
#Alias to grep all aliases for a particular command.
#For example, alg git pull will give you all aliases related to git pull
alias alg="alias | grep"

Credits:

  1. https://medium.com/ayuth/iterm2-zsh-oh-my-zsh-the-most-power-full-of-terminal-on-macos-bdb2823fb04c