From 43272f6fbbaa941f96dd4a72175a45be3a3e4265 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 8 Jan 2026 23:01:35 -0800 Subject: [PATCH] feat(tmux): enable mouse mode by default for Gas Town sessions Adds EnableMouseMode() and calls it from ConfigureGasTownSession so all new GT sessions get mouse support. Users can now click panes, scroll with mouse wheel, and resize by dragging. Hold Shift for terminal text selection. Closes #33 Co-Authored-By: Claude Opus 4.5 --- internal/tmux/tmux.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/tmux/tmux.go b/internal/tmux/tmux.go index eb3f0d9b..a86a1527 100644 --- a/internal/tmux/tmux.go +++ b/internal/tmux/tmux.go @@ -828,9 +828,20 @@ func (t *Tmux) ConfigureGasTownSession(session string, theme Theme, rig, worker, if err := t.SetCycleBindings(session); err != nil { return fmt.Errorf("setting cycle bindings: %w", err) } + if err := t.EnableMouseMode(session); err != nil { + return fmt.Errorf("enabling mouse mode: %w", err) + } return nil } +// EnableMouseMode enables mouse support for a tmux session. +// This allows clicking to select panes/windows, scrolling with mouse wheel, +// and dragging to resize panes. Hold Shift for native terminal text selection. +func (t *Tmux) EnableMouseMode(session string) error { + _, err := t.run("set-option", "-t", session, "mouse", "on") + return err +} + // IsInsideTmux checks if the current process is running inside a tmux session. // This is detected by the presence of the TMUX environment variable. func IsInsideTmux() bool {