Skip to content

pbmartins/macOS-dev-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

macOS Developer Kit

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!

Table of Contents

Files

run.sh script


Running with Git

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

Running without Git

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

Usage

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.

macos.sh script


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.

basic.sh script

This scripts cleans up your Downloads and Documents folders and configures your machine name, both presented locally and to the network.

homebrew.sh script


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:

Although the previously mentioned packages are installed automatically, the following are optional:

Click to see all packages

applications.sh script


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:

  • Open-Source-Software means open source;
  • Freeware means free to use, or free personal license;
  • Recommend means recommended app;
  • App Store means App store hyperlink;

This scripts will install the following macOS applications:

Text Editors

  • Atom - A hackable text editor for the 21st century made by GitHub. Check out Atom Plugins. Open-Source-Software Freeware Recommend
  • MacVim - A highly configurable text editor built to make creating and changing any kind of text very efficient, Vim Plugins. Open-Source-Software Freeware
  • VimR - NeoVim GUI for macOS. Vim Plugins. Open-Source-Software Freeware Recommend
  • 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. Freeware Recommend

IDEs

  • IntelliJ IDEA - A powerful Java IDE (Free for Students). Recommend
  • PyCharm - A powerful Python IDE (Free for Students).Recommend
  • CLion - A powerful C/C++ IDE (Free for Students).
  • WebStorm - The smartest JavaScript IDE by JetBrains (Free for Students). Recommend

Developer Tools

  • Dash - Awesome API documentation browser and code snippet manager. Freeware Recommend
  • Docker CE - App for building, debugging, and testing Dockerized apps on a Mac. Freeware Recommend
  • FileZilla - A free software, cross-platform FTP application. Supports FTP, SFTP and FTPS (FTP over SSL/TLS). Open-Source-Software Freeware
  • GNS3 - Network virtualisation app. Freeware Recommend
  • iTerm - iTerm2 is an amazing terminal emulator for macOS. Open-Source-Software Freeware Recommend
  • JavaSDK - Java Software Development Kit. Freeware
  • MacTeX - An integrated writing environment for creating LaTeX documents. Freeware
  • Meld - Visual diff and merge tool targeted at developer. Open-Source-Software Freeware
  • Vagrant - A tool for building and distributing development environments. Open-Source-Software Freeware
  • VirtualBox - A powerful x86 and AMD64/Intel64 virtualization product. Freeware Recommend
  • TUNTAP - Provides kernel extensions for macOS that allow to create virtual network interfaces. Open-Source-Software Freeware
  • Wireshark - Awesome network protocol analyzer. Open-Source-Software Freeware Recommend
  • XQuartz - X.Org X Window System that runs on macOS. Open-Source-Software Freeware

Web Browsers

  • Google Chrome - Chrome, produced by Google. Freeware
  • Firefox - Meet Firefox Quantum. Fast for good. a free, open-source web browser developed by the Mozilla Foundation. Open-Source-Software Recommend Freeware
  • Brave - Chromium-based browser with included Ad-Blocker. Freeware

File Sharing

  • Dropbox - A file hosting service that offers cloud storage and file synchronization with collaborative edit features. Freeware
  • Google Backup and Sync - The new version of Google Drive app, by Google. Freeware Recommend

Communication

  • Franz - An Electron based, multi-protocol wrapper for web-based chat client. One application, 23 messenger services. Freeware
  • Skype - A cross-platform application that provides video chat and voice call services. Users can exchange images, text, video and any other digital documents. Freeware
  • Slack - Awesome tool for team collaboration and communication. Freeware Recommend
  • WhatsApp - The popular messaging tool. Freeware

Utilities

  • App Cleaner - A small application which allows you to thoroughly uninstall unwanted apps. Freeware Recommend
  • OmniDiskSweeper - Tool that shows you the files on your drive, largest to smallest, and lets you quickly Trash or open them. Freeware Recommend
  • Tunnelblick - free software for OpenVPN on macOS. them. Freeware Recommend
  • FUSE for macOS - FUSE for macOS allows you to extend macOS's native file handling capabilities via third-party file systems. Open-Source-Software Freeware Recommend
  • iStat Menus - An advanced Mac system monitor on the menubar.
  • Little Snitch - Firewall that lets you control all inbound and outbound connections. Recommend
  • Spectacle - Move and resize windows with simple and customisable keyboard shortcuts. Open-Source-Software Freeware Recommend
  • Spotify - Streaming music service. Freeware
  • mpv - Open-source cross-platform media player. Open-Source-Software Freeware
  • IINA - Modern media player for macOS, based on mpv. Open-Source-Software Freeware
  • The Unarchiver - Unarchive many different kinds of archive files. Freeware Recommend
  • Transmission - A Fast, Easy, Free BitTorrent Client. Open-Source-Software Freeware Recommend

plugins.sh script

Atom Plugins


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.

Sublime Text Plugins


Make Sublime Text even better with this plugins:

Vim Plugins


If you opt to download my dotfiles, the following Vim plugins will be installed:

defaults.sh script


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.

dotfiles.sh script


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!

Recommendations

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.

TODO List

  • Make scripts fully compatible with macOS Mojave (10.14)
  • Implement linuxify
  • Add MacPorts to install process

Credits

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