MacUp is a declarative dotfile configuration forked from the original UP project created by Julian Tellez. Its main goal is to increase your productivity by making it trivial to install the most common tools developers tend to use*. Get your MAC UP and running in no time, start up your machine with one command!
- Install
- Base Tools
- Shell
- Languages
- CLI: Utilities
- CLI: Tools
- Containers
- Browsers
- Editors
- Productivity
- Communication
- Configuration
- Acknowledgements
- FAQ
Copy the following snippet into your current terminal and follow the instructions
sh -c "$(curl -fsSL https://raw.githubusercontent.com/mikeguta/macup/master/install.sh)"
You can't do much without these tools
- Xcode: Installs necessary Command Line Tools.
- Homebrew: The missing package manager for macOS (or Linux).
- git: A free and open source distributed version control system (included in XCode CL Tools)
- gh: GitHub CLI brings GitHub to your terminal. Free and open source.
Popular combination of Oh-My-Zsh! + PowerLevel 10k + iTerm2 + Fonts
- ohmyz: A delightful, open source, community-driven framework for managing your ZSH configuration.
- iterm2: A replacement for Terminal.
- powerlevel10k: Popular theme for ZSH.
- zsh syntax highlight: Enables highlighting of commands whilst they are typed.
- zsh autocomplete: Completion scripts that are not available in Zsh yet.
- font-hack-nerd-font: Developer targeted fonts (ideal for Terminal).
- font-jetbrains-mono: JetBrains Mono fonts.
These are absolute musts IMO for web development
- nvm: allows you to quickly install and use different versions of node via the command line.
- Nodejs: current LTS version installed by default.
- Python: An ideal language for scripting and rapid application development in many areas on most platforms.
A selection of the most popular CLI utilities for general use
- fzf: General-purpose command-line fuzzy finder.
- jq: A lightweight and flexible command-line JSON processor.
- htop: An interactive process viewer.
- the_silver_searcher: A code searching tool similar to ack, with a focus on speed.
- tree: A depth indented listing of files.
- wget: A free utility for non-interactive download of files from the Web.
- z: Tracks your most used directories, based on 'frecency'.
A selection of the most popular CLI tools for Cloud Development (personal preference for AWS)
- awscli: Unified command line interface to Amazon Web Services.
- mas: CLI for the Mac App Store.
- terraform: Tool for building, changing, and versioning infrastructure safely and efficiently.
- ngrok: A multiplatform tunnelling and reverse proxy.
- vagrant: Development Environments Made Easy.
A personally favourite combination of CLI & GUI to support container development
- colima: Colima - container runtimes on macOS (and Linux) with minimal setup.
- docker: A self-sufficient runtime for containers.
- docker-compose: Define and run multi-container applications with Docker.
- podman-desktop: Free and permissive GUI to manage containers (an alternative to Docker Desktop)
The most popular 3rd party browsers on MacOS
- firefox: Free and open-source web browser developed by the Mozilla Foundation.
- google-chrome: A cross-platform web browser developed by Google.
Favourite IDE for Modern Web Development
- visual-studio-code: Code editor redefined and optimized for building and debugging modern web and cloud applications.
- caffeine: Don't let your Mac fall asleep. Only use in a secure environment, e.g. at home
- rectangle: Move and resize windows in macOS using keyboard shortcuts or snap areas.
- trailer: Track pull requests and issues across repositories.
Note: Some apps are no longer supported (e.g.
jiggler
is unsigned,spectacle
is not maintained)
The vast majority of organizations will use at least one of these for instant messaging
- slack: Brings all your communication together.
- zoom: Video communication and virtual meeting platform.
- microsoft-teams: Meet, chat, call, and collaborate in just one place.
- iterm: iTerm2 profile (with Hack Nerd Font and colours)
- .p10k.sh: PowerLevel 10k Configuration (assumes Hack Nerd Font is used).
- .zshrc: ZSH config with Oh-My-Zsh!, PowerLevel10k & other plugins.
To help with GIT configuration, this package:
- prompts and sets
user.name
anduser.email
(if not already found ingit config
) - generates SSH key pair, if not already there, with a default name (should you wish/need to use SSH)
- runs
gh auth login
which allows you to authenticate the GIT CLI with GitHub.com via the Web Browser (interactively) Note: you can subseequently authenticate with other hosts by any other means if the above is not suitable.
IMPORTANT: This is very optional. I know a lot of devs prefer something like this, but it's a matter of extremely personal taste.
Please read the configurations before applying them. Note that you can always reset them by typing:
defaults delete <domain>; # sets domain to default settings
killall <domain>; # restarts domain
For example:
defaults delete Dock;
kill all Dock;
MacUp uses a dynamic profile see. To enable it do:
Iterm2 >
Preferences >
Profiles > MacUp Config >
Other Actions > Set as Default
Color presets can be downloaded by following this url. Alternatively you can follow the description below and import them from the color_presets folder.
Iterm2 > Preferences > Profiles > Colors > Color Presets > Import
These configs and dotfiles stand on the shoulders of the following giants:
- https://github.com/juliantellez/up
- https://github.com/minamarkham/formation
- https://github.com/mathiasbynens/dotfiles
- https://github.com/kevinSuttle/macOS-Defaults
Q: Have you tested these dotfiles? A: Yes, currently tested on:
- macOS Monterey - 12.7.1
*This list is somewhat opinionated and assumes you have permission to install all the tools in it. I would hope to add more support for more tools people generally use.