670debfd355311b3164ea92c2b7907c9cfb693ca
Dotfiles
A cross-platform dotfiles repository managed with GNU Stow, compatible with both Debian Trixie and macOS. This repository contains configuration files for various development tools and applications to create a consistent environment across different systems.
Overview
This dotfiles repository uses GNU Stow to manage symlinks.
Directory Structure
dotfiles/
├── alacritty/ # Alacritty terminal emulator config
├── curl/ # curl configuration
├── git/ # Git configuration
├── nvim/ # Neovim configuration
├── nvidia-power-tray/ # GPU power-state tray indicator (Debian/GNOME only)
├── scripts/ # Utility scripts
├── tmux/ # tmux configuration
└── zsh/ # ZSH shell configuration
Dependencies
Fonts
Core Tools
- Terminal: Alacritty
- Shell: ZSH
- zsh-syntax-highlighting
- zsh-autosuggestions (submodule)
- zsh-completions (submodule)
- Package Manager: Homebrew/Linuxbrew
- Dotfile Management: GNU Stow
Development Tools
- Rust toolchain (including rust-analyzer)
- Go
- Neovim
- tmux + tmux-plugin-manager
- Terraform
- python3-libtmux
- Installed via
aptin Debian. Remember to runbrew unlink python3to prevent conflicting Python environments.
- Installed via
- gdb
- reattach-to-user-namespace (macOS only)
- Claude Code CLI, plus the
@agentclientprotocol/claude-agent-acpbridge used by agentic.nvim
Language Servers & Linters
- Lua: lua-language-server, stylua, luacheck
- JavaScript/TypeScript: prettier, prettier-plugin-go-template
- Shell: shfmt, shellcheck, bash-language-server
- Terraform: terraform-ls, tflint
- Python: ruff
- Go: gopls, golangci-lint (v1.64), gofumpt
- Markdown: markdownlint-cli2
Extras
- pipx
- awsume
- podman
- wl-clipboard (Debian only)
- secret-tool (Debian only)
- fzf
- tree-sitter-cli
- lesspipe
- cbonsai
nvidia-power-tray(Debian/GNOME only):python3-gi,gir1.2-gtk-3.0,gir1.2-ayatanaappindicator3-0.1and the AppIndicator support GNOME extension. Seenvidia-power-tray/README.md.
Installation
Prerequisites
- Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup component add rust-analyzer
- Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Install the Claude ACP bridge
agentic.nvim talks to Claude over ACP and does not manage the binary itself. Install it globally, then authenticate once with the Claude Code CLI — no API key is needed:
npm i -g @agentclientprotocol/claude-agent-acp
claude /login
- Install tmux-plugin-manager
mkdir -p ~/.tmux/plugins
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Platform-Specific Setup
Debian Trixie
- Install Terraform
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com bookworm main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
- Install Dependencies
# System packages
sudo apt install alacritty zsh tmux stow zsh-syntax-highlighting less python3-libtmux cbonsai shfmt shellcheck lua-check libsecret-tools wl-clipboard podman qemu-system-x86 qemu-utils virtiofsd gvproxy gdb
# Homebrew packages
brew install neovim stylua lua-language-server bash-language-server prettier terraform-ls tflint ruff markdownlint-cli2 fzf tree-sitter-cli
# Node packages
npm install --save-dev prettier prettier-plugin-go-template
# Prevent Python conflicts
brew unlink python3
macOS
# Core tools
brew install curl git alacritty zsh tmux stow zsh-syntax-highlighting lesspipe cbonsai reattach-to-user-namespace
# Development tools
brew install neovim stylua lua-language-server bash-language-server prettier terraform-ls tflint ruff fzf tree-sitter-cli podman gdb
# Node packages
npm install --save-dev prettier prettier-plugin-go-template
Setup
- Clone this repository:
git clone --recurse-submodules https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
- Deploy configurations using Stow:
stow zsh tmux git nvim curl alacritty wallpaper
# Debian/GNOME only, then enable the user service
stow nvidia-power-tray
systemctl --user daemon-reload
systemctl --user enable --now nvidia-power-tray.service
- Change the default shell
chsh -s /bin/zsh
-
Set up tmux plugins:
- Start a tmux session
- Press
C-b Ito install plugins
-
Git configuration:
- Create a
~/.gitconfig.localfile with personal config - See
~/.gitconfig.local.examplefor reference
- Create a
Updating
To update the dotfiles repository and all submodules:
cd ~/dotfiles
git pull
git submodule update --init --recursive
Languages
Lua
67.5%
Shell
17.5%
Python
14.8%
Tree-sitter Query
0.2%