Add a nova 'session' segment (#S) on the right side, styled with the
same colors as the window tabs (#6272a4 bg / #f8f8f2 fg).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tint the kitty tab background by target host so local vs remote (and
which remote) is visible at a glance.
- __kitty_host_color: explicit color table for known hosts (routers,
resolvers, ryzen/mini, personal cloud, geo VPS) + stable hashed
palette fallback; auto-picks readable fg by luminance
- __kitty_ssh_host: parse target host from ssh/mosh-style argv
- __kitty_tab_set/__kitty_tab_reset: active tab = full host-color bg,
inactive tab = dark theme bg with host-color text; revert on exit
- ssh wrapper + s (kitten ssh) and m (mosh) wired to tint/reset
Also includes unrelated pending dotfile changes (GH MCP PAT from
keychain in fish/zsh, kitty/wezterm font_size 15->14, kitty
colorspace displayp3) committed together at user request.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
When running via env.lat, push the cursor to the bottom of the screen
before print_block sets up the TUI, so we don't overwrite env.lat output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract tide configuration into a reusable fish function (tide-reset)
and call it from the chezmoi onchange script. Also revert treesitter
config to the stable API (nvim-treesitter.configs).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restore the dotfiles script to the state before the fold/exec
experiments that broke TUI formatting and Ctrl-C handling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The extra step counting and summary pre-fill was causing scroll region
calculation issues. Keep ENVLAT only for TTY detection bypass.
env.lat now uses exec and quiet flags instead of piping.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
env.lat now splits chezmoi init (piped through pad) from chezmoi
apply (runs directly on terminal). The dotfiles script gets direct
terminal access so its TUI formatting works correctly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Only add the 2 bootstrap steps (prerequisites, chezmoi install) to
the summary block when running via env.lat. Direct chezmoi apply
keeps original step counts and starts from step 1.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add the two env.lat steps (Installing prerequisites, Installing
dotfiles via chezmoi) as pre-completed entries in the bottom summary.
STEPS counts increased by 2, STEP starts at 3.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When running via env.lat, stdout is piped through pad() but a real
terminal is behind it. The ENVLAT=1 env var tells the dotfiles script
to use interactive formatting despite the pipe.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
env.lat pads chezmoi download/clone output in gray. When the dotfiles
script starts, it emits ##ENVLAT_END## which tells env.lat's pad() to
switch to pass-through, letting the script use its own formatting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The banner with "Press Enter to continue" now shows early in env.lat,
right after installing prerequisites and terminfo but before cloning
chezmoi. Removes unused ASSUME_YES flag from the chezmoi script.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract repeated TERM=dumb/timeout/ANSI-stripping/pad boilerplate
into a reusable function. Each call now just specifies the wait time
and the nvim command to run.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Pipe tic stderr through pad so ghostty terminfo warning is formatted
- Strip all ANSI escapes (not just colors) and carriage returns from
nvim output so every line goes through pad correctly
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BSD sed doesn't support \x1b hex escapes. Using $(printf '\033') to
generate a literal ESC character that BSD sed can match.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BSD sed doesn't support \x1b hex escapes, so the previous approach
didn't actually strip color codes on OpenBSD.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>