Commit Graph

305 Commits

Author SHA1 Message Date
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
Anton Volnuhin
63346456dc add gcc back to OpenBSD package list
Use gcc%11 to select GCC 11 and avoid ambiguity between versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:28:01 +03:00
Anton Volnuhin
08c1ccef32 fix OpenBSD package list: disambiguate flavors, remove unavailable
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>
2026-03-03 03:07:01 +03:00
Anton Volnuhin
b957dc3c90 fix $SUDO detection: skip when root, check doas.conf exists
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>
2026-03-03 02:58:09 +03:00
Anton Volnuhin
9af745427e fall back to xterm-256color when terminfo is missing
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>
2026-03-03 02:39:31 +03:00
Anton Volnuhin
748de2400d add OpenBSD support to installer
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>
2026-03-03 02:37:01 +03:00
Anton Volnuhin
5c032ce1b9 skip neovim bootstrap in non-interactive mode
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>
2026-03-03 02:23:50 +03:00
Anton Volnuhin
d6d47411e8 rename nixpkgs.du-dust to nixpkgs.dust
The du-dust package was renamed to dust in nixpkgs and the old name
now throws an error.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 02:15:08 +03:00
Anton Volnuhin
a7f938591b auto-detect non-interactive mode when no terminal is present
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>
2026-03-03 01:48:07 +03:00
Anton Volnuhin
3e53d99ad2 fix non-interactive mode: skip TUI and use simple output
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>
2026-03-03 01:42:45 +03:00
Anton Volnuhin
5104a5313b fix chezmoi template escaping in embedded ghostty terminfo
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>
2026-03-03 01:35:48 +03:00
Anton Volnuhin
e498f52252 add ghostty terminfo installation to all supported platforms
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>
2026-03-03 01:32:40 +03:00
Anton Volnuhin
80bb0e07cf migrate treesitter to new API, fix tide script ordering
- 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>
2026-03-03 00:46:43 +03:00
Anton Volnuhin
3686b429f2 add doas support for FreeBSD, use $SUDO throughout installer
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>
2026-03-03 00:39:52 +03:00
Anton Volnuhin
1c7bbf7f71 fix tide v7 configure: replace --transient flag with fish variable
--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>
2026-03-02 23:06:46 +03:00
Anton Volnuhin
dfafc9bd9b split tide config into separate chezmoi script, fix context display
- 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>
2026-03-02 23:03:20 +03:00
Anton Volnuhin
7045d9127a fix kitty detection in ssh wrapper function
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>
2026-03-02 22:56:02 +03:00
Anton Volnuhin
a16ec8a962 nova things 2026-03-02 22:17:26 +03:00
Anton Volnuhin
0fed059f7f switch to forked tide prompt, fix right prompt item removal
- 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>
2026-03-02 22:00:42 +03:00
Anton Volnuhin
1a2dfc753d migrate lspconfig to native vim.lsp.config API for nvim 0.11+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:22:15 +03:00
Anton Volnuhin
cb3df7c03c ensure true color support in zsh for Ghostty and other capable terminals
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:08:22 +03:00
Anton Volnuhin
00791e39be simplify zshrc: guard dependencies, strip boilerplate, fix paths
- 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>
2026-03-02 21:06:02 +03:00
Anton Volnuhin
8f39a3e419 template symlinks for portability, remove karabiner debug rule
- Template 1Password agent.sock symlink with chezmoi.homeDir
- Template kitty theme.conf symlink with chezmoi.homeDir
- Remove volumer experiment rule (volume_up mapped to 'a')
- Remove machine-specific USB location_id from volumer device

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 19:25:40 +03:00
Anton Volnuhin
8dfb94ee94 modernize neovim config for 0.10+
- 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>
2026-03-02 19:19:02 +03:00
Anton Volnuhin
44ddaefee5 restructure repo, fix fish config, remove vendored repos
Phase 4 (fish config):
- Fix ip function: replace load-time `which` with `command ip` wrapper
- Fix 1Password socket: use -S (socket test) instead of -f, export with -gx
- Remove deprecated fish plugins: github-copilot-cli, pisces

Phase 5 (repo structure):
- Move tpm and kitty-themes to .chezmoiexternal.toml (git-repo externals)
- Delete unused tmux-mighty-scroll (not referenced in tmux.conf)
- Expand .chezmoiignore: karabiner macOS-only, skip auto-backups/__pycache__
- Remove orphans: duplicate xterm-kitty, empty ssh.conf, karabiner backups
- Remove kitty.fish from tracking (auto-generated by kitty)

Phase 6 (terminal config):
- Comment out debug print in kitty tab_bar.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 19:11:10 +03:00
Anton Volnuhin
dfb97eb1d0 sync live config changes into chezmoi source
Re-add live edits:
- fish: gpt-5.2 model, llm.py, rewritten s/icat with ghostty support,
  new ils function, bass plugin, removed copilot-cli plugin
- karabiner: ghostty/moonlight/rdp apps, new caps rules, opt-W shortcut
- kitty: cursor_trail, font_size 14.5
- nvim: removed auto-session-nvim-tree, auto-session config update
- wezterm: scrollback 1M, border_top 2cell
- tmux-nova: local nerdfonts rendering patches
- zshrc: track file, includes LM Studio PATH

Also fix: chezmoi template error on macOS (osRelease.id without linux guard)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-02 18:40:51 +03:00
Anton Volnuhin
f03b8e90b2 merge live config.fish changes, fix chezmoi template on macOS
- pull live local changes: gpt-5.2 model, llm.py, rewritten s/icat/ils
  functions with ghostty support, antigravity path
- re-apply our improvements on top: fish_add_path, guards, hardcoded
  path fixes, micromamba removal
- fix osRelease.id template error on macOS (wrap ncurses block in linux check)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-02 18:38:51 +03:00
Anton Volnuhin
ac46863b48 harden install script and fix fish config portability
Install script:
- fix package availability (skim/fedora, fd-find/debian, direnv+goku/macos)
- add CLI flags for non-interactive mode (--skip-timezone, --skip-neovim-bootstrap, etc.)
- template STEPS count per OS for correct TUI layout
- add brew shellenv for fresh Apple Silicon, timeout portability
- pam_ssh_agent_auth availability check with warning for Fedora 42+
- fix fisher detection, authorized_keys whole-line dedup

Fish config:
- replace set -gx PATH with idempotent fish_add_path
- guard direnv/cargo sourcing for missing tools
- fix hardcoded /home/anton/ and /Users/anton/ paths
- remove unused micromamba/conda setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-02 18:35:11 +03:00
Anton Volnuhin
e838936be2 back to kitty, uv, small changes in karabiner 2025-03-02 01:17:58 +03:00
Anton Volnuhin
45331e0ce4 force true color in helix 2024-09-01 00:09:40 +03:00
Anton Volnuhin
c3f80fc4e4 do not show gcloud in tide prompt 2024-06-01 01:40:23 +03:00
Anton Volnuhin
7fd4f38d9d nvim Mason install 2024-05-31 01:29:12 +03:00
Anton Volnuhin
51f89d2ff0 better nvim wait 2024-05-31 01:17:16 +03:00
Anton Volnuhin
2904bf005c nvim longer timeout for configure 2024-05-31 01:08:10 +03:00
Anton Volnuhin
c6ce78545c nvim tests 2024-05-31 01:00:07 +03:00
Anton Volnuhin
9b0e4537cc nvim tuning 2024-05-31 00:36:22 +03:00
Anton Volnuhin
6e52858891 won't quit wezterm on last window, and a little smaller font in it' 2024-05-31 00:22:39 +03:00
Anton Volnuhin
7c5da02d2d new neovim compile 2024-05-31 00:22:03 +03:00
Anton Volnuhin
816e63f155 doc fixes 2024-05-28 02:34:17 +03:00
Anton Volnuhin
a280e2449a freebsd packages tune 2024-05-28 02:21:13 +03:00
Anton Volnuhin
317ba2c019 template fix 3 2024-05-28 01:42:35 +03:00
Anton Volnuhin
2557844152 template fix 2 2024-05-28 01:40:17 +03:00
Anton Volnuhin
3231f2d2e4 template fix 2024-05-28 01:39:12 +03:00
Anton Volnuhin
33cccaa319 initial freebsd support fix 2024-05-28 01:34:38 +03:00
Anton Volnuhin
e5db0e46cc initial freebsd support 2024-05-28 01:34:01 +03:00
Anton Volnuhin
791a621d67 fix wezterm hide once again 2024-05-27 00:10:28 +03:00
Anton Volnuhin
2bd5d90c78 fix typo 2024-05-27 00:08:38 +03:00
Anton Volnuhin
2ae6b61bdc hide wezterm again 2024-05-27 00:08:04 +03:00
Anton Volnuhin
28f3c27bd4 openai, volumer 2024-05-27 00:06:56 +03:00