My Minimal Mac Mini Setup Guide
Note: This guide is inspired by Eugene Yan’s excellent My Minimal MacBook Pro Setup Guide. I’ll focus on the essential settings and configurations that work best for my workflow, and keep this document updated as my setup evolves.
Table of Contents
- MacOS Settings
- Basic developer tools
- Research, writing, development
- Productivity and quality of life
- Entertainment and communications
MacOS Settings
- Apple ID: Sign in
- Energy: Enable “Startup automatically after a power failure”
- Sharing: General > Sharing > Enable “Remote Login”
- this is useful if you need to access the mac mini from a laptop within the same network
- Adjust the permission level as required
- Desktop & Dock:
- remove all default apps; change “dock magnification” = large & “size” = small
- Disable all stage manager & hot corners related settings
- Disable bouncing dock icon
$ defaults write com.apple.dock no-bouncing -bool TRUE; # restart your docks $ killall Dock;
- Displays:
- default settings for monitor are good
- configure mac continuity by arranging the displays when Macbook is connected
- Keyboard:
- key repeat rate = fast & delay until repeat = short
- I use the default keyboard type (QWERTY)
- Keyboard Shortcuts
- Spotlight: uncheck both spotlight & finder search window
- Function keys: switch toggle to use function keys to use special features
- Remaining shortcuts are configured using Karabiner Elements
- Mouse: tracking=fast; scrolling=fast; disable natural scrolling
-
Finder: Show library & hidden files
# show Library folder $ chflags nohidden ~/Library # show hidden files $ defaults write com.apple.finder AppleShowAllFiles YES # restart finder $ killall Finder;
Note: Do go through all the settings individually like Privacy & Security, Lock Screen, Users & Groups, & etc as these wary with the device you use.
Basic developer tools
-
Homebrew
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # add brew to default shell path $ touch ~/.zprofile $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile $ eval "$(/opt/homebrew/bin/brew shellenv)" # check for updates $ brew update
-
Terminal: After using Mac terminal for 2 years, I recently shifted to iTerm - happy so far
# install iterm from brew $ brew install --cask iterm2
-
Utilities:
- Git: check out the GitHub docs to generate a new ssh key and add to ssh agent, and add a new ssh key to Github account.
$ brew install git # Note: My git config is already set up in the dotfiles repo. # if you are setting up for the first time, you can use the below commands # Always use a private mail address created by GitHub instead of personal address $ ssh-keygen -t ed25519 -C "[email protected]" # start ssh agent $ eval "$(ssh-agent -s)" # read about setting up ~/.ssh/config file
-
Btop: Asthetically better top
$ brew install btop
-
Karabiner Elements: Customize keyboard shortcuts
$ brew install --cask karabiner-elements
-
Zsh Autosuggestions: It suggest options when running commands like
git
,docker
, etc.$ brew install zsh-autosuggestions
-
Zsh Autocomplete: It autocompletes the commands based on the history.
$ brew install zsh-autocomplete
- Git: check out the GitHub docs to generate a new ssh key and add to ssh agent, and add a new ssh key to Github account.
-
Dotfiles: I use GNU stow to manage my dotfiles. I suggest backing up your existing dotfiles before running the below commands. My dotfiles contain
.zshrc
,.zprofile
,.gitconfig
,.karabiner.json
, & etc.# clone dotfiles repo to home directory $ git clone https://github.com/sainikhileshreddy/dotfiles.git $ cd dotfiles # install GNU stow $ brew install stow # install all the dotfiles to home directory $ stow . # stow --adopt . # if you want to adopt the existing dotfiles (if any) # restart your terminal
Research, writing, development
-
Python & necessary tooling
# install uv $ brew install uv # install latest version of python $ uv python install 3.x.x
-
Simon’s LLM CLI: Command line interface for all kinds of LLM models. I personally use Gemini 2.0 Flash for all my needs as it is fast, powerful, and free. Resources: github repository - setup page - plugin directory - gemini support
# install llm cli package $ uv tool install llm $ uv tool update-shell # add gemini support for llm cli $ llm install llm-gemini # paste the key you got from aistudio.google.com $ llm keys set gemini $ llm models default gemini-2.0-flash-exp # examples $ llm "Who are you?" $ llm chat
-
Utilities:
# Obsidian: A local markdown note taking app with a lot of plugins $ brew install --cask obsidian # Cursor: A smart code editor with LLM assitance like 4o/o1, Gemini, Sonnet, & etc. $ brew install --cask cursor # Zotero: For paper annotations, pdf reader, & etc $ brew install --cask zotero # Orbstack: A lightweight docker desktop alternative (drop in replacement) $ brew install --cask orbstack # Firefox: for all kinds of browsing (make it default) $ brew install --cask firefox # firefox extensions: ublock origin, decentraleyes, zotero plugin, unhook, vimium
Productivity and quality of life
- Raycast: A better spotlight (& and also supports window management but paid)
$ brew install --cask raycast
- Rectangler: Simple window management with basic shortcuts without any subscription
$ brew install --cask rectangle
- Stats + Ice: Adding system stats to menu bar and customizing the menu bar
$ brew install stats $ brew install jordanbaird-ice
Entertainment and communications
- Media:
$ brew install --cask vlc $ brew install --cask spotify
- Discord: For all kinds of communication
$ brew install --cask discord