Repository: jesseduffield/lazygit (language: go)

Issue:
Strikethrough not working
**Describe the bug**
As of `ad0394a Bump gocui`, strikethrough no longer works. I've raised an issue for this in the tcell repo: https://github.com/gdamore/tcell/issues/693



Expected (without the purple text):
![image](https://github.com/jesseduffield/lazygit/assets/8456633/0d482147-ee0d-4d4d-91a7-7a52f286c650)

Actual:
![image](https://github.com/jesseduffield/lazygit/assets/8456633/861827c3-797d-415a-aef1-9fd521a72524)



Discussion / hints:

Fix patch:
diff --git a/go.mod b/go.mod
index c4c77294a93..bc039bc578e 100644
--- a/go.mod
+++ b/go.mod
@@ -9,14 +9,14 @@ require (
 	github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
 	github.com/creack/pty v1.1.11
 	github.com/fsmiamoto/git-todo-parser v0.0.5
-	github.com/gdamore/tcell/v2 v2.7.1
+	github.com/gdamore/tcell/v2 v2.7.3
 	github.com/go-errors/errors v1.5.1
 	github.com/gookit/color v1.4.2
 	github.com/imdario/mergo v0.3.11
 	github.com/integrii/flaggy v1.4.0
 	github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68
 	github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d
-	github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39
+	github.com/jesseduffield/gocui v0.3.1-0.20240303173746-f2b0f1f68dd8
 	github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10
 	github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5
 	github.com/jesseduffield/minimal/gitignore v0.3.3-0.20211018110810-9cde264e6b1e
diff --git a/go.sum b/go.sum
index 92cc1ba133f..84e171721ce 100644
--- a/go.sum
+++ b/go.sum
@@ -89,8 +89,8 @@ github.com/fsmiamoto/git-todo-parser v0.0.5/go.mod h1:B+AgTbNE2BARvJqzXygThzqxLI
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
 github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
-github.com/gdamore/tcell/v2 v2.7.1 h1:TiCcmpWHiAU7F0rA2I3S2Y4mmLmO9KHxJ7E1QhYzQbc=
-github.com/gdamore/tcell/v2 v2.7.1/go.mod h1:dSXtXTSK0VsW1biw65DZLZ2NKr7j0qP/0J7ONmsraWg=
+github.com/gdamore/tcell/v2 v2.7.3 h1:YLQlOj5F0hSlKy5TJvlych29+WTcJzbElnLYwx8gvdg=
+github.com/gdamore/tcell/v2 v2.7.3/go.mod h1:dSXtXTSK0VsW1biw65DZLZ2NKr7j0qP/0J7ONmsraWg=
 github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=
 github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
 github.com/go-errors/errors v1.0.2/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs=
@@ -187,8 +187,8 @@ github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68 h1:EQP2Tv8T
 github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68/go.mod h1:+LLj9/WUPAP8LqCchs7P+7X0R98HiFujVFANdNaxhGk=
 github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d h1:bO+OmbreIv91rCe8NmscRwhFSqkDJtzWCPV4Y+SQuXE=
 github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d/go.mod h1:nGNEErzf+NRznT+N2SWqmHnDnF9aLgANB1CUNEan09o=
-github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39 h1:SOgE243njnEvUr2yjMyPaEzajwb0LscbfYlnYfgBpoY=
-github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39/go.mod h1:7WDm73sIFB9Phn7rxAsv+ttmYDsQcTM4gEb6B+XmVuQ=
+github.com/jesseduffield/gocui v0.3.1-0.20240303173746-f2b0f1f68dd8 h1:DGyAjpaAnxDuKO4MEoFjifhkUV7sU6znMR9eRfjjvn0=
+github.com/jesseduffield/gocui v0.3.1-0.20240303173746-f2b0f1f68dd8/go.mod h1:lLLfxEGyIvvkzzpHdKkfgIVFmxqEejeACxKMVxSHLeM=
 github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10 h1:jmpr7KpX2+2GRiE91zTgfq49QvgiqB0nbmlwZ8UnOx0=
 github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10/go.mod h1:aA97kHeNA+sj2Hbki0pvLslmE4CbDyhBeSSTUUnOuVo=
 github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5 h1:CDuQmfOjAtb1Gms6a1p5L2P8RhbLUq5t8aL7PiQd2uY=
diff --git a/vendor/github.com/gdamore/tcell/v2/console_win.go b/vendor/github.com/gdamore/tcell/v2/console_win.go
index 66ab4938f4c..92ae4e5c284 100644
--- a/vendor/github.com/gdamore/tcell/v2/console_win.go
+++ b/vendor/github.com/gdamore/tcell/v2/console_win.go
@@ -41,6 +41,7 @@ type cScreen struct {
 	vten       bool
 	truecolor  bool
 	running    bool
+	disableAlt bool // disable the alternate screen
 
 	w int
 	h int
@@ -159,6 +160,10 @@ const (
 	vtCursorSteadyUnderline   = "\x1b[4 q"
 	vtCursorBlinkingBar       = "\x1b[5 q"
 	vtCursorSteadyBar         = "\x1b[6 q"
+	vtDisableAm               = "\x1b[?7l"
+	vtEnableAm                = "\x1b[?7h"
+	vtEnterCA                 = "\x1b[?1049h\x1b[22;0;0t"
+	vtExitCA                  = "\x1b[?1049l\x1b[23;0;0t"
 )
 
 var vtCursorStyles = map[CursorStyle]string{
@@ -182,7 +187,6 @@ func (s *cScreen) Init() error {
 	s.eventQ = make(chan Event, 10)
 	s.quit = make(chan struct{})
 	s.scandone = make(chan struct{})
-
 	in, e := syscall.Open("CONIN$", syscall.O_RDWR, 0)
 	if e != nil {
 		return e
@@ -197,20 +201,22 @@ func (s *cScreen) Init() error {
 
 	s.truecolor = true
 
-	// ConEmu handling of colors and scrolling when in terminal
-	// mode is extremely problematic at the best.  The color
-	// palette will scroll even though characters do not, when
-	// emitting stuff for the last character.  In the future we
-	// might change this to look at specific versions of ConEmu
-	// if they fix the bug.
+	// ConEmu handling of colors and scrolling when in VT output mode is extremely poor.
+	// The color palette will scroll even though characters do not, when
+	// emitting stuff for the last character.  In the future we might change this to
+	// look at specific versions of ConEmu if they fix the bug.
+	// We can also try disabling auto margin mode.
+	tryVt := true
 	if os.Getenv("ConEmuPID") != "" {
 		s.truecolor = false
+		tryVt = false
 	}
 	switch os.Getenv("TCELL_TRUECOLOR") {
 	case "disable":
 		s.truecolor = false
 	case "enable":
 		s.truecolor = true
+		tryVt = true
 	}
 
 	s.Lock()
@@ -227,9 +233,22 @@ func (s *cScreen) Init() error {
 	s.fini = false
 	s.setInMode(modeResizeEn | modeExtendFlg)
 
-	// 24-bit color is opt-in for now, because we can't figure out
-	// to make it work consistently.
-	if s.truecolor {
+	// If a user needs to force old style console, they may do so
+	// by setting TCELL_VTMODE to disable.  This is an undocumented safety net for now.
+	// It may be removed in the future.  (This mostly exists because of ConEmu.)
+	switch os.Getenv("TCELL_VTMODE") {
+	case "disable":
+		tryVt = false
+	case "enable":
+		tryVt = true
+	}
+	switch os.Getenv("TCELL_ALTSCREEN") {
+	case "enable":
+		s.disableAlt = false // also the default
+	case "disable":
+		s.disableAlt = true
+	}
+	if tryVt {
 		s.setOutMode(modeVtOutput | modeNoAutoNL | modeCookedOut | modeUnderline)
 		var om uint32
 		s.getOutMode(&om)
@@ -316,11 +335,16 @@ func (s *cScreen) disengage() {
 
 	if s.vten {
 		s.emitVtString(vtCursorStyles[CursorStyleDefault])
+		s.emitVtString(vtEnableAm)
+		if !s.disableAlt {
+			s.emitVtString(vtExitCA)
+		}
+	} else if !s.disableAlt {
+		s.clearScreen(StyleDefault, s.vten)
 	}
 	s.setInMode(s.oimode)
 	s.setOutMode(s.oomode)
 	s.setBufferSize(int(s.oscreen.size.x), int(s.oscreen.size.y))
-	s.clearScreen(StyleDefault, false)
 	s.setCursorPos(0, 0, false)
 	s.setCursorInfo(&s.ocursor)
 	_, _, _ = procSetConsoleTextAttribute.Call(
@@ -349,6 +373,10 @@ func (s *cScreen) engage() error {
 
 	if s.vten {
 		s.setOutMode(modeVtOutput | modeNoAutoNL | modeCookedOut | modeUnderline)
+		if !s.disableAlt {
+			s.emitVtString(vtEnterCA)
+		}
+		s.emitVtString(vtDisableAm)
 	} else {
 		s.setOutMode(0)
 	}
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/a/aixterm/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/a/aixterm/term.go
index 96c06b557fa..503c9199edc 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/a/aixterm/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/a/aixterm/term.go
@@ -24,6 +24,8 @@ func init() {
 		ResetFgBg:    "\x1b[32m\x1b[40m",
 		PadChar:      "\x00",
 		AltChars:     "jjkkllmmnnqqttuuvvwwxx",
+		EnterAcs:     "\x1b(0",
+		ExitAcs:      "\x1b(B",
 		SetCursor:    "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:  "\b",
 		CursorUp1:    "\x1b[A",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/a/alacritty/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/a/alacritty/term.go
index d3bac450d7a..010136372ae 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/a/alacritty/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/a/alacritty/term.go
@@ -23,6 +23,7 @@ func init() {
 		Bold:              "\x1b[1m",
 		Dim:               "\x1b[2m",
 		Italic:            "\x1b[3m",
+		Blink:             "\x1b[5m",
 		Reverse:           "\x1b[7m",
 		EnterKeypad:       "\x1b[?1h\x1b=",
 		ExitKeypad:        "\x1b[?1l\x1b>",
@@ -36,7 +37,7 @@ func init() {
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
 		StrikeThrough:     "\x1b[9m",
-		Mouse:             "\x1b[M",
+		Mouse:             "\x1b[<",
 		SetCursor:         "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:       "\b",
 		CursorUp1:         "\x1b[A",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/c/cygwin/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/c/cygwin/term.go
index 7d21c61e84e..46a0a4a3a25 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/c/cygwin/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/c/cygwin/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// ansi emulation for Cygwin
+	// ANSI emulation for Cygwin
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:         "cygwin",
 		Colors:       8,
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/e/emacs/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/e/emacs/term.go
index 5034b99a212..f6d078d0845 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/e/emacs/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/e/emacs/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// gnu emacs term.el terminal emulation
+	// GNU Emacs term.el terminal emulation
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:        "eterm",
 		Columns:     80,
@@ -34,6 +34,8 @@ func init() {
 		Colors:       8,
 		Bell:         "\a",
 		Clear:        "\x1b[H\x1b[J",
+		EnterCA:      "\x1b7\x1b[?47h",
+		ExitCA:       "\x1b[2J\x1b[?47l\x1b8",
 		AttrOff:      "\x1b[m",
 		Underline:    "\x1b[4m",
 		Bold:         "\x1b[1m",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/h/hpterm/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/h/hpterm/term.go
index c77ccd0ebf2..56a0fb730e0 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/h/hpterm/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/h/hpterm/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// hp X11 terminal emulator
+	// HP X11 terminal emulator (old)
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:         "hpterm",
 		Aliases:      []string{"X-hpterm"},
@@ -14,7 +14,7 @@ func init() {
 		Lines:        24,
 		Bell:         "\a",
 		Clear:        "\x1b&a0y0C\x1bJ",
-		AttrOff:      "\x1b&d@",
+		AttrOff:      "\x1b&d@\x0f",
 		Underline:    "\x1b&dD",
 		Bold:         "\x1b&dB",
 		Dim:          "\x1b&dH",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/k/konsole/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/k/konsole/term.go
index 78aa1ac211f..c32de96343e 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/k/konsole/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/k/konsole/term.go
@@ -12,6 +12,7 @@ func init() {
 		Columns:           80,
 		Lines:             24,
 		Colors:            8,
+		Bell:              "\a",
 		Clear:             "\x1b[H\x1b[2J",
 		EnterCA:           "\x1b7\x1b[?47h",
 		ExitCA:            "\x1b[2J\x1b[?47l\x1b8",
@@ -20,6 +21,7 @@ func init() {
 		AttrOff:           "\x1b[0m\x0f",
 		Underline:         "\x1b[4m",
 		Bold:              "\x1b[1m",
+		Dim:               "\x1b[2m",
 		Italic:            "\x1b[3m",
 		Blink:             "\x1b[5m",
 		Reverse:           "\x1b[7m",
@@ -35,7 +37,8 @@ func init() {
 		EnableAcs:         "\x1b)0",
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
-		Mouse:             "\x1b[M",
+		StrikeThrough:     "\x1b[9m",
+		Mouse:             "\x1b[<",
 		SetCursor:         "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:       "\b",
 		CursorUp1:         "\x1b[A",
@@ -62,58 +65,8 @@ func init() {
 		KeyF10:            "\x1b[21~",
 		KeyF11:            "\x1b[23~",
 		KeyF12:            "\x1b[24~",
-		KeyF13:            "\x1bO2P",
-		KeyF14:            "\x1bO2Q",
-		KeyF15:            "\x1bO2R",
-		KeyF16:            "\x1bO2S",
-		KeyF17:            "\x1b[15;2~",
-		KeyF18:            "\x1b[17;2~",
-		KeyF19:            "\x1b[18;2~",
-		KeyF20:            "\x1b[19;2~",
-		KeyF21:            "\x1b[20;2~",
-		KeyF22:            "\x1b[21;2~",
-		KeyF23:            "\x1b[23;2~",
-		KeyF24:            "\x1b[24;2~",
-		KeyF25:            "\x1bO5P",
-		KeyF26:            "\x1bO5Q",
-		KeyF27:            "\x1bO5R",
-		KeyF28:            "\x1bO5S",
-		KeyF29:            "\x1b[15;5~",
-		KeyF30:            "\x1b[17;5~",
-		KeyF31:            "\x1b[18;5~",
-		KeyF32:            "\x1b[19;5~",
-		KeyF33:            "\x1b[20;5~",
-		KeyF34:            "\x1b[21;5~",
-		KeyF35:            "\x1b[23;5~",
-		KeyF36:            "\x1b[24;5~",
-		KeyF37:            "\x1bO6P",
-		KeyF38:            "\x1bO6Q",
-		KeyF39:            "\x1bO6R",
-		KeyF40:            "\x1bO6S",
-		KeyF41:            "\x1b[15;6~",
-		KeyF42:            "\x1b[17;6~",
-		KeyF43:            "\x1b[18;6~",
-		KeyF44:            "\x1b[19;6~",
-		KeyF45:            "\x1b[20;6~",
-		KeyF46:            "\x1b[21;6~",
-		KeyF47:            "\x1b[23;6~",
-		KeyF48:            "\x1b[24;6~",
-		KeyF49:            "\x1bO3P",
-		KeyF50:            "\x1bO3Q",
-		KeyF51:            "\x1bO3R",
-		KeyF52:            "\x1bO3S",
-		KeyF53:            "\x1b[15;3~",
-		KeyF54:            "\x1b[17;3~",
-		KeyF55:            "\x1b[18;3~",
-		KeyF56:            "\x1b[19;3~",
-		KeyF57:            "\x1b[20;3~",
-		KeyF58:            "\x1b[21;3~",
-		KeyF59:            "\x1b[23;3~",
-		KeyF60:            "\x1b[24;3~",
-		KeyF61:            "\x1bO4P",
-		KeyF62:            "\x1bO4Q",
-		KeyF63:            "\x1bO4R",
 		KeyBacktab:        "\x1b[Z",
+		Modifiers:         1,
 		AutoMargin:        true,
 	})
 
@@ -123,6 +76,7 @@ func init() {
 		Columns:           80,
 		Lines:             24,
 		Colors:            256,
+		Bell:              "\a",
 		Clear:             "\x1b[H\x1b[2J",
 		EnterCA:           "\x1b7\x1b[?47h",
 		ExitCA:            "\x1b[2J\x1b[?47l\x1b8",
@@ -131,6 +85,7 @@ func init() {
 		AttrOff:           "\x1b[0m\x0f",
 		Underline:         "\x1b[4m",
 		Bold:              "\x1b[1m",
+		Dim:               "\x1b[2m",
 		Italic:            "\x1b[3m",
 		Blink:             "\x1b[5m",
 		Reverse:           "\x1b[7m",
@@ -146,7 +101,8 @@ func init() {
 		EnableAcs:         "\x1b)0",
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
-		Mouse:             "\x1b[M",
+		StrikeThrough:     "\x1b[9m",
+		Mouse:             "\x1b[<",
 		SetCursor:         "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:       "\b",
 		CursorUp1:         "\x1b[A",
@@ -173,58 +129,8 @@ func init() {
 		KeyF10:            "\x1b[21~",
 		KeyF11:            "\x1b[23~",
 		KeyF12:            "\x1b[24~",
-		KeyF13:            "\x1bO2P",
-		KeyF14:            "\x1bO2Q",
-		KeyF15:            "\x1bO2R",
-		KeyF16:            "\x1bO2S",
-		KeyF17:            "\x1b[15;2~",
-		KeyF18:            "\x1b[17;2~",
-		KeyF19:            "\x1b[18;2~",
-		KeyF20:            "\x1b[19;2~",
-		KeyF21:            "\x1b[20;2~",
-		KeyF22:            "\x1b[21;2~",
-		KeyF23:            "\x1b[23;2~",
-		KeyF24:            "\x1b[24;2~",
-		KeyF25:            "\x1bO5P",
-		KeyF26:            "\x1bO5Q",
-		KeyF27:            "\x1bO5R",
-		KeyF28:            "\x1bO5S",
-		KeyF29:            "\x1b[15;5~",
-		KeyF30:            "\x1b[17;5~",
-		KeyF31:            "\x1b[18;5~",
-		KeyF32:            "\x1b[19;5~",
-		KeyF33:            "\x1b[20;5~",
-		KeyF34:            "\x1b[21;5~",
-		KeyF35:            "\x1b[23;5~",
-		KeyF36:            "\x1b[24;5~",
-		KeyF37:            "\x1bO6P",
-		KeyF38:            "\x1bO6Q",
-		KeyF39:            "\x1bO6R",
-		KeyF40:            "\x1bO6S",
-		KeyF41:            "\x1b[15;6~",
-		KeyF42:            "\x1b[17;6~",
-		KeyF43:            "\x1b[18;6~",
-		KeyF44:            "\x1b[19;6~",
-		KeyF45:            "\x1b[20;6~",
-		KeyF46:            "\x1b[21;6~",
-		KeyF47:            "\x1b[23;6~",
-		KeyF48:            "\x1b[24;6~",
-		KeyF49:            "\x1bO3P",
-		KeyF50:            "\x1bO3Q",
-		KeyF51:            "\x1bO3R",
-		KeyF52:            "\x1bO3S",
-		KeyF53:            "\x1b[15;3~",
-		KeyF54:            "\x1b[17;3~",
-		KeyF55:            "\x1b[18;3~",
-		KeyF56:            "\x1b[19;3~",
-		KeyF57:            "\x1b[20;3~",
-		KeyF58:            "\x1b[21;3~",
-		KeyF59:            "\x1b[23;3~",
-		KeyF60:            "\x1b[24;3~",
-		KeyF61:            "\x1bO4P",
-		KeyF62:            "\x1bO4Q",
-		KeyF63:            "\x1bO4R",
 		KeyBacktab:        "\x1b[Z",
+		Modifiers:         1,
 		AutoMargin:        true,
 	})
 }
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/k/kterm/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/k/kterm/term.go
index 7efdeb4c683..34306809557 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/k/kterm/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/k/kterm/term.go
@@ -42,7 +42,7 @@ func init() {
 		KeyLeft:           "\x1bOD",
 		KeyInsert:         "\x1b[2~",
 		KeyDelete:         "\x1b[3~",
-		KeyBackspace:      "\b",
+		KeyBackspace:      "\x7f",
 		KeyPgUp:           "\x1b[5~",
 		KeyPgDn:           "\x1b[6~",
 		KeyF1:             "\x1b[11~",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/l/linux/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/l/linux/term.go
index 0be62c08254..8975bb38323 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/l/linux/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/l/linux/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// linux console
+	// Linux console
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "linux",
 		Colors:            8,
@@ -14,7 +14,7 @@ func init() {
 		Clear:             "\x1b[H\x1b[J",
 		ShowCursor:        "\x1b[?25h\x1b[?0c",
 		HideCursor:        "\x1b[?25l\x1b[?1c",
-		AttrOff:           "\x1b[0;10m",
+		AttrOff:           "\x1b[m\x0f",
 		Underline:         "\x1b[4m",
 		Bold:              "\x1b[1m",
 		Dim:               "\x1b[2m",
@@ -25,9 +25,10 @@ func init() {
 		SetFgBg:           "\x1b[3%p1%d;4%p2%dm",
 		ResetFgBg:         "\x1b[39;49m",
 		PadChar:           "\x00",
-		AltChars:          "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0i\xcej\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe",
-		EnterAcs:          "\x1b[11m",
-		ExitAcs:           "\x1b[10m",
+		AltChars:          "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
+		EnterAcs:          "\x0e",
+		ExitAcs:           "\x0f",
+		EnableAcs:         "\x1b)0",
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
 		Mouse:             "\x1b[M",
@@ -65,7 +66,7 @@ func init() {
 		KeyF18:            "\x1b[32~",
 		KeyF19:            "\x1b[33~",
 		KeyF20:            "\x1b[34~",
-		KeyBacktab:        "\x1b[Z",
+		KeyBacktab:        "\x1b\t",
 		AutoMargin:        true,
 		InsertChar:        "\x1b[@",
 	})
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/p/pcansi/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/p/pcansi/term.go
index 9e89c19772f..aadc8719310 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/p/pcansi/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/p/pcansi/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// ibm-pc terminal programs claiming to be ansi
+	// ibm-pc terminal programs claiming to be ANSI
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:         "pcansi",
 		Columns:      80,
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/r/rxvt/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/r/rxvt/term.go
index fec59e281ae..94169e795db 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/r/rxvt/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/r/rxvt/term.go
@@ -9,6 +9,7 @@ func init() {
 	// rxvt terminal emulator (X Window System)
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:         "rxvt",
+		Aliases:      []string{"rxvt-color"},
 		Columns:      80,
 		Lines:        24,
 		Colors:       8,
@@ -44,7 +45,7 @@ func init() {
 		KeyLeft:      "\x1b[D",
 		KeyInsert:    "\x1b[2~",
 		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\b",
+		KeyBackspace: "\x7f",
 		KeyHome:      "\x1b[7~",
 		KeyEnd:       "\x1b[8~",
 		KeyPgUp:      "\x1b[5~",
@@ -109,7 +110,6 @@ func init() {
 		KeyCtrlHome:  "\x1b[7^",
 		KeyCtrlEnd:   "\x1b[8^",
 		AutoMargin:   true,
-		InsertChar:   "\x1b[@",
 	})
 
 	// rxvt 2.7.9 with xterm 256-colors
@@ -150,7 +150,7 @@ func init() {
 		KeyLeft:      "\x1b[D",
 		KeyInsert:    "\x1b[2~",
 		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\b",
+		KeyBackspace: "\x7f",
 		KeyHome:      "\x1b[7~",
 		KeyEnd:       "\x1b[8~",
 		KeyPgUp:      "\x1b[5~",
@@ -215,7 +215,6 @@ func init() {
 		KeyCtrlHome:  "\x1b[7^",
 		KeyCtrlEnd:   "\x1b[8^",
 		AutoMargin:   true,
-		InsertChar:   "\x1b[@",
 	})
 
 	// rxvt 2.7.9 with xterm 88-colors
@@ -256,7 +255,7 @@ func init() {
 		KeyLeft:      "\x1b[D",
 		KeyInsert:    "\x1b[2~",
 		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\b",
+		KeyBackspace: "\x7f",
 		KeyHome:      "\x1b[7~",
 		KeyEnd:       "\x1b[8~",
 		KeyPgUp:      "\x1b[5~",
@@ -321,7 +320,6 @@ func init() {
 		KeyCtrlHome:  "\x1b[7^",
 		KeyCtrlEnd:   "\x1b[8^",
 		AutoMargin:   true,
-		InsertChar:   "\x1b[@",
 	})
 
 	// rxvt-unicode terminal (X Window System)
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/s/screen/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/s/screen/term.go
index 01bca4e174e..b8595295134 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/s/screen/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/s/screen/term.go
@@ -45,7 +45,7 @@ func init() {
 		KeyLeft:      "\x1bOD",
 		KeyInsert:    "\x1b[2~",
 		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\b",
+		KeyBackspace: "\x7f",
 		KeyHome:      "\x1b[1~",
 		KeyEnd:       "\x1b[4~",
 		KeyPgUp:      "\x1b[5~",
@@ -105,7 +105,7 @@ func init() {
 		KeyLeft:      "\x1bOD",
 		KeyInsert:    "\x1b[2~",
 		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\b",
+		KeyBackspace: "\x7f",
 		KeyHome:      "\x1b[1~",
 		KeyEnd:       "\x1b[4~",
 		KeyPgUp:      "\x1b[5~",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/s/simpleterm/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/s/simpleterm/term.go
index 301ff2925c0..e14b265a5a6 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/s/simpleterm/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/s/simpleterm/term.go
@@ -6,129 +6,129 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	//  simpleterm 0.4.1
+	// aka simpleterm
 	terminfo.AddTerminfo(&terminfo.Terminfo{
-		Name:         "st",
-		Aliases:      []string{"stterm"},
-		Columns:      80,
-		Lines:        24,
-		Colors:       8,
-		Bell:         "\a",
-		Clear:        "\x1b[H\x1b[2J",
-		EnterCA:      "\x1b[?1049h",
-		ExitCA:       "\x1b[?1049l",
-		ShowCursor:   "\x1b[?12l\x1b[?25h",
-		HideCursor:   "\x1b[?25l",
-		AttrOff:      "\x1b[0m",
-		Underline:    "\x1b[4m",
-		Bold:         "\x1b[1m",
-		Italic:       "\x1b[3m",
-		Blink:        "\x1b[5m",
-		Reverse:      "\x1b[7m",
-		EnterKeypad:  "\x1b[?1h\x1b=",
-		ExitKeypad:   "\x1b[?1l\x1b>",
-		SetFg:        "\x1b[3%p1%dm",
-		SetBg:        "\x1b[4%p1%dm",
-		SetFgBg:      "\x1b[3%p1%d;4%p2%dm",
-		ResetFgBg:    "\x1b[39;49m",
-		PadChar:      "\x00",
-		AltChars:     "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
-		EnterAcs:     "\x1b(0",
-		ExitAcs:      "\x1b(B",
-		EnableAcs:    "\x1b)0",
-		Mouse:        "\x1b[M",
-		SetCursor:    "\x1b[%i%p1%d;%p2%dH",
-		CursorBack1:  "\b",
-		CursorUp1:    "\x1b[A",
-		KeyUp:        "\x1bOA",
-		KeyDown:      "\x1bOB",
-		KeyRight:     "\x1bOC",
-		KeyLeft:      "\x1bOD",
-		KeyInsert:    "\x1b[2~",
-		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\x7f",
-		KeyHome:      "\x1b[1~",
-		KeyEnd:       "\x1b[4~",
-		KeyPgUp:      "\x1b[5~",
-		KeyPgDn:      "\x1b[6~",
-		KeyF1:        "\x1bOP",
-		KeyF2:        "\x1bOQ",
-		KeyF3:        "\x1bOR",
-		KeyF4:        "\x1bOS",
-		KeyF5:        "\x1b[15~",
-		KeyF6:        "\x1b[17~",
-		KeyF7:        "\x1b[18~",
-		KeyF8:        "\x1b[19~",
-		KeyF9:        "\x1b[20~",
-		KeyF10:       "\x1b[21~",
-		KeyF11:       "\x1b[23~",
-		KeyF12:       "\x1b[24~",
-		KeyClear:     "\x1b[3;5~",
-		KeyBacktab:   "\x1b[Z",
-		Modifiers:    1,
-		AutoMargin:   true,
+		Name:          "st",
+		Aliases:       []string{"stterm"},
+		Columns:       80,
+		Lines:         24,
+		Colors:        8,
+		Bell:          "\a",
+		Clear:         "\x1b[H\x1b[2J",
+		EnterCA:       "\x1b[?1049h",
+		ExitCA:        "\x1b[?1049l",
+		ShowCursor:    "\x1b[?25h",
+		HideCursor:    "\x1b[?25l",
+		AttrOff:       "\x1b[0m",
+		Underline:     "\x1b[4m",
+		Bold:          "\x1b[1m",
+		Dim:           "\x1b[2m",
+		Italic:        "\x1b[3m",
+		Blink:         "\x1b[5m",
+		Reverse:       "\x1b[7m",
+		EnterKeypad:   "\x1b[?1h\x1b=",
+		ExitKeypad:    "\x1b[?1l\x1b>",
+		SetFg:         "\x1b[3%p1%dm",
+		SetBg:         "\x1b[4%p1%dm",
+		SetFgBg:       "\x1b[3%p1%d;4%p2%dm",
+		ResetFgBg:     "\x1b[39;49m",
+		AltChars:      "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
+		EnterAcs:      "\x1b(0",
+		ExitAcs:       "\x1b(B",
+		EnableAcs:     "\x1b)0",
+		StrikeThrough: "\x1b[9m",
+		Mouse:         "\x1b[M",
+		SetCursor:     "\x1b[%i%p1%d;%p2%dH",
+		CursorBack1:   "\b",
+		CursorUp1:     "\x1b[A",
+		KeyUp:         "\x1bOA",
+		KeyDown:       "\x1bOB",
+		KeyRight:      "\x1bOC",
+		KeyLeft:       "\x1bOD",
+		KeyInsert:     "\x1b[2~",
+		KeyDelete:     "\x1b[3~",
+		KeyBackspace:  "\x7f",
+		KeyHome:       "\x1b[1~",
+		KeyEnd:        "\x1b[4~",
+		KeyPgUp:       "\x1b[5~",
+		KeyPgDn:       "\x1b[6~",
+		KeyF1:         "\x1bOP",
+		KeyF2:         "\x1bOQ",
+		KeyF3:         "\x1bOR",
+		KeyF4:         "\x1bOS",
+		KeyF5:         "\x1b[15~",
+		KeyF6:         "\x1b[17~",
+		KeyF7:         "\x1b[18~",
+		KeyF8:         "\x1b[19~",
+		KeyF9:         "\x1b[20~",
+		KeyF10:        "\x1b[21~",
+		KeyF11:        "\x1b[23~",
+		KeyF12:        "\x1b[24~",
+		KeyClear:      "\x1b[3;5~",
+		Modifiers:     1,
+		AutoMargin:    true,
 	})
 
 	// simpleterm with 256 colors
 	terminfo.AddTerminfo(&terminfo.Terminfo{
-		Name:         "st-256color",
-		Aliases:      []string{"stterm-256color"},
-		Columns:      80,
-		Lines:        24,
-		Colors:       256,
-		Bell:         "\a",
-		Clear:        "\x1b[H\x1b[2J",
-		EnterCA:      "\x1b[?1049h",
-		ExitCA:       "\x1b[?1049l",
-		ShowCursor:   "\x1b[?12l\x1b[?25h",
-		HideCursor:   "\x1b[?25l",
-		AttrOff:      "\x1b[0m",
-		Underline:    "\x1b[4m",
-		Bold:         "\x1b[1m",
-		Italic:       "\x1b[3m",
-		Blink:        "\x1b[5m",
-		Reverse:      "\x1b[7m",
-		EnterKeypad:  "\x1b[?1h\x1b=",
-		ExitKeypad:   "\x1b[?1l\x1b>",
-		SetFg:        "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
-		SetBg:        "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
-		SetFgBg:      "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
-		ResetFgBg:    "\x1b[39;49m",
-		PadChar:      "\x00",
-		AltChars:     "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
-		EnterAcs:     "\x1b(0",
-		ExitAcs:      "\x1b(B",
-		EnableAcs:    "\x1b)0",
-		Mouse:        "\x1b[M",
-		SetCursor:    "\x1b[%i%p1%d;%p2%dH",
-		CursorBack1:  "\b",
-		CursorUp1:    "\x1b[A",
-		KeyUp:        "\x1bOA",
-		KeyDown:      "\x1bOB",
-		KeyRight:     "\x1bOC",
-		KeyLeft:      "\x1bOD",
-		KeyInsert:    "\x1b[2~",
-		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\x7f",
-		KeyHome:      "\x1b[1~",
-		KeyEnd:       "\x1b[4~",
-		KeyPgUp:      "\x1b[5~",
-		KeyPgDn:      "\x1b[6~",
-		KeyF1:        "\x1bOP",
-		KeyF2:        "\x1bOQ",
-		KeyF3:        "\x1bOR",
-		KeyF4:        "\x1bOS",
-		KeyF5:        "\x1b[15~",
-		KeyF6:        "\x1b[17~",
-		KeyF7:        "\x1b[18~",
-		KeyF8:        "\x1b[19~",
-		KeyF9:        "\x1b[20~",
-		KeyF10:       "\x1b[21~",
-		KeyF11:       "\x1b[23~",
-		KeyF12:       "\x1b[24~",
-		KeyClear:     "\x1b[3;5~",
-		KeyBacktab:   "\x1b[Z",
-		Modifiers:    1,
-		AutoMargin:   true,
+		Name:          "st-256color",
+		Aliases:       []string{"stterm-256color"},
+		Columns:       80,
+		Lines:         24,
+		Colors:        256,
+		Bell:          "\a",
+		Clear:         "\x1b[H\x1b[2J",
+		EnterCA:       "\x1b[?1049h",
+		ExitCA:        "\x1b[?1049l",
+		ShowCursor:    "\x1b[?25h",
+		HideCursor:    "\x1b[?25l",
+		AttrOff:       "\x1b[0m",
+		Underline:     "\x1b[4m",
+		Bold:          "\x1b[1m",
+		Dim:           "\x1b[2m",
+		Italic:        "\x1b[3m",
+		Blink:         "\x1b[5m",
+		Reverse:       "\x1b[7m",
+		EnterKeypad:   "\x1b[?1h\x1b=",
+		ExitKeypad:    "\x1b[?1l\x1b>",
+		SetFg:         "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
+		SetBg:         "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
+		SetFgBg:       "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m",
+		ResetFgBg:     "\x1b[39;49m",
+		AltChars:      "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
+		EnterAcs:      "\x1b(0",
+		ExitAcs:       "\x1b(B",
+		EnableAcs:     "\x1b)0",
+		StrikeThrough: "\x1b[9m",
+		Mouse:         "\x1b[M",
+		SetCursor:     "\x1b[%i%p1%d;%p2%dH",
+		CursorBack1:   "\b",
+		CursorUp1:     "\x1b[A",
+		KeyUp:         "\x1bOA",
+		KeyDown:       "\x1bOB",
+		KeyRight:      "\x1bOC",
+		KeyLeft:       "\x1bOD",
+		KeyInsert:     "\x1b[2~",
+		KeyDelete:     "\x1b[3~",
+		KeyBackspace:  "\x7f",
+		KeyHome:       "\x1b[1~",
+		KeyEnd:        "\x1b[4~",
+		KeyPgUp:       "\x1b[5~",
+		KeyPgDn:       "\x1b[6~",
+		KeyF1:         "\x1bOP",
+		KeyF2:         "\x1bOQ",
+		KeyF3:         "\x1bOR",
+		KeyF4:         "\x1bOS",
+		KeyF5:         "\x1b[15~",
+		KeyF6:         "\x1b[17~",
+		KeyF7:         "\x1b[18~",
+		KeyF8:         "\x1b[19~",
+		KeyF9:         "\x1b[20~",
+		KeyF10:        "\x1b[21~",
+		KeyF11:        "\x1b[23~",
+		KeyF12:        "\x1b[24~",
+		KeyClear:      "\x1b[3;5~",
+		Modifiers:     1,
+		AutoMargin:    true,
 	})
 }
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/t/tmux/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/t/tmux/term.go
index c42a9d676c5..5ecac38e8e4 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/t/tmux/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/t/tmux/term.go
@@ -8,62 +8,64 @@ func init() {
 
 	// tmux terminal multiplexer
 	terminfo.AddTerminfo(&terminfo.Terminfo{
-		Name:         "tmux",
-		Columns:      80,
-		Lines:        24,
-		Colors:       8,
-		Bell:         "\a",
-		Clear:        "\x1b[H\x1b[J",
-		EnterCA:      "\x1b[?1049h",
-		ExitCA:       "\x1b[?1049l",
-		ShowCursor:   "\x1b[34h\x1b[?25h",
-		HideCursor:   "\x1b[?25l",
-		AttrOff:      "\x1b[m\x0f",
-		Underline:    "\x1b[4m",
-		Bold:         "\x1b[1m",
-		Dim:          "\x1b[2m",
-		Italic:       "\x1b[3m",
-		Blink:        "\x1b[5m",
-		Reverse:      "\x1b[7m",
-		EnterKeypad:  "\x1b[?1h\x1b=",
-		ExitKeypad:   "\x1b[?1l\x1b>",
-		SetFg:        "\x1b[3%p1%dm",
-		SetBg:        "\x1b[4%p1%dm",
-		SetFgBg:      "\x1b[3%p1%d;4%p2%dm",
-		ResetFgBg:    "\x1b[39;49m",
-		PadChar:      "\x00",
-		AltChars:     "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
-		EnterAcs:     "\x0e",
-		ExitAcs:      "\x0f",
-		EnableAcs:    "\x1b(B\x1b)0",
-		Mouse:        "\x1b[M",
-		SetCursor:    "\x1b[%i%p1%d;%p2%dH",
-		CursorBack1:  "\b",
-		CursorUp1:    "\x1bM",
-		KeyUp:        "\x1bOA",
-		KeyDown:      "\x1bOB",
-		KeyRight:     "\x1bOC",
-		KeyLeft:      "\x1bOD",
-		KeyInsert:    "\x1b[2~",
-		KeyDelete:    "\x1b[3~",
-		KeyBackspace: "\b",
-		KeyHome:      "\x1b[1~",
-		KeyEnd:       "\x1b[4~",
-		KeyPgUp:      "\x1b[5~",
-		KeyPgDn:      "\x1b[6~",
-		KeyF1:        "\x1bOP",
-		KeyF2:        "\x1bOQ",
-		KeyF3:        "\x1bOR",
-		KeyF4:        "\x1bOS",
-		KeyF5:        "\x1b[15~",
-		KeyF6:        "\x1b[17~",
-		KeyF7:        "\x1b[18~",
-		KeyF8:        "\x1b[19~",
-		KeyF9:        "\x1b[20~",
-		KeyF10:       "\x1b[21~",
-		KeyF11:       "\x1b[23~",
-		KeyF12:       "\x1b[24~",
-		KeyBacktab:   "\x1b[Z",
-		AutoMargin:   true,
+		Name:          "tmux",
+		Columns:       80,
+		Lines:         24,
+		Colors:        8,
+		Bell:          "\a",
+		Clear:         "\x1b[H\x1b[J",
+		EnterCA:       "\x1b[?1049h",
+		ExitCA:        "\x1b[?1049l",
+		ShowCursor:    "\x1b[34h\x1b[?25h",
+		HideCursor:    "\x1b[?25l",
+		AttrOff:       "\x1b[m\x0f",
+		Underline:     "\x1b[4m",
+		Bold:          "\x1b[1m",
+		Dim:           "\x1b[2m",
+		Italic:        "\x1b[3m",
+		Blink:         "\x1b[5m",
+		Reverse:       "\x1b[7m",
+		EnterKeypad:   "\x1b[?1h\x1b=",
+		ExitKeypad:    "\x1b[?1l\x1b>",
+		SetFg:         "\x1b[3%p1%dm",
+		SetBg:         "\x1b[4%p1%dm",
+		SetFgBg:       "\x1b[3%p1%d;4%p2%dm",
+		ResetFgBg:     "\x1b[39;49m",
+		PadChar:       "\x00",
+		AltChars:      "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
+		EnterAcs:      "\x0e",
+		ExitAcs:       "\x0f",
+		EnableAcs:     "\x1b(B\x1b)0",
+		StrikeThrough: "\x1b[9m",
+		Mouse:         "\x1b[M",
+		SetCursor:     "\x1b[%i%p1%d;%p2%dH",
+		CursorBack1:   "\b",
+		CursorUp1:     "\x1bM",
+		KeyUp:         "\x1bOA",
+		KeyDown:       "\x1bOB",
+		KeyRight:      "\x1bOC",
+		KeyLeft:       "\x1bOD",
+		KeyInsert:     "\x1b[2~",
+		KeyDelete:     "\x1b[3~",
+		KeyBackspace:  "\x7f",
+		KeyHome:       "\x1b[1~",
+		KeyEnd:        "\x1b[4~",
+		KeyPgUp:       "\x1b[5~",
+		KeyPgDn:       "\x1b[6~",
+		KeyF1:         "\x1bOP",
+		KeyF2:         "\x1bOQ",
+		KeyF3:         "\x1bOR",
+		KeyF4:         "\x1bOS",
+		KeyF5:         "\x1b[15~",
+		KeyF6:         "\x1b[17~",
+		KeyF7:         "\x1b[18~",
+		KeyF8:         "\x1b[19~",
+		KeyF9:         "\x1b[20~",
+		KeyF10:        "\x1b[21~",
+		KeyF11:        "\x1b[23~",
+		KeyF12:        "\x1b[24~",
+		KeyBacktab:    "\x1b[Z",
+		Modifiers:     1,
+		AutoMargin:    true,
 	})
 }
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt100/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt100/term.go
index 7f423a6bc67..2bad42e97e0 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt100/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt100/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// dec vt100 (w/advanced video)
+	// DEC VT100 (w/advanced video)
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "vt100",
 		Aliases:           []string{"vt100-am"},
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt102/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt102/term.go
index 76ec0ebd598..1269b5b7f35 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt102/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt102/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// dec vt102
+	// DEC VT102
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "vt102",
 		Columns:           80,
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt220/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt220/term.go
index 0c49a3642dc..a637677a37b 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt220/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt220/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// dec vt220
+	// DEC VT220
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "vt220",
 		Aliases:           []string{"vt200"},
@@ -14,6 +14,8 @@ func init() {
 		Lines:             24,
 		Bell:              "\a",
 		Clear:             "\x1b[H\x1b[J",
+		ShowCursor:        "\x1b[?25h",
+		HideCursor:        "\x1b[?25l",
 		AttrOff:           "\x1b[m\x1b(B",
 		Underline:         "\x1b[4m",
 		Bold:              "\x1b[1m",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt320/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt320/term.go
index 3129b6e3748..e929ed45c6e 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt320/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt320/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// dec vt320 7 bit terminal
+	// DEC VT320 7 bit terminal
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "vt320",
 		Aliases:           []string{"vt300"},
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt400/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt400/term.go
index 25ca3960466..05406563d30 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt400/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt400/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// dec vt400 24x80 column autowrap
+	// DEC VT400 24x80 column autowrap
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "vt400",
 		Aliases:           []string{"vt400-24", "dec-vt400"},
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt52/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt52/term.go
index ba49f7f5ee1..5d193ed78aa 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt52/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/v/vt52/term.go
@@ -6,13 +6,15 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// dec vt52
+	// DEC VT52
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:         "vt52",
 		Columns:      80,
 		Lines:        24,
 		Bell:         "\a",
 		Clear:        "\x1bH\x1bJ",
+		EnterKeypad:  "\x1b=",
+		ExitKeypad:   "\x1b>",
 		PadChar:      "\x00",
 		AltChars:     "+h.k0affggolpnqprrss",
 		EnterAcs:     "\x1bF",
@@ -25,5 +27,13 @@ func init() {
 		KeyRight:     "\x1bC",
 		KeyLeft:      "\x1bD",
 		KeyBackspace: "\b",
+		KeyF1:        "\x1bP",
+		KeyF2:        "\x1bQ",
+		KeyF3:        "\x1bR",
+		KeyF5:        "\x1b?t",
+		KeyF6:        "\x1b?u",
+		KeyF7:        "\x1b?v",
+		KeyF8:        "\x1b?w",
+		KeyF9:        "\x1b?x",
 	})
 }
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy50/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy50/term.go
index 5b3db049c7a..beced62d5c2 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy50/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy50/term.go
@@ -20,7 +20,7 @@ func init() {
 		Dim:          "\x1b`7\x1b)",
 		Reverse:      "\x1b`6\x1b)",
 		PadChar:      "\x00",
-		AltChars:     "0wa_h[jukslrmqnxqzttuyv]wpxv",
+		AltChars:     "a;j5k3l2m1n8q:t4u9v=w0x6",
 		EnterAcs:     "\x1bH\x02",
 		ExitAcs:      "\x1bH\x03",
 		SetCursor:    "\x1b=%p1%' '%+%c%p2%' '%+%c",
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi/term.go
index 158b69d4f16..9b5cd7e7e0e 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi/term.go
@@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
 
 func init() {
 
-	// Wyse WY-99GT in ansi mode (int'l PC keyboard)
+	// Wyse WY-99GT in ANSI mode (int'l PC keyboard)
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "wy99-ansi",
 		Columns:           80,
@@ -62,7 +62,7 @@ func init() {
 		AutoMargin:        true,
 	})
 
-	// Wyse WY-99GT in ansi mode (US PC keyboard)
+	// Wyse WY-99GT in ANSI mode (US PC keyboard)
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "wy99a-ansi",
 		Columns:           80,
diff --git a/vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm/term.go b/vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm/term.go
index be50c94166d..fb9c75899e5 100644
--- a/vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm/term.go
+++ b/vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm/term.go
@@ -9,13 +9,14 @@ func init() {
 	// xterm terminal emulator (X Window System)
 	terminfo.AddTerminfo(&terminfo.Terminfo{
 		Name:              "xterm",
+		Aliases:           []string{"xterm-debian"},
 		Columns:           80,
 		Lines:             24,
 		Colors:            8,
 		Bell:              "\a",
 		Clear:             "\x1b[H\x1b[2J",
-		EnterCA:           "\x1b[?1049h",
-		ExitCA:            "\x1b[?1049l",
+		EnterCA:           "\x1b[?1049h\x1b[22;0;0t",
+		ExitCA:            "\x1b[?1049l\x1b[23;0;0t",
 		ShowCursor:        "\x1b[?12l\x1b[?25h",
 		HideCursor:        "\x1b[?25l",
 		AttrOff:           "\x1b(B\x1b[m",
@@ -36,7 +37,8 @@ func init() {
 		ExitAcs:           "\x1b(B",
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
-		Mouse:             "\x1b[M",
+		StrikeThrough:     "\x1b[9m",
+		Mouse:             "\x1b[<",
 		SetCursor:         "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:       "\b",
 		CursorUp1:         "\x1b[A",
@@ -46,7 +48,7 @@ func init() {
 		KeyLeft:           "\x1bOD",
 		KeyInsert:         "\x1b[2~",
 		KeyDelete:         "\x1b[3~",
-		KeyBackspace:      "\b",
+		KeyBackspace:      "\x7f",
 		KeyHome:           "\x1bOH",
 		KeyEnd:            "\x1bOF",
 		KeyPgUp:           "\x1b[5~",
@@ -76,8 +78,8 @@ func init() {
 		Colors:            88,
 		Bell:              "\a",
 		Clear:             "\x1b[H\x1b[2J",
-		EnterCA:           "\x1b[?1049h",
-		ExitCA:            "\x1b[?1049l",
+		EnterCA:           "\x1b[?1049h\x1b[22;0;0t",
+		ExitCA:            "\x1b[?1049l\x1b[23;0;0t",
 		ShowCursor:        "\x1b[?12l\x1b[?25h",
 		HideCursor:        "\x1b[?25l",
 		AttrOff:           "\x1b(B\x1b[m",
@@ -98,7 +100,8 @@ func init() {
 		ExitAcs:           "\x1b(B",
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
-		Mouse:             "\x1b[M",
+		StrikeThrough:     "\x1b[9m",
+		Mouse:             "\x1b[<",
 		SetCursor:         "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:       "\b",
 		CursorUp1:         "\x1b[A",
@@ -108,7 +111,7 @@ func init() {
 		KeyLeft:           "\x1bOD",
 		KeyInsert:         "\x1b[2~",
 		KeyDelete:         "\x1b[3~",
-		KeyBackspace:      "\b",
+		KeyBackspace:      "\x7f",
 		KeyHome:           "\x1bOH",
 		KeyEnd:            "\x1bOF",
 		KeyPgUp:           "\x1b[5~",
@@ -138,8 +141,8 @@ func init() {
 		Colors:            256,
 		Bell:              "\a",
 		Clear:             "\x1b[H\x1b[2J",
-		EnterCA:           "\x1b[?1049h",
-		ExitCA:            "\x1b[?1049l",
+		EnterCA:           "\x1b[?1049h\x1b[22;0;0t",
+		ExitCA:            "\x1b[?1049l\x1b[23;0;0t",
 		ShowCursor:        "\x1b[?12l\x1b[?25h",
 		HideCursor:        "\x1b[?25l",
 		AttrOff:           "\x1b(B\x1b[m",
@@ -160,7 +163,8 @@ func init() {
 		ExitAcs:           "\x1b(B",
 		EnableAutoMargin:  "\x1b[?7h",
 		DisableAutoMargin: "\x1b[?7l",
-		Mouse:             "\x1b[M",
+		StrikeThrough:     "\x1b[9m",
+		Mouse:             "\x1b[<",
 		SetCursor:         "\x1b[%i%p1%d;%p2%dH",
 		CursorBack1:       "\b",
 		CursorUp1:         "\x1b[A",
@@ -170,7 +174,7 @@ func init() {
 		KeyLeft:           "\x1bOD",
 		KeyInsert:         "\x1b[2~",
 		KeyDelete:         "\x1b[3~",
-		KeyBackspace:      "\b",
+		KeyBackspace:      "\x7f",
 		KeyHome:           "\x1bOH",
 		KeyEnd:            "\x1bOF",
 		KeyPgUp:           "\x1b[5~",
diff --git a/vendor/github.com/gdamore/tcell/v2/tscreen.go b/vendor/github.com/gdamore/tcell/v2/tscreen.go
index 7ccbbebb816..498f744fdac 100644
--- a/vendor/github.com/gdamore/tcell/v2/tscreen.go
+++ b/vendor/github.com/gdamore/tcell/v2/tscreen.go
@@ -1822,7 +1822,14 @@ func (t *tScreen) engage() error {
 	}
 
 	ti := t.ti
-	t.TPuts(ti.EnterCA)
+	if os.Getenv("TCELL_ALTSCREEN") != "disable" {
+		// Technically this may not be right, but every terminal we know about
+		// (even Wyse 60) uses this to enter the alternate screen buffer, and
+		// possibly save and restore the window title and/or icon.
+		// (In theory there could be terminals that don't support X,Y cursor
+		// positions without a setup command, but we don't support them.)
+		t.TPuts(ti.EnterCA)
+	}
 	t.TPuts(ti.EnterKeypad)
 	t.TPuts(ti.HideCursor)
 	t.TPuts(ti.EnableAcs)
@@ -1865,10 +1872,12 @@ func (t *tScreen) disengage() {
 	}
 	t.TPuts(ti.ResetFgBg)
 	t.TPuts(ti.AttrOff)
-	t.TPuts(ti.Clear)
-	t.TPuts(ti.ExitCA)
 	t.TPuts(ti.ExitKeypad)
 	t.TPuts(ti.EnableAutoMargin)
+	if os.Getenv("TCELL_ALTSCREEN") != "disable" {
+		t.TPuts(ti.Clear) // only needed if ExitCA is empty
+		t.TPuts(ti.ExitCA)
+	}
 	t.enableMouse(0)
 	t.enablePasting(false)
 	t.disableFocusReporting()
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 6431d86627b..56662374198 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -40,7 +40,7 @@ github.com/fsmiamoto/git-todo-parser/todo
 # github.com/gdamore/encoding v1.0.0
 ## explicit; go 1.9
 github.com/gdamore/encoding
-# github.com/gdamore/tcell/v2 v2.7.1
+# github.com/gdamore/tcell/v2 v2.7.3
 ## explicit; go 1.12
 github.com/gdamore/tcell/v2
 github.com/gdamore/tcell/v2/terminfo
@@ -172,7 +172,7 @@ github.com/jesseduffield/go-git/v5/utils/merkletrie/filesystem
 github.com/jesseduffield/go-git/v5/utils/merkletrie/index
 github.com/jesseduffield/go-git/v5/utils/merkletrie/internal/frame
 github.com/jesseduffield/go-git/v5/utils/merkletrie/noder
-# github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39
+# github.com/jesseduffield/gocui v0.3.1-0.20240303173746-f2b0f1f68dd8
 ## explicit; go 1.12
 github.com/jesseduffield/gocui
 # github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10


Test patch: