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.
# 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.
- Chrome - main browser
- Firefox - secondary browser, used once a week
- Min - minimal browser for screenshots and screen sharing
- 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
- Bitwarden - password manager
- StreetPass for Mastodon - parses social profiles on the page.
- OneTab - allows saving open tabs into a local store and reopening them later; I use it like a reading list.
- Tab Sorter - sorts tabs for OneTab.
- uBlock Origin - makes browsing the internet more comfortable, although I have Pi-hole.
- Simple Translate - the most elegant extension for translation. I often use it to translate words from YouTube.
- Clickbait Remover for YouTube
- Enhancer for YouTube
- SponsorBlock for YouTube
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
- Adobe Photoshop - used occasionally for image editing
- DaVinci Resolve - video editing
- Anki - flashcards for learning new things in the morning
- DataGrip - connecting to databases
- DB Browser for SQLite - local SQLite viewer with handy
Blobpreview - Discord - calls with friends
- Docker - occasional local builds
- Endel - offline background music
- Flow - Pomodoro timer
- GoLand - Go language code refactoring
- Grammarly Desktop - because I don’t know English perfectly. Mostly turned off because it’s annoying.
- Hoppscotch - REST API client, a replacement for Postman
- Horo - timer for cooking 🥘
- iA Writer - cozy Markdown editor. I’m writing this text in it now…
- IINA - superb minimalistic video player
- kitty - replacement for the default terminal
- Lens - Kubernetes cluster management
- Lookupper - perfect solution for word translation based on image recognition. It recognizes the word under the cursor using the native macOS dictionary.
- Microsoft Office - bureaucracy…
- Obsidian - knowledge base and daily notes
- OrbStack - Docker replacement, but I seldom use it
- Parallels Desktop - virtual machines
- qBittorrent - torrent client
- Raycast - Spotlight replacement
- Rectangle - window manager in macOS with hotkeys
- Shottr - screenshot tool with notes
- Slack - communication tool for work
- Spark - used only for parsing invites, due to issues with Thunderbird
- Sublime Merge - UI for Git
- Screen Studio - quick video screen recording
- Syncthing - local Dropbox replacement
- Thunderbird - main email client
- Telegram - main communication tool
- Visual Studio Code - main text editor
- VLC - for rare video formats or converting from one format to another
- WhatsApp - chat with “plumbers”
- WireGuard - VPN to personal “cloud” server, always on
- Wireshark - network traffic debugging
- Zed - a promising code editor
- zoom.us - calls, meetings, calls…
CLI Applications
ansible- setup of serversawscli- file download from AWS S3bat- colorizedcatbtop- laptop stats and network usageeza- replacement forlsfzf- search byCtrl+Rin historyhashicorp/tap/terraform- AWS, GCP cloud setuphelix- modern terminal editor as a replacement for neovimhtop- similar tobtop, but for CPU and disk onlyjq- JSON pretty printlnav- view systemd logs; not working with read-only file systems by defaultminiserve- HTTP file server to share something in a local networkneovim- terminal code editornmap- check IP addresses and ports in the local network, when I am too lazy to open the router UIopenfortivpn- to connect to work VPN because the official fortivpn is awfuloven-sh/bun/bun- replacement for Node.js for meqemu- Linux virtual machines for workradare2- reverse engineering of binary filesripgrep- usefulgrepsshs- TUI that shows a list of SSH servers from the configteamookla/speedtest/speedtest- to verify the Internet speed in a hotelteleport- server access for the work labyazi- terminal file manageryt-dlp- YouTube video downloaderzellij- replacement fortmux, 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
- Disco Elysium - probably one of the most thoughtful game worlds that I remember. I have completed half of the game.
- 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.
- 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
- Baldur’s Gate 3
- Pathfinder: Kingmaker
- Pathfinder: Wrath of the Righteous
- 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.
- https://github.com/maoxiaoke/setup-a-mac-for-frontend-dev
- https://matthiasott.com/notes/my-favorite-mac-apps-in-2023
- https://zaytsev.io/blog/macos-setup/
- https://github.com/matchai/dotfiles/blob/main/darwin/macos.nix
- https://github.com/sinnrrr/dotfiles/tree/macos
- https://github.com/driesvints/dotfiles
- https://git.herrbischoff.com/awesome-macos-command-line/about/
- 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 on Unsplash
Join the mailing list
I'll send new posts to your inbox.