# My macOS Setup in 2024

> My 2024 Mac setup after moving to an M3 MacBook: Git-based profile switching, Raycast, OrbStack, and the apps that stayed in daily use.

**Published:** 2024-07-28

**Canonical:** <https://grishy.dev/en/posts/my-macos-setup-2024/>

**Translations:** [English](https://grishy.dev/en/posts/my-macos-setup-2024.md), [Русский](https://grishy.dev/ru/posts/my-macos-setup-2024.md)

![My macOS Setup in 2024](https://grishy.dev/_astro/iewek-gnos-hhUx08PuYpc-unsplash.D8gZ73kK.avif)

---

I decided to write this post mainly for myself because the previous one, written
in 2022, turned out to be useful. So I am doing it again after moving to a new
laptop.

Compared to 2022, I upgraded to a laptop with an M3 chip. It works well, most
programs already support Apple Silicon, and Rosetta 2 handles the remaining x86
applications.

I no longer use separate macOS user profiles. Instead, I switched to different Git configurations that activate automatically based on the directory path. Moving to a single-profile setup saved disk space and eliminated the friction of switching profiles. Most of the issues with multiple profiles came from Homebrew and the way it installs apps.

## macOS Settings

Most settings synchronized automatically through my Apple account, so there was
not much to adjust after logging in. As usual, I also turn off long animations
and the blue input-language icon that appears in text fields.

```sh
# Disable the blue language icon
sudo defaults write /Library/Preferences/FeatureFlags/Domain/UIKit.plist redesigned_text_cursor -dict-add Enabled -bool NO
```

For some reason, not all settings sync through the Apple account. I also always remap language switching to `Caps Lock`.

## Browsers

From 2023 to the middle of 2024, I used Firefox, but now I have switched back to Google Chrome. Previously, Firefox had fewer pop-ups and warnings with my local network compared to Chrome. I frequently encountered this because I have a home lab.

I prefer Chrome DevTools, and almost all extensions work as well as they do in
Firefox. Screen sharing was the final push: Firefox makes it noticeably more
awkward, so I switched for now.

1. Chrome - main browser
2. Firefox - secondary browser, used once a week
3. Min - minimal browser for screenshots and screen sharing
4. Arc - I like the idea, but extension support never felt right to me. I rarely open it now, mostly to see how it is changing.

### Browser Extensions

1. [Bitwarden](https://bitwarden.com/) - password manager
2. [StreetPass for Mastodon](https://streetpass.social/) - parses social profiles on the page.
3. [OneTab](https://www.one-tab.com/) - allows saving open tabs into a local store and reopening them later; I use it like a reading list.
4. [Tab Sorter](https://chromewebstore.google.com/detail/tab-sorter/nlnkcinjjeoojlhdiedbbolilahmnldj?hl=en) - sorts tabs for OneTab.
5. [uBlock Origin](https://ublockorigin.com/) - makes browsing the internet more comfortable, although I have [Pi-hole](https://pi-hole.net/).
6. [Simple Translate](https://addons.mozilla.org/en-US/firefox/addon/simple-translate/) - the most elegant extension for translation. I often use it to translate words from YouTube.
7. [Clickbait Remover for YouTube](https://chromewebstore.google.com/detail/clickbait-remover-for-you/omoinegiohhgbikclijaniebjpkeopip?hl=en)
8. [Enhancer for YouTube](https://chromewebstore.google.com/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle)
9. [SponsorBlock for YouTube](https://sponsor.ajay.app/)

## Applications

Some apps are installed through Homebrew, while others I download directly. If an app has a built-in self-update mechanism, I prefer to install it manually instead of managing it through Homebrew. In that case, Homebrew will simply skip it after the first installation.

Below, I combined the contents of `/Applications` with the output of `brew leaves` and added a short note on why I use each app.

### GUI Applications

1. [Adobe Photoshop](https://www.adobe.com/products/photoshop.html) - used occasionally for image editing
2. [DaVinci Resolve](https://www.blackmagicdesign.com/products/davinciresolve) - video editing
3. [Anki](https://apps.ankiweb.net/) - flashcards for learning new things in the morning
4. [DataGrip](https://www.jetbrains.com/datagrip/) - connecting to databases
5. [DB Browser for SQLite](https://sqlitebrowser.org/) - local SQLite viewer with handy `Blob` preview
6. [Discord](https://discord.com/) - calls with friends
7. [Docker](https://www.docker.com/products/docker-desktop/) - occasional local builds
8. [Endel](https://endel.io/) - offline background music
9. [Flow](https://www.flow.app/) - Pomodoro timer
10. [GoLand](https://www.jetbrains.com/go/) - Go language code refactoring
11. [Grammarly Desktop](https://www.grammarly.com/desktop) - because I don't know English perfectly. Mostly turned off because it's annoying.
12. [Hoppscotch](https://hoppscotch.io/) - REST API client, a replacement for Postman
13. [Horo](https://apps.apple.com/us/app/horo-timer-for-menu-bar/id1437226581?mt=12) - timer for cooking 🥘
14. [iA Writer](https://ia.net/writer) - cozy Markdown editor. I'm writing this text in it now\...
15. [IINA](https://iina.io/) - superb minimalistic video player
16. [kitty](https://sw.kovidgoyal.net/kitty/) - replacement for the default terminal
17. [Lens](https://k8slens.dev/) - Kubernetes cluster management
18. [Lookupper](https://lookupper.com/) - perfect solution for word translation based on image recognition. It recognizes the word under the cursor using the native macOS dictionary.
19. [Microsoft Office](https://www.microsoft.com/en-us/microsoft-365/products-apps-services) - bureaucracy...
20. [Obsidian](https://obsidian.md/) - knowledge base and daily notes
21. [OrbStack](https://orbstack.dev/) - Docker replacement, but I seldom use it
22. [Parallels Desktop](https://www.parallels.com/) - virtual machines
23. [qBittorrent](https://www.qbittorrent.org/) - torrent client
24. [Raycast](https://www.raycast.com/) - Spotlight replacement
25. [Rectangle](https://rectangleapp.com/) - window manager in macOS with hotkeys
26. [Shottr](https://shottr.cc/) - screenshot tool with notes
27. [Slack](https://slack.com/) - communication tool for work
28. [Spark](https://sparkmailapp.com/) - used only for parsing invites, due to issues with Thunderbird
29. [Sublime Merge](https://www.sublimemerge.com/) - UI for Git
30. [Screen Studio](https://www.screen.studio/) - quick video screen recording
31. [Syncthing](https://syncthing.net/) - local Dropbox replacement
32. [Thunderbird](https://www.thunderbird.net/en-US/) - main email client
33. [Telegram](https://telegram.org/) - main communication tool
34. [Visual Studio Code](https://code.visualstudio.com/) - main text editor
35. [VLC](https://www.videolan.org/) - for rare video formats or converting from one format to another
36. [WhatsApp](https://www.whatsapp.com/download) - chat with "plumbers"
37. [WireGuard](https://www.wireguard.com/) - VPN to personal "cloud" server, always on
38. [Wireshark](https://www.wireshark.org/) - network traffic debugging
39. [Zed](https://zed.dev/) - a promising code editor
40. [zoom.us](https://zoom.us/) - calls, meetings, calls...

### CLI Applications

1. `ansible` - setup of servers
2. `awscli` - file download from AWS S3
3. `bat` - colorized `cat`
4. `btop` - laptop stats and network usage
5. `eza` - replacement for `ls`
6. `fzf` - search by `Ctrl`+`R` in history
7. `hashicorp/tap/terraform` - AWS, GCP cloud setup
8. `helix` - modern terminal editor as a replacement for neovim
9. `htop` - similar to `btop`, but for CPU and disk only
10. `jq` - JSON pretty print
11. `lnav` - view systemd logs; not working with read-only file systems by default
12. `miniserve` - HTTP file server to share something in a local network
13. `neovim` - terminal code editor
14. `nmap` - check IP addresses and ports in the local network, when I am too lazy to open the router UI
15. `openfortivpn` - to connect to work VPN because the official fortivpn is awful
16. `oven-sh/bun/bun` - replacement for Node.js for me
17. `qemu` - Linux virtual machines for work
18. `radare2` - reverse engineering of binary files
19. `ripgrep` - useful `grep`
20. `sshs` - TUI that shows a list of SSH servers from the config
21. `teamookla/speedtest/speedtest` - to verify the Internet speed in a hotel
22. `teleport` - server access for the work lab
23. `yazi` - terminal file manager
24. `yt-dlp` - YouTube video downloader
25. `zellij` - replacement for `tmux`, useful because it is a single binary file

## Games

I installed most of the games primarily for language learning, not for relaxation in the evening. Enjoyment is just a bonus, not the main goal. While playing, I translate unfamiliar words using the aforementioned Lookupper and create cards in Anki.

Once I have enough cards, I run my Python script that adds IPA and audio pronunciations from the Cambridge Dictionary. This process can be disruptive, but I always have a history of the clipboard and can add everything later.

In general, I do not play often and take long breaks. I might skip games for
almost the entire year and then play every evening for a month.

### Installed and played

1. **Disco Elysium** - probably one of the most thoughtful game worlds that I remember. I have completed half of the game.
2. **Life Is Strange** - I started playing it after the game's release with a physical notebook and pen. However, I haven't finished it yet and am thinking about finally completing it sometime.
3. **Sid Meier's Civilization VI** - a really interesting game to play with a few friends, but each game session is very time-consuming.

### Installed and not played

1. **Baldur's Gate 3**
2. **Pathfinder: Kingmaker**
3. **Pathfinder: Wrath of the Righteous**
4. **Neverwinter Nights: Enhanced Edition** - you can assume I didn't really play it, since the last time was a long time ago.

## Useful Links

I've collected several useful links to blog posts about macOS setups.

1. <https://github.com/maoxiaoke/setup-a-mac-for-frontend-dev>
2. <https://matthiasott.com/notes/my-favorite-mac-apps-in-2023>
3. <https://zaytsev.io/blog/macos-setup/>
4. <https://github.com/matchai/dotfiles/blob/main/darwin/macos.nix>
5. <https://github.com/sinnrrr/dotfiles/tree/macos>
6. <https://github.com/driesvints/dotfiles>
7. <https://git.herrbischoff.com/awesome-macos-command-line/about/>
8. <https://git.herrbischoff.com/awesome-command-line-apps/about/>

## Conclusion

I hope this text helps me again the next time I set up macOS. I prefer setting
up phones and computers from scratch instead of restoring a full dump. That does
not mean I ignore backups, of course.

I stopped using or replaced quite a few programs. I also keep fewer VM tools and
rarely used CLI utilities installed now.

---

**Thumbnail:** Photo by [Iewek Gnos](https://unsplash.com/@imkirk) on [Unsplash](https://unsplash.com/photos/macbook-pro-on-white-wooden-desk-hhUx08PuYpc).
