Various utilities
Displaying notifications
osascript -e 'display notification "Description" with title "Title"'
OS-level updates
sudo softwareupdate -ia
Open local Nix-Darwin help
darwin-help
Web browsing
Orion Browser by Kagi.
Terminal
What's down there
The rest of this post documents my 7-day journey in converting to MacOS as a Linux power-user.
Day 1
It's 7PM and I brought the thing from the store. Conversed for a while with an LLM to tell me crucial OS differences and recommended keyboard shortcuts, given a Linux power-user background.
Fired up an update to the latest MacOS version and installed Nix immediately.
The recommended multi-user install script worked right out the box, tested with
a simple nix-shell -p cowsay.
The next step (as I understood based on my reddit/LLM/Kagi queries) was to
install Nix Darwin, so that I can
manage system-level MacOS configuration. Used it to install some basic CLI
tools like nvim, cargo, btop. Installed XCode Dev Tools along the way as
a OS-level popup told me so, nice.
Rust is compiling, Neovim is running, no issues there.
I was unable to configure AstroNvim due to a cryptic error:
Unable to open swap file for "<any path i try to edit>", recovery impossible
On plain Neovim, this simply appears and then I can edit the file. On AstroNvim, the error appears and then it snaps back to the file explorer, preventing me form editing anything. Sometimes it opens the file but shows it as both empty and read-only. I'm assuming that's a permission issue I don't yet understand. Will continue tommorow. Working from VSCode (installed via Nix) and a Vim plugin, that's almost close enough.
Day one UX issues as a convert:
- Lacking middle click for opening new tabs
- The ``` key is in a weird position on this keyboard!
- The deal with apps not closing when I hit the red "close" button
Day 2
Contrary to AstroNvim, Helix works from the get-go, so I switched to it. Configured Home Manager after some initial struggles with how exactly to get the flake format right.
Still unsure how I should install software, global packages namespace or
home-manager? I like that home-manager has all the useful options, but I need
the global namespace when I use sudo for any of my CLI utilities.
I've been hacking on the thing for around 1 hour, constantly rebuilding
nix-darwin and it shows 19 hours of battery life left, crazy!
Day two UX issues as a convert:
I sometimes slip between control/option/command but I'm getting it right most of the time. Faster than I expected. Also, there's no delete key?!
Day 3
Added some shortcuts with make so I don't have to remember new commands.
Learned how to use Rectangle, very useful.
Realised I cannot live without zoxide, installed it. Learned how to use normal
Nix modules in home-manager configuration.
Getting comfy with Helix, did some productive remote work finally!
Day three UX issues as a convert:
I am really close to remapping the home (~) key back where it should be...
Day 4
Fixed the weirdest issue ever with neovim! This thing has been haunting me for
the last 5 days, even making me switch to helix:
E303: Unable to create directory "/Users/wint3rmute/.local/state/nvim/swap" for swap file, recovery impossible: permission denied
E303: Unable to open swap file for "/Users/wint3rmute/code/darwin/flake.nix", recovery impossible
E886: System error while opening ShaDa file /Users/wint3rmute/.local/state/nvim/shada/main.shada for reading: permission denied
It popped up every time I tried to edit any file with neovim and
completely broke my AstroNvim setup. It turns out, it is caused by the invalid
owner of .local/state/nvim/ directory. What caused invalid permissions?
Running neovim as root for the very first time after installation. It
caused the directory to be created with only root access, breaking every
subsequent attempt to edit a file as non-root.
After removing .local/state/nvim/ and starting neovim again, everything
works as intended!
..although I want to switch to Helix now...
Day 5
Day 6
Configured the Orion Browser and started using it. It's a little buggy (especially on long websites), but it gets the job done. The UI is less cluttered than Firefox (even after decluttering Firefox using customisation settings) and does not get in the way.
My application stack is now 90% Orion + Ghostty, plus some minor utility apps & communicators. Feels fresh and comfy at the same time!
Today I found myself reaching for MacOs-specific shortcuts when working on a Linux machine. That's unexpectedly fast development of muscle memory :)
Notes
Check out:
- Running containers?
- Orion Browser