One-command setup for macOS and Linux.
curl -fsSL https://raw.githubusercontent.com/christopherklint97/dotfiles/main/setup.sh | bashOr clone and run manually:
git clone https://github.com/christopherklint97/dotfiles.git ~/dotfiles
cd ~/dotfiles && ./setup.sh| Config | Description |
|---|---|
.zshrc |
oh-my-zsh with autosuggestions and vi-mode |
.config/nvim/ |
Neovim (kickstart.nvim base, git submodule) |
.tmux.conf |
vi-mode, mouse, dracula theme, vim-tmux-navigator |
.wezterm.lua |
Dracula theme, macOS-friendly keybindings |
.gitconfig |
Aliases, fast-forward pulls, rerere, nvim editor |
.config/karabiner/ |
Remap § to backtick for Unicode Hex Input (macOS only) |
Karabiner-Elements remaps § to backtick for ISO keyboards using the Unicode Hex Input layout. It requires manual setup after install:
- Open Karabiner-Elements — it will prompt for permissions on first launch
- Grant Input Monitoring in System Settings > Privacy & Security > Input Monitoring (enable
karabiner_grabberandkarabiner_observer) - Add ABC as an input source in System Settings > Keyboard > Input Sources > Edit (Karabiner switches to it briefly for each keypress — you don't need to use it)
- In Karabiner, go to Complex Modifications > Add predefined rule and enable "Fix backtick on Unicode Hex Input layout"
Create ~/.env.local for environment variables that differ per machine (SDK paths, database users, work email overrides, etc.). It's sourced automatically by .zshrc.
Symlinks are managed by GNU Stow. The installer:
- Installs Homebrew (macOS and Linux)
- Installs core packages (neovim, tmux, fzf, ripgrep, etc.)
- Installs oh-my-zsh + plugins, nvm, tmux plugin manager
- Symlinks all dotfiles into
$HOME - Sets zsh as the default shell