A modern, AI-enhanced development environment for macOS, centered around Neovim,
Alacritty, tmux, and the AeroSpace tiling window manager. Everything is wired up
through a single install.sh that creates symlinks and installs the required
external plugins.
Fully modular configuration managed with lazy.nvim.
Leader key is <space>; open Neovim with the v alias (not nvim).
- AI assistance
- sidekick.nvim — Claude Code integration in Neovim (tmux-aware, floating window)
- copilot.lua — included but disabled by default (
enabled = false)
- Language tooling
- LSP via
nvim-lspconfig+ Mason (lua_ls,vtsls,eslint,astro,tailwindcss) - blink.cmp completion engine
- nvim-treesitter (
mainbranch) for syntax highlighting & indentation - conform.nvim — format on save with Prettier (uses local
node_modules/.bin/prettierwhen present) - tsc.nvim — project-wide TypeScript type checking
- LSP via
- Git
- vim-fugitive — Git operations
- gitsigns.nvim — inline hunk signs & actions
- diffview.nvim — rich diffs & file history
- Navigation & search
- snacks.nvim — picker & file explorer (fuzzy find, grep, code actions)
- flash.nvim — jump-anywhere motions (
s) - grapple.nvim — pin & jump between key files
- grug-far.nvim — project-wide search & replace
- Editing helpers
- vim-surround
- render-markdown.nvim
- obsidian.nvim — note-taking (vaults under
~/vaults/*)
- Database & HTTP
- vim-dadbod-ui — database explorer (
<leader>db) - kulala.nvim — REST/HTTP client for
.http/.restfiles
- vim-dadbod-ui — database explorer (
- Aesthetics
- kanagawa-paper.nvim — active theme is
kanagawa-paper-ink - Custom statusline (
lua/config/statusline.lua)
- kanagawa-paper.nvim — active theme is
- GPU-accelerated terminal, maximized on startup, buttonless decorations
- Kanagawa Dragon theme (
alacritty/kanagawa-dragon.toml) - JetBrainsMono Nerd Font
- Custom key bindings (e.g. Shift+Enter, Ctrl+.)
- Prefix remapped to
M-Space, mouse on, zero escape time - tmux-kanagawa (Dragon variant)
- Plugins managed by TPM
- AeroSpace tiling window manager (
.aerospace.toml) - Alt-based focus/move/resize keybinds,
U/I/O/Pworkspaces - Integrates with SketchyBar and JankyBorders via startup hooks
- oh-my-zsh with Powerlevel10k theme
- Plugins:
git,zsh-autosuggestions,zsh-nvm(external plugins auto-installed byinstall.sh) - fzf key bindings, lsd for
ls - Aliases:
v(nvim),l/ls(lsd),dot(/dotfiles),/bin)bin(
- alacritty
- neovim
- node (for LSP servers & Prettier)
- git
- oh-my-zsh
- tmux
- fzf, lsd
- AeroSpace (optional, for tiling WM)
- JetBrainsMono Nerd Font
Clone the repo into ~/dotfiles:
git clone git@github.com:ncnthien/dotfiles.git ~/dotfilesRun the install script to create symlinks and install external plugins:
cd ~/dotfiles
chmod +x ./install.sh
bash ./install.shinstall.sh is idempotent (safe to re-run) and will:
- Create
~/.configas a real directory and symlinkalacritty/andnvim/into it - Symlink
.zshrc,.tmux.conf, and.aerospace.tomlinto$HOME - Clone the external oh-my-zsh plugins (
zsh-autosuggestions,zsh-nvm) - Clone TPM for tmux
After installing:
- Reload your shell:
source ~/.zshrc - Open tmux and press
prefix + I(M-SpacethenI) to install tmux plugins - Open Neovim with
v— lazy.nvim bootstraps and installs everything on first launch
Use v instead of nvim — the alias is set in .zshrc.
The config uses nvim-treesitter's main branch (required for Neovim 0.11+/0.12).
After changing branches run :Lazy sync (and :Lazy clean if needed) so lazy.nvim
checks out main, then :TSUpdate to rebuild the parsers.
zsh-autosuggestions and zsh-nvm are external oh-my-zsh plugins. Re-run
bash ./install.sh to clone them, then source ~/.zshrc.
Feel free to open an issue if you run into problems with this repo.