- Strip ANSI escape codes from nvim headless output via sed so
non-interactive mode shows clean text instead of raw color codes
- Change mason.nvim build hook from ":MasonUpdate" string to pcall()
function to prevent E492 error on first install when Mason isn't
loaded yet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add -v flag to pkg_add calls for verbose download/install progress
- Wrap Mason commands in pcall() to handle plugin not yet loaded
- Increase nvim headless timeout to 120s (ARM64 is slower)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rust compilation of pydantic-core/jiter takes 20+ minutes on ARM64
and the small root partition can't handle it. shell-gpt is not
essential for the OpenBSD test environment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rust compilation of jiter/pydantic-core takes 20+ minutes on ARM64.
Without verbose output the install appears to hang.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use fish%main branch selector to install fish 4.x (avoids 3.x/4.x ambiguity)
- Add rust package so jiter/pydantic-core can compile from source
- Redirect pipx/cargo/pip temp dirs to /tmp on OpenBSD (root partition too small)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove atuin (not in 7.5), tmux (in base), gcc (unnecessary).
Use -- suffix to select default flavor for ambiguous packages:
unzip, nnn, mtr.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
On OpenBSD the doas binary exists but /etc/doas.conf may not, causing
'doas is not enabled' errors. Now checks: root → no sudo needed,
doas + config exists → use doas, sudo available → use sudo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded kitty TERM hack with a generic check: if the current
TERM's terminfo isn't installed yet, fall back to xterm-256color. The
proper terminfo gets installed later in the script. Fixes tput errors
when SSHing from Ghostty/kitty into fresh machines.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uses pkg_add for package management with doas (default on OpenBSD).
Packages available natively: fish, neovim, atuin, fd, ripgrep, bat,
fzf, htop, jq, nnn, tmux, mc, ngrep, mtr, gcc, direnv, py3-pipx.
Not available: lazygit, nethogs, jump, skim, dust.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Headless nvim plugin/LSP install doesn't work well without a proper
terminal. Auto-skip it alongside non-interactive TUI detection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
chezmoi run_onchange scripts don't receive CLI arguments, so the
--non-interactive flag only works when running the script directly.
Now also checks if stdin/stdout are real terminals to auto-detect
non-interactive contexts like Vagrant provisioning.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The fancy cursor-positioning TUI (get_line, print_block, tput) fails in
non-interactive contexts like Vagrant provisioning where there's no real
terminal. Now when --non-interactive is passed, uses simple echo-based
output instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The acsc capability contains literal {{||}} which chezmoi's Go template
engine tries to parse. Escape with {{ "{{" }} and {{ "}}" }} syntax.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Embeds the xterm-ghostty terminfo definition directly in the installer
and compiles it via tic when not already present. On Arch, uses the
ghostty-terminfo package from official repos instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Detect doas/sudo at startup and use $SUDO variable for all
privilege escalation commands. Prefers doas when available.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract tide prompt configuration from heavy installer into its own
lightweight run_onchange script keyed to fish_plugins hash
- Remove tide_context_always_display (only show user@host in SSH)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use antonme/tide fork (from plttn/tide v7) which includes fix for
bold leaking from home directory pwd rendering
- Replace fragile index-based tide_right_prompt_items removal with
explicit name-based filtering of node, gcloud, and kubectl
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>