--- # dev_env — interactive developer environment (zsh/tmux/nvim) for workstation-class # hosts. Its own role, never part of `base`. See the role README and ADR-015. # Users who receive the environment. Empty = no-op. Set in group_vars for the # workstation-class group (e.g. group_vars/control → [sjat, claude]). dev_env__users: [] # APT packages. nvim, oh-my-posh and Node.js are installed separately from pinned # releases — Debian's `npm` pulls a ~400-package node-* tree, so we use the upstream # Node tarball instead (npm bundled). nvim uses mason internally for LSPs; node is # present so mason's node-based servers work. direnv is referenced by the .zshrc; # acl lets Ansible become_user an unprivileged user (sjat -> claude) for file copies. dev_env__packages: - zsh - tmux - git - stow - acl - build-essential - curl - ca-certificates - fzf - ripgrep - direnv # Pinned tool versions (ADR-014 — pin, don't track "latest"). dev_env__nvim_version: "v0.12.2" dev_env__omp_version: "29.0.1" dev_env__node_version: "v20.19.2" # oh-my-zsh custom plugins (cloned per user into ~/.oh-my-zsh/custom/plugins). dev_env__omz_custom_plugins: - name: zsh-autosuggestions repo: "https://github.com/zsh-users/zsh-autosuggestions.git" - name: zsh-syntax-highlighting repo: "https://github.com/zsh-users/zsh-syntax-highlighting.git" # tmux plugins (pre-cloned per user into ~/.tmux/plugins; TPM loads them on tmux start). # catppuccin is pinned to the v1 API the .tmux.conf targets. dev_env__tmux_plugins: - name: tpm repo: "https://github.com/tmux-plugins/tpm.git" version: master - name: tmux-sensible repo: "https://github.com/tmux-plugins/tmux-sensible.git" version: master - name: vim-tmux-navigator repo: "https://github.com/christoomey/vim-tmux-navigator.git" version: master - name: tmux repo: "https://github.com/catppuccin/tmux.git" version: v1.0.3