31 lines
1.5 KiB
Bash
31 lines
1.5 KiB
Bash
set -g default-terminal "screen-256color"
|
|
set -g history-limit 50000
|
|
|
|
# v1.10.8c: per-pane tmux sessions (boolab pattern). With one session per
|
|
# pane, the session size adapts to the attached client; `window-size = largest`
|
|
# + `aggressive-resize on` make tmux pick up the client's actual cols/rows
|
|
# instead of falling back to 80x24. Critical for opencode/claude TUIs that
|
|
# read TIOCGWINSZ once at fork time.
|
|
set -g window-size largest
|
|
set -g aggressive-resize on
|
|
|
|
# v1.10.3: `set -g mouse on` removed. tmux's mouse mode captured wheel/touch
|
|
# events at the protocol level, so xterm.js never saw them and the viewport
|
|
# couldn't scroll on mobile. With mouse off, xterm.js handles scrollback
|
|
# natively (wheel on desktop, finger-drag on mobile via touch-action: pan-y).
|
|
# Tradeoff: lose tmux mouse pane-resize and scroll-inside-vim; acceptable for
|
|
# the homelab single-user setup.
|
|
set -g mouse off
|
|
setw -g mode-keys vi
|
|
set -g status off
|
|
set -g destroy-unattached off
|
|
|
|
# v1.10.1: shells drop privs to samkintop (uid 1000) so the terminal runs in
|
|
# the user's environment, not root. `env HOME=… USER=…` is required because
|
|
# gosu only changes uid/gid — env (including HOME) survives, and the tmux
|
|
# server runs as root so HOME would otherwise be /root. bash -l then sources
|
|
# samkintop's ~/.profile / ~/.bashrc to pick up PATH (nvm, ~/.local/bin,
|
|
# ~/.opencode/bin).
|
|
# v1.10.2: su-exec → gosu (alpine → debian; functionally identical).
|
|
set -g default-command "gosu samkintop:samkintop env HOME=/home/samkintop USER=samkintop SHELL=/bin/bash bash -l"
|