A new role (separate from base) that gives workstation-class hosts (ubongo now, mamba later) a clean interactive environment: zsh + oh-my-zsh + oh-my-posh, tmux + TPM plugins, and neovim. Dotfiles are real files deployed via GNU stow (not templated); pinned nvim v0.12.2 + oh-my-posh 29.0.1. Configs re-derived (ADR-013) from AnsibleBaobabV4 + the operator's fisi setup on boma's terms: no Nerd Font (headless host), no system LSP suite (nvim uses mason), versions pinned (V4 tracks latest). Applied via playbooks/workstation.yml to the control group for users sjat + claude. Lint + Molecule (idempotent) green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
51 lines
1.7 KiB
YAML
51 lines
1.7 KiB
YAML
---
|
|
# 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 are installed separately from pinned releases.
|
|
# (nvim uses mason internally for LSPs, so no system LSP packages are needed; node is
|
|
# present so mason's node-based servers work. direnv is referenced by the .zshrc.)
|
|
dev_env__packages:
|
|
- zsh
|
|
- tmux
|
|
- git
|
|
- stow
|
|
- build-essential
|
|
- curl
|
|
- ca-certificates
|
|
- fzf
|
|
- ripgrep
|
|
- direnv
|
|
- nodejs
|
|
- npm
|
|
|
|
# Pinned tool versions (ADR-014 — pin, don't track "latest").
|
|
dev_env__nvim_version: "v0.12.2"
|
|
dev_env__omp_version: "29.0.1"
|
|
|
|
# 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
|