Commit Graph

353 Commits

Author SHA1 Message Date
Anton Volnuhin
6c7e0eabfc terminfo: cursor reset restores terminal default (beam), not block 2026-06-12 01:28:40 +03:00
Anton Volnuhin
e3c9f4edd5 fish: smarter SSH_AUTH_SOCK refresh, reading tmux session env over stale global 2026-06-12 01:25:16 +03:00
Anton Volnuhin
497cbce0c6 kitty: add ctrl+shift detach_window keybindings 2026-06-12 01:25:16 +03:00
Anton Volnuhin
c6159eb278 tmux: use session name as kitty tab title, with @host over SSH 2026-06-12 01:12:04 +03:00
Anton Volnuhin
a967a4981e tmux: show session name in status bar
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>
2026-05-30 02:13:55 +03:00
Anton Volnuhin
fdc149e9ec small updates to tabs, agy 2026-05-22 03:11:32 +03:00
Anton Volnuhin
771d30c136 Add tmux option tab bindings 2026-05-22 02:00:21 +03:00
Anton Volnuhin
b12882aa80 Make tmux tabs theme-aware 2026-05-22 01:57:56 +03:00
Anton Volnuhin
ca06e649c9 Update tmux tab labels 2026-05-22 01:27:11 +03:00
Anton Volnuhin
edc02d1bb5 Use Ctrl-Shift brackets for tmux windows 2026-05-20 02:46:44 +03:00
Anton Volnuhin
b59b0335c8 Add tmux CSI-u bracket bindings 2026-05-20 02:42:42 +03:00
Anton Volnuhin
1590a272aa kitty: color terminal tabs by ssh/mosh host
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>
2026-05-19 23:08:32 +03:00
Anton Volnuhin
fe835de7f1 double kitty integration fix -> no more brick cursor bug after switching to kitty and back 2026-04-10 15:11:30 +03:00
Anton Volnuhin
de32b5f5d6 m for mosh and s for ssh, both with second arg for tmux session 2026-04-09 02:24:45 +03:00
Anton Volnuhin
87bcad6c6d clipboard fixes for tmux and nvim 2026-04-09 02:21:29 +03:00
Anton Volnuhin
10c759e3a9 kitty fish to chezmoi 2026-04-07 23:56:28 +03:00
Anton Volnuhin
83e26550d0 wrong cursor stuff fix 2026-04-07 23:52:35 +03:00
Anton Volnuhin
5274042036 experimental fish cursor fixes 2026-04-07 23:39:17 +03:00
Anton Volnuhin
b0dbb8e0b2 working shift+enter everywhere 2026-04-07 23:34:01 +03:00
Anton Volnuhin
4bab71f9ab dark kitten icon for kitty 2026-04-06 14:46:04 +03:00
Anton Volnuhin
bfafb03296 switch tide to plttn/tide@v7, as my fix was merged in there 2026-04-05 19:42:28 +03:00
Anton Volnuhin
118666409d new tide config, cmd+N for kitty, slightly bigger font in kitty 2026-04-05 19:36:34 +03:00
Anton Volnuhin
556f26441e Modernize Neovim treesitter bootstrap 2026-03-31 01:45:02 +03:00
Anton Volnuhin
fe659f4386 mosh wrapper for kitty with forked mosh 2026-03-31 01:04:13 +03:00
Anton Volnuhin
d141d480bc remove missing git credential manager helper 2026-03-28 13:26:39 +03:00
Anton Volnuhin
074c8732f2 more tmux copy mode configs: v starts selection, square back to C-v 2026-03-28 13:25:59 +03:00
Anton Volnuhin
1fccc1e05e tmux configuration update for colors, copy and shift-enter 2026-03-28 13:25:59 +03:00
Anton Volnuhin
ce547fe18d skip atuin init when encryption key is missing or empty
Prevents panic on fresh installs where atuin has no key yet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 18:46:16 +03:00
Anton Volnuhin
3a429fa4b7 upgrade fish shell repos from 3.x to 4.x for Ubuntu and Debian
Fish 4.x is needed for puffer-fish plugin compatibility
(commandline --search-field).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 18:41:39 +03:00
Anton Volnuhin
948d862bb6 scroll past env.lat output before starting TUI
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>
2026-03-04 18:23:52 +03:00
Anton Volnuhin
95c88c3ce1 add tide-reset function, fix treesitter config for stable nvim
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>
2026-03-04 18:13:21 +03:00
Anton Volnuhin
dfdd5b7dae fix Tide context in OrbStack: set SSH_TTY when SSH_CONNECTION is present
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 23:39:59 +03:00
Anton Volnuhin
07a50ab0a3 add .gitignore to exclude nvimlog and pycache from repo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 23:30:32 +03:00
Anton Volnuhin
1181ef68ad revert to last working env.lat integration
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>
2026-03-03 23:25:30 +03:00
Anton Volnuhin
34fbf49eca simplify: remove env.lat step tracking from dotfiles script
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>
2026-03-03 23:22:20 +03:00
Anton Volnuhin
411bb8604b remove ENVLAT_END sentinel, no longer needed
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>
2026-03-03 23:16:44 +03:00
Anton Volnuhin
7509fa4440 gate env.lat summary steps on ENVLAT env var
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>
2026-03-03 23:08:36 +03:00
Anton Volnuhin
4f49ec9f80 include env.lat bootstrap steps in summary block
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>
2026-03-03 23:07:35 +03:00
Anton Volnuhin
2e30824131 respect ENVLAT env var for TTY detection through pipe
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>
2026-03-03 21:18:09 +03:00
Anton Volnuhin
fa3bb7b780 add env.lat sentinel to hand off formatting from bootstrap to chezmoi
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>
2026-03-03 21:14:56 +03:00
Anton Volnuhin
e54f9d6dfb move welcome banner from chezmoi script to env.lat bootstrap
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>
2026-03-03 20:50:28 +03:00
Anton Volnuhin
63c58c96be refactor nvim bootstrap into nvim_run helper function
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>
2026-03-03 20:39:48 +03:00
Anton Volnuhin
857aa4ff2e fix tic warning output and nvim padding issues
- 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>
2026-03-03 20:25:13 +03:00
Anton Volnuhin
fb5964d64b fix ANSI stripping: use printf literal ESC for BSD sed compatibility
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>
2026-03-03 20:10:25 +03:00
Anton Volnuhin
bab6e3d97a fix nvim headless output: use TERM=dumb instead of sed ANSI stripping
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>
2026-03-03 19:58:51 +03:00
Anton Volnuhin
43cc9ba1bd fix neovim headless output: strip ANSI colors, fix MasonUpdate error
- 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>
2026-03-03 19:33:16 +03:00
Anton Volnuhin
07d0caa733 improve OpenBSD installer output and fix neovim headless errors
- 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>
2026-03-03 18:45:02 +03:00
Anton Volnuhin
d59f8f3e1b skip shell-gpt on OpenBSD, remove rust package
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>
2026-03-03 18:25:41 +03:00
Anton Volnuhin
bdda5794c1 show verbose output for shell-gpt install on OpenBSD
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>
2026-03-03 18:09:38 +03:00
Anton Volnuhin
d85bf1b8fe fix OpenBSD installer: disambiguate fish, add Rust for shell-gpt
- 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>
2026-03-03 17:52:38 +03:00