Skip to content

Coiggahou2002/setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

oh-my-mac

Make a MacBook extremely productive for developers.

Platform License Last Commit

TOC


Setup Checklist

Climb Out of the GFW

Install ClashV-Ninja: jinkela.app

Get Apple's Dev Toolchain

Install Xcode from App Store, or run in terminal:

xcode-select --install

Get Package Manager

Install Homebrew:

Xcode Command Line Tools must be installed first.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Get a Real Browser

Install Chrome:

Requires ClashV-Ninja (proxy) to be set up first in 🇨🇳.

Download: https://www.google.com/chrome/

Install Fonts

Fonts for coding and terminal.

# Terminal font
brew install --cask font-iosevka

# Code font
brew install --cask font-monaspace

Get a Clipboard History Manager

# Clipboard manager
brew install --cask maccy
Shortcut Action
C Open clipboard history
/ then Select and paste an item
Type to filter Search through history
P Pin / unpin item to top
Delete item from history

Authenticate with GitHub CLI

brew install gh
gh auth login

Set Git Identity

git config --global user.name "your-username"
git config --global user.email "your-email@example.com"

Set Up Node.js Version Management

Install fnm and Node.js:

Tools like Claude Code depend on Node.js. Use fnm (Fast Node Manager) to manage versions.

brew install fnm

Add to ~/.zshrc:

eval "$(fnm env --use-on-cd --shell zsh)"

Then install Node.js:

fnm install --lts
fnm default lts-latest

Get a Better Terminal

Install iTerm2: https://iterm2.com/downloads.html

Then install Shell Integration (enables inline image display in terminal):

curl -L https://iterm2.com/shell_integration/install_shell_integration_and_utilities.sh | bash

Note: iTerm2 is the best terminal overall, but it has some rendering issues when used with Coding CLIs like Claude Code. If you are a heavy Claude Code user, consider using Kaku instead.

Kaku shortcuts:

Shortcut Action
P Open command palette
T New tab
1 / 2 / 3... Switch to tab by number
D Split pane to the right
D Split pane below
W Close current pane

Tip: In Kaku Settings, you can enable Confirm Tab Close and Confirm Pane Close (both off by default) to avoid accidentally closing tabs or panes.

Switch Apps Without Touching the Trackpad

1. Bind global hot key for apps via Raycast

Raycast is a launcher that replaces Spotlight. Among many other things, it lets you bind a global hotkey to any app so you can jump to it instantly from anywhere.

Install Raycast, then press , to open Settings → Extensions → find an app → set its hotkey.

2. Modify useless Capslock to Hyper Key

Karabiner-Elements handles the keyboard remapping layer. Caps Lock is otherwise a wasted key — Karabiner remaps it to a Hyper Key (⌃⇧⌥⌘ all at once), a combination nothing else uses, so it becomes a safe namespace for your own shortcuts. Install Karabiner-Elements, then remap Caps Lock to Hyper Key (⌃⇧⌥⌘).

Once both are set up, configure Raycast hotkeys:

  • Caps + H → Chrome
  • Caps + V → VSCode
  • Caps + L → Lark
  • Caps + O → Obsidian
  • Caps + S → Superhuman
  • Caps + M → Outlook
  • ...

Get Code Editor

Install VSCode:

  1. Install VSCode
  2. Sign in with GitHub to sync settings
  3. Install Vim extension
  4. Install Markdown Preview GitHub extension

⌨️ Don't Type, Just Speak.

Install Typeless

Get Your AI Coding Partner

Install Claude Code:

curl -fsSL https://claude.ai/install.sh | bash

Make the Shell Usable

Installing and configuring oh-my-zsh (with plugins, themes, etc.) is a bit tedious. Just let Claude Code handle it — ask it to install and set up oh-my-zsh for you.

Set Up Shell Aliases

Configure ~/.zshrc

⚠️ For reference only — adjust to your own needs.

alias pull="git pull"
alias gco="git checkout"

alias proxy="export https_proxy=http://127.0.0.1:6789 http_proxy=http://127.0.0.1:6789 all_proxy=socks5://127.0.0.1:6789 && echo '✅ proxy configured in current session'"
alias claude="proxy && claude --dangerously-skip-permissions"

alias zshconf="vim ~/.zshrc"
alias reloadzsh="source ~/.zshrc"

Fix Long-Press Behavior for Vim

Enable key repeat on long press:

defaults write -g ApplePressAndHoldEnabled -bool false

By default macOS shows an accent picker on long press. This disables it so keys repeat instead (useful for Vim).

Screenshot and Pin Anything

Install Snipaste

  • Press F1 to take a screenshot (if it doesn't work, try Fn F1 — or adjust the F-key behavior in the Use F-Keys Without Holding Fn section).
  • Click Pin to paste the screenshot onto the desktop.
  • Drag a pinned image to reposition it;
  • Double-click it to dismiss.

Run LLMs Locally

Install Ollama:

curl -fsSL https://ollama.com/install.sh | sh

Fix Mouse Scroll Direction

Install Mac Mouse Fix

macOS only lets you pick one scroll direction for everything. Mac Mouse Fix decouples the two: trackpad keeps its natural scroll direction, while the mouse wheel is reversed to match physical expectations.

Enable Three-Finger Drag on Trackpad

In System Settings → Accessibility → Pointer Control → Trackpad Options, enable "Use trackpad for dragging" and set the dragging style to "Three-Finger Drag".

This lets you drag windows and select text by moving three fingers, without needing to click and hold.

Use F-Keys Without Holding Fn

In System Settings → Keyboard, enable "Use F1, F2, etc. keys as standard function keys".

By default, bare F-key presses trigger media controls (brightness, volume); you need Fn F1 to send a real function key. Flipping this setting reverses the behavior — F1 sends a real function key directly, and Fn F1 triggers media controls instead.

About

My personal macOS bootstrap checklist — tools, configs, and shortcuts for a fresh Mac setup.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors