And I get it that it's ironic that I'm posting this just as 10.15 came out, but I started the setup a few days ago, and in general it's a poor idea to update OS as soon as it comes out.
Basics
- Go to Settings > Security > FireVault, turn on FireVault. This will restart your computer.
- Install some sensible browser like Chrome or Firefox.
- Afterwards either sign up into your account on which you hopefully have your ad blocker setup, or install some. Most popular seems to be uBlock Origin these days, but pretty much any of them will do just fine.
- Install whichever cloud sync service you're using like Dropbox etc. And start syncing your stuff.
- Install iTerm2 for sensible terminal emulator.
- Clean up all crap from dock. Other than Launchpad and System Settings, everything else should be gone. Add iTerm2, your browser, and your text editor, and any application you wish to install there instead of stock Apple crap.
Editor
Install some sensible text editor. These days most people use Visual Studio Code.If that's your choice, run it, open Command Palette, and choose: "Shell Command: Install 'code' command in PATH".
Settings
Like every other operating system, OSX has a lot of bad default settings. Here are some obvious fixes:- Settings > Mouse > increase speed
- Settings > Keyboard > Key Repeat > Fast
- Settings > Keyboard > Delay Until Repeat > Short
- Settings > Sound > Disable "Play user interface sound effects"
- Settings > Sound > Alert volume > 0% (for Terminal ping)
- Settings > Sound > Show volume in menu bar
- Settings > Trackpad > Scroll & Zoom > Disable "Scroll direction: natural"
- Settings > Displays > Arrangement > drag and drop your external monitors into desired order
- Settings > Displays > Max out brightness
- Settings > Displays > Turn off "Automatically adjust brightness"
- Settings > Dock > enable "Automatically hide and show the Dock"
- Menu bar > Battery icon in task bar > Enable "Show Percentage"
- Menu bar > Time icon in task bar > Open Date & Time Preferences > Use a 24-hour clock
- Menu bar > Time icon in task bar > Open Date & Time Preferences > Show date
- iTerm > Preferences... > Profiles > Terminal > Unlimited Scrollback
Press Ctrl-Up arrow, add a few desktops (or "spaces" as they were used to know), then go to Settings > Keyboard > Shortcuts > Mission Control - and enable their keyboard shortcuts Ctrl-1 to Ctrl-6 or however many you have there.
Open Screenshot app, choose options, then disable "Show Floating Thumbnail".
In particular, external PC keyboard need a tweak to work properly, as left and left Windows keys are in reverse order from Mac keyboard.
Go to Settings, Keyboard, Modifier Keys..., and swap positions of Option and Command keys. Feel free to change functionality of Caps Lock key as well, it's a huge easily accessible key with no useful function people love to remap, usually to extra Control.
If you need any special keyboard layouts, get them too.
Open Screenshot app, choose options, then disable "Show Floating Thumbnail".
Drivers
OSX already includes drivers for laptop itself, but you might need some for peripheral hardware.In particular, external PC keyboard need a tweak to work properly, as left and left Windows keys are in reverse order from Mac keyboard.
Go to Settings, Keyboard, Modifier Keys..., and swap positions of Option and Command keys. Feel free to change functionality of Caps Lock key as well, it's a huge easily accessible key with no useful function people love to remap, usually to extra Control.
If you need any special keyboard layouts, get them too.
Standard paths
OSX renames a lot of directories. While in theory scripts could just use env vars to find proper paths, it's more reliable to symlink all the things:sudo ln -s /Volumes /mnt
sudo ln -s /Volumes /media
sudo mv /home /home-old
sudo ln -s /Users /home
Development tools
You'll need a package manager, and the only one anyone uses is homebrew, MacPorts and the rest being basically dead. You need to tell homebrew to not spy on you with brew analytics off command.You'll need Xcode. Fortunately homebrew installer does it for you automatically. If you don't use homebrew for some reason, you can install Xcode manually by running xcode-select --install from command line.
Create new SSH key pair
Before you do that, name your computer something memorable with sudo scutil --set HostName your_host_name command.Open Terminal and run ssh-keygen to create ~/.ssh/id_rsa, then upload the generated key to any place that needs to know about it like github, bitbucket, or whatever else you use.
Checkout your dotfiles
Hopefully you're storing your dotfiles somewhere. If it's a git repository, or your Dropbox account, get them now and symlink them all properly.If there are any other repositories you might need, checkout them too.
Install homebrew packages
Your list might vary. Here's a few obvious suggestions:brew install rbenv ruby-build mc wget p7zip unrar trash git htop bash zsh youtube-dl jq imagemagick coreutils bash-completion zsh-completion
Then enable all services you installed, unless you want to start them manually:
ln -sfv /usr/local/opt/*/*.plist ~/Library/LaunchAgents/
And install non-system ruby, so you can install gems without sudo. Currently latest is:
rbenv install 2.7.0-preview1
rbenv global 2.7.0-preview1
To make that actually work, you need to make sure ~/.rbenv/shims is in your $PATH. If you type
rbenv init
, it will tell you what to do.Due to OSX limitations you'll need to run sudo htop if you want to use htop.
Install gems
Again, your list my vary. These days most of the software will have its ownGemfile
so long list of gems are generally unnecessary. But some global utilities are still useful:gem install bundler rak pry pry-rescue
Sane bash or zsh
bash version shipped with OSX is ancient and BSD utilities are all awful.You have two choices. Either install modern version of bash from homebrew, or use zsh from homebrow.
First, edit /etc/shells as admin and add the following lines at the end of it:
/usr/local/bin/bash
/usr/local/bin/zsh
Then set it as your shell, with whichever one you prefer:
chsh -s /usr/local/bin/bash $USER
chsh -s /usr/local/bin/zsh $USER
Either way, run to touch ~/.hushlogin to prevent some worthless spam on every open terminal tab.
If zsh is your choice, the first time you start a new terminal, it will ask you some questions on how to configure it.
Coreutils
This is optional step. OSX coreutils are awful, and generally GNU versions are a lot better, but if you switch there could be occasional minor incompatibilities.If you want to do so, add GNU coreutils to your PATH:
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
Better window manager controls
Sadly OSX window manager is extremely dubious for keyboard use. Fortunately programs to make it usable exist. I recommend installing HyperSwitch for sane alt-tab window switching, and Spectacle for managing windows.
I previously used HyperSwitch, but it no longer works with latest version of OSX. Spectacle shortcuts are different than HyperSwitch, and I like HyperSwitch's more, so I adjusted shortcuts to match.
- Settings > Security & Privacy > Privacy > Allow the apps below to control your computer > enable HyperSwitch and Spectacle
Also open its preferences, and set it to run in the background, and start at login.
All other software
There's a lot of other software you might want. The most obvious one is the VLC media player.