I like minimalist setup.
It is good to factory reset your mac often to be aware of everything you have installed and to remove unwanted clutter.
The steps for cleaning your mac are as follows:
Cmd + R
).Utility
menu, select Disk Utility
.Erase
on all Internal
drives (where permitted).Done
, then close the window to get back to the original menu.Reinstall macOS
, then Continue
.Brave - For a web browser with unmatched speed, security and privacy.
Karabiner-Elements - For powerful key remapping.
Rectangle - "Move and resize windows in macOS using keyboard shortcuts or snap areas".
Iterm2 - For a better terminal.
Qbserve - "Automatic Time Tracker for Mac".
Freedom - "Block distracting websites and apps".
Homebrew - "The Missing Package Manager for macOS".
Docker - "Securely build and share any application, anywhere".
Zsh - For a pleasant command line experience.
Vim - "The ubiquitous text editor".
Sketch - For prototyping and building components.
Remove all applications in the dock except Brave, Qbserve and Iterm2.
In System preferences > Trackpad
:
Tap to click
.In System preferences > Keyboard
:
Fast
est.Short
est.Hide the dock by right clicking it and selecting: Turn hiding on
.
In Security & Privacy > FileVault
:
Turn on FileVault
and set a recovery key.(I like to ignore the recovery key as I never store anything worth keeping on my machine).
In browser settings (Cmd + ,
):
Use wide address bar
.Search engine used in the address bar
to: DuckDuckGo.Add the Lastpass extension - For managing all your passwords.
This can be done in Manage extensions
in the browser settings.
The only feature I use is remapping my Caps-Lock
key to Esc
when tapped and to Ctrl
when held.
This can be set up by importing the Change caps_lock key
modifier keys sample from pqrs
Then:
inside the Karabiner elements app, go to the Complex Modifications
tab.
click add rule
.
enable the Change caps_lock to control if pressed with other keys, to escape if pressed alone.
rule.
In Settings > Preferences
tick:
Allow any keyboard shortcut
.Launch on login
.These are the commands I use:
Cmd + alt + p
.Cmd + alt + m
.Cmd + alt + h
.Cmd + alt + l
.Cmd + alt + k
.Cmd + alt + j
.Cmd + alt + n
.Cmd + alt + N
.In Preferences > General
:
Confirm closing multiple sessions
.Confirm Quit iTerm2
.In Preferences > Profiles > General > Working directory
:
Reuse previous session's directory
.In Preferences > Profiles > Window > Settings For New windows
:
columns: 500, Rows: 500
- for a full screen terminal window each session.In Preferences > Profiles > Terminal > Notifications
:
Silence bell
.Works so nicely out of the box, nothing to configure.
I always operate in "Locked mode" with 13 hour, overlapping schedules.
For more info on getting set up, see: https://freedom.to/blog/freedom-101-faqs-answered/
Docker desktop can be downloaded from here: https://docs.docker.com/docker-for-mac/install/
You may have to log in to DockerHub
to perform the download.
Follow instructions found here: https://brew.sh
This is what I ran:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
These are some of the packages I'll always add:
brew install git grip fd macvim node python
The modern shell supported by an awesome community.
I installed it with:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
I have a custom theme and plugin, install them with:
curl -SLs https://raw.githubusercontent.com/samhstn/my-config/master/sams-theme.zsh-theme \
> ~/.oh-my-zsh/themes/sams-theme.zsh-theme
mkdir ~/.oh-my-zsh/plugins/sams-config
curl -SLs https://raw.githubusercontent.com/samhstn/my-config/master/sams-config.plugin.zsh \
> ~/.oh-my-zsh/plugins/sams-config/sams-config.plugin.zsh
I have my zshrc edited like so:
ZSH_THEME="sams-theme"
...
plugins=(
git
sams-config
vi-mode
)
I use MacVim
in the terminal, this can be installed with:
brew install macvim
Add my .vimrc
with:
curl -SLs https://raw.githubusercontent.com/samhstn/my-config/master/.vimrc > ~/.vimrc
I don't really know what I'm doing in Sketch, but it's fun to play around with and build prototypes.
There are couple of additional setup steps:
# Create the `proj` directory where I put all my coding projects.
md proj
# See this medium article for git ssh setup:
# https://medium.com/@fredrikanderzon/setting-up-ssh-keys-for-multiple-bitbucket-github-accounts-a5244c28c0ac
# some git setup.
git config --global user.name <yourname>
git config --global user.email <your@email.com>
# global gitignore of `.DS_Store`.
echo ".DS_Store" > ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
# I always disable system pager for `git branch` command.
# for more info, see: https://stackoverflow.com/a/48370253
git config --global pager.branch false
# I use system pager if diff doesn't fit on terminal screen, otherwise output to stdout.
# for more info, see: https://stackoverflow.com/a/31399632/4699289
git config --global core.pager "less -FRSX"
# Install the `m` command line tool following instructions here:
# https://github.com/samhstn/m
# (optional) we may want to symlink the custom zsh theme and plugin when in development.
rm ~/.oh-my-zsh/plugins/sams-config/sams-config.plugin.zsh
rm ~/.oh-my-zsh/themes/sams-theme.zsh-theme
git clone git@github.com:samhstn/my-config.git
ln -s $PWD/my-config/sams-config.plugin.zsh $HOME/.oh-my-zsh/plugins/sams-config/sams-config.plugin.zsh
ln -s $PWD/my-config/sams-theme.zsh-theme $HOME/.oh-my-zsh/themes/sams-theme.zsh-theme
Now your set up with exactly my configuration!
If you think I have missed anything out, or should be doing something differently let me know in an issue