Create Installation Disk

  • Download OS from AppStore and after that run below command in Terminal.
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/Disk --nointeraction
  • Reboot and Holding down OPTION(ALT).

Installation

  • Easy, next next next - Appearance to Dark. Install Updates, if needed.

Install Apps, Utils, Libs

ruby -e "$(curl -L https://github.com/Homebrew/install/raw/master/install)"
brew analytics off
sudo python -m ensurepip
sudo pip install --upgrade pip docker-py virtualenv
brew install libxslt ffmpeg ImageMagick python ansible wget git tig htop zsh npm dnscrypt-proxy
sudo brew services start dnscrypt-proxy
sh -c "$(curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh)"
brew cask install virtualbox vagrant iterm2 atom google-chrome docker little-snitch appcleaner
apm install atom-beautify file-icons markdown-writer markdown-pdf pdf-view atom-ide-ui ide-python
vagrant plugin install vagrant-hostsupdater

Configure System & User

# MANUAL
    # Security & Privacy -> General: Require password immediately.
    # Spotlight -> Disable everything, except Applications, System Preferences.
    # iCloud: Login and Disable everything, except Photos, Keychain.
    # Network: Define only 127.0.0.1 as a DNS Server.
    # General: Allow Handoff between this Mac and your iCloud devices.
    # Keyboard: Input Sources: Click on "+" -> Romanian Standard.
    # Cleanup Right Sidebar.
    # Open iTerm2: Appearance: [x] Show even if only one tab. Profiles: Unlimited scroll back.
    # Open Finder: New finder: "home". Sidebar: Show "home", Disable Tags.
    # Open Chrome: Default browser and setup.
    # Open Atom.io: Settings, Packages, Tree, Hide Ignored Named. (.localized, __pycache__, *.pyc)
# General
  # Ask to keep changes when closing documents
  defaults write NSGlobalDomain NSCloseAlwaysConfirmsChanges -bool true
# Dock
  defaults write com.apple.dock persistent-apps -array              # Wipe all (default) app icons from the Dock
  defaults write com.apple.dock tilesize -int 36                    # Size
  defaults write com.apple.dock orientation -string "left"          # Position on screen
  defaults write com.apple.dock minimize-to-application -bool true  # Minimise windows into application icon
  defaults write com.apple.dock autohide -bool true                 # Automatically hide and show the Dock
  defaults write com.apple.dock show-recents -bool false            # Show recent applications in Dock
  killall Dock
# Keyboard
  # Text: Disable auto-correct
  defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
# Trackpad
  # Trackpad: enable tap to click for this user and for the login screen
  defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true
  defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
  # Enable tap at login as well
  defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
  defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
# Bluetooth: Show Bluetooth in the menu bar
  defaults write com.apple.systemuiserver "NSStatusItem Visible com.apple.menuextra.bluetooth" -bool true
# Accessibility
  # Mouse & Trackpad -> Trackpad Options -> Enable Dragging
  defaults write com.apple.AppleMultitouchTrackpad Dragging -bool true
  defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool true
# Other
  # Show battery percentage
  defaults write com.apple.menuextra.battery ShowPercent -string "YES"
  # Prevent Photos from opening automatically when devices are plugged in
  defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true
  # Prevent iTunes from opening automatically when devices are plugged in
  defaults write com.apple.iTunesHelper ignore-devices 1
  # Save to disk by default - not to iCloud
  defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
  # Prevent Time Machine from prompting to use new hard drives as backup volume
  defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

Configure Applications

# TextEdit
  # Use plain text mode for new TextEdit documents
  defaults write com.apple.TextEdit RichText -int 0
  # Open and save files as UTF-8 in TextEdit
  defaults write com.apple.TextEdit PlainTextEncoding -int 4
  defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4
# Finder
  # Set Desktop as the default location for new Finder windows
  # For other paths, use `PfLo` and `file:///full/path/here/`
  defaults write com.apple.finder NewWindowTarget -string "PfDe"
  defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/"
  # Show icons for hard drives, servers, and removable media on the desktop
  defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
  defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false
  defaults write com.apple.finder ShowMountedServersOnDesktop -bool false
  defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false
  # Keep folders on top when sorting by name
  defaults write com.apple.finder _FXSortFoldersFirst -bool true
  # When performing a search, search the current folder by default
  defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
  # Disable the warning when changing a file extension
  defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
  # Use list view in all Finder windows by default
  defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
# MicroSnitch
  defaults write at.obdev.MicroSnitch OpenAtLogin -bool true
# Reboot

Configure from GUI

  • Dock: iTerm2, Chrome, Atom.
  • Optional Chrome Extension: Mailvelope.

Optional Config Changes

# Save configs: `defaults read > 1.configbk`.
# Change Config from GUI.
# Save & Check what configs changed: `defaults read > 2.configbk; diff 1.configbk 2.configbk`.