These scripts/guide intends to setup an Apple Mac machine automatically. This is mainly targeted to developers, but you don't need to be a power user to install it, just follow the instructions.
This script was developed having macOS Mojave (10.14) in consideration, so I highly recommend that you install and disable SIP (System Integrity Protection) first. Then, after the installation, re-activate it.
Take into account that the software presented in this guide was the one I need, and your needs may differ from mine. Feel free to contribute to improve it!
- Files
- Recommendations
- Credits
run.sh
script- Runs the overall configuration files and provides the user with a menus to choose which settings to apply.
macos.sh
script- Updates macOS to the more recent available update.
basic.sh
script- Cleans up some directories and sets up local environment variables.
homebrew.sh
script- Provides a command line interface for installation and management of macOS packages.
applications.sh
script- Installs applications via Homebrew Cask.
plugins.sh
script- Installs extensions for Atom IDE.
defaults.sh
script- Applies system and application default configurations.
dotfiles.sh
script- Downloads and configures
dotfiles
for Bash, Vim, Git, etc., configuration.
- Downloads and configures
If you have already git
installed, just open a terminal window and execute the following:
git clone git://github.com/pbmartins/macOS-dev-kit.git
cd macOS-dev-kit
./run.sh
Otherwise, open a terminal window and execute the following:
mkdir macOS-dev-kit
cd macOS-dev-kit
curl -#L https://github.com/pbmartins/macos-dev-kit/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,LICENSE}
./run.sh
You can edit any of the *.sh
files in the scripts
folder to your liking
and then open a terminal window to execute the following command:
./run.sh
Running the run.sh script will present the following options:
Setup:
b: Apply basic system settings.
h: Install Homebrew software.
ha: Install ALL Homebrew software.
a: Install application software (Homebrew and Cask required).
aa: Install ALL application software (Homebrew and Cask required).
x: Install application (Atom, Sublime Text) extensions.
d: Apply OS and software defaults.
f: Apply dotfiles.
i: Install everything (i.e. executes all options, listed above, top to bottom).
Manage:
C: Caffeinate machine.
q: Quit/Exit.
Choose option 'i' to run all install tasks or select a specific option to run a single task. Each task is designed to be re-run if necessary. This can also be handy for performing upgrades, re-running a missing/failed install, etc.
It is recommended that you restart the machine once all install tasks have been completed.
This script prepares your macOS, updating it to the latest release version and installing XCode Command Line Utilities.
Note that this script takes into account that you have at least macOS El Capitan installed (10.11), but it's optimised for macOS High Sierra (10.13).
It's also noteworthy that this is the only script that is run automatically.
This scripts cleans up your Downloads and Documents folders and configures your machine name, both presented locally and to the network.
Homebrew is the missing packet manager from macOS. This command line utility lets you install any kind of binary to your machine and it's extremely useful for developers.
Besides installing Homebrew, homebrew.sh
will also install the
following packages:
- GNU Coreutils
- moreutils
- GNU Findutils
- Bash
- Bash Completion
- homebrew-command-not-found
- GNU Grep
- OpenSSL
- Homebrew Cask
Although the previously mentioned packages are installed automatically, the following are optional:
Click to see all packages
- GNU adns
- asciinema
- GNU Autoconf
- GNU Automake
- GNU Binutils
- CMake
- Curl
- DnscryptProxy
- Docker
- Doxygen
- exiv2
- ffmpeg
- Fontconfig
- fzf
- GCC
- GDBM
- Ghex
- Git
- Git-LFS
- GPAC
- GPG
- Graphviz
- htop
- HTTPie
- iperf3
- IProute2mac
- Minicom
- MongoDB
- MySQL
- Namebench
- Network Grep
- Nmap
- Node.js
- NTFS-3G
- Octave
- Peco
- Perl
- pkg-config
- Pipe Viewer
- Python
- Python 3
- rbenv
- rbenv-vars
- rbenv-build
- ShellCheck
- SQLite
- Tree
- Vim
- wget
- x264
Homebrew-Cask extends Homebrew and brings its elegance, simplicity, and speed to macOS applications and large binaries alike.
Just a quick explanation of the logos:
- means open source;
- means free to use, or free personal license;
- means recommended app;
- means App store hyperlink;
This scripts will install the following macOS applications:
- Atom - A hackable text editor for the 21st century made by GitHub. Check out Atom Plugins.
- MacVim - A highly configurable text editor built to make creating and changing any kind of text very efficient, Vim Plugins.
- VimR - NeoVim GUI for macOS. Vim Plugins.
- Sublime Text - A sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance. Check out Sublime Text Plugins.
- IntelliJ IDEA - A powerful Java IDE (Free for Students).
- PyCharm - A powerful Python IDE (Free for Students).
- CLion - A powerful C/C++ IDE (Free for Students).
- WebStorm - The smartest JavaScript IDE by JetBrains (Free for Students).
- Dash - Awesome API documentation browser and code snippet manager.
- Docker CE - App for building, debugging, and testing Dockerized apps on a Mac.
- FileZilla - A free software, cross-platform FTP application. Supports FTP, SFTP and FTPS (FTP over SSL/TLS).
- GNS3 - Network virtualisation app.
- iTerm - iTerm2 is an amazing terminal emulator for macOS.
- JavaSDK - Java Software Development Kit.
- MacTeX - An integrated writing environment for creating LaTeX documents.
- Meld - Visual diff and merge tool targeted at developer.
- Vagrant - A tool for building and distributing development environments.
- VirtualBox - A powerful x86 and AMD64/Intel64 virtualization product.
- TUNTAP - Provides kernel extensions for macOS that allow to create virtual network interfaces.
- Wireshark - Awesome network protocol analyzer.
- XQuartz - X.Org X Window System that runs on macOS.
- Google Chrome - Chrome, produced by Google.
- Firefox - Meet Firefox Quantum. Fast for good. a free, open-source web browser developed by the Mozilla Foundation.
- Brave - Chromium-based browser with included Ad-Blocker.
- Dropbox - A file hosting service that offers cloud storage and file synchronization with collaborative edit features.
- Google Backup and Sync - The new version of Google Drive app, by Google.
- Franz - An Electron based, multi-protocol wrapper for web-based chat client. One application, 23 messenger services.
- Skype - A cross-platform application that provides video chat and voice call services. Users can exchange images, text, video and any other digital documents.
- Slack - Awesome tool for team collaboration and communication.
- WhatsApp - The popular messaging tool.
- App Cleaner - A small application which allows you to thoroughly uninstall unwanted apps.
- OmniDiskSweeper - Tool that shows you the files on your drive, largest to smallest, and lets you quickly Trash or open them.
- Tunnelblick - free software for OpenVPN on macOS. them.
- FUSE for macOS - FUSE for macOS allows you to extend macOS's native file handling capabilities via third-party file systems.
- iStat Menus - An advanced Mac system monitor on the menubar.
- Little Snitch - Firewall that lets you control all inbound and outbound connections.
- Spectacle - Move and resize windows with simple and customisable keyboard shortcuts.
- Spotify - Streaming music service.
- mpv - Open-source cross-platform media player.
- IINA - Modern media player for macOS, based on mpv.
- The Unarchiver - Unarchive many different kinds of archive files.
- Transmission - A Fast, Easy, Free BitTorrent Client.
Atom is a great text editor, but this script will install some plugins that will make it even better:
- atom-beautify - Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom.
- ex-mode - ex-mode for Atom's vim-mode.
- file-icons - Assign file extension icons and colors for improved visual grep.
- open-terminal-here - Open the Terminal (OSX, Linux) or Command Prompt (Windows) in the given directory via context menu or keyboard shortcut.
- vim-mode-plus - Add vim modal control.
Make Sublime Text even better with this plugins:
- NeoVintageous - An advanced Vim emulation layer for Sublime Text.
- One Dark UI - Atom One Dark theme for Sublime Text.
If you opt to download my dotfiles
, the following Vim plugins will be installed:
- Vundle.Vim - Vim plugin manager.
- vim-snippets - Snippets for various programming languages.
- lightline.vim - A light and configurable statusline/tabline plugin for Vim.
- fugitive.vim - Git wrapper for Vim.
- NERDTree - A tree explorer plugin for Vim.
- jedi-vim - Python autocompletion with Vim.
This script will apply a series of default configurations to:
- System - changing the UI, sleep times, etc.
- Trackpad, mouse, keyboard, Bluetooth accessories, WiFi and input devices.
- Dock, Dashboard, and Menu Bar - changing Dock size, animations, etc.
- Finder - changing file display, etc.
- Web Browsers - Safari and Chrome.
- Mail app.
- Spotlight - improving the general privacy of the system.
- Terminal and iTerm 2 - changing the theme and some configs.
- Time Machine.
- Address Book, Dashboard, iCal, TextEdit, Printer and Disk Utility.
- Mac App Store.
- Transmission.
Please check the script for further information about each specific config.
Downloads and applies my personal dotfiles
, from this repository.
Feel free to explore and change any of the configurations. You may also contribute
to my dotfiles
repo, any help and suggestion is welcome!
I also recommend that you check out the following repositories, if you want to improve the general privacy and security of your Mac:
- macOS Security and Privacy Guide - Collection of thoughts on and techniques for securing a modern Apple Mac computer ("MacBook") using macOS (formerly known as OS X) version 10.12 "Sierra", as well as steps to generally improving privacy.
- macOS Home Call Drop - Simple shell script to fix macOS privacy issues and remove mostly useless macOS calls to Cupertino.
- Make scripts fully compatible with macOS Mojave (10.14)
- Implement
linuxify
- Add MacPorts to install process
Based on the macOS guide developed by Brooke Kuhlmann at Alchemists. I adapted his scripts to make it my own and install my preferences and software I mainly use. The documentation was mainly based on jaywcjlove Awesome Mac repository and Donne Martin dev-setup repository.
Feel free to suggest any software, binary or package. Hope you enjoy it! Pedro Martins