MacOS Power User Setup
I've setup my mac so that it is as fast to navigate through and work on as Linux. The main things I did this with are:
- karabiner elements (breakdown here)
- raycast
- rectangle
Starting with the simplest one, rectangle is just my window manager. I really only ever use
the binding left_option + left_control + enter for full-screening and centering a window.
The key to all of this is never ever use the desktops or built in full screen of macos.
This will massively slow down your jumping between apps, just fullscreen them and jump
around with cmd + tab and the raycast opening shortcuts.
The next key piece is karabiner elements. I use this to make a hyper key on
caps lock. I have it bound so that if you tap it, it presses escape, and if you press it with
something else it acts as control + option + shift + command. This is insanely
powerful for navigation and work, especially when combined with raycast.
I have raycast bound to hyper + space (which is really caps lock + space). Then in raycast if you search extensions, then search for an
application, then you can set a keybinding for it. Mine are all hyper + something. You can see
them all here.
Super Easy Configs
When I setup my mac I did a ton of custom stuff for tmux, ghostty, and cursor. I never read any of the configs for any of them, I just ended up making little commands for opencode, then had an AI write them for me. They're not complex, but if you want mine for a reference:
ghostty
~/.opencode/command/ghostty.md
---
description: Help make changes to my terminal emulator
agent: build
---
Run "ghostty +show-config --default --docs" to see the full guide on how to configure my terminal emulator ghostty. In this session I want you to help me get it configured. When I tell you to make a change, reference the docs on how to do it, and then write the changes to: "~/Library/Application Support/com.mitchellh.ghostty/config"cursor
~/.opencode/command/cursor.md
---
description: Help fine tune my cursor keybindings
agent: build
---
My cursor (vscode) keybindings are located at: "~/Library/Application Support/Cursor/User/keybindings.json". In this session your job is to help me fine tune them.tmux
~/.opencode/command/tmux.md
---
description: Help fine tune tmux config
agent: build
---
My tmux config is located at: ~/.tmux.conf Your job is to make the changes I describe to that config file. Every time you make a change, make sure to end by giving me the command I need to restart my current tmux instance and use the changes immediatelyJust drop these in and then start opencode in the root directory and you can do /tmux to customize your tmux config without having to deal with figuring out yet another config setup.