Cross-platform dotfiles for macOS (Intel/Apple Silicon) and Linux. Solarized Light theme everywhere.
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
./cleanup.sh # backup existing configs first (optional)
./install.sh # deps + symlinks + plugin bootstrap./install.sh --skip-deps to skip dependency installation.
| File | Purpose |
|---|---|
.bashrc |
Shell config with bash-git-prompt, aliases for git, python, node, postgres |
.tmux.conf |
tmux with vim-style navigation, Solarized theme |
nvim/init.lua |
Neovim 0.11+ with native LSP, Telescope, Treesitter, Go debugging |
.gitconfig |
Git defaults — identity loaded from ~/.gitconfig.local (created on install) |
.psqlrc |
PostgreSQL client settings |
vscode/ |
VS Code settings, keybindings, extensions list |
bin/git-nice |
git nice — checkout default branch, pull, scrub merged branches |
bin/git-branch-scrub |
git branch-scrub — prune remotes, delete merged local branches |
| Language | LSP | Tooling |
|---|---|---|
| Python | pyright, ruff | uv |
| Node.js/TS | ts_ls | nvm |
| Go | gopls | delve, gofumpt, golangci-lint |
| Clojure | clojure_lsp | Conjure REPL |
| SQL | sqls | treesitter |
| Bash | bashls | shellcheck, shfmt |
LSP servers auto-install via mason-lspconfig on first Neovim launch.
Neovim (leader = space):
<leader>ff/fg/fb— find files / grep / buffers<leader>efile tree,<leader>ggit (neogit),<leader>ccClaude Code<leader>lfformat buffergddefinition,grreferences,Khover,<leader>cacode action- Go:
<leader>g*Go tools,<leader>t*testing,F5/F10/F11/F12debugging
tmux (prefix = C-b):
|split vertical,-split horizontalC-h/j/k/lnavigate panes (works seamlessly with vim)prefix + Iinstall TPM plugins (once after install)
- Edit
~/.gitconfig.localwith your name/email (created automatically byinstall.sh) source ~/.bashrc- Open nvim — LSPs install automatically
- In tmux:
prefix + Ifor TPM plugins - VS Code (optional):
./vscode-setup.sh - For Go: Install Go first, then re-run
./install.shto get Go development tools
Machine-specific config goes in ~/.bashrc.local — never edit .bashrc directly.
OSC 52 sequences work in Ghostty, iTerm2, Alacritty, Kitty, and WezTerm. Not supported in Terminal.app.