Configuration files for macOS with Colemak DH navigation, dual-shell support (Zsh & Nushell), and TokyoNight theming throughout.
| Feature | Zsh | Nushell |
|---|---|---|
| Vi-mode | Yes | Yes |
| Starship prompt | Yes | Yes |
| Zoxide, Carapace, fnm | Yes | Yes |
| Autosuggestions | Plugin | Built-in |
| Syntax highlighting | Plugin | Built-in |
| fzf: history, files, cd | Yes | Yes |
fzf-git keybindings (Ctrl+G *) |
Yes | - |
fzf-git commands (gsw, gls, gsha, gstash) |
- | Yes |
| fzf-tab completions | Yes | - |
- AeroSpace - Tiling WM with Colemak DH navigation, workspaces, multi-monitor
- Ghostty - TokyoNight theme, transparency, Colemak DH splits, vim scrollback
- Neovim - LazyVim, Copilot, OpenCode, Colemak DH, TypeScript/Zig/Nushell
- Git - Delta pager, SSH signing, git-branchless, custom aliases
- Homebrew -
brew add/delete/sync/dumpto manage Brewfile - Setup - Touch ID for sudo, SSH keygen + GitHub upload, XDG compliance
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Clone the repository:
git clone https://github.com/uncrft/dotfiles.git ~/.dotfilesRun the setup script:
~/.dotfiles/setup.shThe script will prompt for your Git name and email addresses. Personal email is used globally, work email is used in ~/Developer/work.
Note: The script requires
sudofor:
/etc/zshenv- Source XDG-compliant zsh config from the system-wide zshenv/etc/pam.d/sudo_local- Enable Touch ID for sudo authentication
# Create or update symlinks (from anywhere)
dotfiles
# Or from the repo
make
make uninstall
# Regenerate shell caches after tool updates
zsh-init
nu-init
# Setup SSH key and upload to GitHub
setup-ssh
# Homebrew package management
brew add <package> # Install and update Brewfile
brew delete <package> # Uninstall and update Brewfile
brew sync # Clean up to match Brewfile
brew dump # Update Brewfile with installed packagesThis configuration uses Colemak DH keyboard layout. Navigation keys are remapped from QWERTY's HJKL to NEIO:
| QWERTY | Colemak DH | Direction |
|---|---|---|
| H | N | Left |
| J | E | Down |
| K | I | Up |
| L | O | Right |
Neovim - Window navigation:
Ctrl+N/E/I/O- Focus window in direction
AeroSpace - Window/workspace navigation:
Ctrl+Alt+N/E/I/O- Focus window in directionAlt+Shift+N/E/I/O- Move window in direction
Ghostty - Split navigation:
Ctrl+Shift+N/E/I/O- Focus split in direction
All prefixed with Ctrl+G:
Ctrl+G Ctrl+F- FilesCtrl+G Ctrl+B- BranchesCtrl+G Ctrl+T- TagsCtrl+G Ctrl+H- Commit hashesCtrl+G Ctrl+R- RemotesCtrl+G Ctrl+S- Stashes
Note: Nushell does not support key sequences, so fzf-git bindings are not available. Use the CLI alternatives instead:
gsw(switch branch),gls(files),gsha(commit hashes),gstash(stashes).