|
| 1 | +--- |
| 2 | +title: 'Setting Up my Mac Mini' |
| 3 | +date: '2025-01-28' |
| 4 | +lastmod: '2025-01-28' |
| 5 | +tags: ['Guide'] |
| 6 | +draft: false |
| 7 | +summary: 'I have been exploring various Mac setup articles and videos to optimize my system. In this article, I will list all the apps and modifications I made on my new Mac Mini and include references at the end.' |
| 8 | +# images: ['/static/images/canada/mountains.jpg', '/static/images/canada/toronto.jpg'] |
| 9 | +authors: ['default'] |
| 10 | +--- |
| 11 | + |
| 12 | +Starting the year with a thoughtful upgrade, I decided it was time to level up my tech game—and what better way to start than by upgrading my trust old [laptop](https://support.apple.com/en-la/111924)? I initially thought a MacBook Air, a natural upgrade, would be a good choice, but after reading reviews about the Mac Mini, my decision was clear. I ordered a new Mac Mini at the tail end of last year and received it in the second week of January. Since then, I have been exploring various Mac setup articles and videos to optimize my system. In this article, I will list all the apps and modifications I made on my new Mac Mini and include references at the end. |
| 13 | +## Mac mini specification |
| 14 | + |
| 15 | +- **Chip**: Apple M4 |
| 16 | +- **Memory**: 16 GB |
| 17 | +- **MacOs**: Sequoia 15.2 |
| 18 | +## MacOS settings |
| 19 | +- **Apple ID**: Sign in |
| 20 | +- **Appearance**: Dark mode |
| 21 | +- **MacOS update**: Settings -> General -> Software Update |
| 22 | +- **Keyboard**: |
| 23 | + - key repeat = fast, delay until repeat = short |
| 24 | + - Turn off autocorrect in Keyboard |
| 25 | + - Shortcuts: copy picture of selected area to clipboard -> Cmd+E |
| 26 | + - Disable "Capitalize word automatically" |
| 27 | + - Disable "Add full stop with double-space" |
| 28 | + - Disable "Use smart quotes and dashes" |
| 29 | + - Disable "Add period with double-space" |
| 30 | +- **Dock**: Hide and show dock, reduce size, Remove everything from the Dock except: Finder, System Preferences and Trash |
| 31 | +- Disable user interface sounds. |
| 32 | +- **Finder**: |
| 33 | + - Show Library, show hidden files, show path to dir |
| 34 | + - Prune the excessive sidebar bookmarks |
| 35 | + - create “Projects” folder and pin |
| 36 | + - To get the Home folder in the finder, press `CMD + SHIFT + H` and drag the home folder to the sidebar. |
| 37 | + |
| 38 | + ```shell |
| 39 | + # show Library folder |
| 40 | + chflags nohidden ~/Library |
| 41 | + |
| 42 | + # show hidden files |
| 43 | + defaults write com.apple.finder AppleShowAllFiles YES |
| 44 | + |
| 45 | + # add pathbar to title |
| 46 | + defaults write com.apple.finder _FXShowPosixPathInTitle -bool true |
| 47 | + |
| 48 | + # restart finder |
| 49 | + killall Finder; |
| 50 | + ``` |
| 51 | + |
| 52 | +- Take screenshots as jpg (usually smaller size) and not png |
| 53 | + |
| 54 | + ```shell |
| 55 | + defaults write com.apple.screencapture type jpg |
| 56 | + ``` |
| 57 | + |
| 58 | +## Basic developer tools |
| 59 | + |
| 60 | +- [**Homebrew**](https://brew.sh/) : |
| 61 | + - Homebrew installs [the stuff you need](https://formulae.brew.sh/formula/ "List of Homebrew packages") that Apple (or your Linux system) didn’t. “To install, drag this icon…” no more. |
| 62 | + - [Homebrew Cask](https://formulae.brew.sh/cask/) installs macOS apps, fonts and plugins and other non-open source software. |
| 63 | + |
| 64 | + ```shell |
| 65 | + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
| 66 | + ``` |
| 67 | + |
| 68 | +- **[Oh My Zsh](https://ohmyz.sh/):** Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout..."Oh MY ZSH!" |
| 69 | + ```shell |
| 70 | + sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
| 71 | + ``` |
| 72 | + |
| 73 | +- **[mactop](https://github.com/context-labs/mactop):** A terminal-based monitoring tool "top" designed to display real-time metrics for Apple Silicon chips. It provides a simple and efficient way to monitor CPU and GPU usage, E-Cores and P-Cores, power consumption, and other system metrics directly from your terminal! |
| 74 | + |
| 75 | + ```shell |
| 76 | + brew install mactop |
| 77 | + ``` |
| 78 | + |
| 79 | +- **[VSCode](https://code.visualstudio.com/)**: Primary IDE to build and debug applications |
| 80 | + - Extensions: |
| 81 | + - Python |
| 82 | + - Pylance |
| 83 | + - Python Debugger |
| 84 | + - MagicPython |
| 85 | + - Jupyter |
| 86 | + - Jupyter cell tags |
| 87 | + - Jupyter slide show |
| 88 | + - Remote SSH |
| 89 | + - Even Better TOML |
| 90 | + - json |
| 91 | + - yaml |
| 92 | + - Gitlens |
| 93 | + - AutoDocstring |
| 94 | + - Code spell checker |
| 95 | + - Ruff |
| 96 | + - Todo Tree |
| 97 | + - Prettify Json |
| 98 | + - Prettier |
| 99 | + - Dracula theme |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +- **Sublime**: Simple code and text edits |
| 104 | + ```shell |
| 105 | + brew install --cask sublime-text |
| 106 | + ``` |
| 107 | + |
| 108 | +- **[uv for python management](https://github.com/astral-sh/uv#installation)**: don’t install python the normal way. no conda, no brew python. [UV for Python… (Almost) All Batteries Included](https://www.youtube.com/watch?v=qh98qOND6MI&ab_channel=ArjanCodes ) |
| 109 | + |
| 110 | + |
| 111 | + ```bash |
| 112 | + curl -LsSf https://astral.sh/uv/install.sh | sh |
| 113 | + source $HOME/.local/bin/env.fish |
| 114 | + uv python install 3.12 |
| 115 | + ``` |
| 116 | + |
| 117 | +- **Javascript** |
| 118 | + |
| 119 | + - node: A runtime environment that allows you to run JavaScript on the server side |
| 120 | + |
| 121 | + ```shell |
| 122 | + brew install node |
| 123 | + ``` |
| 124 | + |
| 125 | + - npm: The default package manager for Node.js. It helps developers install, manage, and share libraries and tools for JavaScript projects. |
| 126 | + |
| 127 | + ```shell |
| 128 | + brew install npm |
| 129 | + ``` |
| 130 | + |
| 131 | + - [yarn](https://yarnpkg.com/en/docs/install#mac-stable) : An alternative package manager to npm. It offers faster dependency installation, better offline support, and deterministic builds |
| 132 | + |
| 133 | + ```shell |
| 134 | + brew install yarn --ignore-dependencies |
| 135 | + ``` |
| 136 | + |
| 137 | +- [**github** **desktop** ](https://github.com/apps/desktop): I confess I prefer the GUI more than CMD - simplified the dev workflow significantly. though it doesn’t quite make you feel like a coding ninja. |
| 138 | +- **[OrbStack](https://orbstack.dev/)** as a Docker replacement, seems [lighter & faster](https://twitter.com/thorstenball/status/1743323371532599728) |
| 139 | +- **wget**: retrieves content from web servers. |
| 140 | + ```shell |
| 141 | + brew install wget |
| 142 | + ``` |
| 143 | +### Browser Settings |
| 144 | + |
| 145 | +- **Chrome**: For web development |
| 146 | + |
| 147 | + ``` |
| 148 | + brew install --cask google-chrome |
| 149 | + ``` |
| 150 | + |
| 151 | +- **Chrome extensions**: (tied to Chrome account) |
| 152 | + - [Paywall blocker](https://github.com/iamadamdev/bypass-paywalls-chrome/](https://github.com/iamadamdev/bypass-paywalls-chrome/): |
| 153 | + - [adblock](https://chromewebstore.google.com/detail/adblock-%E2%80%94-block-ads-acros/gighmmpiobklfepjocnamgkkbiglidom): Block ads on YouTube and your favorite sites for free |
| 154 | + - octolinker |
| 155 | + - [privacybadger](https://chromewebstore.google.com/detail/privacy-badger/pkehgijcmpdhfbdbbnkijodmdjhbjlgp): automatically learns to block invisible trackers. |
| 156 | + - [refined github](https://chromewebstore.google.com/detail/refined-github/hlepfoohegkhhmjieoechaddaejaokhf): Simplifies the GitHub interface and adds useful features |
| 157 | + - [google docs offline](https://chromewebstore.google.com/detail/google-docs-offline/ghbmnnjooekpmoecnnnilnnbdlolhkhi): Edit, create and view your documents, spreadsheets and presentations – all without Internet access. |
| 158 | + - [display anchors](https://chromewebstore.google.com/detail/display-anchors/poahndpaaanbpbeafbkploiobpiiieko): Displays anchors for all content in the current web page without breaking the layout. |
| 159 | + - [video speed controller](https://chromewebstore.google.com/detail/video-speed-controller/nffaoalbilbmmfgbnbgppjihopabppdk): Speed up, slow down, advance and rewind HTML5 audio/video with shortcuts |
| 160 | + - [ublock origin](https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm):An efficient blocker: easy on memory and CPU footprint, and yet can load and enforce thousands more filters than other popular blockers out there. |
| 161 | + - [uBlacklist](https://chromewebstore.google.com/detail/ublacklist/pncfbmialoiaghdehhbnbhkkgmjanfhe): Blocks sites you specify from appearing in Google search results |
| 162 | + - [whatfont](https://chromewebstore.google.com/detail/whatfont/jabopobgcpjmedljpbcaablpmlmfcogm): The easiest way to identify fonts on web pages. |
| 163 | + - [Morpheon Dark](https://chromewebstore.google.com/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad): A minimalistic dark theme without any distractions |
| 164 | + - [CrossQuery](https://chromewebstore.google.com/detail/crossquery/bjafchghcaffbfmdkhkmefppcabcbinl): Enhanced Google search experience with summaries from reddit and other websites |
| 165 | + - [zotero](https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc): Save references to Zotero from your web browser |
| 166 | + |
| 167 | +### Productivity |
| 168 | + |
| 169 | +- [Raycast](https://www.raycast.com/): an extendable launcher to replace spotlight. [Why Raycast is a must have for Productivity](https://www.youtube.com/watch?v=9B-0rG6BUi0&t=4s&ab_channel=InelPandzic) |
| 170 | + |
| 171 | + ```shell |
| 172 | + brew install --cask raycast |
| 173 | + ``` |
| 174 | + |
| 175 | +- [Obsidian](https://obsidian.md/): |
| 176 | + - Obsidian is a personal knowledge base and note-taking software application that operates on Markdown files. It allows users to make internal links for notes and then to visualize the connections as a graph. It is designed to help users organize and structure their thoughts and knowledge in a flexible, non-linear way. |
| 177 | + |
| 178 | + |
| 179 | + - iCloud can be used to sync vaults between iOS and macOS: |
| 180 | + - **Enable iCloud Drive**: |
| 181 | + - On macOS: Go to **System Preferences → Apple ID → iCloud → iCloud Drive**. |
| 182 | + - On iOS: Go to **Settings → [Your Name] → iCloud → iCloud Drive**. |
| 183 | + - **Create a new vault in iCloud**: |
| 184 | + - On macOS: |
| 185 | + - Open **Obsidian** and select **Create new vault**. |
| 186 | + - In the file picker, navigate to **iCloud Drive → Obsidian**. |
| 187 | + - Create a folder for your vault and name it. |
| 188 | + - Select **Create** to finish. |
| 189 | + - On iOS: |
| 190 | + - Open **Obsidian** and tap **Create new vault**. |
| 191 | + - Enter a name for your vault. |
| 192 | + - Toggle on **Store in iCloud**. |
| 193 | + - Tap **Create**. |
| 194 | + |
| 195 | + ```shell |
| 196 | + brew install --cask obsidian |
| 197 | + ``` |
| 198 | + |
| 199 | +- [**zotero**](https://www.zotero.org/): collect, organize, annotate, cite, and share research |
| 200 | + |
| 201 | + ```shell |
| 202 | + brew install --cask zotero |
| 203 | + ``` |
| 204 | + |
| 205 | +### AI app installations |
| 206 | + |
| 207 | +- **[superwhispr](https://superwhisper.com/)**: 'just talk' to your mac, it's way better than typing. |
| 208 | + |
| 209 | +- **[llama.cpp](https://github.com/ggerganov/llama.cpp)**: performs inference on various large language models |
| 210 | + ```shell |
| 211 | + brew install llama.cpp |
| 212 | + ``` |
| 213 | + |
| 214 | +- **[ollama](https://github.com/ollama/ollama)**: a lightweight, extensible framework for building and running language models on the local machine. |
| 215 | + ```shell |
| 216 | + brew install --cask ollama |
| 217 | + ``` |
| 218 | + |
| 219 | +- **[lmstudio](https://lmstudio.ai/)**: Yet another app to run local LLMs |
| 220 | + ```shell |
| 221 | + brew install --cask lmstudio |
| 222 | + ``` |
| 223 | + |
| 224 | +### Media |
| 225 | + |
| 226 | +- **[VLC](https://www.videolan.org/vlc/)**: free and open source cross-platform multimedia player and framework that plays most multimedia files |
| 227 | + |
| 228 | +### Other Applications |
| 229 | + |
| 230 | +- **Google Drive**: Syncing documents, files, media, etc. |
| 231 | + |
| 232 | +```shell |
| 233 | +brew install --cask google-drive |
| 234 | +``` |
| 235 | + |
| 236 | +- [**Logi Options+**](https://www.logitech.com/en-in/setup/ergosetup/logi-options.html): Logitech mice and keyboard settings for my [MX keys mini](https://www.logitech.com/en-in/products/keyboards/mx-keys-mini.920-010505.html) and M650L |
| 237 | +- [**Discord**](https://discord.com/) : instant messaging and VoIP social platform |
| 238 | +- **[kindle](https://apps.apple.com/us/app/amazon-kindle/id302584613)** App: Read kindle books |
| 239 | + |
| 240 | +## References |
| 241 | + |
| 242 | +1. [Eugene Yan - My Minimal MacBook Pro Setup Guide](https://eugeneyan.com/writing/mac-setup/) |
| 243 | +2. [Swyx’s Mac setup](https://www.swyx.io/new-mac-setup) |
| 244 | +3. [Mimansa Jaiswal - What softwares do I actually use on my Mac as a software enthusiast?](https://mimansajaiswal.github.io/posts/mac-softwares/) |
| 245 | +4. [Vaibhav's (VB) Twitter thread]() |
| 246 | + |
| 247 | + |
| 248 | + |
| 249 | + |
| 250 | + |
| 251 | + |
0 commit comments