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>
- Replace removed require('nvim-treesitter.configs').setup with new
require('nvim-treesitter').setup() + .install() API
- Rename tide configure script so it sorts after the main installer
(configure_tide → z_configure_tide), fixing fresh installs
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>
--transient was removed from tide configure in v7, now controlled
via tide_prompt_transient_enabled universal variable.
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>
Kitty doesn't set TERM_PROGRAM, check TERM=xterm-kitty instead.
Also use modern `kitten ssh` command.
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>
- Set ZSH_THEME="" since powerlevel10k overrides it anyway
- Guard powerlevel10k, brew plugins, and atuin with existence checks
- Cache brew --prefix to avoid duplicate subprocess calls
- Strip ~80 lines of oh-my-zsh default boilerplate comments
- Replace hardcoded /Users/anton/ with $HOME in LM Studio PATH
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace deprecated vim.loop with vim.uv (compat shim for older nvim)
- Fix lazy.nvim spec: run -> build for TSUpdate
- Remove pinned tags for telescope and treesitter
- Replace nvim-osc52 plugin with native vim.g.clipboard OSC 52
- Replace vim.cmd autocmds with nvim_create_augroup/nvim_create_autocmd
- Fix vim.wo -> vim.opt for number and signcolumn (apply to all windows)
- Remove duplicate toggleterm setup call
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>