My dotfiles
This is my macOS development environment configuration, managed with GNU Stow for symlink-based dotfile management.
I use AeroSpace for tiling window management on macOS. It provides i3-like keyboard-driven workflow with workspaces, automatic window tiling, and seamless navigation using alt+h/j/k/l for focus and alt+shift+h/j/k/l for moving windows.
- Neovim (nightly) - My primary editor, configured with LSP support via
nvim-lspconfigandmason.nvim, Treesitter for syntax highlighting, Telescope for fuzzy finding, andvim.packfor plugin management. - tmux - Terminal multiplexer with
vim-tmux-navigatorfor seamless pane navigation between tmux and Neovim, plustmux-resurrectandtmux-continuumfor session persistence. - Kitty - GPU-accelerated terminal with remote control support and powerline tab bar.
I use OpenCode as my AI coding assistant. The configuration includes custom agent modes (tutor, yolo), MCP server integrations (Context7 for docs), and the opencode.nvim plugin for Neovim integration.
Homebrew handles all package installation via a Brewfile that includes:
- Development tools:
neovim,tmux,git,mise,uv,ripgrep,fd,fzf - Languages/runtimes:
lua-language-server,tree-sitter,texlive,pandoc,typst - CLI utilities:
zoxide,lazygit,htop,gh,awscli - Casks:
aerospace,kitty,zen,cursor,obsidian,zotero
Zsh configured with z4h (zsh4humans) for fast startup, autosuggestions, and modern completions. Includes zoxide for smart directory jumping and mise for runtime version management.
I'm currently using Zen Browser for its single-window workspace functionality, container support for isolating contexts, and because it's open source.
- Improves MacOS UI/UX
- Edit text files in vim
Ensure you have the following on your system
- Git
- Stow
- Neovim nightly:
brew install neovim --HEAD
First, clone the repository to your $HOME directory using git
git clone git@github.com:CarterT27/dotfiles.git
cd dotfilesThen use GNU Stow to create symlinks
WARNING: This might not play nicely with existing configurations. I recommend selectively adding configurations as you see fit.
stow .This repo includes a Finder opener app source that launches files in Kitty tabs with Neovim (via Kitty remote control).
Install the app bundle:
./scripts/install-open-in-kitty-nvim-app.shThis installs Open in Kitty nvim.app into ~/Applications.
Optional flags:
--system: install into/Applications(may require sudo permissions)--set-defaults: set.md,.txt, and.logdefaults usingduti(brew install duti)
Example:
./scripts/install-open-in-kitty-nvim-app.sh --set-defaultsTo set all PDFs to open with Sioyek:
./scripts/set-pdf-default-to-sioyek.sh