tmux: install the plugin set non-interactively (install-040-plugins.sh)
bootstrap.sh --all left a fresh clone short of converged: install-030-tpm.sh
clones the plugin manager, but the plugins themselves waited on an
interactive prefix + I that a just-cloned machine has no way to have run.

The failure is quiet rather than loud, which is what makes it worth fixing.
Nothing errors; tmux starts and the config parses. But tmux-yank is absent,
so clipboard copy silently does nothing, and #{prefix_highlight} in
status-right renders as an empty string, so the status bar just looks
half-built. It reads as "the team config is broken", not "a step is
pending" -- exactly the independent-research detour this repo exists to
prevent.

install-040-plugins.sh drives TPM's own bin/install_plugins, the supported
non-interactive entry point. prefix + I is unchanged and is still how you
pick up plugins added mid-session.

Follows the pack contract: numbered with a gap after 030, sources
lib-install.sh, honours TOOLKIT_DRY_RUN, and no-ops loudly on a converged
machine. Preconditions (tmux, git, TPM, ~/.tmux.conf) exit 2 naming the
component to run first; a failed download exits 1. The plugin set is read
from the @plugin lines in files/tmux.conf, and since TPM reads the live
~/.tmux.conf instead, the script warns when that is not our symlink and the
set would differ.

Documented side effect: TPM resolves its plugin path via
`tmux start-server \; show-environment`, so running this starts a tmux
server if none is running. Existing sessions are not modified.

Verified on Ubuntu 24.04 / tmux 3.4: converged no-op in both modes;
dry-run with a plugin removed previews the clone and changes nothing;
real run restores it and the post-check confirms every plugin on disk;
all three exit-2 preconditions; and the full bootstrap --all end to end.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 169ea50 commit 74f7025c9938f69028402bb54e9b80e60f4d4d34
@Jesse Austin Jesse Austin authored 1 day ago
Showing 2 changed files
View
packs/tmux/README.md
View
packs/tmux/install-040-plugins.sh 0 → 100644