From 5c4ea4dfecca3e545f6e45c0ba817b9a0b1bc876 Mon Sep 17 00:00:00 2001 From: Ivar Fatland Date: Sat, 24 Jan 2026 15:33:29 +0100 Subject: [PATCH] send keys to spawn program instead this allows the window to remain open after program is finished --- sesh/main.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sesh/main.go b/sesh/main.go index 897787b..8bce10e 100644 --- a/sesh/main.go +++ b/sesh/main.go @@ -125,9 +125,6 @@ func NewWindowInSession(seshName string, window Window) { if window.Name != "" { args = append(args, "-n", window.Name) } - if window.Program != "" { - args = append(args, window.Program) - } cmd := exec.Command(tmux, args...) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr @@ -136,6 +133,17 @@ func NewWindowInSession(seshName string, window Window) { if err != nil { panic(err) } + if window.Program != "" { + var carriageReturn = string([]byte{13}) + cmd = exec.Command(tmux, "send-keys", "-t", fmt.Sprintf("%s:$", seshName), window.Program, carriageReturn) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.Stdin = os.Stdin + err := cmd.Run() + if err != nil { + panic(err) + } + } } func TurnIntoTmux(sessionName string) {