12

What is your Mac OS Setup?

 11 months ago
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?

  1. Just normal settings configured so they leave me alone, then Firefox and Doom Emacs. Nix for installing packages.

    1. I really need to look into Nix more

      1. 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.

        1. briankung

          edited 8 hours ago

          | link

          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.

  2. phaer

    edited 20 hours ago

    | link

    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:

    1. 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.

      https://alt-tab-macos.netlify.app/

      1. bigdeddu

        27 minutes ago

        | link

        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 .

  3. vito

    28 hours ago

    | link

    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.

    1. 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.

      1. vito

        9 hours ago

        | link

        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.

    2. rjzak

      15 hours ago

      | link

      How does Colima compare with OrbStack? I haven’t used either, but they look appealing. https://orbstack.dev/

      1. 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.

      2. vito

        8 hours ago

        | link

        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

  4. 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.

  5. altano

    24 hours ago

    | link

    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.

  6. calvin

    16 hours ago

    | link

    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.

    1. oz

      12 hours ago

      | link

      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. :)

      1. Gaelan

        10 hours ago

        | link

        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.

        1. oz

          10 hours ago

          | link

          Thanks for the detailed answer. I will definitely check it out. 👍🏻

    2. vito

      8 hours ago

      | link

      Meta is just gorgeous! Wish I had something like that when I used MP3/FLAC.

      Submariner also features a really good UI! Seems clean and objective. Best of luck with your fork! <3

  7. seabre

    26 hours ago

    | link

    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 global Brewfile, which looks like this, by populating your Brewfile definitions in ~/.Brewfile and running brew bundle --global.

  8. 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.

    1. zladuric

      edited 11 hours ago

      | link

      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 :)

    2. hafiz

      23 hours ago

      | link

      It seems that your linked sourcehut repository is private (or maybe it’s not the right link?)

      1. Oops, fixed. Thanks :)

    3. 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.

      1. 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.)

        1. joshka

          18 hours ago

          | link

          brew tap cask/fonts
          brew install font-fira-code
          brew install font-fira-code-nerd-font
          brew install font-fira-mono
          brew install font-fira-mono-nerd-font
          brew install font-cascadia-code
          brew install font-cascadia-mono
          
    • 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.

  9. tout

    20 hours ago

    | link

    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.

  10. 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).

    1. 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.

  11. fanf

    edited 15 hours ago

    | link

    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.

    1. 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.

  12. snej

    edited 12 hours ago

    | link

    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.

  13. unwind

    27 hours ago

    | link

    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

    1. vito

      27 hours ago

      | link

      +1 for MonoDraw and macos-defaults!

  14. haze

    26 hours ago

    | link

    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.)

  15. 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.

  16. laplab

    19 hours ago

    | link

  17. minasg

    17 hours ago

    | link

    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.

    1. Thanks for the FinderFix suggestion!

  18. 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)
  19. 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.

    1. 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.

  20. kevinc

    edited 12 hours ago

    | link

    • 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.

  21. chriskrycho

    edited 5 hours ago

    | link

    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

  22. 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
  23. 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.
    1. fanf

      15 hours ago

      | link

      I have screen corners configured to keep the screen awake or to lock it immediately, using system preferences. How does amphetamine improve on the built-in feature?

      1. 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.)

        1. caffeinate(8) disables sleep and can be run from any Launchd events.

  24. jasonjmcghee

    edited 23 hours ago

    | link

    (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)
  25. 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.

  26. 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.

  27. 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.

  28. joshka

    18 hours ago

    | link

    ❯ 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:

    1. kevinc

      12 hours ago

      | link

      brew leaves would omit the transitive dependencies and focus on the things you installed.

  29. 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.

  30. nikivi

    edited 15 hours ago

    | link

    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.

  31. 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.

    1. kevinc

      12 hours ago

      | link

      Figma, the design tool, has CLI help?

  32. dsr

    15 hours ago

    | link

    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.

  33. Lanny

    14 hours ago

    | link

    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

  34. cpurdy

    14 hours ago

    | link

    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
    1. 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.

      1. TIL there’s a Dtrace front end in Xcode: do want. Is there a link somewhere describing this?

  35. twp

    14 hours ago

    | link

    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.

  36. trousers

    edited 6 hours ago

    | link

    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.

  37. jitl

    8 hours ago

    | link

    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

  38. fullofdev

    edited 6 hours ago

    | link

    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)
  39. 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.

  40. i keep my macOS setup version controlled: here a a snapshot of what’s on my personal laptop:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK