1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-31 14:24:25 +03:00

Bump gocui

The main change here is to bump tcell to v2.7.1, which should fix problems with
multibyte characters on Windows.
This commit is contained in:
Stefan Haller
2024-03-01 14:05:43 +01:00
parent af56065dd6
commit ad0394aebe
74 changed files with 1929 additions and 1824 deletions

10
go.mod
View File

@ -9,14 +9,14 @@ require (
github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
github.com/creack/pty v1.1.11 github.com/creack/pty v1.1.11
github.com/fsmiamoto/git-todo-parser v0.0.5 github.com/fsmiamoto/git-todo-parser v0.0.5
github.com/gdamore/tcell/v2 v2.7.1-0.20240121011954-0393f5eb0b1a github.com/gdamore/tcell/v2 v2.7.1
github.com/go-errors/errors v1.5.1 github.com/go-errors/errors v1.5.1
github.com/gookit/color v1.4.2 github.com/gookit/color v1.4.2
github.com/imdario/mergo v0.3.11 github.com/imdario/mergo v0.3.11
github.com/integrii/flaggy v1.4.0 github.com/integrii/flaggy v1.4.0
github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68 github.com/jesseduffield/generics v0.0.0-20220320043834-727e535cbe68
github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d github.com/jesseduffield/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d
github.com/jesseduffield/gocui v0.3.1-0.20240129213945-26fc8669eb5b github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39
github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10 github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10
github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5 github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5
github.com/jesseduffield/minimal/gitignore v0.3.3-0.20211018110810-9cde264e6b1e github.com/jesseduffield/minimal/gitignore v0.3.3-0.20211018110810-9cde264e6b1e
@ -68,14 +68,14 @@ require (
github.com/onsi/gomega v1.7.1 // indirect github.com/onsi/gomega v1.7.1 // indirect
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rivo/uniseg v0.4.6 // indirect github.com/rivo/uniseg v0.4.7 // indirect
github.com/sergi/go-diff v1.1.0 // indirect github.com/sergi/go-diff v1.1.0 // indirect
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
github.com/xanzy/ssh-agent v0.2.1 // indirect github.com/xanzy/ssh-agent v0.2.1 // indirect
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
golang.org/x/net v0.7.0 // indirect golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.16.0 // indirect golang.org/x/sys v0.17.0 // indirect
golang.org/x/term v0.16.0 // indirect golang.org/x/term v0.17.0 // indirect
golang.org/x/text v0.14.0 // indirect golang.org/x/text v0.14.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
) )

23
go.sum
View File

@ -89,9 +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/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 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
github.com/gdamore/tcell/v2 v2.7.1-0.20240103180601-96e29905643b/go.mod h1:hl/KtAANGBecfIPxk+FzKvThTqI84oplgbPEmVX60b8= github.com/gdamore/tcell/v2 v2.7.1 h1:TiCcmpWHiAU7F0rA2I3S2Y4mmLmO9KHxJ7E1QhYzQbc=
github.com/gdamore/tcell/v2 v2.7.1-0.20240121011954-0393f5eb0b1a h1:IgatwqPZL0RPblLezzibmx8GgARDjOQOvrLpCWLmZak= github.com/gdamore/tcell/v2 v2.7.1/go.mod h1:dSXtXTSK0VsW1biw65DZLZ2NKr7j0qP/0J7ONmsraWg=
github.com/gdamore/tcell/v2 v2.7.1-0.20240121011954-0393f5eb0b1a/go.mod h1:hl/KtAANGBecfIPxk+FzKvThTqI84oplgbPEmVX60b8=
github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=
github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
github.com/go-errors/errors v1.0.2/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs= github.com/go-errors/errors v1.0.2/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs=
@ -188,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/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 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/go-git/v5 v5.1.2-0.20221018185014-fdd53fef665d/go.mod h1:nGNEErzf+NRznT+N2SWqmHnDnF9aLgANB1CUNEan09o=
github.com/jesseduffield/gocui v0.3.1-0.20240129213945-26fc8669eb5b h1:QASuIUc76BuFmSuzzqwzjpsn23r8ybfDqbKsY2WzTrE= github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39 h1:SOgE243njnEvUr2yjMyPaEzajwb0LscbfYlnYfgBpoY=
github.com/jesseduffield/gocui v0.3.1-0.20240129213945-26fc8669eb5b/go.mod h1:9zkyjnUmdL3+sUknJrQy/3HweUu8mVln/3J2wRF/l8M= github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39/go.mod h1:7WDm73sIFB9Phn7rxAsv+ttmYDsQcTM4gEb6B+XmVuQ=
github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10 h1:jmpr7KpX2+2GRiE91zTgfq49QvgiqB0nbmlwZ8UnOx0= 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/kill v0.0.0-20220618033138-bfbe04675d10/go.mod h1:aA97kHeNA+sj2Hbki0pvLslmE4CbDyhBeSSTUUnOuVo=
github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5 h1:CDuQmfOjAtb1Gms6a1p5L2P8RhbLUq5t8aL7PiQd2uY= github.com/jesseduffield/lazycore v0.0.0-20221012050358-03d2e40243c5 h1:CDuQmfOjAtb1Gms6a1p5L2P8RhbLUq5t8aL7PiQd2uY=
@ -264,8 +263,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rivo/uniseg v0.4.6 h1:Sovz9sDSwbOz9tgUy8JpT+KgCkPYJEN/oYzlJiYTNLg= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.6/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI=
github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
@ -471,15 +470,13 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

View File

@ -1,4 +1,4 @@
// Copyright 2023 The TCell Authors // Copyright 2024 The TCell Authors
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use file except in compliance with the License. // you may not use file except in compliance with the License.
@ -16,6 +16,7 @@ package tcell
import ( import (
"os" "os"
"reflect"
runewidth "github.com/mattn/go-runewidth" runewidth "github.com/mattn/go-runewidth"
) )
@ -53,8 +54,14 @@ func (cb *CellBuffer) SetContent(x int, y int,
if x >= 0 && y >= 0 && x < cb.w && y < cb.h { if x >= 0 && y >= 0 && x < cb.w && y < cb.h {
c := &cb.cells[(y*cb.w)+x] c := &cb.cells[(y*cb.w)+x]
for i := 1; i < c.width; i++ { // Wide characters: we want to mark the "wide" cells
cb.SetDirty(x+i, y, true) // dirty as well as the base cell, to make sure we consider
// both cells as dirty together. We only need to do this
// if we're changing content
if (c.width > 0) && (mainc != c.currMain || !reflect.DeepEqual(combc, c.currComb)) {
for i := 0; i < c.width; i++ {
cb.SetDirty(x+i, y, true)
}
} }
c.currComb = append([]rune{}, combc...) c.currComb = append([]rune{}, combc...)

View File

@ -1,7 +1,7 @@
//go:build windows //go:build windows
// +build windows // +build windows
// Copyright 2023 The TCell Authors // Copyright 2024 The TCell Authors
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use file except in compliance with the License. // you may not use file except in compliance with the License.
@ -51,6 +51,7 @@ type cScreen struct {
oimode uint32 oimode uint32
oomode uint32 oomode uint32
cells CellBuffer cells CellBuffer
focusEnable bool
mouseEnabled bool mouseEnabled bool
wg sync.WaitGroup wg sync.WaitGroup
@ -280,9 +281,17 @@ func (s *cScreen) EnablePaste() {}
func (s *cScreen) DisablePaste() {} func (s *cScreen) DisablePaste() {}
func (s *cScreen) EnableFocus() {} func (s *cScreen) EnableFocus() {
s.Lock()
s.focusEnable = true
s.Unlock()
}
func (s *cScreen) DisableFocus() {} func (s *cScreen) DisableFocus() {
s.Lock()
s.focusEnable = false
s.Unlock()
}
func (s *cScreen) Fini() { func (s *cScreen) Fini() {
s.finiOnce.Do(func() { s.finiOnce.Do(func() {
@ -448,8 +457,8 @@ const (
keyEvent uint16 = 1 keyEvent uint16 = 1
mouseEvent uint16 = 2 mouseEvent uint16 = 2
resizeEvent uint16 = 4 resizeEvent uint16 = 4
// menuEvent uint16 = 8 // don't use menuEvent uint16 = 8 // don't use
// focusEvent uint16 = 16 // don't use focusEvent uint16 = 16
) )
type mouseRecord struct { type mouseRecord struct {
@ -460,6 +469,10 @@ type mouseRecord struct {
flags uint32 flags uint32
} }
type focusRecord struct {
focused int32 // actually BOOL
}
const ( const (
mouseHWheeled uint32 = 0x8 mouseHWheeled uint32 = 0x8
mouseVWheeled uint32 = 0x4 mouseVWheeled uint32 = 0x4
@ -754,6 +767,16 @@ func (s *cScreen) getConsoleInput() error {
rrec.y = geti16(rec.data[2:]) rrec.y = geti16(rec.data[2:])
s.postEvent(NewEventResize(int(rrec.x), int(rrec.y))) s.postEvent(NewEventResize(int(rrec.x), int(rrec.y)))
case focusEvent:
var focus focusRecord
focus.focused = geti32(rec.data[0:])
s.Lock()
enabled := s.focusEnable
s.Unlock()
if enabled {
s.postEvent(NewEventFocus(focus.focused != 0))
}
default: default:
} }
default: default:
@ -1271,5 +1294,5 @@ func (s *cScreen) EventQ() chan Event {
} }
func (s *cScreen) StopQ() <-chan struct{} { func (s *cScreen) StopQ() <-chan struct{} {
return s.stopQ return s.quit
} }

View File

@ -24,8 +24,6 @@ func init() {
ResetFgBg: "\x1b[32m\x1b[40m", ResetFgBg: "\x1b[32m\x1b[40m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "jjkkllmmnnqqttuuvvwwxx", AltChars: "jjkkllmmnnqqttuuvvwwxx",
EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B",
SetCursor: "\x1b[%i%p1%d;%p2%dH", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorBack1: "\b", CursorBack1: "\b",
CursorUp1: "\x1b[A", CursorUp1: "\x1b[A",

View File

@ -8,62 +8,63 @@ func init() {
// alacritty terminal emulator // alacritty terminal emulator
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "alacritty", Name: "alacritty",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 256, Colors: 256,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b[?1049h\x1b[22;0;0t", EnterCA: "\x1b[?1049h\x1b[22;0;0t",
ExitCA: "\x1b[?1049l\x1b[23;0;0t", ExitCA: "\x1b[?1049l\x1b[23;0;0t",
ShowCursor: "\x1b[?12l\x1b[?25h", ShowCursor: "\x1b[?12l\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b(B\x1b[m", AttrOff: "\x1b(B\x1b[m",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Reverse: "\x1b[7m",
Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=",
EnterKeypad: "\x1b[?1h\x1b=", ExitKeypad: "\x1b[?1l\x1b>",
ExitKeypad: "\x1b[?1l\x1b>", SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
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",
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",
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",
ResetFgBg: "\x1b[39;49m", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", EnterAcs: "\x1b(0",
EnterAcs: "\x1b(0", ExitAcs: "\x1b(B",
ExitAcs: "\x1b(B", EnableAutoMargin: "\x1b[?7h",
StrikeThrough: "\x1b[9m", DisableAutoMargin: "\x1b[?7l",
Mouse: "\x1b[<", StrikeThrough: "\x1b[9m",
SetCursor: "\x1b[%i%p1%d;%p2%dH", Mouse: "\x1b[M",
CursorBack1: "\b", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorUp1: "\x1b[A", CursorBack1: "\b",
KeyUp: "\x1bOA", CursorUp1: "\x1b[A",
KeyDown: "\x1bOB", KeyUp: "\x1bOA",
KeyRight: "\x1bOC", KeyDown: "\x1bOB",
KeyLeft: "\x1bOD", KeyRight: "\x1bOC",
KeyInsert: "\x1b[2~", KeyLeft: "\x1bOD",
KeyDelete: "\x1b[3~", KeyInsert: "\x1b[2~",
KeyBackspace: "\u007f", KeyDelete: "\x1b[3~",
KeyHome: "\x1bOH", KeyBackspace: "\x7f",
KeyEnd: "\x1bOF", KeyHome: "\x1bOH",
KeyPgUp: "\x1b[5~", KeyEnd: "\x1bOF",
KeyPgDn: "\x1b[6~", KeyPgUp: "\x1b[5~",
KeyF1: "\x1bOP", KeyPgDn: "\x1b[6~",
KeyF2: "\x1bOQ", KeyF1: "\x1bOP",
KeyF3: "\x1bOR", KeyF2: "\x1bOQ",
KeyF4: "\x1bOS", KeyF3: "\x1bOR",
KeyF5: "\x1b[15~", KeyF4: "\x1bOS",
KeyF6: "\x1b[17~", KeyF5: "\x1b[15~",
KeyF7: "\x1b[18~", KeyF6: "\x1b[17~",
KeyF8: "\x1b[19~", KeyF7: "\x1b[18~",
KeyF9: "\x1b[20~", KeyF8: "\x1b[19~",
KeyF10: "\x1b[21~", KeyF9: "\x1b[20~",
KeyF11: "\x1b[23~", KeyF10: "\x1b[21~",
KeyF12: "\x1b[24~", KeyF11: "\x1b[23~",
KeyBacktab: "\x1b[Z", KeyF12: "\x1b[24~",
Modifiers: 1, KeyBacktab: "\x1b[Z",
AutoMargin: true, Modifiers: 1,
AutoMargin: true,
}) })
} }

View File

@ -6,7 +6,7 @@ import "github.com/gdamore/tcell/v2/terminfo"
func init() { func init() {
// ANSI emulation for Cygwin // ansi emulation for Cygwin
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "cygwin", Name: "cygwin",
Colors: 8, Colors: 8,

View File

@ -8,62 +8,64 @@ func init() {
// CDE desktop terminal // CDE desktop terminal
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "dtterm", Name: "dtterm",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 8, Colors: 8,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J", Clear: "\x1b[H\x1b[J",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x0f", AttrOff: "\x1b[m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b(B\x1b)0", EnableAcs: "\x1b(B\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1b[A", CursorBack1: "\b",
KeyDown: "\x1b[B", CursorUp1: "\x1b[A",
KeyRight: "\x1b[C", KeyUp: "\x1b[A",
KeyLeft: "\x1b[D", KeyDown: "\x1b[B",
KeyInsert: "\x1b[2~", KeyRight: "\x1b[C",
KeyDelete: "\x1b[3~", KeyLeft: "\x1b[D",
KeyBackspace: "\b", KeyInsert: "\x1b[2~",
KeyPgUp: "\x1b[5~", KeyDelete: "\x1b[3~",
KeyPgDn: "\x1b[6~", KeyBackspace: "\b",
KeyF1: "\x1b[11~", KeyPgUp: "\x1b[5~",
KeyF2: "\x1b[12~", KeyPgDn: "\x1b[6~",
KeyF3: "\x1b[13~", KeyF1: "\x1b[11~",
KeyF4: "\x1b[14~", KeyF2: "\x1b[12~",
KeyF5: "\x1b[15~", KeyF3: "\x1b[13~",
KeyF6: "\x1b[17~", KeyF4: "\x1b[14~",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF13: "\x1b[25~", KeyF11: "\x1b[23~",
KeyF14: "\x1b[26~", KeyF12: "\x1b[24~",
KeyF15: "\x1b[28~", KeyF13: "\x1b[25~",
KeyF16: "\x1b[29~", KeyF14: "\x1b[26~",
KeyF17: "\x1b[31~", KeyF15: "\x1b[28~",
KeyF18: "\x1b[32~", KeyF16: "\x1b[29~",
KeyF19: "\x1b[33~", KeyF17: "\x1b[31~",
KeyF20: "\x1b[34~", KeyF18: "\x1b[32~",
KeyHelp: "\x1b[28~", KeyF19: "\x1b[33~",
AutoMargin: true, KeyF20: "\x1b[34~",
KeyHelp: "\x1b[28~",
AutoMargin: true,
}) })
} }

View File

@ -53,7 +53,7 @@ func init() {
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\x7f",
KeyHome: "\x1b[1~", KeyHome: "\x1b[1~",
KeyEnd: "\x1b[4~", KeyEnd: "\x1b[4~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",

View File

@ -1,4 +1,4 @@
// Copyright 2020 The TCell Authors // Copyright 2024 The TCell Authors
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use file except in compliance with the License. // you may not use file except in compliance with the License.
@ -39,7 +39,6 @@ import (
_ "github.com/gdamore/tcell/v2/terminfo/s/screen" _ "github.com/gdamore/tcell/v2/terminfo/s/screen"
_ "github.com/gdamore/tcell/v2/terminfo/s/simpleterm" _ "github.com/gdamore/tcell/v2/terminfo/s/simpleterm"
_ "github.com/gdamore/tcell/v2/terminfo/s/sun" _ "github.com/gdamore/tcell/v2/terminfo/s/sun"
_ "github.com/gdamore/tcell/v2/terminfo/t/termite"
_ "github.com/gdamore/tcell/v2/terminfo/t/tmux" _ "github.com/gdamore/tcell/v2/terminfo/t/tmux"
_ "github.com/gdamore/tcell/v2/terminfo/v/vt100" _ "github.com/gdamore/tcell/v2/terminfo/v/vt100"
_ "github.com/gdamore/tcell/v2/terminfo/v/vt102" _ "github.com/gdamore/tcell/v2/terminfo/v/vt102"
@ -54,5 +53,4 @@ import (
_ "github.com/gdamore/tcell/v2/terminfo/x/xfce" _ "github.com/gdamore/tcell/v2/terminfo/x/xfce"
_ "github.com/gdamore/tcell/v2/terminfo/x/xterm" _ "github.com/gdamore/tcell/v2/terminfo/x/xterm"
_ "github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty" _ "github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty"
_ "github.com/gdamore/tcell/v2/terminfo/x/xterm_termite"
) )

View File

@ -8,123 +8,127 @@ func init() {
// GNOME Terminal // GNOME Terminal
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "gnome", Name: "gnome",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 8, Colors: 8,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b7\x1b[?47h", EnterCA: "\x1b7\x1b[?47h",
ExitCA: "\x1b[2J\x1b[?47l\x1b8", ExitCA: "\x1b[2J\x1b[?47l\x1b8",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[0m\x0f", AttrOff: "\x1b[0m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
Mouse: "\x1b[M", EnableAutoMargin: "\x1b[?7h",
SetCursor: "\x1b[%i%p1%d;%p2%dH", DisableAutoMargin: "\x1b[?7l",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyInsert: "\x1b[2~", KeyRight: "\x1bOC",
KeyDelete: "\x1b[3~", KeyLeft: "\x1bOD",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1bOH", KeyDelete: "\x1b[3~",
KeyEnd: "\x1bOF", KeyBackspace: "\x7f",
KeyPgUp: "\x1b[5~", KeyHome: "\x1bOH",
KeyPgDn: "\x1b[6~", KeyEnd: "\x1bOF",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[15~", KeyF3: "\x1bOR",
KeyF6: "\x1b[17~", KeyF4: "\x1bOS",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyBacktab: "\x1b[Z", KeyF11: "\x1b[23~",
Modifiers: 1, KeyF12: "\x1b[24~",
AutoMargin: true, KeyBacktab: "\x1b[Z",
Modifiers: 1,
AutoMargin: true,
}) })
// GNOME Terminal with xterm 256-colors // GNOME Terminal with xterm 256-colors
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "gnome-256color", Name: "gnome-256color",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 256, Colors: 256,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b7\x1b[?47h", EnterCA: "\x1b7\x1b[?47h",
ExitCA: "\x1b[2J\x1b[?47l\x1b8", ExitCA: "\x1b[2J\x1b[?47l\x1b8",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[0m\x0f", AttrOff: "\x1b[0m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", 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", 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", 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", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
Mouse: "\x1b[M", EnableAutoMargin: "\x1b[?7h",
SetCursor: "\x1b[%i%p1%d;%p2%dH", DisableAutoMargin: "\x1b[?7l",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyInsert: "\x1b[2~", KeyRight: "\x1bOC",
KeyDelete: "\x1b[3~", KeyLeft: "\x1bOD",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1bOH", KeyDelete: "\x1b[3~",
KeyEnd: "\x1bOF", KeyBackspace: "\x7f",
KeyPgUp: "\x1b[5~", KeyHome: "\x1bOH",
KeyPgDn: "\x1b[6~", KeyEnd: "\x1bOF",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[15~", KeyF3: "\x1bOR",
KeyF6: "\x1b[17~", KeyF4: "\x1bOS",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyBacktab: "\x1b[Z", KeyF11: "\x1b[23~",
Modifiers: 1, KeyF12: "\x1b[24~",
AutoMargin: true, KeyBacktab: "\x1b[Z",
Modifiers: 1,
AutoMargin: true,
}) })
} }

View File

@ -14,7 +14,7 @@ func init() {
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b&a0y0C\x1bJ", Clear: "\x1b&a0y0C\x1bJ",
AttrOff: "\x1b&d@\x0f", AttrOff: "\x1b&d@",
Underline: "\x1b&dD", Underline: "\x1b&dD",
Bold: "\x1b&dB", Bold: "\x1b&dB",
Dim: "\x1b&dH", Dim: "\x1b&dH",

View File

@ -8,123 +8,223 @@ func init() {
// KDE console window // KDE console window
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "konsole", Name: "konsole",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 8, Colors: 8,
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b7\x1b[?47h", EnterCA: "\x1b7\x1b[?47h",
ExitCA: "\x1b[2J\x1b[?47l\x1b8", ExitCA: "\x1b[2J\x1b[?47l\x1b8",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[0m\x0f", AttrOff: "\x1b[0m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Italic: "\x1b[3m",
Italic: "\x1b[3m", Blink: "\x1b[5m",
Blink: "\x1b[5m", Reverse: "\x1b[7m",
Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=",
EnterKeypad: "\x1b[?1h\x1b=", ExitKeypad: "\x1b[?1l\x1b>",
ExitKeypad: "\x1b[?1l\x1b>", SetFg: "\x1b[3%p1%dm",
SetFg: "\x1b[3%p1%dm", SetBg: "\x1b[4%p1%dm",
SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", ResetFgBg: "\x1b[39;49m",
ResetFgBg: "\x1b[39;49m", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", EnterAcs: "\x0e",
EnterAcs: "\x0e", ExitAcs: "\x0f",
ExitAcs: "\x0f", EnableAcs: "\x1b)0",
EnableAcs: "\x1b)0", EnableAutoMargin: "\x1b[?7h",
StrikeThrough: "\x1b[9m", DisableAutoMargin: "\x1b[?7l",
Mouse: "\x1b[<", Mouse: "\x1b[M",
SetCursor: "\x1b[%i%p1%d;%p2%dH", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorBack1: "\b", CursorBack1: "\b",
CursorUp1: "\x1b[A", CursorUp1: "\x1b[A",
KeyUp: "\x1bOA", KeyUp: "\x1bOA",
KeyDown: "\x1bOB", KeyDown: "\x1bOB",
KeyRight: "\x1bOC", KeyRight: "\x1bOC",
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\x7f",
KeyHome: "\x1bOH", KeyHome: "\x1bOH",
KeyEnd: "\x1bOF", KeyEnd: "\x1bOF",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
KeyPgDn: "\x1b[6~", KeyPgDn: "\x1b[6~",
KeyF1: "\x1bOP", KeyF1: "\x1bOP",
KeyF2: "\x1bOQ", KeyF2: "\x1bOQ",
KeyF3: "\x1bOR", KeyF3: "\x1bOR",
KeyF4: "\x1bOS", KeyF4: "\x1bOS",
KeyF5: "\x1b[15~", KeyF5: "\x1b[15~",
KeyF6: "\x1b[17~", KeyF6: "\x1b[17~",
KeyF7: "\x1b[18~", KeyF7: "\x1b[18~",
KeyF8: "\x1b[19~", KeyF8: "\x1b[19~",
KeyF9: "\x1b[20~", KeyF9: "\x1b[20~",
KeyF10: "\x1b[21~", KeyF10: "\x1b[21~",
KeyF11: "\x1b[23~", KeyF11: "\x1b[23~",
KeyF12: "\x1b[24~", KeyF12: "\x1b[24~",
KeyBacktab: "\x1b[Z", KeyF13: "\x1bO2P",
Modifiers: 1, KeyF14: "\x1bO2Q",
AutoMargin: true, 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",
AutoMargin: true,
}) })
// KDE console window with xterm 256-colors // KDE console window with xterm 256-colors
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "konsole-256color", Name: "konsole-256color",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 256, Colors: 256,
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b7\x1b[?47h", EnterCA: "\x1b7\x1b[?47h",
ExitCA: "\x1b[2J\x1b[?47l\x1b8", ExitCA: "\x1b[2J\x1b[?47l\x1b8",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[0m\x0f", AttrOff: "\x1b[0m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Italic: "\x1b[3m",
Italic: "\x1b[3m", Blink: "\x1b[5m",
Blink: "\x1b[5m", Reverse: "\x1b[7m",
Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=",
EnterKeypad: "\x1b[?1h\x1b=", ExitKeypad: "\x1b[?1l\x1b>",
ExitKeypad: "\x1b[?1l\x1b>", SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
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",
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",
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",
ResetFgBg: "\x1b[39;49m", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", EnterAcs: "\x0e",
EnterAcs: "\x0e", ExitAcs: "\x0f",
ExitAcs: "\x0f", EnableAcs: "\x1b)0",
EnableAcs: "\x1b)0", EnableAutoMargin: "\x1b[?7h",
StrikeThrough: "\x1b[9m", DisableAutoMargin: "\x1b[?7l",
Mouse: "\x1b[<", Mouse: "\x1b[M",
SetCursor: "\x1b[%i%p1%d;%p2%dH", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorBack1: "\b", CursorBack1: "\b",
CursorUp1: "\x1b[A", CursorUp1: "\x1b[A",
KeyUp: "\x1bOA", KeyUp: "\x1bOA",
KeyDown: "\x1bOB", KeyDown: "\x1bOB",
KeyRight: "\x1bOC", KeyRight: "\x1bOC",
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\x7f",
KeyHome: "\x1bOH", KeyHome: "\x1bOH",
KeyEnd: "\x1bOF", KeyEnd: "\x1bOF",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
KeyPgDn: "\x1b[6~", KeyPgDn: "\x1b[6~",
KeyF1: "\x1bOP", KeyF1: "\x1bOP",
KeyF2: "\x1bOQ", KeyF2: "\x1bOQ",
KeyF3: "\x1bOR", KeyF3: "\x1bOR",
KeyF4: "\x1bOS", KeyF4: "\x1bOS",
KeyF5: "\x1b[15~", KeyF5: "\x1b[15~",
KeyF6: "\x1b[17~", KeyF6: "\x1b[17~",
KeyF7: "\x1b[18~", KeyF7: "\x1b[18~",
KeyF8: "\x1b[19~", KeyF8: "\x1b[19~",
KeyF9: "\x1b[20~", KeyF9: "\x1b[20~",
KeyF10: "\x1b[21~", KeyF10: "\x1b[21~",
KeyF11: "\x1b[23~", KeyF11: "\x1b[23~",
KeyF12: "\x1b[24~", KeyF12: "\x1b[24~",
KeyBacktab: "\x1b[Z", KeyF13: "\x1bO2P",
Modifiers: 1, KeyF14: "\x1bO2Q",
AutoMargin: true, 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",
AutoMargin: true,
}) })
} }

View File

@ -8,61 +8,63 @@ func init() {
// kterm kanji terminal emulator (X window system) // kterm kanji terminal emulator (X window system)
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "kterm", Name: "kterm",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 8, Colors: 8,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b7\x1b[?47h", EnterCA: "\x1b7\x1b[?47h",
ExitCA: "\x1b[2J\x1b[?47l\x1b8", ExitCA: "\x1b[2J\x1b[?47l\x1b8",
AttrOff: "\x1b[m\x1b(B", AttrOff: "\x1b[m\x1b(B",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aajjkkllmmnnooppqqrrssttuuvvwwxx~~", AltChars: "``aajjkkllmmnnooppqqrrssttuuvvwwxx~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
Mouse: "\x1b[M", EnableAutoMargin: "\x1b[?7h",
SetCursor: "\x1b[%i%p1%d;%p2%dH", DisableAutoMargin: "\x1b[?7l",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyInsert: "\x1b[2~", KeyRight: "\x1bOC",
KeyDelete: "\x1b[3~", KeyLeft: "\x1bOD",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyPgUp: "\x1b[5~", KeyDelete: "\x1b[3~",
KeyPgDn: "\x1b[6~", KeyBackspace: "\b",
KeyF1: "\x1b[11~", KeyPgUp: "\x1b[5~",
KeyF2: "\x1b[12~", KeyPgDn: "\x1b[6~",
KeyF3: "\x1b[13~", KeyF1: "\x1b[11~",
KeyF4: "\x1b[14~", KeyF2: "\x1b[12~",
KeyF5: "\x1b[15~", KeyF3: "\x1b[13~",
KeyF6: "\x1b[17~", KeyF4: "\x1b[14~",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF13: "\x1b[25~", KeyF11: "\x1b[23~",
KeyF14: "\x1b[26~", KeyF12: "\x1b[24~",
KeyF15: "\x1b[28~", KeyF13: "\x1b[25~",
KeyF16: "\x1b[29~", KeyF14: "\x1b[26~",
KeyF17: "\x1b[31~", KeyF15: "\x1b[28~",
KeyF18: "\x1b[32~", KeyF16: "\x1b[29~",
KeyF19: "\x1b[33~", KeyF17: "\x1b[31~",
KeyF20: "\x1b[34~", KeyF18: "\x1b[32~",
AutoMargin: true, KeyF19: "\x1b[33~",
KeyF20: "\x1b[34~",
AutoMargin: true,
}) })
} }

View File

@ -8,64 +8,65 @@ func init() {
// linux console // linux console
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "linux", Name: "linux",
Colors: 8, Colors: 8,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J", Clear: "\x1b[H\x1b[J",
ShowCursor: "\x1b[?25h\x1b[?0c", ShowCursor: "\x1b[?25h\x1b[?0c",
HideCursor: "\x1b[?25l\x1b[?1c", HideCursor: "\x1b[?25l\x1b[?1c",
AttrOff: "\x1b[m\x0f", AttrOff: "\x1b[0;10m",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "++,,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~", 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: "\x0e", EnterAcs: "\x1b[11m",
ExitAcs: "\x0f", ExitAcs: "\x1b[10m",
EnableAcs: "\x1b)0", EnableAutoMargin: "\x1b[?7h",
Mouse: "\x1b[M", DisableAutoMargin: "\x1b[?7l",
SetCursor: "\x1b[%i%p1%d;%p2%dH", Mouse: "\x1b[M",
CursorBack1: "\b", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorUp1: "\x1b[A", CursorBack1: "\b",
KeyUp: "\x1b[A", CursorUp1: "\x1b[A",
KeyDown: "\x1b[B", KeyUp: "\x1b[A",
KeyRight: "\x1b[C", KeyDown: "\x1b[B",
KeyLeft: "\x1b[D", KeyRight: "\x1b[C",
KeyInsert: "\x1b[2~", KeyLeft: "\x1b[D",
KeyDelete: "\x1b[3~", KeyInsert: "\x1b[2~",
KeyBackspace: "\u007f", KeyDelete: "\x1b[3~",
KeyHome: "\x1b[1~", KeyBackspace: "\x7f",
KeyEnd: "\x1b[4~", KeyHome: "\x1b[1~",
KeyPgUp: "\x1b[5~", KeyEnd: "\x1b[4~",
KeyPgDn: "\x1b[6~", KeyPgUp: "\x1b[5~",
KeyF1: "\x1b[[A", KeyPgDn: "\x1b[6~",
KeyF2: "\x1b[[B", KeyF1: "\x1b[[A",
KeyF3: "\x1b[[C", KeyF2: "\x1b[[B",
KeyF4: "\x1b[[D", KeyF3: "\x1b[[C",
KeyF5: "\x1b[[E", KeyF4: "\x1b[[D",
KeyF6: "\x1b[17~", KeyF5: "\x1b[[E",
KeyF7: "\x1b[18~", KeyF6: "\x1b[17~",
KeyF8: "\x1b[19~", KeyF7: "\x1b[18~",
KeyF9: "\x1b[20~", KeyF8: "\x1b[19~",
KeyF10: "\x1b[21~", KeyF9: "\x1b[20~",
KeyF11: "\x1b[23~", KeyF10: "\x1b[21~",
KeyF12: "\x1b[24~", KeyF11: "\x1b[23~",
KeyF13: "\x1b[25~", KeyF12: "\x1b[24~",
KeyF14: "\x1b[26~", KeyF13: "\x1b[25~",
KeyF15: "\x1b[28~", KeyF14: "\x1b[26~",
KeyF16: "\x1b[29~", KeyF15: "\x1b[28~",
KeyF17: "\x1b[31~", KeyF16: "\x1b[29~",
KeyF18: "\x1b[32~", KeyF17: "\x1b[31~",
KeyF19: "\x1b[33~", KeyF18: "\x1b[32~",
KeyF20: "\x1b[34~", KeyF19: "\x1b[33~",
KeyBacktab: "\x1b[Z", KeyF20: "\x1b[34~",
AutoMargin: true, KeyBacktab: "\x1b[Z",
InsertChar: "\x1b[@", AutoMargin: true,
InsertChar: "\x1b[@",
}) })
} }

View File

@ -14,7 +14,6 @@ pcansi
rxvt,rxvt-256color,rxvt-88color,rxvt-unicode,rxvt-unicode-256color rxvt,rxvt-256color,rxvt-88color,rxvt-unicode,rxvt-unicode-256color
screen,screen-256color screen,screen-256color
st,st-256color|simpleterm st,st-256color|simpleterm
termite
tmux tmux
vt52 vt52
vt100 vt100

View File

@ -44,7 +44,7 @@ func init() {
KeyLeft: "\x1b[D", KeyLeft: "\x1b[D",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\b",
KeyHome: "\x1b[7~", KeyHome: "\x1b[7~",
KeyEnd: "\x1b[8~", KeyEnd: "\x1b[8~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
@ -100,6 +100,7 @@ func init() {
KeyShfDown: "\x1b[b", KeyShfDown: "\x1b[b",
KeyShfHome: "\x1b[7$", KeyShfHome: "\x1b[7$",
KeyShfEnd: "\x1b[8$", KeyShfEnd: "\x1b[8$",
KeyShfInsert: "\x1b[2$",
KeyShfDelete: "\x1b[3$", KeyShfDelete: "\x1b[3$",
KeyCtrlUp: "\x1b[Oa", KeyCtrlUp: "\x1b[Oa",
KeyCtrlDown: "\x1b[Ob", KeyCtrlDown: "\x1b[Ob",
@ -149,7 +150,7 @@ func init() {
KeyLeft: "\x1b[D", KeyLeft: "\x1b[D",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\b",
KeyHome: "\x1b[7~", KeyHome: "\x1b[7~",
KeyEnd: "\x1b[8~", KeyEnd: "\x1b[8~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
@ -205,6 +206,7 @@ func init() {
KeyShfDown: "\x1b[b", KeyShfDown: "\x1b[b",
KeyShfHome: "\x1b[7$", KeyShfHome: "\x1b[7$",
KeyShfEnd: "\x1b[8$", KeyShfEnd: "\x1b[8$",
KeyShfInsert: "\x1b[2$",
KeyShfDelete: "\x1b[3$", KeyShfDelete: "\x1b[3$",
KeyCtrlUp: "\x1b[Oa", KeyCtrlUp: "\x1b[Oa",
KeyCtrlDown: "\x1b[Ob", KeyCtrlDown: "\x1b[Ob",
@ -254,7 +256,7 @@ func init() {
KeyLeft: "\x1b[D", KeyLeft: "\x1b[D",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\b",
KeyHome: "\x1b[7~", KeyHome: "\x1b[7~",
KeyEnd: "\x1b[8~", KeyEnd: "\x1b[8~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
@ -310,6 +312,7 @@ func init() {
KeyShfDown: "\x1b[b", KeyShfDown: "\x1b[b",
KeyShfHome: "\x1b[7$", KeyShfHome: "\x1b[7$",
KeyShfEnd: "\x1b[8$", KeyShfEnd: "\x1b[8$",
KeyShfInsert: "\x1b[2$",
KeyShfDelete: "\x1b[3$", KeyShfDelete: "\x1b[3$",
KeyCtrlUp: "\x1b[Oa", KeyCtrlUp: "\x1b[Oa",
KeyCtrlDown: "\x1b[Ob", KeyCtrlDown: "\x1b[Ob",
@ -323,163 +326,167 @@ func init() {
// rxvt-unicode terminal (X Window System) // rxvt-unicode terminal (X Window System)
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "rxvt-unicode", Name: "rxvt-unicode",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 88, Colors: 88,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b[?1049h", EnterCA: "\x1b[?1049h",
ExitCA: "\x1b[r\x1b[?1049l", ExitCA: "\x1b[r\x1b[?1049l",
ShowCursor: "\x1b[?12l\x1b[?25h", ShowCursor: "\x1b[?12l\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x1b(B", AttrOff: "\x1b[m\x1b(B",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b=", EnterKeypad: "\x1b=",
ExitKeypad: "\x1b>", ExitKeypad: "\x1b>",
SetFg: "\x1b[38;5;%p1%dm", SetFg: "\x1b[38;5;%p1%dm",
SetBg: "\x1b[48;5;%p1%dm", SetBg: "\x1b[48;5;%p1%dm",
SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm", SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
Mouse: "\x1b[M", EnableAutoMargin: "\x1b[?7h",
SetCursor: "\x1b[%i%p1%d;%p2%dH", DisableAutoMargin: "\x1b[?7l",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1b[A", CursorBack1: "\b",
KeyDown: "\x1b[B", CursorUp1: "\x1b[A",
KeyRight: "\x1b[C", KeyUp: "\x1b[A",
KeyLeft: "\x1b[D", KeyDown: "\x1b[B",
KeyInsert: "\x1b[2~", KeyRight: "\x1b[C",
KeyDelete: "\x1b[3~", KeyLeft: "\x1b[D",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1b[7~", KeyDelete: "\x1b[3~",
KeyEnd: "\x1b[8~", KeyBackspace: "\x7f",
KeyPgUp: "\x1b[5~", KeyHome: "\x1b[7~",
KeyPgDn: "\x1b[6~", KeyEnd: "\x1b[8~",
KeyF1: "\x1b[11~", KeyPgUp: "\x1b[5~",
KeyF2: "\x1b[12~", KeyPgDn: "\x1b[6~",
KeyF3: "\x1b[13~", KeyF1: "\x1b[11~",
KeyF4: "\x1b[14~", KeyF2: "\x1b[12~",
KeyF5: "\x1b[15~", KeyF3: "\x1b[13~",
KeyF6: "\x1b[17~", KeyF4: "\x1b[14~",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF13: "\x1b[25~", KeyF11: "\x1b[23~",
KeyF14: "\x1b[26~", KeyF12: "\x1b[24~",
KeyF15: "\x1b[28~", KeyF13: "\x1b[25~",
KeyF16: "\x1b[29~", KeyF14: "\x1b[26~",
KeyF17: "\x1b[31~", KeyF15: "\x1b[28~",
KeyF18: "\x1b[32~", KeyF16: "\x1b[29~",
KeyF19: "\x1b[33~", KeyF17: "\x1b[31~",
KeyF20: "\x1b[34~", KeyF18: "\x1b[32~",
KeyBacktab: "\x1b[Z", KeyF19: "\x1b[33~",
KeyShfLeft: "\x1b[d", KeyF20: "\x1b[34~",
KeyShfRight: "\x1b[c", KeyBacktab: "\x1b[Z",
KeyShfUp: "\x1b[a", KeyShfLeft: "\x1b[d",
KeyShfDown: "\x1b[b", KeyShfRight: "\x1b[c",
KeyShfHome: "\x1b[7$", KeyShfUp: "\x1b[a",
KeyShfEnd: "\x1b[8$", KeyShfDown: "\x1b[b",
KeyShfInsert: "\x1b[2$", KeyShfHome: "\x1b[7$",
KeyShfDelete: "\x1b[3$", KeyShfEnd: "\x1b[8$",
KeyCtrlUp: "\x1b[Oa", KeyShfInsert: "\x1b[2$",
KeyCtrlDown: "\x1b[Ob", KeyShfDelete: "\x1b[3$",
KeyCtrlRight: "\x1b[Oc", KeyCtrlUp: "\x1b[Oa",
KeyCtrlLeft: "\x1b[Od", KeyCtrlDown: "\x1b[Ob",
KeyCtrlHome: "\x1b[7^", KeyCtrlRight: "\x1b[Oc",
KeyCtrlEnd: "\x1b[8^", KeyCtrlLeft: "\x1b[Od",
AutoMargin: true, KeyCtrlHome: "\x1b[7^",
InsertChar: "\x1b[@", KeyCtrlEnd: "\x1b[8^",
AutoMargin: true,
InsertChar: "\x1b[@",
}) })
// rxvt-unicode terminal with 256 colors (X Window System) // rxvt-unicode terminal with 256 colors (X Window System)
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "rxvt-unicode-256color", Name: "rxvt-unicode-256color",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 256, Colors: 256,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b[?1049h", EnterCA: "\x1b[?1049h",
ExitCA: "\x1b[r\x1b[?1049l", ExitCA: "\x1b[r\x1b[?1049l",
ShowCursor: "\x1b[?12l\x1b[?25h", ShowCursor: "\x1b[?12l\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x1b(B", AttrOff: "\x1b[m\x1b(B",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b=", EnterKeypad: "\x1b=",
ExitKeypad: "\x1b>", ExitKeypad: "\x1b>",
SetFg: "\x1b[38;5;%p1%dm", SetFg: "\x1b[38;5;%p1%dm",
SetBg: "\x1b[48;5;%p1%dm", SetBg: "\x1b[48;5;%p1%dm",
SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm", SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
Mouse: "\x1b[M", EnableAutoMargin: "\x1b[?7h",
SetCursor: "\x1b[%i%p1%d;%p2%dH", DisableAutoMargin: "\x1b[?7l",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1b[A", CursorBack1: "\b",
KeyDown: "\x1b[B", CursorUp1: "\x1b[A",
KeyRight: "\x1b[C", KeyUp: "\x1b[A",
KeyLeft: "\x1b[D", KeyDown: "\x1b[B",
KeyInsert: "\x1b[2~", KeyRight: "\x1b[C",
KeyDelete: "\x1b[3~", KeyLeft: "\x1b[D",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1b[7~", KeyDelete: "\x1b[3~",
KeyEnd: "\x1b[8~", KeyBackspace: "\x7f",
KeyPgUp: "\x1b[5~", KeyHome: "\x1b[7~",
KeyPgDn: "\x1b[6~", KeyEnd: "\x1b[8~",
KeyF1: "\x1b[11~", KeyPgUp: "\x1b[5~",
KeyF2: "\x1b[12~", KeyPgDn: "\x1b[6~",
KeyF3: "\x1b[13~", KeyF1: "\x1b[11~",
KeyF4: "\x1b[14~", KeyF2: "\x1b[12~",
KeyF5: "\x1b[15~", KeyF3: "\x1b[13~",
KeyF6: "\x1b[17~", KeyF4: "\x1b[14~",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF13: "\x1b[25~", KeyF11: "\x1b[23~",
KeyF14: "\x1b[26~", KeyF12: "\x1b[24~",
KeyF15: "\x1b[28~", KeyF13: "\x1b[25~",
KeyF16: "\x1b[29~", KeyF14: "\x1b[26~",
KeyF17: "\x1b[31~", KeyF15: "\x1b[28~",
KeyF18: "\x1b[32~", KeyF16: "\x1b[29~",
KeyF19: "\x1b[33~", KeyF17: "\x1b[31~",
KeyF20: "\x1b[34~", KeyF18: "\x1b[32~",
KeyBacktab: "\x1b[Z", KeyF19: "\x1b[33~",
KeyShfLeft: "\x1b[d", KeyF20: "\x1b[34~",
KeyShfRight: "\x1b[c", KeyBacktab: "\x1b[Z",
KeyShfUp: "\x1b[a", KeyShfLeft: "\x1b[d",
KeyShfDown: "\x1b[b", KeyShfRight: "\x1b[c",
KeyShfHome: "\x1b[7$", KeyShfUp: "\x1b[a",
KeyShfEnd: "\x1b[8$", KeyShfDown: "\x1b[b",
KeyShfInsert: "\x1b[2$", KeyShfHome: "\x1b[7$",
KeyShfDelete: "\x1b[3$", KeyShfEnd: "\x1b[8$",
KeyCtrlUp: "\x1b[Oa", KeyShfInsert: "\x1b[2$",
KeyCtrlDown: "\x1b[Ob", KeyShfDelete: "\x1b[3$",
KeyCtrlRight: "\x1b[Oc", KeyCtrlUp: "\x1b[Oa",
KeyCtrlLeft: "\x1b[Od", KeyCtrlDown: "\x1b[Ob",
KeyCtrlHome: "\x1b[7^", KeyCtrlRight: "\x1b[Oc",
KeyCtrlEnd: "\x1b[8^", KeyCtrlLeft: "\x1b[Od",
AutoMargin: true, KeyCtrlHome: "\x1b[7^",
InsertChar: "\x1b[@", KeyCtrlEnd: "\x1b[8^",
AutoMargin: true,
InsertChar: "\x1b[@",
}) })
} }

View File

@ -45,7 +45,7 @@ func init() {
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\b",
KeyHome: "\x1b[1~", KeyHome: "\x1b[1~",
KeyEnd: "\x1b[4~", KeyEnd: "\x1b[4~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
@ -105,7 +105,7 @@ func init() {
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\b",
KeyHome: "\x1b[1~", KeyHome: "\x1b[1~",
KeyEnd: "\x1b[4~", KeyEnd: "\x1b[4~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",

View File

@ -6,131 +6,129 @@ import "github.com/gdamore/tcell/v2/terminfo"
func init() { func init() {
// simpleterm // simpleterm 0.4.1
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "st", Name: "st",
Columns: 80, Aliases: []string{"stterm"},
Lines: 24, Columns: 80,
Colors: 8, Lines: 24,
Bell: "\a", Colors: 8,
Clear: "\x1b[H\x1b[2J", Bell: "\a",
EnterCA: "\x1b[?1049h", Clear: "\x1b[H\x1b[2J",
ExitCA: "\x1b[?1049l", EnterCA: "\x1b[?1049h",
ShowCursor: "\x1b[?12l\x1b[?25h", ExitCA: "\x1b[?1049l",
HideCursor: "\x1b[?25l", ShowCursor: "\x1b[?12l\x1b[?25h",
AttrOff: "\x1b[0m", HideCursor: "\x1b[?25l",
Underline: "\x1b[4m", AttrOff: "\x1b[0m",
Bold: "\x1b[1m", Underline: "\x1b[4m",
Dim: "\x1b[2m", Bold: "\x1b[1m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", PadChar: "\x00",
EnterAcs: "\x1b(0", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
ExitAcs: "\x1b(B", EnterAcs: "\x1b(0",
EnableAcs: "\x1b)0", ExitAcs: "\x1b(B",
StrikeThrough: "\x1b[9m", EnableAcs: "\x1b)0",
Mouse: "\x1b[M", Mouse: "\x1b[M",
SetCursor: "\x1b[%i%p1%d;%p2%dH", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorBack1: "\b", CursorBack1: "\b",
CursorUp1: "\x1b[A", CursorUp1: "\x1b[A",
KeyUp: "\x1bOA", KeyUp: "\x1bOA",
KeyDown: "\x1bOB", KeyDown: "\x1bOB",
KeyRight: "\x1bOC", KeyRight: "\x1bOC",
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\x7f",
KeyHome: "\x1b[1~", KeyHome: "\x1b[1~",
KeyEnd: "\x1b[4~", KeyEnd: "\x1b[4~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
KeyPgDn: "\x1b[6~", KeyPgDn: "\x1b[6~",
KeyF1: "\x1bOP", KeyF1: "\x1bOP",
KeyF2: "\x1bOQ", KeyF2: "\x1bOQ",
KeyF3: "\x1bOR", KeyF3: "\x1bOR",
KeyF4: "\x1bOS", KeyF4: "\x1bOS",
KeyF5: "\x1b[15~", KeyF5: "\x1b[15~",
KeyF6: "\x1b[17~", KeyF6: "\x1b[17~",
KeyF7: "\x1b[18~", KeyF7: "\x1b[18~",
KeyF8: "\x1b[19~", KeyF8: "\x1b[19~",
KeyF9: "\x1b[20~", KeyF9: "\x1b[20~",
KeyF10: "\x1b[21~", KeyF10: "\x1b[21~",
KeyF11: "\x1b[23~", KeyF11: "\x1b[23~",
KeyF12: "\x1b[24~", KeyF12: "\x1b[24~",
KeyClear: "\x1b[3;5~", KeyClear: "\x1b[3;5~",
KeyBacktab: "\x1b[Z", KeyBacktab: "\x1b[Z",
Modifiers: 1, Modifiers: 1,
TrueColor: true, AutoMargin: true,
AutoMargin: true,
}) })
// simpleterm with 256 colors // simpleterm with 256 colors
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "st-256color", Name: "st-256color",
Columns: 80, Aliases: []string{"stterm-256color"},
Lines: 24, Columns: 80,
Colors: 256, Lines: 24,
Bell: "\a", Colors: 256,
Clear: "\x1b[H\x1b[2J", Bell: "\a",
EnterCA: "\x1b[?1049h", Clear: "\x1b[H\x1b[2J",
ExitCA: "\x1b[?1049l", EnterCA: "\x1b[?1049h",
ShowCursor: "\x1b[?12l\x1b[?25h", ExitCA: "\x1b[?1049l",
HideCursor: "\x1b[?25l", ShowCursor: "\x1b[?12l\x1b[?25h",
AttrOff: "\x1b[0m", HideCursor: "\x1b[?25l",
Underline: "\x1b[4m", AttrOff: "\x1b[0m",
Bold: "\x1b[1m", Underline: "\x1b[4m",
Dim: "\x1b[2m", Bold: "\x1b[1m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", 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", 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", 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", ResetFgBg: "\x1b[39;49m",
AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", PadChar: "\x00",
EnterAcs: "\x1b(0", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
ExitAcs: "\x1b(B", EnterAcs: "\x1b(0",
EnableAcs: "\x1b)0", ExitAcs: "\x1b(B",
StrikeThrough: "\x1b[9m", EnableAcs: "\x1b)0",
Mouse: "\x1b[M", Mouse: "\x1b[M",
SetCursor: "\x1b[%i%p1%d;%p2%dH", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorBack1: "\b", CursorBack1: "\b",
CursorUp1: "\x1b[A", CursorUp1: "\x1b[A",
KeyUp: "\x1bOA", KeyUp: "\x1bOA",
KeyDown: "\x1bOB", KeyDown: "\x1bOB",
KeyRight: "\x1bOC", KeyRight: "\x1bOC",
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\x7f",
KeyHome: "\x1b[1~", KeyHome: "\x1b[1~",
KeyEnd: "\x1b[4~", KeyEnd: "\x1b[4~",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
KeyPgDn: "\x1b[6~", KeyPgDn: "\x1b[6~",
KeyF1: "\x1bOP", KeyF1: "\x1bOP",
KeyF2: "\x1bOQ", KeyF2: "\x1bOQ",
KeyF3: "\x1bOR", KeyF3: "\x1bOR",
KeyF4: "\x1bOS", KeyF4: "\x1bOS",
KeyF5: "\x1b[15~", KeyF5: "\x1b[15~",
KeyF6: "\x1b[17~", KeyF6: "\x1b[17~",
KeyF7: "\x1b[18~", KeyF7: "\x1b[18~",
KeyF8: "\x1b[19~", KeyF8: "\x1b[19~",
KeyF9: "\x1b[20~", KeyF9: "\x1b[20~",
KeyF10: "\x1b[21~", KeyF10: "\x1b[21~",
KeyF11: "\x1b[23~", KeyF11: "\x1b[23~",
KeyF12: "\x1b[24~", KeyF12: "\x1b[24~",
KeyClear: "\x1b[3;5~", KeyClear: "\x1b[3;5~",
KeyBacktab: "\x1b[Z", KeyBacktab: "\x1b[Z",
Modifiers: 1, Modifiers: 1,
TrueColor: true, AutoMargin: true,
AutoMargin: true,
}) })
} }

View File

@ -1,67 +0,0 @@
// Generated automatically. DO NOT HAND-EDIT.
package termite
import "github.com/gdamore/tcell/v2/terminfo"
func init() {
// VTE-based terminal
terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "termite",
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(B\x1b[m",
Underline: "\x1b[4m",
Bold: "\x1b[1m",
Italic: "\x1b[3m",
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: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B",
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: "\u007f",
KeyHome: "\x1bOH",
KeyEnd: "\x1bOF",
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,
InsertChar: "\x1b[@",
})
}

View File

@ -8,125 +8,62 @@ func init() {
// tmux terminal multiplexer // tmux terminal multiplexer
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "tmux", Name: "tmux",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 8, Colors: 8,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J", Clear: "\x1b[H\x1b[J",
EnterCA: "\x1b[?1049h", EnterCA: "\x1b[?1049h",
ExitCA: "\x1b[?1049l", ExitCA: "\x1b[?1049l",
ShowCursor: "\x1b[34h\x1b[?25h", ShowCursor: "\x1b[34h\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x0f", AttrOff: "\x1b[m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b(B\x1b)0", EnableAcs: "\x1b(B\x1b)0",
StrikeThrough: "\x1b[9m", Mouse: "\x1b[M",
Mouse: "\x1b[M", SetCursor: "\x1b[%i%p1%d;%p2%dH",
SetCursor: "\x1b[%i%p1%d;%p2%dH", CursorBack1: "\b",
CursorBack1: "\b", CursorUp1: "\x1bM",
CursorUp1: "\x1bM", KeyUp: "\x1bOA",
KeyUp: "\x1bOA", KeyDown: "\x1bOB",
KeyDown: "\x1bOB", KeyRight: "\x1bOC",
KeyRight: "\x1bOC", KeyLeft: "\x1bOD",
KeyLeft: "\x1bOD", KeyInsert: "\x1b[2~",
KeyInsert: "\x1b[2~", KeyDelete: "\x1b[3~",
KeyDelete: "\x1b[3~", KeyBackspace: "\b",
KeyBackspace: "\u007f", KeyHome: "\x1b[1~",
KeyHome: "\x1b[1~", KeyEnd: "\x1b[4~",
KeyEnd: "\x1b[4~", KeyPgUp: "\x1b[5~",
KeyPgUp: "\x1b[5~", KeyPgDn: "\x1b[6~",
KeyPgDn: "\x1b[6~", KeyF1: "\x1bOP",
KeyF1: "\x1bOP", KeyF2: "\x1bOQ",
KeyF2: "\x1bOQ", KeyF3: "\x1bOR",
KeyF3: "\x1bOR", KeyF4: "\x1bOS",
KeyF4: "\x1bOS", KeyF5: "\x1b[15~",
KeyF5: "\x1b[15~", KeyF6: "\x1b[17~",
KeyF6: "\x1b[17~", KeyF7: "\x1b[18~",
KeyF7: "\x1b[18~", KeyF8: "\x1b[19~",
KeyF8: "\x1b[19~", KeyF9: "\x1b[20~",
KeyF9: "\x1b[20~", KeyF10: "\x1b[21~",
KeyF10: "\x1b[21~", KeyF11: "\x1b[23~",
KeyF11: "\x1b[23~", KeyF12: "\x1b[24~",
KeyF12: "\x1b[24~", KeyBacktab: "\x1b[Z",
KeyBacktab: "\x1b[Z", AutoMargin: true,
Modifiers: 1,
AutoMargin: true,
})
terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "tmux-256color",
Columns: 80,
Lines: 24,
Colors: 256,
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[%?%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: "++,,--..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: "\u007f",
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,
}) })
} }

View File

@ -1,4 +1,4 @@
// Copyright 2022 The TCell Authors // Copyright 2024 The TCell Authors
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use file except in compliance with the License. // you may not use file except in compliance with the License.
@ -232,6 +232,8 @@ type Terminfo struct {
SetWindowSize string SetWindowSize string
EnableFocusReporting string EnableFocusReporting string
DisableFocusReporting string DisableFocusReporting string
DisableAutoMargin string // smam
EnableAutoMargin string // rmam
} }
const ( const (

View File

@ -8,42 +8,44 @@ func init() {
// dec vt100 (w/advanced video) // dec vt100 (w/advanced video)
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "vt100", Name: "vt100",
Aliases: []string{"vt100-am"}, Aliases: []string{"vt100-am"},
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J$<50>", Clear: "\x1b[H\x1b[J$<50>",
AttrOff: "\x1b[m\x0f$<2>", AttrOff: "\x1b[m\x0f$<2>",
Underline: "\x1b[4m$<2>", Underline: "\x1b[4m$<2>",
Bold: "\x1b[1m$<2>", Bold: "\x1b[1m$<2>",
Blink: "\x1b[5m$<2>", Blink: "\x1b[5m$<2>",
Reverse: "\x1b[7m$<2>", Reverse: "\x1b[7m$<2>",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b(B\x1b)0", EnableAcs: "\x1b(B\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A$<2>", SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A$<2>",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyBackspace: "\b", KeyRight: "\x1bOC",
KeyF1: "\x1bOP", KeyLeft: "\x1bOD",
KeyF2: "\x1bOQ", KeyBackspace: "\b",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1bOt", KeyF3: "\x1bOR",
KeyF6: "\x1bOu", KeyF4: "\x1bOS",
KeyF7: "\x1bOv", KeyF5: "\x1bOt",
KeyF8: "\x1bOl", KeyF6: "\x1bOu",
KeyF9: "\x1bOw", KeyF7: "\x1bOv",
KeyF10: "\x1bOx", KeyF8: "\x1bOl",
AutoMargin: true, KeyF9: "\x1bOw",
KeyF10: "\x1bOx",
AutoMargin: true,
}) })
} }

View File

@ -8,41 +8,43 @@ func init() {
// dec vt102 // dec vt102
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "vt102", Name: "vt102",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J$<50>", Clear: "\x1b[H\x1b[J$<50>",
AttrOff: "\x1b[m\x0f$<2>", AttrOff: "\x1b[m\x0f$<2>",
Underline: "\x1b[4m$<2>", Underline: "\x1b[4m$<2>",
Bold: "\x1b[1m$<2>", Bold: "\x1b[1m$<2>",
Blink: "\x1b[5m$<2>", Blink: "\x1b[5m$<2>",
Reverse: "\x1b[7m$<2>", Reverse: "\x1b[7m$<2>",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b(B\x1b)0", EnableAcs: "\x1b(B\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A$<2>", SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A$<2>",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyBackspace: "\b", KeyRight: "\x1bOC",
KeyF1: "\x1bOP", KeyLeft: "\x1bOD",
KeyF2: "\x1bOQ", KeyBackspace: "\b",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1bOt", KeyF3: "\x1bOR",
KeyF6: "\x1bOu", KeyF4: "\x1bOS",
KeyF7: "\x1bOv", KeyF5: "\x1bOt",
KeyF8: "\x1bOl", KeyF6: "\x1bOu",
KeyF9: "\x1bOw", KeyF7: "\x1bOv",
KeyF10: "\x1bOx", KeyF8: "\x1bOl",
AutoMargin: true, KeyF9: "\x1bOw",
KeyF10: "\x1bOx",
AutoMargin: true,
}) })
} }

View File

@ -8,52 +8,54 @@ func init() {
// dec vt220 // dec vt220
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "vt220", Name: "vt220",
Aliases: []string{"vt200"}, Aliases: []string{"vt200"},
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J", Clear: "\x1b[H\x1b[J",
AttrOff: "\x1b[m\x1b(B", AttrOff: "\x1b[m\x1b(B",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0$<2>", EnterAcs: "\x1b(0$<2>",
ExitAcs: "\x1b(B$<4>", ExitAcs: "\x1b(B$<4>",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1b[A", CursorBack1: "\b",
KeyDown: "\x1b[B", CursorUp1: "\x1b[A",
KeyRight: "\x1b[C", KeyUp: "\x1b[A",
KeyLeft: "\x1b[D", KeyDown: "\x1b[B",
KeyInsert: "\x1b[2~", KeyRight: "\x1b[C",
KeyDelete: "\x1b[3~", KeyLeft: "\x1b[D",
KeyBackspace: "\b", KeyInsert: "\x1b[2~",
KeyPgUp: "\x1b[5~", KeyDelete: "\x1b[3~",
KeyPgDn: "\x1b[6~", KeyBackspace: "\b",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF6: "\x1b[17~", KeyF3: "\x1bOR",
KeyF7: "\x1b[18~", KeyF4: "\x1bOS",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF13: "\x1b[25~", KeyF11: "\x1b[23~",
KeyF14: "\x1b[26~", KeyF12: "\x1b[24~",
KeyF17: "\x1b[31~", KeyF13: "\x1b[25~",
KeyF18: "\x1b[32~", KeyF14: "\x1b[26~",
KeyF19: "\x1b[33~", KeyF17: "\x1b[31~",
KeyF20: "\x1b[34~", KeyF18: "\x1b[32~",
KeyHelp: "\x1b[28~", KeyF19: "\x1b[33~",
AutoMargin: true, KeyF20: "\x1b[34~",
KeyHelp: "\x1b[28~",
AutoMargin: true,
}) })
} }

View File

@ -8,57 +8,59 @@ func init() {
// dec vt320 7 bit terminal // dec vt320 7 bit terminal
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "vt320", Name: "vt320",
Aliases: []string{"vt300"}, Aliases: []string{"vt300"},
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x1b(B", AttrOff: "\x1b[m\x1b(B",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
SetCursor: "\x1b[%i%p1%d;%p2%dH", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyInsert: "\x1b[2~", KeyRight: "\x1bOC",
KeyDelete: "\x1b[3~", KeyLeft: "\x1bOD",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1b[1~", KeyDelete: "\x1b[3~",
KeyPgUp: "\x1b[5~", KeyBackspace: "\x7f",
KeyPgDn: "\x1b[6~", KeyHome: "\x1b[1~",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF6: "\x1b[17~", KeyF3: "\x1bOR",
KeyF7: "\x1b[18~", KeyF4: "\x1bOS",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF13: "\x1b[25~", KeyF11: "\x1b[23~",
KeyF14: "\x1b[26~", KeyF12: "\x1b[24~",
KeyF15: "\x1b[28~", KeyF13: "\x1b[25~",
KeyF16: "\x1b[29~", KeyF14: "\x1b[26~",
KeyF17: "\x1b[31~", KeyF15: "\x1b[28~",
KeyF18: "\x1b[32~", KeyF16: "\x1b[29~",
KeyF19: "\x1b[33~", KeyF17: "\x1b[31~",
KeyF20: "\x1b[34~", KeyF18: "\x1b[32~",
AutoMargin: true, KeyF19: "\x1b[33~",
KeyF20: "\x1b[34~",
AutoMargin: true,
}) })
} }

View File

@ -8,41 +8,43 @@ func init() {
// dec vt400 24x80 column autowrap // dec vt400 24x80 column autowrap
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "vt400", Name: "vt400",
Aliases: []string{"vt400-24", "dec-vt400"}, Aliases: []string{"vt400-24", "dec-vt400"},
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Clear: "\x1b[H\x1b[J$<10/>", Clear: "\x1b[H\x1b[J$<10/>",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x1b(B", AttrOff: "\x1b[m\x1b(B",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
SetCursor: "\x1b[%i%p1%d;%p2%dH", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyBackspace: "\b", KeyRight: "\x1bOC",
KeyF1: "\x1bOP", KeyLeft: "\x1bOD",
KeyF2: "\x1bOQ", KeyBackspace: "\b",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF6: "\x1b[17~", KeyF3: "\x1bOR",
KeyF7: "\x1b[18~", KeyF4: "\x1bOS",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
AutoMargin: true, KeyF8: "\x1b[19~",
InsertChar: "\x1b[@", KeyF9: "\x1b[20~",
AutoMargin: true,
InsertChar: "\x1b[@",
}) })
} }

View File

@ -8,47 +8,49 @@ func init() {
// DEC VT420 // DEC VT420
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "vt420", Name: "vt420",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J$<50>", Clear: "\x1b[H\x1b[2J$<50>",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x1b(B$<2>", AttrOff: "\x1b[m\x1b(B$<2>",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m$<2>", Bold: "\x1b[1m$<2>",
Blink: "\x1b[5m$<2>", Blink: "\x1b[5m$<2>",
Reverse: "\x1b[7m$<2>", Reverse: "\x1b[7m$<2>",
EnterKeypad: "\x1b=", EnterKeypad: "\x1b=",
ExitKeypad: "\x1b>", ExitKeypad: "\x1b>",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0$<2>", EnterAcs: "\x1b(0$<2>",
ExitAcs: "\x1b(B$<4>", ExitAcs: "\x1b(B$<4>",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH$<10>", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH$<10>",
KeyUp: "\x1b[A", CursorBack1: "\b",
KeyDown: "\x1b[B", CursorUp1: "\x1b[A",
KeyRight: "\x1b[C", KeyUp: "\x1b[A",
KeyLeft: "\x1b[D", KeyDown: "\x1b[B",
KeyInsert: "\x1b[2~", KeyRight: "\x1b[C",
KeyDelete: "\x1b[3~", KeyLeft: "\x1b[D",
KeyBackspace: "\b", KeyInsert: "\x1b[2~",
KeyPgUp: "\x1b[5~", KeyDelete: "\x1b[3~",
KeyPgDn: "\x1b[6~", KeyBackspace: "\b",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[17~", KeyF3: "\x1bOR",
KeyF6: "\x1b[18~", KeyF4: "\x1bOS",
KeyF7: "\x1b[19~", KeyF5: "\x1b[17~",
KeyF8: "\x1b[20~", KeyF6: "\x1b[18~",
KeyF9: "\x1b[21~", KeyF7: "\x1b[19~",
KeyF10: "\x1b[29~", KeyF8: "\x1b[20~",
AutoMargin: true, KeyF9: "\x1b[21~",
KeyF10: "\x1b[29~",
AutoMargin: true,
}) })
} }

View File

@ -20,7 +20,7 @@ func init() {
Dim: "\x1b`7\x1b)", Dim: "\x1b`7\x1b)",
Reverse: "\x1b`6\x1b)", Reverse: "\x1b`6\x1b)",
PadChar: "\x00", PadChar: "\x00",
AltChars: "a;j5k3l2m1n8q:t4u9v=w0x6", AltChars: "0wa_h[jukslrmqnxqzttuyv]wpxv",
EnterAcs: "\x1bH\x02", EnterAcs: "\x1bH\x02",
ExitAcs: "\x1bH\x03", ExitAcs: "\x1bH\x03",
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",

View File

@ -8,57 +8,59 @@ func init() {
// Wyse 60 // Wyse 60
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "wy60", Name: "wy60",
Aliases: []string{"wyse60"}, Aliases: []string{"wyse60"},
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Bell: "\a", Bell: "\a",
Clear: "\x1b+$<100>", Clear: "\x1b+$<100>",
EnterCA: "\x1bw0", EnterCA: "\x1bw0",
ExitCA: "\x1bw1", ExitCA: "\x1bw1",
ShowCursor: "\x1b`1", ShowCursor: "\x1b`1",
HideCursor: "\x1b`0", HideCursor: "\x1b`0",
AttrOff: "\x1b(\x1bH\x03\x1bG0\x1bcD", AttrOff: "\x1b(\x1bH\x03\x1bG0\x1bcD",
Underline: "\x1bG8", Underline: "\x1bG8",
Dim: "\x1bGp", Dim: "\x1bGp",
Blink: "\x1bG2", Blink: "\x1bG2",
Reverse: "\x1bG4", Reverse: "\x1bG4",
PadChar: "\x00", PadChar: "\x00",
AltChars: "+/,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~", AltChars: "+/,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~",
EnterAcs: "\x1bcE", EnterAcs: "\x1bcE",
ExitAcs: "\x1bcD", ExitAcs: "\x1bcD",
SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", EnableAutoMargin: "\x1bd/",
CursorBack1: "\b", DisableAutoMargin: "\x1bd.",
CursorUp1: "\v", SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c",
KeyUp: "\v", CursorBack1: "\b",
KeyDown: "\n", CursorUp1: "\v",
KeyRight: "\f", KeyUp: "\v",
KeyLeft: "\b", KeyDown: "\n",
KeyInsert: "\x1bQ", KeyRight: "\f",
KeyDelete: "\x1bW", KeyLeft: "\b",
KeyBackspace: "\b", KeyInsert: "\x1bQ",
KeyHome: "\x1e", KeyDelete: "\x1bW",
KeyPgUp: "\x1bJ", KeyBackspace: "\b",
KeyPgDn: "\x1bK", KeyHome: "\x1e",
KeyF1: "\x01@\r", KeyPgUp: "\x1bJ",
KeyF2: "\x01A\r", KeyPgDn: "\x1bK",
KeyF3: "\x01B\r", KeyF1: "\x01@\r",
KeyF4: "\x01C\r", KeyF2: "\x01A\r",
KeyF5: "\x01D\r", KeyF3: "\x01B\r",
KeyF6: "\x01E\r", KeyF4: "\x01C\r",
KeyF7: "\x01F\r", KeyF5: "\x01D\r",
KeyF8: "\x01G\r", KeyF6: "\x01E\r",
KeyF9: "\x01H\r", KeyF7: "\x01F\r",
KeyF10: "\x01I\r", KeyF8: "\x01G\r",
KeyF11: "\x01J\r", KeyF9: "\x01H\r",
KeyF12: "\x01K\r", KeyF10: "\x01I\r",
KeyF13: "\x01L\r", KeyF11: "\x01J\r",
KeyF14: "\x01M\r", KeyF12: "\x01K\r",
KeyF15: "\x01N\r", KeyF13: "\x01L\r",
KeyF16: "\x01O\r", KeyF14: "\x01M\r",
KeyPrint: "\x1bP", KeyF15: "\x01N\r",
KeyBacktab: "\x1bI", KeyF16: "\x01O\r",
KeyShfHome: "\x1b{", KeyPrint: "\x1bP",
AutoMargin: true, KeyBacktab: "\x1bI",
KeyShfHome: "\x1b{",
AutoMargin: true,
}) })
} }

View File

@ -8,109 +8,113 @@ 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{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "wy99-ansi", Name: "wy99-ansi",
Columns: 80, Columns: 80,
Lines: 25, Lines: 25,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J$<200>", Clear: "\x1b[H\x1b[J$<200>",
ShowCursor: "\x1b[34h\x1b[?25h", ShowCursor: "\x1b[34h\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x0f\x1b[\"q", AttrOff: "\x1b[m\x0f\x1b[\"q",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h", EnterKeypad: "\x1b[?1h",
ExitKeypad: "\x1b[?1l", ExitKeypad: "\x1b[?1l",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~", AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b$<1>", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1bM", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b$<1>",
KeyDown: "\x1bOB", CursorUp1: "\x1bM",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyBackspace: "\b", KeyRight: "\x1bOC",
KeyF1: "\x1bOP", KeyLeft: "\x1bOD",
KeyF2: "\x1bOQ", KeyBackspace: "\b",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[M", KeyF3: "\x1bOR",
KeyF6: "\x1b[17~", KeyF4: "\x1bOS",
KeyF7: "\x1b[18~", KeyF5: "\x1b[M",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF17: "\x1b[K", KeyF11: "\x1b[23~",
KeyF18: "\x1b[31~", KeyF12: "\x1b[24~",
KeyF19: "\x1b[32~", KeyF17: "\x1b[K",
KeyF20: "\x1b[33~", KeyF18: "\x1b[31~",
KeyF21: "\x1b[34~", KeyF19: "\x1b[32~",
KeyF22: "\x1b[35~", KeyF20: "\x1b[33~",
KeyF23: "\x1b[1~", KeyF21: "\x1b[34~",
KeyF24: "\x1b[2~", KeyF22: "\x1b[35~",
KeyBacktab: "\x1b[z", KeyF23: "\x1b[1~",
AutoMargin: true, KeyF24: "\x1b[2~",
KeyBacktab: "\x1b[z",
AutoMargin: true,
}) })
// Wyse WY-99GT in ansi mode (US PC keyboard) // Wyse WY-99GT in ansi mode (US PC keyboard)
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "wy99a-ansi", Name: "wy99a-ansi",
Columns: 80, Columns: 80,
Lines: 25, Lines: 25,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[J$<200>", Clear: "\x1b[H\x1b[J$<200>",
ShowCursor: "\x1b[34h\x1b[?25h", ShowCursor: "\x1b[34h\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[m\x0f\x1b[\"q", AttrOff: "\x1b[m\x0f\x1b[\"q",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h", EnterKeypad: "\x1b[?1h",
ExitKeypad: "\x1b[?1l", ExitKeypad: "\x1b[?1l",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~", AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
SetCursor: "\x1b[%i%p1%d;%p2%dH", EnableAutoMargin: "\x1b[?7h",
CursorBack1: "\b$<1>", DisableAutoMargin: "\x1b[?7l",
CursorUp1: "\x1bM", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b$<1>",
KeyDown: "\x1bOB", CursorUp1: "\x1bM",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyBackspace: "\b", KeyRight: "\x1bOC",
KeyF1: "\x1bOP", KeyLeft: "\x1bOD",
KeyF2: "\x1bOQ", KeyBackspace: "\b",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[M", KeyF3: "\x1bOR",
KeyF6: "\x1b[17~", KeyF4: "\x1bOS",
KeyF7: "\x1b[18~", KeyF5: "\x1b[M",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyF17: "\x1b[K", KeyF11: "\x1b[23~",
KeyF18: "\x1b[31~", KeyF12: "\x1b[24~",
KeyF19: "\x1b[32~", KeyF17: "\x1b[K",
KeyF20: "\x1b[33~", KeyF18: "\x1b[31~",
KeyF21: "\x1b[34~", KeyF19: "\x1b[32~",
KeyF22: "\x1b[35~", KeyF20: "\x1b[33~",
KeyF23: "\x1b[1~", KeyF21: "\x1b[34~",
KeyF24: "\x1b[2~", KeyF22: "\x1b[35~",
KeyBacktab: "\x1b[z", KeyF23: "\x1b[1~",
AutoMargin: true, KeyF24: "\x1b[2~",
KeyBacktab: "\x1b[z",
AutoMargin: true,
}) })
} }

View File

@ -8,60 +8,62 @@ func init() {
// Xfce Terminal // Xfce Terminal
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "xfce", Name: "xfce",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 8, Colors: 8,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b7\x1b[?47h", EnterCA: "\x1b7\x1b[?47h",
ExitCA: "\x1b[2J\x1b[?47l\x1b8", ExitCA: "\x1b[2J\x1b[?47l\x1b8",
ShowCursor: "\x1b[?25h", ShowCursor: "\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b[0m\x0f", AttrOff: "\x1b[0m\x0f",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[3%p1%dm", SetFg: "\x1b[3%p1%dm",
SetBg: "\x1b[4%p1%dm", SetBg: "\x1b[4%p1%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
ResetFgBg: "\x1b[39;49m", ResetFgBg: "\x1b[39;49m",
PadChar: "\x00", PadChar: "\x00",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x0e", EnterAcs: "\x0e",
ExitAcs: "\x0f", ExitAcs: "\x0f",
EnableAcs: "\x1b)0", EnableAcs: "\x1b)0",
Mouse: "\x1b[M", EnableAutoMargin: "\x1b[?7h",
SetCursor: "\x1b[%i%p1%d;%p2%dH", DisableAutoMargin: "\x1b[?7l",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyInsert: "\x1b[2~", KeyRight: "\x1bOC",
KeyDelete: "\x1b[3~", KeyLeft: "\x1bOD",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1bOH", KeyDelete: "\x1b[3~",
KeyEnd: "\x1bOF", KeyBackspace: "\x7f",
KeyPgUp: "\x1b[5~", KeyHome: "\x1bOH",
KeyPgDn: "\x1b[6~", KeyEnd: "\x1bOF",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[15~", KeyF3: "\x1bOR",
KeyF6: "\x1b[17~", KeyF4: "\x1bOS",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyBacktab: "\x1b[Z", KeyF11: "\x1b[23~",
Modifiers: 1, KeyF12: "\x1b[24~",
AutoMargin: true, KeyBacktab: "\x1b[Z",
Modifiers: 1,
AutoMargin: true,
}) })
} }

View File

@ -6,187 +6,189 @@ import "github.com/gdamore/tcell/v2/terminfo"
func init() { func init() {
// X11 terminal emulator // xterm terminal emulator (X Window System)
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "xterm", Name: "xterm",
Aliases: []string{"xterm-debian"}, Columns: 80,
Columns: 80, Lines: 24,
Lines: 24, Colors: 8,
Colors: 8, Bell: "\a",
Bell: "\a", Clear: "\x1b[H\x1b[2J",
Clear: "\x1b[H\x1b[2J", EnterCA: "\x1b[?1049h",
EnterCA: "\x1b[?1049h\x1b[22;0;0t", ExitCA: "\x1b[?1049l",
ExitCA: "\x1b[?1049l\x1b[23;0;0t", ShowCursor: "\x1b[?12l\x1b[?25h",
ShowCursor: "\x1b[?12l\x1b[?25h", HideCursor: "\x1b[?25l",
HideCursor: "\x1b[?25l", AttrOff: "\x1b(B\x1b[m",
AttrOff: "\x1b(B\x1b[m", Underline: "\x1b[4m",
Underline: "\x1b[4m", Bold: "\x1b[1m",
Bold: "\x1b[1m", Dim: "\x1b[2m",
Dim: "\x1b[2m", Italic: "\x1b[3m",
Italic: "\x1b[3m", Blink: "\x1b[5m",
Blink: "\x1b[5m", Reverse: "\x1b[7m",
Reverse: "\x1b[7m", EnterKeypad: "\x1b[?1h\x1b=",
EnterKeypad: "\x1b[?1h\x1b=", ExitKeypad: "\x1b[?1l\x1b>",
ExitKeypad: "\x1b[?1l\x1b>", SetFg: "\x1b[3%p1%dm",
SetFg: "\x1b[3%p1%dm", SetBg: "\x1b[4%p1%dm",
SetBg: "\x1b[4%p1%dm", SetFgBg: "\x1b[3%p1%d;4%p2%dm",
SetFgBg: "\x1b[3%p1%d;4%p2%dm", ResetFgBg: "\x1b[39;49m",
ResetFgBg: "\x1b[39;49m", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", EnterAcs: "\x1b(0",
EnterAcs: "\x1b(0", ExitAcs: "\x1b(B",
ExitAcs: "\x1b(B", EnableAutoMargin: "\x1b[?7h",
StrikeThrough: "\x1b[9m", DisableAutoMargin: "\x1b[?7l",
Mouse: "\x1b[M", Mouse: "\x1b[M",
SetCursor: "\x1b[%i%p1%d;%p2%dH", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorBack1: "\b", CursorBack1: "\b",
CursorUp1: "\x1b[A", CursorUp1: "\x1b[A",
KeyUp: "\x1bOA", KeyUp: "\x1bOA",
KeyDown: "\x1bOB", KeyDown: "\x1bOB",
KeyRight: "\x1bOC", KeyRight: "\x1bOC",
KeyLeft: "\x1bOD", KeyLeft: "\x1bOD",
KeyInsert: "\x1b[2~", KeyInsert: "\x1b[2~",
KeyDelete: "\x1b[3~", KeyDelete: "\x1b[3~",
KeyBackspace: "\u007f", KeyBackspace: "\b",
KeyHome: "\x1bOH", KeyHome: "\x1bOH",
KeyEnd: "\x1bOF", KeyEnd: "\x1bOF",
KeyPgUp: "\x1b[5~", KeyPgUp: "\x1b[5~",
KeyPgDn: "\x1b[6~", KeyPgDn: "\x1b[6~",
KeyF1: "\x1bOP", KeyF1: "\x1bOP",
KeyF2: "\x1bOQ", KeyF2: "\x1bOQ",
KeyF3: "\x1bOR", KeyF3: "\x1bOR",
KeyF4: "\x1bOS", KeyF4: "\x1bOS",
KeyF5: "\x1b[15~", KeyF5: "\x1b[15~",
KeyF6: "\x1b[17~", KeyF6: "\x1b[17~",
KeyF7: "\x1b[18~", KeyF7: "\x1b[18~",
KeyF8: "\x1b[19~", KeyF8: "\x1b[19~",
KeyF9: "\x1b[20~", KeyF9: "\x1b[20~",
KeyF10: "\x1b[21~", KeyF10: "\x1b[21~",
KeyF11: "\x1b[23~", KeyF11: "\x1b[23~",
KeyF12: "\x1b[24~", KeyF12: "\x1b[24~",
KeyBacktab: "\x1b[Z", KeyBacktab: "\x1b[Z",
Modifiers: 1, Modifiers: 1,
AutoMargin: true, AutoMargin: true,
}) })
// xterm with 88 colors // xterm with 88 colors
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "xterm-88color", Name: "xterm-88color",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 88, Colors: 88,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b[?1049h\x1b[22;0;0t", EnterCA: "\x1b[?1049h",
ExitCA: "\x1b[?1049l\x1b[23;0;0t", ExitCA: "\x1b[?1049l",
ShowCursor: "\x1b[?12l\x1b[?25h", ShowCursor: "\x1b[?12l\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b(B\x1b[m", AttrOff: "\x1b(B\x1b[m",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", 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", 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", 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", ResetFgBg: "\x1b[39;49m",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
StrikeThrough: "\x1b[9m", EnableAutoMargin: "\x1b[?7h",
Mouse: "\x1b[M", DisableAutoMargin: "\x1b[?7l",
SetCursor: "\x1b[%i%p1%d;%p2%dH", Mouse: "\x1b[M",
CursorBack1: "\b", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorUp1: "\x1b[A", CursorBack1: "\b",
KeyUp: "\x1bOA", CursorUp1: "\x1b[A",
KeyDown: "\x1bOB", KeyUp: "\x1bOA",
KeyRight: "\x1bOC", KeyDown: "\x1bOB",
KeyLeft: "\x1bOD", KeyRight: "\x1bOC",
KeyInsert: "\x1b[2~", KeyLeft: "\x1bOD",
KeyDelete: "\x1b[3~", KeyInsert: "\x1b[2~",
KeyBackspace: "\u007f", KeyDelete: "\x1b[3~",
KeyHome: "\x1bOH", KeyBackspace: "\b",
KeyEnd: "\x1bOF", KeyHome: "\x1bOH",
KeyPgUp: "\x1b[5~", KeyEnd: "\x1bOF",
KeyPgDn: "\x1b[6~", KeyPgUp: "\x1b[5~",
KeyF1: "\x1bOP", KeyPgDn: "\x1b[6~",
KeyF2: "\x1bOQ", KeyF1: "\x1bOP",
KeyF3: "\x1bOR", KeyF2: "\x1bOQ",
KeyF4: "\x1bOS", KeyF3: "\x1bOR",
KeyF5: "\x1b[15~", KeyF4: "\x1bOS",
KeyF6: "\x1b[17~", KeyF5: "\x1b[15~",
KeyF7: "\x1b[18~", KeyF6: "\x1b[17~",
KeyF8: "\x1b[19~", KeyF7: "\x1b[18~",
KeyF9: "\x1b[20~", KeyF8: "\x1b[19~",
KeyF10: "\x1b[21~", KeyF9: "\x1b[20~",
KeyF11: "\x1b[23~", KeyF10: "\x1b[21~",
KeyF12: "\x1b[24~", KeyF11: "\x1b[23~",
KeyBacktab: "\x1b[Z", KeyF12: "\x1b[24~",
Modifiers: 1, KeyBacktab: "\x1b[Z",
AutoMargin: true, Modifiers: 1,
AutoMargin: true,
}) })
// xterm with 256 colors // xterm with 256 colors
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "xterm-256color", Name: "xterm-256color",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 256, Colors: 256,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b[?1049h\x1b[22;0;0t", EnterCA: "\x1b[?1049h",
ExitCA: "\x1b[?1049l\x1b[23;0;0t", ExitCA: "\x1b[?1049l",
ShowCursor: "\x1b[?12l\x1b[?25h", ShowCursor: "\x1b[?12l\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b(B\x1b[m", AttrOff: "\x1b(B\x1b[m",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Blink: "\x1b[5m", Blink: "\x1b[5m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h\x1b=", EnterKeypad: "\x1b[?1h\x1b=",
ExitKeypad: "\x1b[?1l\x1b>", ExitKeypad: "\x1b[?1l\x1b>",
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", 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", 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", 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", ResetFgBg: "\x1b[39;49m",
AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
StrikeThrough: "\x1b[9m", EnableAutoMargin: "\x1b[?7h",
Mouse: "\x1b[M", DisableAutoMargin: "\x1b[?7l",
SetCursor: "\x1b[%i%p1%d;%p2%dH", Mouse: "\x1b[M",
CursorBack1: "\b", SetCursor: "\x1b[%i%p1%d;%p2%dH",
CursorUp1: "\x1b[A", CursorBack1: "\b",
KeyUp: "\x1bOA", CursorUp1: "\x1b[A",
KeyDown: "\x1bOB", KeyUp: "\x1bOA",
KeyRight: "\x1bOC", KeyDown: "\x1bOB",
KeyLeft: "\x1bOD", KeyRight: "\x1bOC",
KeyInsert: "\x1b[2~", KeyLeft: "\x1bOD",
KeyDelete: "\x1b[3~", KeyInsert: "\x1b[2~",
KeyBackspace: "\u007f", KeyDelete: "\x1b[3~",
KeyHome: "\x1bOH", KeyBackspace: "\b",
KeyEnd: "\x1bOF", KeyHome: "\x1bOH",
KeyPgUp: "\x1b[5~", KeyEnd: "\x1bOF",
KeyPgDn: "\x1b[6~", KeyPgUp: "\x1b[5~",
KeyF1: "\x1bOP", KeyPgDn: "\x1b[6~",
KeyF2: "\x1bOQ", KeyF1: "\x1bOP",
KeyF3: "\x1bOR", KeyF2: "\x1bOQ",
KeyF4: "\x1bOS", KeyF3: "\x1bOR",
KeyF5: "\x1b[15~", KeyF4: "\x1bOS",
KeyF6: "\x1b[17~", KeyF5: "\x1b[15~",
KeyF7: "\x1b[18~", KeyF6: "\x1b[17~",
KeyF8: "\x1b[19~", KeyF7: "\x1b[18~",
KeyF9: "\x1b[20~", KeyF8: "\x1b[19~",
KeyF10: "\x1b[21~", KeyF9: "\x1b[20~",
KeyF11: "\x1b[23~", KeyF10: "\x1b[21~",
KeyF12: "\x1b[24~", KeyF11: "\x1b[23~",
KeyBacktab: "\x1b[Z", KeyF12: "\x1b[24~",
Modifiers: 1, KeyBacktab: "\x1b[Z",
AutoMargin: true, Modifiers: 1,
AutoMargin: true,
}) })
} }

View File

@ -8,62 +8,64 @@ func init() {
// KovIdTTY // KovIdTTY
terminfo.AddTerminfo(&terminfo.Terminfo{ terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "xterm-kitty", Name: "xterm-kitty",
Columns: 80, Columns: 80,
Lines: 24, Lines: 24,
Colors: 256, Colors: 256,
Bell: "\a", Bell: "\a",
Clear: "\x1b[H\x1b[2J", Clear: "\x1b[H\x1b[2J",
EnterCA: "\x1b[?1049h", EnterCA: "\x1b[?1049h",
ExitCA: "\x1b[?1049l", ExitCA: "\x1b[?1049l",
ShowCursor: "\x1b[?12l\x1b[?25h", ShowCursor: "\x1b[?12h\x1b[?25h",
HideCursor: "\x1b[?25l", HideCursor: "\x1b[?25l",
AttrOff: "\x1b(B\x1b[m", AttrOff: "\x1b(B\x1b[m",
Underline: "\x1b[4m", Underline: "\x1b[4m",
Bold: "\x1b[1m", Bold: "\x1b[1m",
Dim: "\x1b[2m", Dim: "\x1b[2m",
Italic: "\x1b[3m", Italic: "\x1b[3m",
Reverse: "\x1b[7m", Reverse: "\x1b[7m",
EnterKeypad: "\x1b[?1h", EnterKeypad: "\x1b[?1h",
ExitKeypad: "\x1b[?1l", ExitKeypad: "\x1b[?1l",
SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", 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", 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", 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", ResetFgBg: "\x1b[39;49m",
AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0", EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B", ExitAcs: "\x1b(B",
StrikeThrough: "\x1b[9m", EnableAutoMargin: "\x1b[?7h",
Mouse: "\x1b[M", DisableAutoMargin: "\x1b[?7l",
SetCursor: "\x1b[%i%p1%d;%p2%dH", StrikeThrough: "\x1b[9m",
CursorBack1: "\b", Mouse: "\x1b[M",
CursorUp1: "\x1b[A", SetCursor: "\x1b[%i%p1%d;%p2%dH",
KeyUp: "\x1bOA", CursorBack1: "\b",
KeyDown: "\x1bOB", CursorUp1: "\x1b[A",
KeyRight: "\x1bOC", KeyUp: "\x1bOA",
KeyLeft: "\x1bOD", KeyDown: "\x1bOB",
KeyInsert: "\x1b[2~", KeyRight: "\x1bOC",
KeyDelete: "\x1b[3~", KeyLeft: "\x1bOD",
KeyBackspace: "\u007f", KeyInsert: "\x1b[2~",
KeyHome: "\x1bOH", KeyDelete: "\x1b[3~",
KeyEnd: "\x1bOF", KeyBackspace: "\x7f",
KeyPgUp: "\x1b[5~", KeyHome: "\x1bOH",
KeyPgDn: "\x1b[6~", KeyEnd: "\x1bOF",
KeyF1: "\x1bOP", KeyPgUp: "\x1b[5~",
KeyF2: "\x1bOQ", KeyPgDn: "\x1b[6~",
KeyF3: "\x1bOR", KeyF1: "\x1bOP",
KeyF4: "\x1bOS", KeyF2: "\x1bOQ",
KeyF5: "\x1b[15~", KeyF3: "\x1bOR",
KeyF6: "\x1b[17~", KeyF4: "\x1bOS",
KeyF7: "\x1b[18~", KeyF5: "\x1b[15~",
KeyF8: "\x1b[19~", KeyF6: "\x1b[17~",
KeyF9: "\x1b[20~", KeyF7: "\x1b[18~",
KeyF10: "\x1b[21~", KeyF8: "\x1b[19~",
KeyF11: "\x1b[23~", KeyF9: "\x1b[20~",
KeyF12: "\x1b[24~", KeyF10: "\x1b[21~",
KeyBacktab: "\x1b[Z", KeyF11: "\x1b[23~",
Modifiers: 1, KeyF12: "\x1b[24~",
TrueColor: true, KeyBacktab: "\x1b[Z",
AutoMargin: true, Modifiers: 1,
TrueColor: true,
AutoMargin: true,
}) })
} }

View File

@ -1,66 +0,0 @@
// Generated automatically. DO NOT HAND-EDIT.
package xterm_termite
import "github.com/gdamore/tcell/v2/terminfo"
func init() {
// VTE-based terminal
terminfo.AddTerminfo(&terminfo.Terminfo{
Name: "xterm-termite",
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(B\x1b[m",
Underline: "\x1b[4m",
Bold: "\x1b[1m",
Dim: "\x1b[2m",
Italic: "\x1b[3m",
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: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
EnterAcs: "\x1b(0",
ExitAcs: "\x1b(B",
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: "\u007f",
KeyHome: "\x1bOH",
KeyEnd: "\x1bOF",
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,
})
}

View File

@ -1,4 +1,4 @@
// Copyright 2023 The TCell Authors // Copyright 2024 The TCell Authors
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use file except in compliance with the License. // you may not use file except in compliance with the License.
@ -715,7 +715,7 @@ func (t *tScreen) drawCell(x, y int) int {
return width return width
} }
if y == t.h-1 && x == t.w-1 && t.ti.AutoMargin && ti.InsertChar != "" { if y == t.h-1 && x == t.w-1 && t.ti.AutoMargin && ti.DisableAutoMargin == "" && ti.InsertChar != "" {
// our solution is somewhat goofy. // our solution is somewhat goofy.
// we write to the second to the last cell what we want in the last cell, then we // we write to the second to the last cell what we want in the last cell, then we
// insert a character at that 2nd to last position to shift the last column into // insert a character at that 2nd to last position to shift the last column into
@ -1826,6 +1826,7 @@ func (t *tScreen) engage() error {
t.TPuts(ti.EnterKeypad) t.TPuts(ti.EnterKeypad)
t.TPuts(ti.HideCursor) t.TPuts(ti.HideCursor)
t.TPuts(ti.EnableAcs) t.TPuts(ti.EnableAcs)
t.TPuts(ti.DisableAutoMargin)
t.TPuts(ti.Clear) t.TPuts(ti.Clear)
t.wg.Add(2) t.wg.Add(2)
@ -1867,6 +1868,7 @@ func (t *tScreen) disengage() {
t.TPuts(ti.Clear) t.TPuts(ti.Clear)
t.TPuts(ti.ExitCA) t.TPuts(ti.ExitCA)
t.TPuts(ti.ExitKeypad) t.TPuts(ti.ExitKeypad)
t.TPuts(ti.EnableAutoMargin)
t.enableMouse(0) t.enableMouse(0)
t.enablePasting(false) t.enablePasting(false)
t.disableFocusReporting() t.disableFocusReporting()
@ -1888,7 +1890,7 @@ func (t *tScreen) finalize() {
} }
func (t *tScreen) StopQ() <-chan struct{} { func (t *tScreen) StopQ() <-chan struct{} {
return t.stopQ return t.quit
} }
func (t *tScreen) EventQ() chan Event { func (t *tScreen) EventQ() chan Event {

View File

@ -13,9 +13,10 @@ import "unicode/utf8"
// well as boundary information and character width is available via the various // well as boundary information and character width is available via the various
// methods (see examples below). // methods (see examples below).
// //
// Using this class to iterate over a string is convenient but it is much slower // This class basically wraps the [StepString] parser and provides a convenient
// than using this package's [Step] or [StepString] functions or any of the // interface to it. If you are only interested in some parts of this package's
// other specialized functions starting with "First". // functionality, using the specialized functions starting with "First" is
// almost always faster.
type Graphemes struct { type Graphemes struct {
// The original string. // The original string.
original string original string
@ -252,16 +253,14 @@ func FirstGraphemeCluster(b []byte, state int) (cluster, rest []byte, width, new
return b[:length], b[length:], width, state | (prop << shiftGraphemePropState) return b[:length], b[length:], width, state | (prop << shiftGraphemePropState)
} }
if r == vs16 { if firstProp == prExtendedPictographic {
width = 2
} else if firstProp != prExtendedPictographic && firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} else if firstProp == prExtendedPictographic {
if r == vs15 { if r == vs15 {
width = 1 width = 1
} else { } else if r == vs16 {
width = 2 width = 2
} }
} else if firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} }
length += l length += l
@ -314,16 +313,14 @@ func FirstGraphemeClusterInString(str string, state int) (cluster, rest string,
return str[:length], str[length:], width, state | (prop << shiftGraphemePropState) return str[:length], str[length:], width, state | (prop << shiftGraphemePropState)
} }
if r == vs16 { if firstProp == prExtendedPictographic {
width = 2
} else if firstProp != prExtendedPictographic && firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} else if firstProp == prExtendedPictographic {
if r == vs15 { if r == vs15 {
width = 1 width = 1
} else { } else if r == vs16 {
width = 2 width = 2
} }
} else if firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} }
length += l length += l

View File

@ -150,16 +150,14 @@ func Step(b []byte, state int) (cluster, rest []byte, boundaries int, newState i
return b[:length], b[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState) return b[:length], b[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState)
} }
if r == vs16 { if firstProp == prExtendedPictographic {
width = 2
} else if firstProp != prExtendedPictographic && firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} else if firstProp == prExtendedPictographic {
if r == vs15 { if r == vs15 {
width = 1 width = 1
} else { } else if r == vs16 {
width = 2 width = 2
} }
} else if firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} }
length += l length += l
@ -226,16 +224,14 @@ func StepString(str string, state int) (cluster, rest string, boundaries int, ne
return str[:length], str[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState) return str[:length], str[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState)
} }
if r == vs16 { if firstProp == prExtendedPictographic {
width = 2
} else if firstProp != prExtendedPictographic && firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} else if firstProp == prExtendedPictographic {
if r == vs15 { if r == vs15 {
width = 1 width = 1
} else { } else if r == vs16 {
width = 2 width = 2
} }
} else if firstProp != prRegionalIndicator && firstProp != prL {
width += runeWidth(r, prop)
} }
length += l length += l

View File

@ -584,7 +584,7 @@ ccflags="$@"
$2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||
$2 ~ /^KEYCTL_/ || $2 ~ /^KEYCTL_/ ||
$2 ~ /^PERF_/ || $2 ~ /^PERF_/ ||
$2 ~ /^SECCOMP_MODE_/ || $2 ~ /^SECCOMP_/ ||
$2 ~ /^SEEK_/ || $2 ~ /^SEEK_/ ||
$2 ~ /^SCHED_/ || $2 ~ /^SCHED_/ ||
$2 ~ /^SPLICE_/ || $2 ~ /^SPLICE_/ ||

View File

@ -1785,6 +1785,8 @@ const (
LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20
LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000
LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2
LANDLOCK_ACCESS_NET_BIND_TCP = 0x1
LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2
LANDLOCK_CREATE_RULESET_VERSION = 0x1 LANDLOCK_CREATE_RULESET_VERSION = 0x1
LINUX_REBOOT_CMD_CAD_OFF = 0x0 LINUX_REBOOT_CMD_CAD_OFF = 0x0
LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
@ -2465,6 +2467,7 @@ const (
PR_MCE_KILL_GET = 0x22 PR_MCE_KILL_GET = 0x22
PR_MCE_KILL_LATE = 0x0 PR_MCE_KILL_LATE = 0x0
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MDWE_NO_INHERIT = 0x2
PR_MDWE_REFUSE_EXEC_GAIN = 0x1 PR_MDWE_REFUSE_EXEC_GAIN = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
@ -2669,8 +2672,9 @@ const (
RTAX_FEATURES = 0xc RTAX_FEATURES = 0xc
RTAX_FEATURE_ALLFRAG = 0x8 RTAX_FEATURE_ALLFRAG = 0x8
RTAX_FEATURE_ECN = 0x1 RTAX_FEATURE_ECN = 0x1
RTAX_FEATURE_MASK = 0xf RTAX_FEATURE_MASK = 0x1f
RTAX_FEATURE_SACK = 0x2 RTAX_FEATURE_SACK = 0x2
RTAX_FEATURE_TCP_USEC_TS = 0x10
RTAX_FEATURE_TIMESTAMP = 0x4 RTAX_FEATURE_TIMESTAMP = 0x4
RTAX_HOPLIMIT = 0xa RTAX_HOPLIMIT = 0xa
RTAX_INITCWND = 0xb RTAX_INITCWND = 0xb
@ -2913,9 +2917,38 @@ const (
SCM_RIGHTS = 0x1 SCM_RIGHTS = 0x1
SCM_TIMESTAMP = 0x1d SCM_TIMESTAMP = 0x1d
SC_LOG_FLUSH = 0x100000 SC_LOG_FLUSH = 0x100000
SECCOMP_ADDFD_FLAG_SEND = 0x2
SECCOMP_ADDFD_FLAG_SETFD = 0x1
SECCOMP_FILTER_FLAG_LOG = 0x2
SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8
SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4
SECCOMP_FILTER_FLAG_TSYNC = 0x1
SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10
SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20
SECCOMP_GET_ACTION_AVAIL = 0x2
SECCOMP_GET_NOTIF_SIZES = 0x3
SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100
SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101
SECCOMP_IOC_MAGIC = '!'
SECCOMP_MODE_DISABLED = 0x0 SECCOMP_MODE_DISABLED = 0x0
SECCOMP_MODE_FILTER = 0x2 SECCOMP_MODE_FILTER = 0x2
SECCOMP_MODE_STRICT = 0x1 SECCOMP_MODE_STRICT = 0x1
SECCOMP_RET_ACTION = 0x7fff0000
SECCOMP_RET_ACTION_FULL = 0xffff0000
SECCOMP_RET_ALLOW = 0x7fff0000
SECCOMP_RET_DATA = 0xffff
SECCOMP_RET_ERRNO = 0x50000
SECCOMP_RET_KILL = 0x0
SECCOMP_RET_KILL_PROCESS = 0x80000000
SECCOMP_RET_KILL_THREAD = 0x0
SECCOMP_RET_LOG = 0x7ffc0000
SECCOMP_RET_TRACE = 0x7ff00000
SECCOMP_RET_TRAP = 0x30000
SECCOMP_RET_USER_NOTIF = 0x7fc00000
SECCOMP_SET_MODE_FILTER = 0x1
SECCOMP_SET_MODE_STRICT = 0x0
SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1
SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1
SECRETMEM_MAGIC = 0x5345434d SECRETMEM_MAGIC = 0x5345434d
SECURITYFS_MAGIC = 0x73636673 SECURITYFS_MAGIC = 0x73636673
SEEK_CUR = 0x1 SEEK_CUR = 0x1
@ -3075,6 +3108,7 @@ const (
SOL_TIPC = 0x10f SOL_TIPC = 0x10f
SOL_TLS = 0x11a SOL_TLS = 0x11a
SOL_UDP = 0x11 SOL_UDP = 0x11
SOL_VSOCK = 0x11f
SOL_X25 = 0x106 SOL_X25 = 0x106
SOL_XDP = 0x11b SOL_XDP = 0x11b
SOMAXCONN = 0x1000 SOMAXCONN = 0x1000

View File

@ -281,6 +281,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -282,6 +282,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -288,6 +288,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -278,6 +278,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -275,6 +275,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -281,6 +281,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x80 SFD_NONBLOCK = 0x80
SIOCATMARK = 0x40047307 SIOCATMARK = 0x40047307

View File

@ -281,6 +281,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x80 SFD_NONBLOCK = 0x80
SIOCATMARK = 0x40047307 SIOCATMARK = 0x40047307

View File

@ -281,6 +281,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x80 SFD_NONBLOCK = 0x80
SIOCATMARK = 0x40047307 SIOCATMARK = 0x40047307

View File

@ -281,6 +281,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x80 SFD_NONBLOCK = 0x80
SIOCATMARK = 0x40047307 SIOCATMARK = 0x40047307

View File

@ -336,6 +336,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -340,6 +340,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -340,6 +340,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -272,6 +272,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -344,6 +344,9 @@ const (
SCM_TIMESTAMPNS = 0x23 SCM_TIMESTAMPNS = 0x23
SCM_TXTIME = 0x3d SCM_TXTIME = 0x3d
SCM_WIFI_STATUS = 0x29 SCM_WIFI_STATUS = 0x29
SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104
SFD_CLOEXEC = 0x80000 SFD_CLOEXEC = 0x80000
SFD_NONBLOCK = 0x800 SFD_NONBLOCK = 0x800
SIOCATMARK = 0x8905 SIOCATMARK = 0x8905

View File

@ -335,6 +335,9 @@ const (
SCM_TIMESTAMPNS = 0x21 SCM_TIMESTAMPNS = 0x21
SCM_TXTIME = 0x3f SCM_TXTIME = 0x3f
SCM_WIFI_STATUS = 0x25 SCM_WIFI_STATUS = 0x25
SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103
SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102
SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104
SFD_CLOEXEC = 0x400000 SFD_CLOEXEC = 0x400000
SFD_NONBLOCK = 0x4000 SFD_NONBLOCK = 0x4000
SF_FP = 0x38 SF_FP = 0x38

View File

@ -448,4 +448,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -371,4 +371,7 @@ const (
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453 SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -412,4 +412,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -315,4 +315,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -309,4 +309,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -432,4 +432,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 4450 SYS_SET_MEMPOLICY_HOME_NODE = 4450
SYS_CACHESTAT = 4451 SYS_CACHESTAT = 4451
SYS_FCHMODAT2 = 4452 SYS_FCHMODAT2 = 4452
SYS_MAP_SHADOW_STACK = 4453
SYS_FUTEX_WAKE = 4454
SYS_FUTEX_WAIT = 4455
SYS_FUTEX_REQUEUE = 4456
) )

View File

@ -362,4 +362,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 5450 SYS_SET_MEMPOLICY_HOME_NODE = 5450
SYS_CACHESTAT = 5451 SYS_CACHESTAT = 5451
SYS_FCHMODAT2 = 5452 SYS_FCHMODAT2 = 5452
SYS_MAP_SHADOW_STACK = 5453
SYS_FUTEX_WAKE = 5454
SYS_FUTEX_WAIT = 5455
SYS_FUTEX_REQUEUE = 5456
) )

View File

@ -362,4 +362,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 5450 SYS_SET_MEMPOLICY_HOME_NODE = 5450
SYS_CACHESTAT = 5451 SYS_CACHESTAT = 5451
SYS_FCHMODAT2 = 5452 SYS_FCHMODAT2 = 5452
SYS_MAP_SHADOW_STACK = 5453
SYS_FUTEX_WAKE = 5454
SYS_FUTEX_WAIT = 5455
SYS_FUTEX_REQUEUE = 5456
) )

View File

@ -432,4 +432,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 4450 SYS_SET_MEMPOLICY_HOME_NODE = 4450
SYS_CACHESTAT = 4451 SYS_CACHESTAT = 4451
SYS_FCHMODAT2 = 4452 SYS_FCHMODAT2 = 4452
SYS_MAP_SHADOW_STACK = 4453
SYS_FUTEX_WAKE = 4454
SYS_FUTEX_WAIT = 4455
SYS_FUTEX_REQUEUE = 4456
) )

View File

@ -439,4 +439,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -411,4 +411,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -411,4 +411,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -316,4 +316,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -377,4 +377,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -390,4 +390,8 @@ const (
SYS_SET_MEMPOLICY_HOME_NODE = 450 SYS_SET_MEMPOLICY_HOME_NODE = 450
SYS_CACHESTAT = 451 SYS_CACHESTAT = 451
SYS_FCHMODAT2 = 452 SYS_FCHMODAT2 = 452
SYS_MAP_SHADOW_STACK = 453
SYS_FUTEX_WAKE = 454
SYS_FUTEX_WAIT = 455
SYS_FUTEX_REQUEUE = 456
) )

View File

@ -174,7 +174,8 @@ type FscryptPolicyV2 struct {
Contents_encryption_mode uint8 Contents_encryption_mode uint8
Filenames_encryption_mode uint8 Filenames_encryption_mode uint8
Flags uint8 Flags uint8
_ [4]uint8 Log2_data_unit_size uint8
_ [3]uint8
Master_key_identifier [16]uint8 Master_key_identifier [16]uint8
} }
@ -455,60 +456,63 @@ type Ucred struct {
} }
type TCPInfo struct { type TCPInfo struct {
State uint8 State uint8
Ca_state uint8 Ca_state uint8
Retransmits uint8 Retransmits uint8
Probes uint8 Probes uint8
Backoff uint8 Backoff uint8
Options uint8 Options uint8
Rto uint32 Rto uint32
Ato uint32 Ato uint32
Snd_mss uint32 Snd_mss uint32
Rcv_mss uint32 Rcv_mss uint32
Unacked uint32 Unacked uint32
Sacked uint32 Sacked uint32
Lost uint32 Lost uint32
Retrans uint32 Retrans uint32
Fackets uint32 Fackets uint32
Last_data_sent uint32 Last_data_sent uint32
Last_ack_sent uint32 Last_ack_sent uint32
Last_data_recv uint32 Last_data_recv uint32
Last_ack_recv uint32 Last_ack_recv uint32
Pmtu uint32 Pmtu uint32
Rcv_ssthresh uint32 Rcv_ssthresh uint32
Rtt uint32 Rtt uint32
Rttvar uint32 Rttvar uint32
Snd_ssthresh uint32 Snd_ssthresh uint32
Snd_cwnd uint32 Snd_cwnd uint32
Advmss uint32 Advmss uint32
Reordering uint32 Reordering uint32
Rcv_rtt uint32 Rcv_rtt uint32
Rcv_space uint32 Rcv_space uint32
Total_retrans uint32 Total_retrans uint32
Pacing_rate uint64 Pacing_rate uint64
Max_pacing_rate uint64 Max_pacing_rate uint64
Bytes_acked uint64 Bytes_acked uint64
Bytes_received uint64 Bytes_received uint64
Segs_out uint32 Segs_out uint32
Segs_in uint32 Segs_in uint32
Notsent_bytes uint32 Notsent_bytes uint32
Min_rtt uint32 Min_rtt uint32
Data_segs_in uint32 Data_segs_in uint32
Data_segs_out uint32 Data_segs_out uint32
Delivery_rate uint64 Delivery_rate uint64
Busy_time uint64 Busy_time uint64
Rwnd_limited uint64 Rwnd_limited uint64
Sndbuf_limited uint64 Sndbuf_limited uint64
Delivered uint32 Delivered uint32
Delivered_ce uint32 Delivered_ce uint32
Bytes_sent uint64 Bytes_sent uint64
Bytes_retrans uint64 Bytes_retrans uint64
Dsack_dups uint32 Dsack_dups uint32
Reord_seen uint32 Reord_seen uint32
Rcv_ooopack uint32 Rcv_ooopack uint32
Snd_wnd uint32 Snd_wnd uint32
Rcv_wnd uint32 Rcv_wnd uint32
Rehash uint32 Rehash uint32
Total_rto uint16
Total_rto_recoveries uint16
Total_rto_time uint32
} }
type CanFilter struct { type CanFilter struct {
@ -551,7 +555,7 @@ const (
SizeofIPv6MTUInfo = 0x20 SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20 SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc SizeofUcred = 0xc
SizeofTCPInfo = 0xf0 SizeofTCPInfo = 0xf8
SizeofCanFilter = 0x8 SizeofCanFilter = 0x8
SizeofTCPRepairOpt = 0x8 SizeofTCPRepairOpt = 0x8
) )
@ -3399,7 +3403,7 @@ const (
DEVLINK_PORT_FN_ATTR_STATE = 0x2 DEVLINK_PORT_FN_ATTR_STATE = 0x2
DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3
DEVLINK_PORT_FN_ATTR_CAPS = 0x4 DEVLINK_PORT_FN_ATTR_CAPS = 0x4
DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5
) )
type FsverityDigest struct { type FsverityDigest struct {
@ -4183,7 +4187,8 @@ const (
) )
type LandlockRulesetAttr struct { type LandlockRulesetAttr struct {
Access_fs uint64 Access_fs uint64
Access_net uint64
} }
type LandlockPathBeneathAttr struct { type LandlockPathBeneathAttr struct {
@ -5134,7 +5139,7 @@ const (
NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf
NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe
NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf
NL80211_FREQUENCY_ATTR_MAX = 0x1b NL80211_FREQUENCY_ATTR_MAX = 0x1c
NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6
NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11
NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc
@ -5547,7 +5552,7 @@ const (
NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2
NL80211_REGDOM_TYPE_INTERSECTION = 0x3 NL80211_REGDOM_TYPE_INTERSECTION = 0x3
NL80211_REGDOM_TYPE_WORLD = 0x1 NL80211_REGDOM_TYPE_WORLD = 0x1
NL80211_REG_RULE_ATTR_MAX = 0x7 NL80211_REG_RULE_ATTR_MAX = 0x8
NL80211_REKEY_DATA_AKM = 0x4 NL80211_REKEY_DATA_AKM = 0x4
NL80211_REKEY_DATA_KCK = 0x2 NL80211_REKEY_DATA_KCK = 0x2
NL80211_REKEY_DATA_KEK = 0x1 NL80211_REKEY_DATA_KEK = 0x1

View File

@ -37,14 +37,17 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) {
return nil, err return nil, err
} }
defer DestroyEnvironmentBlock(block) defer DestroyEnvironmentBlock(block)
blockp := unsafe.Pointer(block) size := unsafe.Sizeof(*block)
for { for *block != 0 {
entry := UTF16PtrToString((*uint16)(blockp)) // find NUL terminator
if len(entry) == 0 { end := unsafe.Pointer(block)
break for *(*uint16)(end) != 0 {
end = unsafe.Add(end, size)
} }
env = append(env, entry)
blockp = unsafe.Add(blockp, 2*(len(entry)+1)) entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size)
env = append(env, UTF16ToString(entry))
block = (*uint16)(unsafe.Add(end, size))
} }
return env, nil return env, nil
} }

View File

@ -125,8 +125,7 @@ func UTF16PtrToString(p *uint16) string {
for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ {
ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p))
} }
return UTF16ToString(unsafe.Slice(p, n))
return string(utf16.Decode(unsafe.Slice(p, n)))
} }
func Getpagesize() int { return 4096 } func Getpagesize() int { return 4096 }

12
vendor/modules.txt vendored
View File

@ -40,7 +40,7 @@ github.com/fsmiamoto/git-todo-parser/todo
# github.com/gdamore/encoding v1.0.0 # github.com/gdamore/encoding v1.0.0
## explicit; go 1.9 ## explicit; go 1.9
github.com/gdamore/encoding github.com/gdamore/encoding
# github.com/gdamore/tcell/v2 v2.7.1-0.20240121011954-0393f5eb0b1a # github.com/gdamore/tcell/v2 v2.7.1
## explicit; go 1.12 ## explicit; go 1.12
github.com/gdamore/tcell/v2 github.com/gdamore/tcell/v2
github.com/gdamore/tcell/v2/terminfo github.com/gdamore/tcell/v2/terminfo
@ -65,7 +65,6 @@ github.com/gdamore/tcell/v2/terminfo/r/rxvt
github.com/gdamore/tcell/v2/terminfo/s/screen github.com/gdamore/tcell/v2/terminfo/s/screen
github.com/gdamore/tcell/v2/terminfo/s/simpleterm github.com/gdamore/tcell/v2/terminfo/s/simpleterm
github.com/gdamore/tcell/v2/terminfo/s/sun github.com/gdamore/tcell/v2/terminfo/s/sun
github.com/gdamore/tcell/v2/terminfo/t/termite
github.com/gdamore/tcell/v2/terminfo/t/tmux github.com/gdamore/tcell/v2/terminfo/t/tmux
github.com/gdamore/tcell/v2/terminfo/v/vt100 github.com/gdamore/tcell/v2/terminfo/v/vt100
github.com/gdamore/tcell/v2/terminfo/v/vt102 github.com/gdamore/tcell/v2/terminfo/v/vt102
@ -80,7 +79,6 @@ github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi
github.com/gdamore/tcell/v2/terminfo/x/xfce github.com/gdamore/tcell/v2/terminfo/x/xfce
github.com/gdamore/tcell/v2/terminfo/x/xterm github.com/gdamore/tcell/v2/terminfo/x/xterm
github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty
github.com/gdamore/tcell/v2/terminfo/x/xterm_termite
# github.com/go-errors/errors v1.5.1 # github.com/go-errors/errors v1.5.1
## explicit; go 1.14 ## explicit; go 1.14
github.com/go-errors/errors github.com/go-errors/errors
@ -174,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/index
github.com/jesseduffield/go-git/v5/utils/merkletrie/internal/frame github.com/jesseduffield/go-git/v5/utils/merkletrie/internal/frame
github.com/jesseduffield/go-git/v5/utils/merkletrie/noder github.com/jesseduffield/go-git/v5/utils/merkletrie/noder
# github.com/jesseduffield/gocui v0.3.1-0.20240129213945-26fc8669eb5b # github.com/jesseduffield/gocui v0.3.1-0.20240301130105-aefee393ff39
## explicit; go 1.12 ## explicit; go 1.12
github.com/jesseduffield/gocui github.com/jesseduffield/gocui
# github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10 # github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10
@ -245,7 +243,7 @@ github.com/petermattis/goid
# github.com/pmezard/go-difflib v1.0.0 # github.com/pmezard/go-difflib v1.0.0
## explicit ## explicit
github.com/pmezard/go-difflib/difflib github.com/pmezard/go-difflib/difflib
# github.com/rivo/uniseg v0.4.6 # github.com/rivo/uniseg v0.4.7
## explicit; go 1.18 ## explicit; go 1.18
github.com/rivo/uniseg github.com/rivo/uniseg
# github.com/sahilm/fuzzy v0.1.0 # github.com/sahilm/fuzzy v0.1.0
@ -315,13 +313,13 @@ golang.org/x/exp/slices
golang.org/x/net/context golang.org/x/net/context
golang.org/x/net/internal/socks golang.org/x/net/internal/socks
golang.org/x/net/proxy golang.org/x/net/proxy
# golang.org/x/sys v0.16.0 # golang.org/x/sys v0.17.0
## explicit; go 1.18 ## explicit; go 1.18
golang.org/x/sys/cpu golang.org/x/sys/cpu
golang.org/x/sys/plan9 golang.org/x/sys/plan9
golang.org/x/sys/unix golang.org/x/sys/unix
golang.org/x/sys/windows golang.org/x/sys/windows
# golang.org/x/term v0.16.0 # golang.org/x/term v0.17.0
## explicit; go 1.18 ## explicit; go 1.18
golang.org/x/term golang.org/x/term
# golang.org/x/text v0.14.0 # golang.org/x/text v0.14.0