diff --git a/screen.go b/screen.go index c745f47..d27cbf0 100644 --- a/screen.go +++ b/screen.go @@ -7,6 +7,14 @@ import ( te "github.com/muesli/termenv" ) +func hideCursor(w io.Writer) { + fmt.Fprintf(w, te.CSI+te.HideCursorSeq) +} + +func showCursor(w io.Writer) { + fmt.Fprintf(w, te.CSI+te.ShowCursorSeq) +} + func clearLine(w io.Writer) { fmt.Fprintf(w, te.CSI+te.EraseLineSeq, 2) } diff --git a/tea.go b/tea.go index 7a1f2f4..f81b1e4 100644 --- a/tea.go +++ b/tea.go @@ -124,11 +124,11 @@ func (p *Program) Start() error { p.renderer = newRenderer(p.output, &p.mtx) - err := initTerminal() + err := initTerminal(p.output) if err != nil { return err } - defer restoreTerminal() + defer restoreTerminal(p.output) // Initialize program model := p.initialModel diff --git a/tty.go b/tty.go index 7380272..25f2415 100644 --- a/tty.go +++ b/tty.go @@ -1,13 +1,14 @@ package tea import ( + "io" + "github.com/containerd/console" - "github.com/muesli/termenv" ) var tty console.Console -func initTerminal() error { +func initTerminal(w io.Writer) error { tty = console.Current() err := tty.SetRaw() if err != nil { @@ -15,11 +16,11 @@ func initTerminal() error { } enableAnsiColors() - termenv.HideCursor() + hideCursor(w) return nil } -func restoreTerminal() error { - termenv.ShowCursor() +func restoreTerminal(w io.Writer) error { + showCursor(w) return tty.Reset() }