diff --git a/main.go b/main.go index 143b8c85058209c2d8379a67a2ddbb67668a7bff..867391175c769a1797b8e36993cb855d52a92412 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "smoothie/tui" + tea "github.com/charmbracelet/bubbletea" "github.com/meowgorithm/babyenv" ) @@ -17,7 +18,8 @@ func main() { if err != nil { panic(err) } - s, err := NewServer(cfg.Port, cfg.KeyPath, LoggingMiddleware(), BubbleTeaMiddleware(tui.SessionHandler)) + btm := BubbleTeaMiddleware(tui.SessionHandler, tea.WithAltScreen()) + s, err := NewServer(cfg.Port, cfg.KeyPath, LoggingMiddleware(), btm) if err != nil { panic(err) } diff --git a/server.go b/server.go index ea735c41c1304a1eeb46ae294fb6dbba8f263403..2f53283c5334176fde1bcd90d798c05a86598782 100644 --- a/server.go +++ b/server.go @@ -25,12 +25,13 @@ func LoggingMiddleware() Middleware { } } -func BubbleTeaMiddleware(bth func(ssh.Session) tea.Model) Middleware { +func BubbleTeaMiddleware(bth func(ssh.Session) tea.Model, opts ...tea.ProgramOption) Middleware { return func(sh ssh.Handler) ssh.Handler { return func(s ssh.Session) { m := bth(s) if m != nil { - p := tea.NewProgram(m, tea.WithAltScreen(), tea.WithInput(s), tea.WithOutput(s)) + opts = append(opts, tea.WithInput(s), tea.WithOutput(s)) + p := tea.NewProgram(m, opts...) err := p.Start() if err != nil { log.Printf("%s error %v: %s\n", s.RemoteAddr().String(), s.Command(), err)