DEV Community

How I setup my Mac for development.

SaKKo on June 03, 2019

Every time I get a new Mac or upgrading MacOS, the pain is reinstalling everything. I had to take notes on what must be done, and google a bunch o...
Collapse
 
moopet profile image
Ben Sinclair

I think you can still get by a bit quicker by installing homebrew as soon as possible then using it to install everything else.
You could put everything you want to brew install into one file and then keep it, and your collection of dotfiles, somewhere in the cloud (like github for instance). Then all you need to do is clone the repo and run one script to get everything installed.

Collapse
 
kingrayhan profile image
King Rayhan

Hey, I am also very egar to know this. If you have time can you please write an article about this for us?

Collapse
 
moopet profile image
Ben Sinclair • Edited

There are a few people who've explained how they do it here already, but you could look at these:


Also: I have an install script using GNU Stow on my github which might be helpful. I don't explicitly install any apps there, though.

Homebrew can install a lot of the things that already have Mac installers (like VSCode for example) so compiling a list and running through it in a single install script means you go make a cup of coffee and it just works.

Collapse
 
sakko profile image
SaKKo

I don’t know how to do that, can you write a blog to explain?

Collapse
 
atan profile image
atan

Take a look at brew bundle! When I'm starting up a fresh mac machine, I usually brew bundle dump to get a Brewfile with a list of all the dependencies/apps I have installed. Then copy the Brewfile onto the new machine and brew bundle. It saves a lot of time :)

Collapse
 
msaracevic profile image
Miroslav Saračević • Edited

Here is mine if you are looking for more ideas: msaracevic.github.io/#/Guides . I keep mine a bit simpler and shorter since I don't need that many things.

The one thing I would suggest in your case is to change git config --global user.email "john.doe@gmail.com" to it config --global user.email ":USERNAME@users.noreply.github.com" if you use github only.

It will still match your contributions correctly based on the no-reply address, but it won't include your real email address to in public commits, meaning that all those pesky recruiter automated scraping scripts won't pick you up and bother your on your main email address.

Collapse
 
sakko profile image
SaKKo

awesome, i din't know this. But I use a lot of bitbucket and gitlab as well, so I think I will config git project by project.

Collapse
 
ut4utc profile image
ut4utc

Oh ;-) nice post, thank you for advice

I do same things and write to my blog - all my experience about Mac and it optimization after reinstall OS, because I'm tired of doing the same actions all the time: proinsurer.com.ua/en/tag/Mac

And I can recommend article about ZSH 'A Beautifully Productive Terminal Experience iTerm, Oh-My-Zsh' proinsurer.com.ua/en/blog-en/mac/1...

maybe I help you with iTerm and ZSH

Collapse
 
sakko profile image
SaKKo

i’m already using iterm but I’m so used to bash. I’m planning to move to zsh but what I need is, “what do I need to know before moving to zsh?”

Collapse
 
ut4utc profile image
ut4utc • Edited

You need only install it, and nothing need know. I use iTerm with zsh. ZSH for me - only for autocomplete, cool plugins - same double ESC and all you command now magic with 'sudo yourcommands'. I like when zsh show for me git status like that:

dropbox.com/s/452ye1y29kbfwq8/Scre...

zsh is an advance shell for *nix. It has few very good features, Like:

  1. Auto change directory, meaning, if you know the directory name, you can just simple type "cd **/name-of-dir"
  2. You can use tab to navigate the options.
  3. last comand scrolling, like if you type and command for example "vim somefile", you exited the vim, and used some some other commands, and if you want to use the same command again, unlike in bash, which requires to find the history number to execute, in zsh you can simple use vim and up arrow key, it will place you in last executed command.

There are plenty of powerful features. Simple to use, and configure. You can have a view of few of the videos:

youtube.com/watch?time_continue=7&...

Collapse
 
flamewow profile image
Ilya Moroz

Next time try time machine

Collapse
 
sakko profile image
SaKKo

oh no.... i hate timemachine

Collapse
 
flrnd profile image
Florian Rand

I use Ansible and bash scripts. I'm too lazy to wasting time on reinstalling things 🤓

Collapse
 
flozero profile image
florent giraud

vscode :)