Personal configuration files for macOS
| Tool | Description |
|---|---|
| atuin | Shell history sync |
| ghostty | Terminal emulator with custom shaders |
| gitconfig | Global Git configuration |
| kanata | Keyboard remapping with Colemak and hyper layers |
| nushell | Modern shell |
| nvim | Neovim with lazy.nvim |
| opencode | AI assistant |
| sesh | Session manager |
| sketchybar | Menu bar customization |
| tmux | Terminal multiplexer |
| yazi | File manager |
| Tool | Description |
|---|---|
| aerospace | Tiling window manager |
| hammerspoon | macOS automation |
| karabiner | Key remapping |
| yabai | Tiling window manager |
| zellij | Terminal workspace manager |
This is a minimalist developer setup focused on simplicity and efficiency. I use Neovim as my primary editor with a Colemak keyboard layout on a custom mechanical keyboard for optimal typing comfort and reduced finger movement.
After experimenting with various tiling window managers including yabai and aerospace, I've settled on a simple single-screen workflow. Most tasks are handled with full-screen applications launched via keyboard shortcuts. For the rare occasions when multiple apps are needed simultaneously, I use Rectangle for basic window positioning.
The keyboard setup uses Kanata for key mapping with a hyper layer system. When holding the hyper key, I enter sublayer selection mode where pressing specific keys activates different function groups:
- Apps layer - Quick launch for frequently used applications
- Window management - Controls for window positioning and switching
- Capture layer - Screenshot and screen recording tools using Shottr
- System layer - Volume, brightness, and system controls
- Browse layer - Direct links to websites and web tools
- Music layer - Media playback controls
- Movement layer - Advanced text navigation shortcuts
- Raycast layer - Quick access to Raycast extensions
- AI layer - ChatGPT and screenshot analysis
- Files layer - Quick access to folders and file management
-
Clone the repository:
git clone https://github.com/jakmaz/dotfiles.git ~/git/dotfiles -
Run setup script to create symlinks:
cd ~/git/dotfiles nu setup.nu
This script will automatically symlink all configuration files and CLI scripts to their correct locations (
~/.config/,$HOME, and~/.local/bin/). -
Configure Hammerspoon (if using):
After stowing the dotfiles, you need to tell Hammerspoon to use the configuration file from the
.configdirectory:defaults write org.hammerspoon.Hammerspoon MJConfigFile "~/.config/hammerspoon/init.lua"
When setting up a new device, these hyper key shortcuts from the Kanata config need to be manually configured in their respective apps:
- Launch/toggle:
Cmd+Ctrl+Alt+Shift+A
- Full Screenshot:
Cmd+Ctrl+Alt+Shift+M - Window Screenshot:
Cmd+Ctrl+Alt+Shift+N - Area Screenshot:
Cmd+Ctrl+Alt+Shift+E - OCR Screenshot:
Cmd+Ctrl+Alt+Shift+O - Screen Recording:
Ctrl+Shift+Cmd+Alt+Enter
- Launch AI chat:
Cmd+Ctrl+Alt+Shift+P
