Skip to content
/ macup Public
forked from juliantellez/up

🆙Configure your machine with one command 🆙

License

Notifications You must be signed in to change notification settings

mikeguta/macup

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MacUp

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

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)"

MacUp step-by-step wizard

NOTE: After the initial prompt, the majority of dependencies do not require prompts (the first 5-7 minutes). Optional and interactive dependencies are clustered towards the end of the installation (the final 3-5 minutes).

Base Tools

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.

Shell

Popular combination of Oh-My-Zsh! + PowerLevel 10k + iTerm2 + Fonts

Languages

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.

CLI: Utilities

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'.

CLI: Tools

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.

Containers (Optional)

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)

Browsers (optional)

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.

Editors

Favourite IDE for Modern Web Development

  • visual-studio-code: Code editor redefined and optimized for building and debugging modern web and cloud applications.

Productivity

  • 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)

Communication (optional)

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.

Configuration files

  • 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.

GIT configuration

To help with GIT configuration, this package:

  • prompts and sets user.name and user.email (if not already found in git 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.

Mac Configuration

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;

Iterm Profile

MacUp uses a dynamic profile see. To enable it do:

Iterm2 >
    Preferences >
        Profiles > MacUp Config >
            Other Actions > Set as Default

iTerm2 set configuration as default

Color Presets

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

Acknowledgements

These configs and dotfiles stand on the shoulders of the following giants:

FAQ

Q: Have you tested these dotfiles? A: Yes, currently tested on:

  • macOS Monterey - 12.7.1

Footnotes

*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.

About

🆙Configure your machine with one command 🆙

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%