A declarative macOS system configuration using nix-darwin and home-manager.
This configuration transforms macOS into a keyboard-driven development powerhouse featuring:
- Color schema: Catppuccin
- Window Management: Yabai + skhd
- Status Bar: Sketchybar
- Terminal: Ghostty + tmux
- Shell: Fish shell (Starship)
- Editor: Neovim (LazyVim)
- Development Tools
- macOS (Apple Silicon supported)
- Nix package manager
- Command Line Tools for Xcode
- Clone this repository:
git clone https://github.com/yourusername/nix-config.git ~/nix
cd ~/nix- Apply the configuration:
darwin-rebuild switch --flake .#kj-default.
├── flake.nix # Main entry point
├── hosts/ # System-specific configurations
├── modules/
│ ├── darwin/ # macOS-specific modules
│ │ ├── home/ # User configuration
│ │ ├── homebrew.nix # Homebrew packages
│ │ └── yabai/ # Window manager config
│ └── shared/ # Cross-platform modules
│ ├── files/ # Dotfiles and configs
│ └── home/ # User packages
├── lib/ # Helper functions
├── overlays/ # Package overlays
└── pkgs/ # Custom packages
This keymap is optimized for split keyboards. The left hand controls workspace navigation while the right hand manages window operations.
Note: Split keyboard firmware keymap configuration will be uploaded to a separate repository soon.
| Key | Function | Shift | Alt+Shift |
|---|---|---|---|
| Q | Balance windows | Mirror X-axis | Mirror Y-axis |
| W | Focus space 7 | Move to space 7 | - |
| E | Focus space 8 | Move to space 8 | - |
| R | Focus space 9 | Move to space 9 | - |
| T | Workspace setup 1 | Workspace setup 2 | - |
| A | Focus monitor 2 | - | - |
| S | Focus space 4 | Move to space 4 | - |
| D | Focus space 5 | Move to space 5 | - |
| F | Focus space 6 | Move to space 6 | - |
| G | Float/Grid window | - | - |
| Z | Focus monitor 1 | - | - |
| X | Focus space 1 | Move to space 1 | - |
| C | Focus space 2 | Move to space 2 | - |
| V | Focus space 3 | Move to space 3 | - |
| B | Maximize window | - | - |
| Key | Function | Shift | Alt |
|---|---|---|---|
| I | Stack next | - | - |
| O | Stack previous | - | - |
| H | Focus left | Move left | Stack left |
| J | Focus down | Move down | Stack down |
| K | Focus up | Move up | Stack up |
| L | Focus right | Move right | Stack right |
| N | Rotate clockwise | Rotate counter-clockwise | - |
| M | Increase left size | Decrease left size | - |
| , | Increase up size | Decrease up size | - |
| . | Increase down size | Decrease down size | - |
| / | Increase right size | Decrease right size | - |
# Update flake inputs
nix flake update
# Rebuild after changes
sudo darwin-rebuild switch --flake .#kj-default- AlexNabokikh/nix-config
- sudosubin/nixos-config
- DavSanchez/nix-dotfiles
- thiagokokada/nix-configs
- khaneliman/khanelinix
This project is open source and available under the MIT License.
