Diff
1diff --git a/main.go b/main.go
2index 143b8c85058209c2d8379a67a2ddbb67668a7bff..867391175c769a1797b8e36993cb855d52a92412 100644
3--- a/main.go
4+++ b/main.go
5@@ -3,6 +3,7 @@ package main
6 import (
7 "smoothie/tui"
8
9+ tea "github.com/charmbracelet/bubbletea"
10 "github.com/meowgorithm/babyenv"
11 )
12
13@@ -17,7 +18,8 @@ func main() {
14 if err != nil {
15 panic(err)
16 }
17- s, err := NewServer(cfg.Port, cfg.KeyPath, LoggingMiddleware(), BubbleTeaMiddleware(tui.SessionHandler))
18+ btm := BubbleTeaMiddleware(tui.SessionHandler, tea.WithAltScreen())
19+ s, err := NewServer(cfg.Port, cfg.KeyPath, LoggingMiddleware(), btm)
20 if err != nil {
21 panic(err)
22 }
23diff --git a/server.go b/server.go
24index ea735c41c1304a1eeb46ae294fb6dbba8f263403..2f53283c5334176fde1bcd90d798c05a86598782 100644
25--- a/server.go
26+++ b/server.go
27@@ -25,12 +25,13 @@ func LoggingMiddleware() Middleware {
28 }
29 }
30
31-func BubbleTeaMiddleware(bth func(ssh.Session) tea.Model) Middleware {
32+func BubbleTeaMiddleware(bth func(ssh.Session) tea.Model, opts ...tea.ProgramOption) Middleware {
33 return func(sh ssh.Handler) ssh.Handler {
34 return func(s ssh.Session) {
35 m := bth(s)
36 if m != nil {
37- p := tea.NewProgram(m, tea.WithAltScreen(), tea.WithInput(s), tea.WithOutput(s))
38+ opts = append(opts, tea.WithInput(s), tea.WithOutput(s))
39+ p := tea.NewProgram(m, opts...)
40 err := p.Start()
41 if err != nil {
42 log.Printf("%s error %v: %s\n", s.RemoteAddr().String(), s.Command(), err)