![](/style/images/good.png)
![](/style/images/bad.png)
What is your Mac OS Setup?
source link: https://lobste.rs/s/d5qwzs/what_is_your_mac_os_setup
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
What is your Mac OS Setup?
I recently got a macbook m2 pro intending on installing asahi once it released but I’m liking the integration with my apple watch and phone enough to consider making mac os my primary os. I’m an arch user and have no clue of the mac software ecosystem.What stuff do you recommend?
-
Just normal settings configured so they leave me alone, then Firefox and Doom Emacs. Nix for installing packages.
-
I really need to look into Nix more
-
It can be a pain in the ass to grok but just installing home-manager and using it to manage your packages is a huge step up from uncontrolled homebrew usage. You can install packages from the nixpkgs repo if they support aarch64-darwin, and packages (casks, taps, whatever) via brew, from the same program.
-
To your point, Tidying up your $HOME with Nix by Ju Liu was a really helpful introduction for me. I read Zero to Nix to get a quick idea of nix’s capabilities and then more or less emulated Ju Liu’s setup. I honestly haven’t progressed much farther than that, but it’s been enough to have a declarative way to manage my macOS packages.
-
-
-
-
Recently switched to a m2 macbook for most work, after a bit over 2 decades on Linux desktops.
Same a many people here, I mostly live in Firefox, Emacs and a Terminal emulator (kitty here). Using nix-darwin & home-manager instead of homebrew because that’s what I already knew. So this focuses on things I did not have on linux:
- https://rectangleapp.com/ brings some keyboard-driven window management to macos.
- https://www.hammerspoon.org/ provides a nice lua api for desktop scripting
- https://github.com/maxgoedjen/secretive can store ssh keys in the secure enclave, so I don’t need my yubikey all the time.
- little snitch is a nice desktop firewall https://www.obdev.at/products/littlesnitch/index.html
-
https://rectangleapp.com/ brings some keyboard-driven window management to macos.
I love this app for window management. I would also recommend AltTab. It allows you to switch between windows instead of applications. I used to see some instability, but it’s been pretty good in the last year.
-
At first I was confused by that too, but I got used to the standard behavior now and I love it. I.e:
- cmd + tab cycles through applications,
- cmd + backtick cycles windows for the same application,
- ctrl-+tab in most apps to cycle through tabs.
Also 3 fingers swipe up for expose is pretty good .
-
-
Here’s what I have installed:
- Arc (browser), before that I’ve used Firefox Nightly since ever, I guess(?)
- iTerm as my terminal emulator
- NotePlan for notes and organising my day (along with the stock Calendar.app)
- 1Password as my password manager
- Transmit (from Panic) whenever I need to interface with S3/SFTP,
- Transmission (BitTorrent) to download Linux ISOs
- Suspicious Package to take a look on suspicious
.pkg
files - SoundSource (from Rogue Amoeba) to route audio and configure output levels on a per-app basis
- Postico 2 whenever I need something fancy to connect to Postgres
- Serial (from Decisive Tactics) to… well, connect to Serial ports
- A few JetBrains IDEs (Goland/Clion/IDEA)
- Little Snitch as my firewall
- RapidAPI (previously called Paw) to make HTTP requests to APIs and such
- Hex Fiend (from ridiculous_fish) to view/edit binary files and finally, brew.sh to install packages.
I also recently (guess it’s been a couple of months) replaced Docker Desktop with Colima.
-
SoundSource (from Rogue Amoeba) to route audio and configure output levels on a per-app basis
Didn’t know that, looks very nice! Also very expensive :(. I had Airfoil back in the day and it was fairly affordable.
-
Yeah, pricing made me reconsider it every time I needed something that provided what it offers, but in the end it is worth it. Folks from Rogue Amoeba have a superb support, and their software is rock solid. You will also notice they push updates quite regularly, so I consider it a well spent money. To have audio from my browser/slack/skype routed to the headset I use for that and not my DAC is really great :D haha
IIRC, I bought it mid-pandemy, had to attend classes virtually and my colleagues used to gather on Discord at the same time. You can imagine the mess it was without being able to control which app was louder.
-
-
How does Colima compare with OrbStack? I haven’t used either, but they look appealing. https://orbstack.dev/
-
We are going to switch to colima at work because it runs a lot better than docker for Mac and no licensing issues. That said, orbstack has better x86 support on M1/M2 machines, in that it just runs x86 containers faster.
-
Whoa! I haven’t heard about OrbStack until now, and it indeed look appealing! Specially considering what they promise on their landing page.
However…
OrbStack is completely free to use during beta, but it will become a paid product afterwards. We’re still working out the details, but this is the plan so far (subject to change): (…)
They say personal use will be free, but I’m pretty sure that hold true until they change their minds. I haven’t had issues with Colima since I installed it, but some people from work had some tough time with it. Not sure why though; I couldn’t reproduce on my machines and on clean macOS installations in order to file an issue/try to find a solution. /shrug
-
-
I keep promising myself to do this to the next Mac I get.
https://github.com/geerlingguy/mac-dev-playbook
Narrator voice: He still hasn’t.
But one day I will, then I’ll have a repeatable set up every couple of years.
-
Some high level decisions I would recommend:
Package management: If you want a normie package manager for the entire os, get homebrew. I prefer a development environment scoped per directory/project (eg different, specific versions of node.js for different projects), for which I would recommend using devbox + direnv. Don’t use Docker for your dev environment unless you need to.
There are a ton of cute little useful menu bar utilities eg color pickers, window management, screenshotting, etc. Look for them.
Go all in on 1Password: use it as your ssh agent, etc.
I might have tons of recommendations if you get more specific about what kind of development you do.
-
For Unix sludge, I use MacPorts. It’s more tastefully designed than homebrew, though upgrading macOS releases is a pain in the ass with it, and there’s not as much manpower.
I don’t actually use any window management or whatever tools beyond f.lux, because it’s more aggressive with tinting than night shift.
I also don’t use any playbook or configuration stuff - the distance between when I upgrade a system is long and often involves switching platforms that I just re-evaluate what I use, from scratch.
For Mac specific apps beyond the chat sludge everyone has, and their browser of choice: MacPass (though I wish it supported the new password manager APIs), UTM (QEMU is janky AF for x86 emulation, but it’s fine for ARM hypervising), Meta, DaisyDIsk, IINA (the best mpv frontend on any platform). I also maintain a Subsonic client for macOS, if anyone is interested in self-promotion.
-
Your mention about UTM got me curious. I thought there could be some mac-specific magic… but it’s still qemu under the hood. Quoting their homepage:
Under the hood of UTM is QEMU, a decades old, free and open source emulation software that is widely used and actively maintained.
Maybe the nice parts are in the UI coating then. It does look nice. :)
-
macOS provides two virtualization APIs:
-
Hypervisor.framework
, which is a low-level API fairly similar to KVM -
Virtualization.framework
, which is an Apple-developed QEMU replacement - just give it a disk image and go
IIRC, UTM supports both Virtualization.framework and QEMU-on-Hypervisor.framework.
Notably, Virtualization.framework includes an option to provide a Linux build of Rosetta 2 to the VM - so you can run x86 Linux binaries on an ARM Linux kernel on an ARM Mac that way. Presumably you could also run that binary under QEMU but it’s probably against the EULA.
-
-
-
-
Regardless of what you do, definitely consider installing Homebrew. The killer feature for me is the
brew bundle
plugin to manage command-line dependencies and bog standard Mac apps (managed via “casks”). You can create a globalBrewfile
, which looks like this, by populating your Brewfile definitions in~/.Brewfile
and runningbrew bundle --global
. -
That’s funny - I’ve been given an M2 Pro by work and am counting the days I can get off macOS. In the meantime, I’m storing my (very hacky) setup at ~duncan-bayne/macos-setup/.
Can recommend Rectangle as a psuedo-tiling-WM, too.
-
I can add my 2c here as well. At the beginning of this year I switched jobs and got a MacBook. After decades of Linux, and 5 years of windows as well, at my previous job. I have tried for about a month, but it just fought me all the time. In the end my boss heard my complaints and got me a Lenovo laptop to install Linux on.
I’m writing this not to deter the OP from switching, I simply wanted to let them know it’s fine if the experiment fails, you’re not the only one to give up :)
-
-
Oops, fixed. Thanks :)
-
-
I’m bailing off macos too, it became too hostile for developers imho.
One thing about your install.sh script that I ought to say - you have a “Manually install by dragging into Font Book :/” message there, but it is totally possible to just copy the font into the ~/Library/Fonts/ directory.
-
Oh neat, thanks! For some reason I didn’t think that worked. Will amend that on Monday.
(Related: my work laptop goes on a shelf Friday evening, and doesn’t come out until Monday AM. Hard learned lesson, that.)
-
-
-
- Mimestream for Google Mail.
- Dash for API doc search.
- Raycast for search in place of regular spotlight search, also integrates with Dash and others.
- 1Password SSH integration or Secretive
- Wipr for Safari ad blocking (and Safari over any other browser, fast rendering, great battery life).
- Shortcat for keyboard shortcuts for every UI element that can be interacted with.
- Affinity Suite as a Photoshop/Illustrator/InDesign replacement.
- OnmiGraffle for drawing some graphs.
- PDFScanner for scanning + OCRing and outputting as PDF.
- Hopper Disassembler. Not pro like IDA, but nice for quickly inspecting some code generation.
- I used to use regular Little Snitch, but now Little Snitch Mini from the App Store, since it is simpler and does what I need.
- TripMode for limiting which apps can use data when I’m abroad (and don’t have unlimited data).
Unix-like: Terminal.app (lower latency than iTerm), Doom Emacs, zsh, fzf, and our regular development tools, Homebrew.
-
karabiner-elements and Hammerspoon are high on my must-have list.
My Karabiner config is pretty minimal but just to set up a Caps -> Shift+Ctrl+Alt and some basic media shortcuts is nice.
Hammerspoon config is fun and easy to play with especially if you’ve used AutoHotkey in the past. I have simple window management, global mute, and a few hotkeys set up. The world is your oyster here.
-
I try to keep it as simple as possible, using mostly built-in applications. The main applications I install are Firefox, Emacs and iTerm. I use Homebrew for managing packages and applications (casks).
-
I try to keep it as simple as possible, using mostly built-in applications
Same here. About the only customisation I do is move the dock to the top-left corner of the screen (having it in the corner is better for muscle memory because adding new icons doesn’t move all of them until the screen is full and then moves them only a little bit) and setting up corner activation for the Exposé actions (throw mouse to the top-right corner to see all windows, top left to see all windows in the same application).
I use Apple’s terminal not iTerm. Apparently it’s better now but when I tried iTerm many years ago it crashed about once a day. Apple’s terminal has the main thing that I want: after force quitting it, you all of your windows come back with the same UUId in an environment variable, so my shell profile can reconnect ssh sessions and I can just reboot the machine without losing any state.
-
-
It is worth spending some quality time playing around with system preferences, because there’s a lot of configurability even without third party addons. For instance, macOS comes with an ssh agent enabled by default, just run ssh-add.
I use hammerspoon to set up keyboard shortcuts for moving windows to the layout I like. (I could probably do the same with Rectangle but I have been using hammerspoon for many years.)
https://emacsformacosx.com/ is my main editor
Homebrew for miscellaneous things, dev tools, libraries, etc.
Firefox, multi account containers, ublock origin.
I am thinking of moving from 1password to iCloud Keychain, because I find 1password’s cloud security model confusing and untrustworthy, and its firefox plugin spams me with popups so I removed it. Main issue I need to investigate is firefox keychain integration.
-
For instance, macOS comes with an ssh agent enabled by default, just run ssh-add.
And, especially, add
--apple-use-keychain
, which stores the passphrase in the keychain (which is encrypted using the secure element on modern Macs), so your keys are automatically decrypted when you log in, but remain encrypted at rest.
-
-
I’m a very longtime Mac user, so I’m sure my mindset is different, but my must-haves are:
- Fork, a superb Git GUI. I know how to use the command line, but for most things it’s so much easier being able to scroll around the commit tree and do things with a few clicks.
- Dash, a universal documentation viewer. Super for searching man pages, C++ docs, JS, CSS, Go, HTTP error codes…
- Typora is the best Markdown editor I’ve ever used. It’s found the right balance between WYSIWYG editing and Markdown syntax.
- Karabiner Elements to set up hot keys and otherwise fine tune the keyboard. It’s a pain to configure but I haven’t found anything else I like better.
- Alfred, a systemwide command palette that pops up with a hot key. It can do nearly anything — launch apps, search for files, search websites, copy files… — and it supports plugins to add more features.
- iStatMenus adds menu bar items that can show status of the CPU, GPU, network and various other things; and clicking them pops up windows with more detail.
Also, if you feel like kicking the tires of a few hundred apps of all types, there’s a subscription service called SetApp. For about $10 a month you get immediate access to every app. If you find a few apps you like but don’t want the rest, you can just cancel and then buy those apps individually. (Plus, it’s run by some nice devs from Ukraine 🇺🇦.)
I stick with Safari, and Apple’s built-in mail, calendar, etc. apps. BTW the Reminders app has gotten quite good — it started out rudimentary but is now fully useable for Getting Things Done and other task management systems.
-
I like the normal stuff: Terminal.app, Homebrew, Docker.app, docker compose
plus some Mac-only stuff like OmniOutline, OmniFocus, Marked 2.app, MonoDraw, Grand Perspective (disk usage)
Of course, all of the cross-platform stuff works: IntelliJ, Sublime Text, Sublime Merge, Safari/Firefox, Steam, Transmission, SyncThing, DBeaver (PostgreSQL client) …
just maybe be aware of all the
defaults write
stuff https://macos-defaults.com/, and the hotkeys for Dock/Finder/Terminal &c -
Terminal.app, Xcode, emacs-plug], Nova, Nix+nix-darwin (which can manage brew dependencies for you), and Alfred (because spotlight has latency when opening it. I could’ve sworn in 2010 that wasn’t there.)
-
Homebrew for easy installation of software packages. Acorn for image editing. Typora for editing Markdown. iTerm2 as terminal.
Lima – for easily running a Linux VM where you can install Docker Engine.
-
- iTerm2 (https://iterm2.com/). Alternative terminal. If you ever work with tmux (even over ssh), I highly recommend iTerm’s tmux integration
- Oh My Zsh (https://ohmyz.sh/). Zsh framework, which I mainly use for the shell plugin system. As for plugins, I use:
- zsh-autosuggestions (https://github.com/zsh-users/zsh-autosuggestions). Shell autocomplete based on history
- zsh-syntax-highlighting (https://github.com/zsh-users/zsh-syntax-highlighting). Exactly what it sounds like
- powerlevel10k (https://github.com/romkatv/powerlevel10k). Nice theme with install wizard
Alternatives to common shell commands
- As many others have said, if I need to install something, I usually look for Homebrew incantation on the project’s page
- VSCode, but it is likely that macOS has a port of your favourite text editor
- 1Password
- CleanShot X (https://cleanshot.com/). A better screenshot tool. I know how it sounds, but the app is great
- CyberDuck (https://cyberduck.io/). Client for a variety of file servers like FTP and S3
- MountainDuck (https://mountainduck.io/). Mounts a variety of file servers as a disk in file explorer
- Karabiner Elements (https://karabiner-elements.pqrs.org/). I use it to override keys on my external keyboard
- Tailscale (https://tailscale.com/). WireGuard tunnels between your devices/servers, if you are into that sort of thing
- ShortCut Detective (https://www.irradiatedsoftware.com/labs). Helps me to detect which app stole the shortcut when the app I am focused on does not react for some reason. Detective crashes constantly, but it solves the problem
-
Using macOS for the past 2 years, after almost 20 years on Windows. Here is stuff I swear by:
- Rectangle for window management and tiling.
- Arc browser, for so many useful features.
- Warp as my terminal emulator.
- Homebrew for package management.
- CopyClip as a clipboard manager (menu bar).
- SmoothScroll, since I use a Logitech mouse on my iMac and scrolling was janky without it.
- FinderFix, for some useful Finder enhancements.
- Gifski, for converting videos to GIFs.
- Handbrake and IINA, for dealing with video formats.
- NetNewsWire, the best RSS feed app there is.
- Shortcut Keeper, for learning and storing keyboard shortcuts (disclosure, I built it :D)
- Stats, for displaying some processor/network/memory stats in the menu bar.
- MAMP, for spinning up a localhost server.
And then the usual, cross-platform apps, like VS Code, Photoshop, Inkscape, etc.
-
Thanks for the FinderFix suggestion!
-
Tools that I recommend from my own setup:
- 1Password (password manager)
- Amadeus Pro (audio editing)
- Arq (backup)
- Audio Hijack and Loopback (audio routing)
- Bartender (menubard management)
- BBEdit (editor, although maybe not the best choice looking forward)
- BetterTouchTool and Karabiner (keyboard customization)
- BlockBlock (persistent execution monitor)
- Brew (command line tool installer)
- Caffeine (menubar tool)
- Dash (documentation manager)
- GrandPerspective (disk space reporting)
- HandBrake (DVD ripping)
- iTerm2 (terminal program)
- JollysFastVNC (guess)
- Keyboard Maestro (automation)
- Lingon X (LaunchAgent manager)
- Little Snitch (firewall)
- ManOpen (opens man pages in GUI)
- NameChanger (bulk file renaming)
- OmniOutliner and OmniGraffle (outliner, vector drawing)
- Phone Amego (telephone dialing tool)
- Platypus (wraps scripts into stand-alone apps)
- Postbox (email)
- SmartGit (source control GUI)
- SuperDuper! (clone to external drive)
- Suspicious Package (shows contents of install packages)
- Sweet Home 3D (easy 3D room planning)
- The Unarchiver (enhanced decompression tool)
- URL Manager Pro (guess)
- WireShark (network tool)
- XMenu (menubar tool)
-
I haven’t used it yet, but I just heard about Rocket, a replacement for macOS’s laggy emoji picker. Works just like slack emojis, just OS-wide.
-
Seconded! (I forgot this in my list, and need to go back and add it.) I use the native picker for inserting other Unicode, but I use Rocket as my go-to for emoji picking, and it is so ingrained and 99% of the time seamless that I forgot about it.
-
-
- NetNewsWire
- Homebrew
- GitUp to pair with CLI git
- Learn Emacs editing shortcuts and use them in all of macOS’s native text fields
- For brew you’ll be prompted to get the Xcode Command Line Tools (clang, macOS SDK, etc). You can also get Xcode proper, and if you really get into Apple dev I recommend Xcodes.app, which is an Xcode version manager/installer, as well as Interactful for a SwiftUI component gallery.
- Learn all the Continuity features and try them with your Mac and phone together. In the same vein, give Safari a shot. I use the Vinegar and Hush extensions.
- Mimestream if you’re a gmail user
- Many like Alfred or Raycast for a launcher; Spotlight is fine for me
- Karabiner-Elements is a low level key remapper and hotkey tool, but first see if you can get by with the stock System Settings modifier key swap and keyboard shortcuts customization.
- 1Password is the best liked third party password manager, and these days it stores, syncs, and prefills not just passwords and OTP codes but also SSH keys, and I think passkeys may be arriving now or soon.
- Find your text editor bliss somewhere. BBEdit and Nova are well known and platform-native, but of course there’s Sublime and VS Code and Emacs and Neovim.
- Lingon X shows how launchctl is configured and what services are running.
- Marked for markdown previewing
- Bartender for progressive disclosure of menu bar extras
- Writing/organizing favorites: MindNode, Tot, Obsidian
- TextEdit defaulted to monospace + files and folders never let me down
Try not maximizing windows all the time, if you have that habit. macOS is made for using many windows together, and many apps are designed to work fine when their windows are small. There is no native “maximize”, only “zoom” to fit a window to its contents and “full screen” which isn’t really the same. You can also use a helper app for window arrangement. People like Rectangle these days; I’m still on Divvy.
When you get a new Mac app, if it’s a good platform citizen, the best way to understand it is to examine the Menu Bar. Menus list the program’s objects, the items list the actions, the Help menu has a search box that finds menu items, and everything the app can do should be in the menu. So you get a quick overview of what the app can do, the modes it has, etc. By the HIG, all actions should be in the menus, and by progressive disclosure, many will be only in the menus.
Here’s a bunch of links with technical details about how macOS works. This is not an operating system for those who want ultimate control—in many ways you’re better off if you let go and let god, as it were. But there are ways to understand what’s going on.
-
The prompt got me mulling on this and I have had a mind to do it for a while, so I just wrote up the whole thing here.
The TL;DR (this is a long list! But I use my Mac for a lot of different kinds of things, and have been tweaking it to my own liking for a long time; and this does not include things like language runtimes or miscellaneous CLI tools I have installed—you can assume if there’s a good Rust or Go or whatever replacement for a long-standing Unix CLI tool, I likely use that instead, along with tools like xsv and jq):
- 1Password
- Audio Hijack
- Backblaze
- BBEdit
- Cascadea
- CleanShot X
- Discord
- Dorico
- Finbar
- Firefox
- Fission
- Flighty
- Freedom
- Homebrew
- iTerm2
- iZotope RX 9
- Jujutsu
- Kaleidoscope
- KeyCastr
- Lightroom CC
- Logic Pro
- Loopback
- Messages.app
- Music.app
- NetNewsWire
- NotePerformer
- Obsidian
- Orion
- Parcel
- Photos
- Raycast
- Rocket
- Safari
- Save to Pocket
- Save to Reader
- Slack
- Some variety of Chromium
- SoundSource
- Spitfire Audio BBC Symphony Orchestra Pro
- Tadam
- Telegram
- Things
- Transmit
- Unite
Bonus note: I find macOS way nicer to use by enabling the following settings/tweaks in the Settings app:
-
Appearance: set Show scroll bars to Always.
-
Accessibility > Pointer Control > Trackpad Options > Use for trackpad for dragging, with Dragging style set to Three Finger Drag
-
In Accessibility > Display, enable:
- Reduce transparency (YMMV; I prefer it this way)
- Show window title icons
- Show toolbar button shapes
-
Keyboard > Keyboard Shortcuts > Modifier Keys: set Caps Lock to act as Ctrl and vice versa
-
https://setapp.com/ is a like, monthly subscription service for full native apps, it’s a good way to see some options. I cancelled my sub and bought the few things that were worth it to me outright, specifically:
- Dash for language n api documentation search
- TablePlus for a general purpose sql client
- Cleanshot for screen capture, recording, and annotation
- RapidAPI, which is like Postman but imo better
-
I use an M1 Max machine for work. I use:
- Wezterm as my terminal emulator
- Nix for as much config as I can
- Amphetamine to keep my display awake
- Firefox * BetterSnapTool to resize windows like it’s 1997 (I miss my tiling wm…)
- I got Dash, but it hasn’t really stuck unfortunately.
-
-
Oh, good question. I didn’t know you could keep the screen awake with screen corners. I’m going to uninstall it. Thanks.
(Amphetamine does have some additional features. For example, it lets you say, “I want to keep the screen awake for $x amount of time. You can add triggers to e.g. sleep the screen when you connect a device. I never use that stuff, but just wanted to mention in case you or others might.)
-
caffeinate(8)
disables sleep and can be run from any Launchd events.
-
-
-
(Personal) M1 Air
- Kitty Terminal (used to use iTerm), with Jetbrains Mono Nerd font, custom colors, powerline-status, oh my zsh, fzf, brew etc
-
defaults write -g KeyRepeat -int 1
(changed my life) - Jetbrains (everything non-rust)
- VSCode (rust)
- LazyVim (one-off + when vim makes more sense)
-
What I use:
- Alfred for an instant launcher (Raycast is a decent alternative, but uses a slower wizard-style interface)
- Unfortunately, the built-in Apple Spotlight really doesn’t cut it
- 1Password is excellent for passwords and your ssh-agent
- OrbStack for containers
- HexFiend for hex editing
- Insomnia for HTTP testing
- Transmission for torrents
- GrandPerspective for visualizing disk space
- exelban’s Stats monitor for your menu bar
- JoyKeyMapper if you want to use a bluetooth game controller (good luck)
- Magnet for window management
- KeepingYouAwake for forcing your mac not to sleep
Plenty of cross-platform apps, too:
- Firefox Developer Edition for browsing
- Emacs/VS Code/Jetbrains/Sublime, etc
- TablePlus for db connectivity
- VLC for video (but consider IINA for a simple native app)
Oh! Be sure to look up how to alter your pam.d config files so you can use Touch ID from the terminal for sudo.
Now some warnings:
As you’ve discovered, Apple is great at multi-device integration, and iCloud’s not bad for storage. However, Apple Music is a terrible app, at least on desktop. Pages/Numbers/Keynote are just ok.
Also, coming from Linux, you’ll find that Docker for Mac is also way worse. It’s much buggier and slower. Lots of people have switched to compatible alternatives like CoLiMa, and recently, OrbStack.
- Alfred for an instant launcher (Raycast is a decent alternative, but uses a slower wizard-style interface)
-
I have a Mac mini and my Mac OS setup is that it is my server of sorts. Trying to get as good as possible in understanding SSH and docker for that reason.
I have a very specific setup in Windows which I wasn’t able to replicate in Mac. My windows setup is Ditto (clipboard manager), AutoHotkey, Razer Synapse 3 (for setting macros) and the driver software for my 15 key MMO mouse.
-
A handful of tools
- Rectangle (for wrangling windows around)
- iterm2 (though I’ve since found Terminal.app more than reasonable)
- 1Password
- Brew – yes, I’ll call it out. I’ve never found MacPorts very useful, but Brew keeps me sane. Maintaining multiple versions of Python is… Painfully better with brew.
- Edge, though I’ve been fiddling with finding an alternative, but Arc doesn’t match it.
- Previously, I used EasyRes as a way to control my monitors, but the last few major releases have made this far nicer without it.
- While others have mentioned Hex Feind, which is a fine hex editor, I’ve recently taken to using ImHex. When I want something less heavy than ImHex, I’ll grab HextEdit, which has thus far been quite reasonable.
I think the most powerful tool I’ve used is MacMouseFix. It patches over one of the singular most inane things I’ve encountered within MacOS: Not supporting the back/forward buttons on mice, but with some more useful hints like pull-drag. There is a SO answer that says you can do this without extra tools.
-
❯ brew list ==> Formulae aom fribidi lazygit libtiff mbedtls rav1e ttyd aribb24 fzf leptonica libunibreak mpdecimal readline typos-cli bash gd libarchive libunistring mpg123 ripgrep unbound bat gettext libass libusb msgpack rsync unibilium bat-extras gh libavif libuv ncurses rtmpdump utf8proc brew-cask-completion giflib libb2 libvidstab neovim rubberband vde brotli git libbluray libvmaf nettle rustup-init vhs c-ares git-extras libcerf libvorbis node sccache watch ca-certificates glib libde265 libvpx oniguruma sdl2 webp cairo glow libevent libvterm opencore-amr shared-mime-info x264 capstone gmp libgit2 libwebsockets openexr shellcheck x265 cjson gnuplot libheif libx11 openjpeg six xorgproto colima gnutls libidn2 libxau openldap snappy xvid curl go libnghttp2 libxcb [email protected] speex xxhash dav1d graphite2 libogg libxdmcp openssl@3 sqlite xz direnv harfbuzz libpng libxext opus srt zellij docker highway librist libxrender p11-kit sslscan zeromq duf httpie libsamplerate libzip pango svt-av1 zimg exa icu4c libslirp lima pcre task zlib fd imath libsndfile little-cms2 pcre2 tesseract zoxide ffmpeg jpeg-turbo libsodium lua pixman the_silver_searcher zsh flac jpeg-xl libsoxr luajit popt thefuck zsh-completions flyctl jq libssh luv pygments theora zstd fontconfig json-c libssh2 lz4 [email protected] tldr freetype just libtasn1 lzo qemu tmux frei0r lame libtermkey mas qt@5 tree-sitter ==> Casks 1password font-dejavu github quicklookase 1password-cli font-dejavu-sans-mono-nerd-font google-chrome rectangle alacritty font-fira-code-nerd-font gpg-suite scroll-reverser alfred font-fira-mono-nerd-font intellij-idea-ce signal apparency font-hack-nerd-font iterm2 telegram caldigit-docking-utility font-inconsolata keepingyouawake unofficial-wineskin discord font-inconsolata-nerd-font messenger visual-studio-code element font-input micro-snitch wezterm firefox font-iosevka-nerd-font qlcolorcode wine-devel font-anonymice-nerd-font font-jetbrains-mono-nerd-font qlimagesize wineskin font-bitstream-vera-sans-mono-nerd-font font-meslo-lg-nerd-font qlmarkdown zoom font-blex-mono-nerd-font font-roboto-mono-nerd-font qlstephen font-caskaydia-cove-nerd-font font-source-code-pro qlvideo font-code-new-roman-nerd-font font-victor-mono-nerd-font quicklook-json
A lot of the formulae would be installed as pre-reqs - particularly the libs.
From the app store:
-
I’ve been restoring Time Machine backups for so long it is hard to gauge but generally have been doing a one liner in homebrew for years now. Really want to try Nix at some point.
-
Mine is outlined here.
Recently I mostly switch between VSCode, Safari, Warp, Sublime Merge, Obsidian, ChatGPT desktop app as I develop. All powered by Karabiner and Keyboard Maestro.
-
The only thing I use I don’t already see mentioned is Figma. I’m terrible at remembering what options & arguments I can pass to CLI commands and Figma has been amazing for me.
-
I install Firefox, Chrome, Wireguard, Alacritty.
I set almost every app to full-screen. I use a hot-corner to do virtual desktop switching, and in Accessibility I set reduced motion, which increases the speed of switching substantially.
This Mac has a touchbar, so I set it to reduce the number of icons on it to a minimal set - screen brightness, keyboard brightness, volume.
Now it’s a ‘smart terminal’ – a securely connected keyboard and screen for using a terminal and web browsing. All done.
-
If you were an i3 user I suggest yabai and skhd. Together they’re a really heroic effort to do something unixy and i3-like in osx and while there are rough corners it is a pretty usable tiling WM experience on a platform that was designed with no intention of something like that working
-
I try not to tweak the base OS too much. There are a few things over the years I’ve had to jam in via .kext or various sticky OS commands, but generally I only do this when forced to.
- The only custom menu bar item I run is Menumeters.
- BarNone if you have a touch bar
- Homebrew, of course, but primarily for the stuff I’d grab on Linux using a package manager there
- Parallels if you need Microsoft Windows, otherwise avoid it like the plague (although despite its milk-the-cow business model, the base software isn’t that bad)
- Microsoft Office for the Mac isn’t bad, either, if you’re stuck interop-ing with Microsoft users
- UTM for hosting VMs
- Firefox for browsing, Chrome only for development/testing when necessary
- Xcode is an unfortunate must-install, but generally not a must-use
- Hexfiend and BBEdit, for rare use when nothing else will suffice
- Audirvana for music
-
Parallels if you need Microsoft Windows, otherwise avoid it like the plague (although despite its milk-the-cow business model, the base software isn’t that bad)
I bought Parallels 2 when I got my first x86 Mac (Core 2 Duo MacBook Pro). It caused repeated kernel panics. It turned out that they had not correctly read the IPI documentation. There was a bug fix but it was only in Parallels 3, so you had to pay more for a newer version if you wanted the software that you paid for to not cause your computer to crash.
I will never give that company money ever again.
Microsoft Office for the Mac isn’t bad, either, if you’re stuck interop-ing with Microsoft users
Though it is quite annoying that the keyboard shortcuts are the same as Office for Windows, not the same as every other Mac application (e.g. redo is command-Y, not command-shift-Z).
Xcode is an unfortunate must-install, but generally not a must-use
Not necessarily. You can install the Xcode command-line tools without installing the GUI. That said, the DTrace front end in Xcode is really nice, so I tend to have it installed anyway.
-
TIL there’s a Dtrace front end in Xcode: do want. Is there a link somewhere describing this?
-
-
1Password for password management.
Hammerspoon for window management. I have keys bound in a similar way to Rectangle mentioned elsewhere. My config is at https://github.com/twpayne/dotfiles/blob/f25b14407ec63b79b8c84a3a3159431fc4c02c24/home/dot_hammerspoon/init.lua
Karabiner Elements just to get Caps Lock+X shortcuts.
-
I am fine with the included (fewer things to have to install) Terminal.app, Mail.app, and Safari.
I also use Raycast, VSCode, macvim, Brave (mostly just for “works best in chrome” sites), The Archive (for Zettelkasten/knowledge archiving), syncthing, IINA (media player), Deckset (presentations), 1password, Affinity graphics suite, limechat, wireguard, monodraw, things.app, numbers, pages, toothfairy, and some misc tools from objective-see, and unixy stuff with homebrew. -
I like this little tool that adds drag-anywhere to move and resize windows, like Fluxbox and other XFree86 old school window managers: https://github.com/jmgao/metamove
-
I use:
- iterm/Warp
- Obsidian for taking notes
- Database GUI (TablePlus)
- Brew as package manager https://brew.sh/
- Rectangle (Windows resize, order, etc)
- Alfred (Spotlight imrpoved)
-
I go back and forth between Safari and Firefox as the browser, keeping a Chrome install around for things that block all other browsers. I use the default mail app.
I mostly live in a terminal window (iTerm), running a GNU screen session with IRC (irssi), Emacs, and a variety of shells. Most CLI stuff installed via Homebrew, though be careful with it – it wants to be both an application installer/manager and a dev library/tool manager and those are often incompatible. So you’ll probably want to manage your main dev language independently (I manage Python installs via
pyenv
, for example, rather than using Homebrew’s Python interpreter since I never know when that might get “upgraded” out from under me).I don’t do any fancy window manager or other stuff to try to turn it into a “Linux” desktop. I did that for most of a decade (Enlightenment in the E16 days), and generally I prefer the Mac UI and conventions.
I have a couple small portable hard drives that I use to back up.
And mostly I just get on with work. The nice thing is I don’t have to spend enormous amounts of time twekaing configs and such to get things to work, which was my experience in my Linux desktop days.
-
i keep my macOS setup version controlled: here a a snapshot of what’s on my personal laptop:
brew
& App Store applications- system tweaks
-
a copy of GNU
coreutils
where all commands are prefixed withg
-
brew
probably has this too; i mainly just want access to Linux standard stuff when i might need it for scripting/compatibility without overriding macOS defaults
-
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK