Commit Graph
14 Commits
Author SHA1 Message Date
dissimulo 6713b033a9 tmux: mouse back on
Mouse mode was turned off while hunting the vanishing status bar. It was
never the cause -- the nested window formats were starving status-right of
width -- so this restores click-to-select, drag-to-resize and wheel scroll.
2026-08-24 17:43:18 -07:00
dissimulo cb4936f336 tmux: plain window formats -- the nested ones ate the status line
The circled-number window formats expand to 92 characters through ten
levels of nested conditionals, one per window index. tmux lays out the left
segment, then the window list, then hands the remainder to the right -- and
that list was wide enough that the right segment got no room, so the host,
IP and clock vanished while the left side stayed put.

Restoring the pretty format after shrinking status-right-length brought the
problem straight back, so the width of the list is the cause rather than
the right segment's declared length.

Plain #I:#W renders to twelve characters and the right side stays.
2026-08-24 17:40:39 -07:00
dissimulo 79c485ea6f tmux: shrink status-right-length from 451 to 60
status-right-length was 451 on a 158-column terminal. tmux lays out the
left segment, then the window list, then gives what is left to the right
segment -- and with the right declared three times wider than the screen
there is no stable allocation. Anything that changes the window list's
rendered width pushes the right segment off entirely, which is why the IP
and clock kept vanishing while the left side stayed put.

The window formats render to 92 characters because of the nested
conditionals that pick a circled number per index, so the list is wide
enough to matter.

This is what the "seizure" was. Not X, not NVIDIA, not picom, not hotplug
events, not the monitors, not mosh, not tmux's version, and not the shell
substitution in status-right -- it reproduced on a bare framebuffer console
with none of those present, and it was intermittent because it depended on
what the window list happened to render at that moment.
2026-08-24 17:40:02 -07:00
dissimulo 3391b4cd2a tmux: turn mouse mode off
Mouse mode routed wheel events into the pane, where Claude Code's
full-screen TUI repaints the whole screen in response. That repaint took
the status bar with it, which is the flicker that has been chased for two
weeks through X, NVIDIA, picom and hotplug settings -- none of which were
involved. It reproduces on a bare framebuffer console with no X running at
all.

Disabling mouse mode keeps those events out of the pane entirely. Scrolling
inside tmux is Ctrl-b [ as usual. Paired with CLAUDE_CODE_DISABLE_MOUSE and
CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL exported in the shell, since the env
block in Claude Code's settings.json does not reach the process.
2026-08-24 17:35:53 -07:00
dissimulo 0eb605a835 tmux statusline: directly-held WAN/LAN IP, offline ✕, native window-status
- tmux-ip: show the first directly-held public/WAN IP on a non-tunnel interface,
  else the LAN/private IP. No external 'what's my IP' lookup and no DigitalOcean
  special-case (a droplet's eth0 public IP is found by the same interface scan);
  RFC1918/link-local/CGNAT classed as not-WAN, so a NAT'd box shows its LAN IP.
- tmux-net: show ✕ when there's no local IP and no VPN tunnel (offline). VPN ⇡
  overlay unchanged.
- .tmux.conf: window-status icon + path now native tmux formats (no per-redraw
  #() forks); tmux-window-icon kept as fallback.
2026-06-30 16:39:52 -07:00
dissimulo 2906352220 tmux: lowercase am/pm in statusline clock 2026-06-16 17:12:10 -07:00
dissimulo 1d2a823750 tmux: drop space between time and AM/PM in statusline 2026-06-16 17:11:44 -07:00
dissimulo 8400ddf6a8 tmux: 12-hour clock in statusline (%-I:%M %p) 2026-06-16 17:08:27 -07:00
dissimulo e2a1e3b784 tmux status: use short hostname (#h) instead of FQDN (#H) 2026-05-17 03:23:55 -07:00
dissimulo e38a6b3166 tmux status: show VPN IP when tunnel is active
Add tmux-vpn-ip helper (parses ifconfig for utun* on macOS, falls back
to tun/wg/ppp on Linux) and a tmux-net wrapper that conditionally
emits "⌂ <local> / ⇡ <vpn>" when a VPN tunnel is up, or just "<local>"
when it's not. status-right now calls tmux-net.
2026-05-17 03:19:26 -07:00
dissimulo 6188583ee9 tmux: enable truecolor + focus-events for TUI apps
- Switch default-terminal from screen-256color to tmux-256color
  (better italics/undercurl/SGR support for nvim, Claude Code, etc.)
- Add terminal-features RGB for the common outer terminals so
  truecolor escape sequences pass through cleanly
- Enable focus-events so inner programs can redraw when the pane
  regains focus
2026-05-06 09:37:20 +00:00
dissimulo f4d8679398 Increase tmux history limit to 80000 2026-04-21 06:16:16 -07:00
dissimulo 3d2508a785 Replace .tmux.conf symlink with real file; add IP to status-right, interval 60 2026-04-21 06:16:16 -07:00
dissimulo bc9f9d8094 Add dotfiles from home directory
Tracks shell configs (zsh/bash), vim, tmux, irssi, fonts, themes,
and ~/.local/bin scripts. Sensitive files (.ssh, .gnupg, history,
credentials) and large app data are excluded via .gitignore.
2026-04-21 06:16:16 -07:00