Skip to content

geniemouse/macos-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

macOS-setup


macOS setup is a script for provisioning a machine running macOS with a focus on client-side development. (Also an excuse to dig into Bash/ZSH).

It can be run multiple times on the same machine; installing, upgrading or skipping packages, as necessary.

Warning: Do not run this script unless you have a clear understanding of what it is doing to your computer.


General information

Before running this script for the first time

It is recommended that you:

  • Sign-in to your Apple iCloud account in the App Store application
  • Uninstall any previous applications that you want to control via command-line. For example, anything listed in install/apps and install/casks
  • Ensure that the Homebrew items for installation have checksum validation, cf. Security & Homebrew packages below

Security & Homebrew packages

When installing anything via Homebrew's brew install command, be sure it includes a checksum for package validation.

  • Review the formula's JSON API file to confirm the presence of a property named sha256. It should contain a long string of alphanumeric characters
  • Any missing sha256 or sha256 with a value "no_check" should NOT be installed via Homebrew; use a manual installation method (from an official source) instead

Homebrew will output a warning when installing a package without a checksum or a checksum of "no_check".


Install

Download the script ZIP file from the latest release, or clone this Git repository:

git clone https://github.com/geniemouse/macos-setup.git && cd macos-setup

Run

From the macos-setup directory, run command:

bash ./start

...or for optional file logging:

bash ./start 2>&1 | tee -a ~/macos-setup-run_$(date +%F).log

What gets installed?

Command-line

Dependencies
  • Xcode Developer Tools from Apple
  • Homebrew macOS/Linux package manager
  • NVM the Node version manager
    • Allows use of different node/npm JavaScript build environments between projects
    • Note: The Homebrew package is not supported by NVM team; using the official channel instead
Package managers & build tools
  • Eclipse Temurin for switching between different Java JDK versions
  • Git for version control
  • Maven for project building
  • Wget useful tool for getting internet files
CLI tools & utilities
  • ffmpeg for video/audio manipulation on the command-line
  • git-standup to recall what you did yesterday
  • ImageOptim-CLI for batch optimising images
  • mas to access Mac App Store
  • Prettier for automated code formatting
  • Vagrant development environments & sandboxes

Applications

Browsers
Design
  • Affinity Designer vector graphics editor. Similar to Adobe Illustrator, without the subscription model
  • Affinity Photo image editor. Similar to Adobe Photoshop, without the subscription model
  • Inkscape Vector image editor. Very good at tracing raster input to SVG output
  • Shottr annotated screenshots & sketches
Development
Reading, writing & communication
  • Bear Markdown notes for macOS
  • iA Writer minimalist text editor writing
  • Keynote Apple presentation software
  • Magnet macOS window manager
  • Numbers Apple spreadsheet software
  • Pages Apple word processing software
Utilities & services

Fonts & themes

Fonts are installed by tapping homebrew/cask-fonts listing.

On the command-line, run the following to see more information about font recipes:

  1. Currently installed font recipes: brew list --cask | grep "font-*"
  2. Full list available to install: brew search --cask "/font-/"

Known issues

Homebrew

Homebrew can't overwrite applications previously installed by other methods.

Mac App Store command-line interface & macOS Monterey

The Mac App Store command-line interface (mas) will fail to correctly recognise the App Store's logged-in status on systems running macOS 12.x.x (Monterey), and above. This is a known issue to the project. In the meantime, App Store purchases may have to be installed directly via the App Store application. Repeated runs of this setup script will update any installed apps.


Acknowledgements

Inspiration, code and other things from the following people.

Go and checkout their fine work.

About

macOS set-up script for client-side development. (Also an excuse to dig into Bash/ZSH).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages