Setting up a Mac for Improvement



I just lately (July 2022) wiped and reloaded my MacBook Pro with macOS Monterey. I documented my method and the resources / apps / options I use on a every day basis.

You can watch me speak about this set up on YouTube.

If you have other applications / instruments you use, please enable me know in the comments.

What Macbook do I have?
Homebrew / Terminal / Shell
Set up Bash and established it as the default
Customizing Bash with .bash_profile
Instructions applied by my .bash_profile
Set up the most recent model of git
Other command line applications I use
OS Productiveness
Window Administration
Application Switching
Rapid Launching
Other Apps I Use Every day
OS Settings
Menu Bar Customization
Technique Stats Widgets
Menu Bar Calendar
Take note Using
Net Browser
World wide Modules
VS Code
Crack Timer
What Macbook do I have?
I am nevertheless employing the 2015 Macbook Professional (indeed even now in 2022). This 7 12 months outdated notebook nevertheless operates fantastic for all of my desires (improvement, new music output, video clip modifying and impression modifying).

These are the specs at a look:

Intel “Core i7” Quad Core 2.5 GHz
AMD Radeon R9 M370X 2GB GPU
You can browse additional about it listed here

The apps and settings I use need to function on the newest M1 and M2 MacBooks as very well.

Homebrew / Terminal / Shell
Homebrew makes it possible for us to set up resources and apps from the command line.

To set up it, open up up the designed in Terminal app and run this command:
/bin/bash -c “$(curl -fsSL in/HEAD/put”
This will also set up the xcode build applications which is required by quite a few other developer resources.

Just after Homebrew is performed putting in, we will use it to install all the things else we will need.

The initial application I put in is to change the created in Terminal.

I prefer iTerm2 for the reason that:

Nice window chrome
Plenty of customization possibilities
Clickable links
Native OS notifications
Rapid aside – “window chrome” is another term for the standard structural components used in a graphical consumer interface, these as window frames and scroll bars, as opposed to the content. Immediately after getting a couple folks assessment this, I notice not every person understands / takes advantage of that phrase 😅

There are a good deal of choices for a terminal alternative, but I’ve been using iTerm2 for several years and it operates wonderful for my needs.

Checkout their documentation for much more facts on what iTerm2 can do:

We install this using a Homebrew “cask”. Casks are comprehensive apps, similar to what you would set up from the App retail outlet.
brew put in iterm2
When installed, start it and personalize the settings / choices to your liking. These are my most well-liked settings:

Overall look
General -> Functioning Listing -> Reuse former session’s listing
Hues -> Fundamental Shades -> Foreground -> Lime Eco-friendly
Text -> Font -> Anonymous Pro
You can down load this font listed here.
I use this font in VS Code as well
Text -> Font Dimension -> 36
I use my Macbook to current / instruct, so a big font size is crucial so anyone can see the instructions I am typing
Keys -> Essential Mappings -> Presets -> Organic Textual content Enhancing
This permits me to use the keyboard shortcuts I know and enjoy inside of iTerm2
Mac now will come with zsh as the default shell. bash is my most well-liked shell.

I choose bash since each and every distant linux equipment I log into makes use of bash. Also, most shell scripts you appear across (.sh information) are intended to be operate on sh (Bourne shell) or bash (Bourne once again shell). These information may well operate on zsh, but there may possibly be some compatibility troubles.

If you are a beginner, you almost certainly don’t have to have to change your shell with bash. If you happen to be heading to stick with zsh, checkout Oh My Zsh which provides you a bunch of customizations out of the box.

Install Bash and established it as the default
To see what shell is presently your default, operate:
echo $SHELL
To install the hottest version of bash:
brew set up bash
Then, decide exactly where bash got put in:
which bash
This will possible print /usr/regional/bin/bash.

We now will need to add this to our /and many others/shells file so we can established it as our default shell.

Open up the /and so on/shells file in nano (a command line textual content editor) with super consumer privileges (you will want to kind your password just after functioning this command):
sudo nano /etcetera/shells
Command discussed:

sudo is a way of working a command with tremendous user privileges.
nano is an quick to use command line editor. As opposed to vi or vim.
/and so on/shells is the file we have to have to edit / update.
This will start a command line editor. Include /usr/area/bin/bash to the file previously mentioned the other list of shells.

Push CTRL+X to near the file and then Y to validate / help you save the adjustments.

Now that /usr/regional/bin/bash is in our /etc/shells file, we can established it as our default shell (you will have to have to enter your password for this command as nicely):
chsh -s /usr/neighborhood/bin/bash
Now that you’ve got adjusted your shell, if you open up up a new iTerm2 tab or shut / re-open up iTerm2, you should really be introduced with a bash shell!

You can operate the next to affirm you shell has adjusted:
echo $SHELL
Customizing Bash with .bash_profile
I have a tailor made .bash_profile with all of my personalized options including a personalized prompt, aliases, Path variables, colours and much more.

If you do not want to go via the method of customizing your .bash_profile, you can install Oh My Bash to get a ton of customizations out of the box.

I retailer my .bash_profile on github here so I can duplicate it over to any machine I am setting up.

Copy this file (or build your very own) in your property listing:
cd ~
curl -O
Commands utilized by my .bash_profile
vcprompt – record the existing department if in a folder that is a git repo
fortune – print a random quote / story / joke / poem.
cowsay – use a cowfile to say a random fortune
brew put in vcprompt
brew install fortune
brew install cowsay
Install the most current version of git
My Mac arrived with git edition 2.32.1, we can use brew to install the newest variation of git:
git –edition
brew install git
Open up a new tab / window to start using the most up-to-date model:
git –variation
Configure git with your name / electronic mail and desired editor:
git config –world consumer.title w3cj

git config –world consumer.e-mail cj@null.laptop or computer

git config –global main.editor nano
Other command line resources I use
ffmpeg – edit videos from the command line
imagemagick – edit illustrations or photos from the command line
brew install ffmpeg
brew set up imagemagick
OS Productivity
Window Management
I know this feature is designed in to a lot of other running methods, but it is not crafted in to a Mac, so we have to have an application for it.

I use rectangle to transfer and resize home windows making use of keyboard shortcuts. I utilized to use spectacle, but rectangle is extra frequently preserved and enables me to use all of the exact keyboard shortcuts as spectacle.

I really advise putting in this and memorizing the keyboard shortcuts. Fluid and seamless window management is critical to being effective while coding.
brew put in rectangle
Application Switching
The built in Application switcher only demonstrates application icons, and only demonstrates 1 icon per application irrespective of how a lot of home windows you have open up in that app.

I use an app switcher referred to as AltTab. It displays complete window previews, and has an option to exhibit a preview for just about every open up window in all apps (even minimized types).

I exchange the created-in CMD+TAB shortcut with AltTab.
brew set up alt-tab
Fast Launching
The created in spotlight look for is a bit sluggish for me and typically has world wide web search effects as the default in its place of apps or folders on my machine.

I use Alfred to launch applications / folders. There are attributes locked driving the compensated powerpack, but I procured a lifetime license a handful of decades in the past, and Alfred retains functioning excellent for me. There are a great deal of other awesome matters you can do with Alfred (workflows, scripting, clipboard manager and so forth.), but I predominantly use it for launching apps and folders.
brew set up alfred
Other Applications I Use Day by day
firefox-developer-edition – Most well-liked world-wide-web browser
app-cleaner – When getting rid of an app, will search your file system for relevant documents / settings that ought to be eliminated as effectively
android-file-transfer – Transfer data files to / from my android cellular phone
android-system-resources – Installs adb without the need of the have to have for the full android studio.
keepingyouawake – Stops my Mac from going to sleep when I’m presenting / live streaming
discord – Messaging / Neighborhood
vlc – I use VLC to watch films alternatively of the developed in QuickTime.
keka – Can extract 7z / rar and other varieties of archives
kap – Display screen recorder / gif maker
time-out – Split timer
gimp – Impression editor
inkscape – Vector editor
visual-studio-code – Code Editor
chic-textual content – Take note getting (I know there are far better applications…)
insomnia – HTTP / Rest / GraphQL tester / requester
You can install them in just one go by positioning them all into a text file and then running brew put in:
chic-textual content
xargs brew set up < apps.txt
OS Settings
These are my preferred settings for Finder and the Dock.

Finder -> Preferences
Basic -> Display these on the desktop -> Choose None
I consider to retain my desktop completely clear.
Typical -> New Finder home windows demonstrate -> Residence Folder
I like to see my dwelling folder in each individual new finder window instead of the latest files
Highly developed -> Show all filename extensions -> Of course
Advanced -> Clearly show warning right before changing an extension -> No
Sophisticated -> When doing a search -> Look for the current folder
Show Position Bar
Clearly show Route Bar
Present Tab Bar
I really don’t use the Dock at all. It will take up display screen area, and I can use Alfred to start applications and AltTab to switch involving apps. I make the dock as tiny as doable and auto disguise it.

Program Preferences
Dock & Menu Bar
Dimension -> Little as attainable
Place on display screen -> Correct
Automatically cover and display the Dock -> Certainly
Menu Bar Customization
Method Stats Widgets
I like to see my community traffic, CPU temp / utilization and RAM use at a glance.

I made use of to use iStat Menus, but a number of men and women in my twitch chat pointed me to stats, a FOSS menu bar stats app. I attempted it out, and I like it so much.

In each individual widget, a essential placing to glimpse for is below “widget settings”, opt for “merge widgets into a single”.
brew put in stats
Menu Bar Calendar
I like to have a calendar in the menu bar that I can quickly search at. stats does not involve a single, so I uncovered itsycal. It would seem good for my wants.
brew put in itsycal
itsycal demonstrates the day, so I cover the date in the process menu bar widget:

Method Preferences
Dock & Menu Bar
Exhibit Date -> In no way
Demonstrate Working day of Week -> No
Note Getting
There are possible a million other better choices, but I have made use of Sublime Text as a take note using app for many years now. I essentially use it as a staging area before shifting my notes into a far more everlasting position (Google Docs, Google Maintain, Trello, real code undertaking READMES etcetera.) or I delete the notice (close the tab) immediately after it has served its goal.

I use sublime due to the fact it makes it possible for me to open up new tabs / data files without the need of the need to help save a offered file. I can have numerous tabs / staging locations open and then totally near elegant. When I open it back again up, all of my tabs are however there.

Net Browser
I use Firefox due to the fact it is open resource and arrives from the Mozilla Foundation, a non gain business that respects my privacy.

I use the subsequent extensions to safeguard my privateness whilst browsing the internet:

Adblocker – uBlock Origin
Tracker Blocker – Privateness Badger
Firefox now consists of tracker blocking, but I go away Privateness Badger enabled.
Cookie Autodelete
Eliminates cookies from internet websites that are not in my whitelist when a tab is closed. An extra precaution to tracker blocking.
Caches CDN one-way links locally and intercepts requests to serve from the cache. Helps prevent CDNs from monitoring you throughout web-sites.
I use nvm to control the set up variations of Node.js on my machine. This makes it possible for me to conveniently switch among Node.js versions relying on the venture I am doing the job in.

See set up instructions here.

OR run this command (make guaranteed v0.39.1 is nevertheless the newest)
curl -o- | bash
Immediately after set up you can expect to want to add the adhering to to your .bash_profile / .zshrc etc.
export NVM_DIR=”$([ -z “$XDG_CONFIG_HOME-” ] && printf %s “$House/.nvm” || printf %s “$XDG_CONFIG_Property/nvm”)”
[ -s “$NVM_DIR/” ] && . “$NVM_DIR/” ## This masses nvm
Now that nvm is mounted, you can set up a specific edition of node.js and use it:
nvm put in 18
nvm use 18
node –variation
World-wide Modules
There are a few world wide node modules I use a good deal:

Car refreshing static file server. Good for working on static apps with no create resources.
Vehicle create open source license documents
Vehicle generate .gitignore data files base on the present-day task form
npm put in -g lite-server license gitignore
VS Code
VS Code is my desired code editor.

You can perspective all of my VS Code configurations / extensions here.

2 of the most notable options are:

“editor.linkedEditing”: legitimate,
“editor.snippetSuggestions”: “top rated”,

Mechanically edit a closing tag when editing an opening tag
Puts the most relevant car complete possibilities at the major
Break Timer
I use an application called Time Out.

I have it setup to show:

10 second micro crack each individual 15 minutes
5 minute prolonged crack each and every 60 minutes
There is also a cross platform break timer contact Stretchly. I have not made use of it but a large amount of people have recommended it.

Many thanks for examining this significantly down. You should permit me know in the remarks if there are other resources or apps you like to use. If I produced a typo or missed a link, be sure to experience cost-free to open up a pull request here.****

Leave a Reply

Your email address will not be published.