diff --git a/app/editor.go b/app/editor.go index 450022e..7809520 100644 --- a/app/editor.go +++ b/app/editor.go @@ -2,6 +2,7 @@ package app import ( "fmt" + "os" "os/exec" "os/user" @@ -10,7 +11,9 @@ import ( "git.tilde.town/nbsp/welcome/ui" ) -type Editor struct{} +type Editor struct { + loaded bool +} func (view *Editor) Draw(state *ui.State) { win := state.Window() @@ -52,11 +55,16 @@ like before, when you're done, type `}, } func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) { - win := state.Window() + if view.loaded { + return + } + view.loaded = true + + win := state.Window().New(0, 16, 80, 80) view.Draw(state) vt := term.New() - vt.Draw(win.New(0, 16, 80, 80)) + vt.TERM = os.Getenv("TERM") vt.Attach(state.PostEvent()) vt.Focus() err := vt.Start(exec.Command("bash", "-l")) @@ -76,7 +84,7 @@ func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) { return case vaxis.Redraw: view.Draw(state) - vt.Draw(win.New(0, 16, 80, 80)) + vt.Draw(win) state.Render() continue } diff --git a/app/shell.go b/app/shell.go index 7126d69..2724765 100644 --- a/app/shell.go +++ b/app/shell.go @@ -1,6 +1,7 @@ package app import ( + "os" "os/exec" "git.sr.ht/~rockorager/vaxis" @@ -8,7 +9,9 @@ import ( "git.tilde.town/nbsp/welcome/ui" ) -type Shell struct{} +type Shell struct { + loaded bool +} func (view *Shell) Draw(state *ui.State) { win := state.Window() @@ -43,11 +46,16 @@ you're ready.`}, } func (view *Shell) Event(state *ui.State, event vaxis.Event) (processed bool) { + if view.loaded { + return + } + view.loaded = true + win := state.Window().New(0, 16, 80, 80) view.Draw(state) vt := term.New() - vt.Draw(win) + vt.TERM = os.Getenv("TERM") vt.Attach(state.PostEvent()) vt.Focus() err := vt.Start(exec.Command("bash", "-l"))