package tcell

Import Path
	github.com/gdamore/tcell/v2 (on go.dev)

Dependency Relation
	imports 27 packages, and imported by 5 packages

Involved Source Files attr.go cell.go charset_unix.go color.go colorfit.go console_stub.go Package tcell provides a lower-level, portable API for building programs that interact with terminals or consoles. It works with both common (and many uncommon!) terminals or terminal emulators, and Windows console implementations. It provides support for up to 256 colors, text attributes, and box drawing elements. A database of terminals built from a real terminfo database is provided, along with code to generate new database entries. Tcell offers very rich support for mice, dependent upon the terminal of course. (Windows, XTerm, and iTerm 2 are known to work very well.) If the environment is not Unicode by default, such as an ISO8859 based locale or GB18030, Tcell can convert input and output, so that your terminal can operate in whatever locale is most convenient, while the application program can just assume "everything is UTF-8". Reasonable defaults are used for updating characters to something suitable for display. Unicode box drawing characters will be converted to use the alternate character set of your terminal, if native conversions are not available. If no ACS is available, then some ASCII fallbacks will be used. Note that support for non-UTF-8 locales (other than C) must be enabled by the application using RegisterEncoding() -- we don't have them all enabled by default to avoid bloating the application unnecessarily. (These days UTF-8 is good enough for almost everyone, and nobody should be using legacy locales anymore.) Also, actual glyphs for various code point will only be displayed if your terminal or emulator (or the font the emulator is using) supports them. A rich set of key codes is supported, with support for up to 65 function keys, and various other special keys. encoding.go errors.go event.go focus.go interrupt.go key.go mouse.go nonblock_unix.go paste.go resize.go runes.go screen.go simulation.go stdin_unix.go style.go terms_default.go terms_dynamic.go tscreen.go tscreen_unix.go tty.go tty_unix.go
Package-Level Type Names (total 27)
/* sort by: | */
AttrMask represents a mask of text attributes, apart from color. Note that support for attributes may vary widely across terminals. func Style.Decompose() (fg Color, bg Color, attr AttrMask) func Style.Attributes(attrs AttrMask) Style func github.com/pancsta/cview.SetAttributes(style Style, attrs AttrMask) Style func github.com/pancsta/cview.(*Box).SetBorderAttributes(attr AttrMask) func github.com/pancsta/cview.(*List).SetSelectedTextAttributes(attr AttrMask) func github.com/pancsta/cview.(*Table).SetSelectedStyle(foregroundColor, backgroundColor Color, attributes AttrMask) func github.com/pancsta/cview.(*TableCell).SetAttributes(attr AttrMask) const AttrBlink const AttrBold const AttrDim const AttrInvalid const AttrItalic const AttrNone const AttrReverse const AttrStrikeThrough const AttrUnderline
ButtonMask is a mask of mouse buttons and wheel events. Mouse button presses are normally delivered as both press and release events. Mouse wheel events are normally just single impulse events. Windows supports up to eight separate buttons plus all four wheel directions, but XTerm can only support mouse buttons 1-3 and wheel up/down. Its not unheard of for terminals to support only one or two buttons (think Macs). Old terminals, and true emulations (such as vt100) won't support mice at all, of course. func (*EventMouse).Buttons() ButtonMask func NewEventMouse(x, y int, btn ButtonMask, mod ModMask) *EventMouse func SimulationScreen.InjectMouse(x, y int, buttons ButtonMask, mod ModMask) const Button1 const Button2 const Button3 const Button4 const Button5 const Button6 const Button7 const Button8 const ButtonMiddle const ButtonNone const ButtonPrimary const ButtonSecondary const WheelDown const WheelLeft const WheelRight const WheelUp
CellBuffer represents a two-dimensional array of character cells. This is primarily intended for use by Screen implementors; it contains much of the common code they need. To create one, just declare a variable of its type; no explicit initialization is necessary. CellBuffer is not thread safe. Dirty checks if a character at the given location needs to be refreshed on the physical display. This returns true if the cell content is different since the last time it was marked clean. Fill fills the entire cell buffer array with the specified character and style. Normally choose ' ' to clear the screen. This API doesn't support combining characters, or characters with a width larger than one. If either the foreground or background are ColorNone, then the respective color is unchanged. GetContent returns the contents of a character cell, including the primary rune, any combining character runes (which will usually be nil), the style, and the display width in cells. (The width can be either 1, normally, or 2 for East Asian full-width characters.) Invalidate marks all characters within the buffer as dirty. LockCell locks a cell from being drawn, effectively marking it "clean" until the lock is removed. This can be used to prevent tcell from drawing a given cell, even if the underlying content has changed. For example, when drawing a sixel graphic directly to a TTY screen an implementer must lock the region underneath the graphic to prevent tcell from drawing on top of the graphic. Resize is used to resize the cells array, with different dimensions, while preserving the original contents. The cells will be invalidated so that they can be redrawn. SetContent sets the contents (primary rune, combining runes, and style) for a cell at a given location. If the background or foreground of the style is set to ColorNone, then the respective color is left un changed. SetDirty is normally used to indicate that a cell has been displayed (in which case dirty is false), or to manually force a cell to be marked dirty. Size returns the (width, height) in cells of the buffer. UnlockCell removes a lock from the cell and marks it as dirty
Color represents a color. The low numeric values are the same as used by ECMA-48, and beyond that XTerm. A 24-bit RGB value may be used by adding in the ColorIsRGB flag. For Color names we use the W3C approved color names. We use a 64-bit integer to allow future expansion if we want to add an 8-bit alpha, while still leaving us some room for extra options. Note that on various terminals colors may be approximated however, or not supported at all. If no suitable representation for a color is known, the library will simply not set any color, deferring to whatever default attributes the terminal uses. CSS returns the CSS hex string ( #ABCDEF ) if valid if not a valid color returns empty string Hex returns the color's hexadecimal RGB 24-bit value with each component consisting of a single byte, R << 16 | G << 8 | B. If the color is unknown or unset, -1 is returned. IsRGB is true if the color is an RGB specific value. Name returns W3C name or an empty string if no arguments if passed true as an argument it will falls back to the CSS hex string if no W3C name found '#ABCDEF' RGB returns the red, green, and blue components of the color, with each component represented as a value 0-255. In the event that the color cannot be broken up (not set usually), -1 is returned for each value. String implements fmt.Stringer to return either the W3C name if it has one or the CSS hex string '#ABCDEF' TrueColor returns the true color (RGB) version of the provided color. This is useful for ensuring color accuracy when using named colors. This will override terminal theme colors. Valid indicates the color is a valid value (has been set). Color : expvar.Var Color : fmt.Stringer func FindColor(c Color, palette []Color) Color func FromImageColor(imageColor ic.Color) Color func GetColor(name string) Color func NewHexColor(v int32) Color func NewRGBColor(r, g, b int32) Color func PaletteColor(index int) Color func Color.TrueColor() Color func Style.Decompose() (fg Color, bg Color, attr AttrMask) func Style.Decompose() (fg Color, bg Color, attr AttrMask) func Style.GetUnderlineColor() Color func github.com/pancsta/cview.(*Box).GetBackgroundColor() Color func github.com/pancsta/cview.(*TreeNode).GetColor() Color func FindColor(c Color, palette []Color) Color func FindColor(c Color, palette []Color) Color func Screen.SetCursorStyle(CursorStyle, ...Color) func SimulationScreen.SetCursorStyle(CursorStyle, ...Color) func Style.Background(c Color) Style func Style.Foreground(c Color) Style func github.com/pancsta/cview.ColorHex(c Color) string func github.com/pancsta/cview.Print(screen Screen, text []byte, x, y, maxWidth, align int, color Color) (int, int) func github.com/pancsta/cview.PrintJoinedSemigraphics(screen Screen, x, y int, ch rune, color Color) func github.com/pancsta/cview.RenderScrollBar(screen Screen, visibility cview.ScrollBarVisibility, x int, y int, height int, items int, cursor int, printed int, focused bool, color Color) func github.com/pancsta/cview.(*Box).SetBackgroundColor(color Color) func github.com/pancsta/cview.(*Box).SetBorderColor(color Color) func github.com/pancsta/cview.(*Box).SetBorderColorFocused(color Color) func github.com/pancsta/cview.(*Box).SetTitleColor(color Color) func github.com/pancsta/cview.(*Button).SetBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*Button).SetLabelColor(color Color) func github.com/pancsta/cview.(*Button).SetLabelColorFocused(color Color) func github.com/pancsta/cview.(*CheckBox).SetFieldBackgroundColor(color Color) func github.com/pancsta/cview.(*CheckBox).SetFieldBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*CheckBox).SetFieldTextColor(color Color) func github.com/pancsta/cview.(*CheckBox).SetFieldTextColorFocused(color Color) func github.com/pancsta/cview.(*CheckBox).SetLabelColor(color Color) func github.com/pancsta/cview.(*CheckBox).SetLabelColorFocused(color Color) func github.com/pancsta/cview.(*DropDown).SetDropDownBackgroundColor(color Color) func github.com/pancsta/cview.(*DropDown).SetDropDownSelectedBackgroundColor(color Color) func github.com/pancsta/cview.(*DropDown).SetDropDownSelectedTextColor(color Color) func github.com/pancsta/cview.(*DropDown).SetDropDownTextColor(color Color) func github.com/pancsta/cview.(*DropDown).SetFieldBackgroundColor(color Color) func github.com/pancsta/cview.(*DropDown).SetFieldBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*DropDown).SetFieldTextColor(color Color) func github.com/pancsta/cview.(*DropDown).SetFieldTextColorFocused(color Color) func github.com/pancsta/cview.(*DropDown).SetLabelColor(color Color) func github.com/pancsta/cview.(*DropDown).SetLabelColorFocused(color Color) func github.com/pancsta/cview.(*DropDown).SetPrefixTextColor(color Color) func github.com/pancsta/cview.(*Form).SetButtonBackgroundColor(color Color) func github.com/pancsta/cview.(*Form).SetButtonBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*Form).SetButtonTextColor(color Color) func github.com/pancsta/cview.(*Form).SetButtonTextColorFocused(color Color) func github.com/pancsta/cview.(*Form).SetFieldBackgroundColor(color Color) func github.com/pancsta/cview.(*Form).SetFieldBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*Form).SetFieldTextColor(color Color) func github.com/pancsta/cview.(*Form).SetFieldTextColorFocused(color Color) func github.com/pancsta/cview.(*Form).SetLabelColor(color Color) func github.com/pancsta/cview.(*Form).SetLabelColorFocused(color Color) func github.com/pancsta/cview.FormItem.SetBackgroundColor(Color) func github.com/pancsta/cview.FormItem.SetFieldBackgroundColor(Color) func github.com/pancsta/cview.FormItem.SetFieldBackgroundColorFocused(Color) func github.com/pancsta/cview.FormItem.SetFieldTextColor(Color) func github.com/pancsta/cview.FormItem.SetFieldTextColorFocused(Color) func github.com/pancsta/cview.FormItem.SetLabelColor(Color) func github.com/pancsta/cview.FormItem.SetLabelColorFocused(Color) func github.com/pancsta/cview.(*Frame).AddText(text string, header bool, align int, color Color) func github.com/pancsta/cview.(*Grid).SetBordersColor(color Color) func github.com/pancsta/cview.(*InputField).SetAutocompleteListBackgroundColor(color Color) func github.com/pancsta/cview.(*InputField).SetAutocompleteListSelectedBackgroundColor(color Color) func github.com/pancsta/cview.(*InputField).SetAutocompleteListSelectedTextColor(color Color) func github.com/pancsta/cview.(*InputField).SetAutocompleteListTextColor(color Color) func github.com/pancsta/cview.(*InputField).SetAutocompleteSuggestionTextColor(color Color) func github.com/pancsta/cview.(*InputField).SetFieldBackgroundColor(color Color) func github.com/pancsta/cview.(*InputField).SetFieldBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*InputField).SetFieldNoteTextColor(color Color) func github.com/pancsta/cview.(*InputField).SetFieldTextColor(color Color) func github.com/pancsta/cview.(*InputField).SetFieldTextColorFocused(color Color) func github.com/pancsta/cview.(*InputField).SetLabelColor(color Color) func github.com/pancsta/cview.(*InputField).SetLabelColorFocused(color Color) func github.com/pancsta/cview.(*InputField).SetPlaceholderTextColor(color Color) func github.com/pancsta/cview.(*InputField).SetPlaceholderTextColorFocused(color Color) func github.com/pancsta/cview.(*List).SetMainTextColor(color Color) func github.com/pancsta/cview.(*List).SetScrollBarColor(color Color) func github.com/pancsta/cview.(*List).SetSecondaryTextColor(color Color) func github.com/pancsta/cview.(*List).SetSelectedBackgroundColor(color Color) func github.com/pancsta/cview.(*List).SetSelectedTextColor(color Color) func github.com/pancsta/cview.(*List).SetShortcutColor(color Color) func github.com/pancsta/cview.(*Modal).SetBackgroundColor(color Color) func github.com/pancsta/cview.(*Modal).SetButtonBackgroundColor(color Color) func github.com/pancsta/cview.(*Modal).SetButtonTextColor(color Color) func github.com/pancsta/cview.(*Modal).SetTextColor(color Color) func github.com/pancsta/cview.(*ProgressBar).SetEmptyColor(empty Color) func github.com/pancsta/cview.(*ProgressBar).SetFilledColor(filled Color) func github.com/pancsta/cview.(*ScrollView).SetScrollBarColor(color Color) func github.com/pancsta/cview.(*Slider).SetFieldBackgroundColor(color Color) func github.com/pancsta/cview.(*Slider).SetFieldBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*Slider).SetFieldTextColor(color Color) func github.com/pancsta/cview.(*Slider).SetFieldTextColorFocused(color Color) func github.com/pancsta/cview.(*Slider).SetLabelColor(color Color) func github.com/pancsta/cview.(*Slider).SetLabelColorFocused(color Color) func github.com/pancsta/cview.(*TabbedPanels).SetTabBackgroundColor(color Color) func github.com/pancsta/cview.(*TabbedPanels).SetTabBackgroundColorFocused(color Color) func github.com/pancsta/cview.(*TabbedPanels).SetTabTextColor(color Color) func github.com/pancsta/cview.(*TabbedPanels).SetTabTextColorFocused(color Color) func github.com/pancsta/cview.(*Table).SetBordersColor(color Color) func github.com/pancsta/cview.(*Table).SetScrollBarColor(color Color) func github.com/pancsta/cview.(*Table).SetSelectedStyle(foregroundColor, backgroundColor Color, attributes AttrMask) func github.com/pancsta/cview.(*TableCell).SetBackgroundColor(color Color) func github.com/pancsta/cview.(*TableCell).SetTextColor(color Color) func github.com/pancsta/cview.(*TextView).SetHighlightBackgroundColor(color Color) func github.com/pancsta/cview.(*TextView).SetHighlightForegroundColor(color Color) func github.com/pancsta/cview.(*TextView).SetScrollBarColor(color Color) func github.com/pancsta/cview.(*TextView).SetTextColor(color Color) func github.com/pancsta/cview.(*TreeNode).SetColor(color Color) func github.com/pancsta/cview.(*TreeView).SetGraphicsColor(color Color) func github.com/pancsta/cview.(*TreeView).SetHighlightColor(color Color) func github.com/pancsta/cview.(*TreeView).SetScrollBarColor(color Color) func github.com/pancsta/cview.(*TreeView).SetSelectedBackgroundColor(color Color) func github.com/pancsta/cview.(*TreeView).SetSelectedTextColor(color Color) const Color100 const Color101 const Color102 const Color103 const Color104 const Color105 const Color106 const Color107 const Color108 const Color109 const Color110 const Color111 const Color112 const Color113 const Color114 const Color115 const Color116 const Color117 const Color118 const Color119 const Color120 const Color121 const Color122 const Color123 const Color124 const Color125 const Color126 const Color127 const Color128 const Color129 const Color130 const Color131 const Color132 const Color133 const Color134 const Color135 const Color136 const Color137 const Color138 const Color139 const Color140 const Color141 const Color142 const Color143 const Color144 const Color145 const Color146 const Color147 const Color148 const Color149 const Color150 const Color151 const Color152 const Color153 const Color154 const Color155 const Color156 const Color157 const Color158 const Color159 const Color16 const Color160 const Color161 const Color162 const Color163 const Color164 const Color165 const Color166 const Color167 const Color168 const Color169 const Color17 const Color170 const Color171 const Color172 const Color173 const Color174 const Color175 const Color176 const Color177 const Color178 const Color179 const Color18 const Color180 const Color181 const Color182 const Color183 const Color184 const Color185 const Color186 const Color187 const Color188 const Color189 const Color19 const Color190 const Color191 const Color192 const Color193 const Color194 const Color195 const Color196 const Color197 const Color198 const Color199 const Color20 const Color200 const Color201 const Color202 const Color203 const Color204 const Color205 const Color206 const Color207 const Color208 const Color209 const Color21 const Color210 const Color211 const Color212 const Color213 const Color214 const Color215 const Color216 const Color217 const Color218 const Color219 const Color22 const Color220 const Color221 const Color222 const Color223 const Color224 const Color225 const Color226 const Color227 const Color228 const Color229 const Color23 const Color230 const Color231 const Color232 const Color233 const Color234 const Color235 const Color236 const Color237 const Color238 const Color239 const Color24 const Color240 const Color241 const Color242 const Color243 const Color244 const Color245 const Color246 const Color247 const Color248 const Color249 const Color25 const Color250 const Color251 const Color252 const Color253 const Color254 const Color255 const Color26 const Color27 const Color28 const Color29 const Color30 const Color31 const Color32 const Color33 const Color34 const Color35 const Color36 const Color37 const Color38 const Color39 const Color40 const Color41 const Color42 const Color43 const Color44 const Color45 const Color46 const Color47 const Color48 const Color49 const Color50 const Color51 const Color52 const Color53 const Color54 const Color55 const Color56 const Color57 const Color58 const Color59 const Color60 const Color61 const Color62 const Color63 const Color64 const Color65 const Color66 const Color67 const Color68 const Color69 const Color70 const Color71 const Color72 const Color73 const Color74 const Color75 const Color76 const Color77 const Color78 const Color79 const Color80 const Color81 const Color82 const Color83 const Color84 const Color85 const Color86 const Color87 const Color88 const Color89 const Color90 const Color91 const Color92 const Color93 const Color94 const Color95 const Color96 const Color97 const Color98 const Color99 const ColorAliceBlue const ColorAntiqueWhite const ColorAqua const ColorAquaMarine const ColorAzure const ColorBeige const ColorBisque const ColorBlack const ColorBlanchedAlmond const ColorBlue const ColorBlueViolet const ColorBrown const ColorBurlyWood const ColorCadetBlue const ColorChartreuse const ColorChocolate const ColorCoral const ColorCornflowerBlue const ColorCornsilk const ColorCrimson const ColorDarkBlue const ColorDarkCyan const ColorDarkGoldenrod const ColorDarkGray const ColorDarkGreen const ColorDarkGrey const ColorDarkKhaki const ColorDarkMagenta const ColorDarkOliveGreen const ColorDarkOrange const ColorDarkOrchid const ColorDarkRed const ColorDarkSalmon const ColorDarkSeaGreen const ColorDarkSlateBlue const ColorDarkSlateGray const ColorDarkSlateGrey const ColorDarkTurquoise const ColorDarkViolet const ColorDeepPink const ColorDeepSkyBlue const ColorDefault const ColorDimGray const ColorDimGrey const ColorDodgerBlue const ColorFireBrick const ColorFloralWhite const ColorForestGreen const ColorFuchsia const ColorGainsboro const ColorGhostWhite const ColorGold const ColorGoldenrod const ColorGray const ColorGreen const ColorGreenYellow const ColorGrey const ColorHoneydew const ColorHotPink const ColorIndianRed const ColorIndigo const ColorIsRGB const ColorIvory const ColorKhaki const ColorLavender const ColorLavenderBlush const ColorLawnGreen const ColorLemonChiffon const ColorLightBlue const ColorLightCoral const ColorLightCyan const ColorLightGoldenrodYellow const ColorLightGray const ColorLightGreen const ColorLightGrey const ColorLightPink const ColorLightSalmon const ColorLightSeaGreen const ColorLightSkyBlue const ColorLightSlateGray const ColorLightSlateGrey const ColorLightSteelBlue const ColorLightYellow const ColorLime const ColorLimeGreen const ColorLinen const ColorMaroon const ColorMediumAquamarine const ColorMediumBlue const ColorMediumOrchid const ColorMediumPurple const ColorMediumSeaGreen const ColorMediumSlateBlue const ColorMediumSpringGreen const ColorMediumTurquoise const ColorMediumVioletRed const ColorMidnightBlue const ColorMintCream const ColorMistyRose const ColorMoccasin const ColorNavajoWhite const ColorNavy const ColorNone const ColorOldLace const ColorOlive const ColorOliveDrab const ColorOrange const ColorOrangeRed const ColorOrchid const ColorPaleGoldenrod const ColorPaleGreen const ColorPaleTurquoise const ColorPaleVioletRed const ColorPapayaWhip const ColorPeachPuff const ColorPeru const ColorPink const ColorPlum const ColorPowderBlue const ColorPurple const ColorRebeccaPurple const ColorRed const ColorReset const ColorRosyBrown const ColorRoyalBlue const ColorSaddleBrown const ColorSalmon const ColorSandyBrown const ColorSeaGreen const ColorSeashell const ColorSienna const ColorSilver const ColorSkyblue const ColorSlateBlue const ColorSlateGray const ColorSlateGrey const ColorSnow const ColorSpecial const ColorSpringGreen const ColorSteelBlue const ColorTan const ColorTeal const ColorThistle const ColorTomato const ColorTurquoise const ColorValid const ColorViolet const ColorWheat const ColorWhite const ColorWhiteSmoke const ColorYellow const ColorYellowGreen var github.com/pancsta/cview.ColorUnset
CursorStyle represents a given cursor style, which can include the shape and whether the cursor blinks or is solid. Support for changing this is not universal. func Screen.SetCursorStyle(CursorStyle, ...Color) func SimulationScreen.SetCursorStyle(CursorStyle, ...Color) const CursorStyleBlinkingBar const CursorStyleBlinkingBlock const CursorStyleBlinkingUnderline const CursorStyleDefault const CursorStyleSteadyBar const CursorStyleSteadyBlock const CursorStyleSteadyUnderline
EncodingFallback describes how the system behaves when the locale requires a character set that we do not support. The system always supports UTF-8 and US-ASCII. On Windows consoles, UTF-16LE is also supported automatically. Other character sets must be added using the RegisterEncoding API. (A large group of nearly all of them can be added using the RegisterAll function in the encoding sub package.) func SetEncodingFallback(fb EncodingFallback)
Event is a generic interface used for passing around Events. Concrete types follow. When reports the time when the event was generated. *EventClipboard *EventError EventFocus *EventInterrupt *EventKey *EventMouse *EventPaste *EventResize *EventTime func Screen.PollEvent() Event func SimulationScreen.PollEvent() Event func EventHandler.HandleEvent(Event) bool func Screen.ChannelEvents(ch chan<- Event, quit <-chan struct{}) func Screen.PostEvent(ev Event) error func Screen.PostEventWait(ev Event) func SimulationScreen.ChannelEvents(ch chan<- Event, quit <-chan struct{}) func SimulationScreen.PostEvent(ev Event) error func SimulationScreen.PostEventWait(ev Event) func github.com/pancsta/cview.(*Application).QueueEvent(event Event)
EventClipboard represents data from the clipboard, in response to a GetClipboard request. Data returns the attached binary data. When returns the time when this event was created. *EventClipboard : Event func NewEventClipboard(data []byte) *EventClipboard
An EventError is an event representing some sort of error, and carries an error payload. Error implements the error. When returns the time when the event was created. *EventError : Event *EventError : error func NewEventError(err error) *EventError
EventFocus is a focus event. It is sent when the terminal window (or tab) gets or loses focus. EventTime *EventTime True if the window received focus, false if it lost focus SetEventNow sets the time of occurrence for the event to the current time. SetEventTime sets the time of occurrence for the event. When returns the time stamp when the event occurred. EventFocus : Event func NewEventFocus(focused bool) *EventFocus
EventHandler is anything that handles events. If the handler has consumed the event, it should return true. False otherwise. ( EventHandler) HandleEvent(Event) bool
EventInterrupt is a generic wakeup event. Its can be used to to request a redraw. It can carry an arbitrary payload, as well. Data is used to obtain the opaque event payload. When returns the time when this event was created. *EventInterrupt : Event func NewEventInterrupt(data interface{}) *EventInterrupt
EventKey represents a key press. Usually this is a key press followed by a key release, but since terminal programs don't have a way to report key release events, we usually get just one event. If a key is held down then the terminal may synthesize repeated key presses at some predefined rate. We have no control over that, nor visibility into it. In some cases, we can have a modifier key, such as ModAlt, that can be generated with a key press. (This usually is represented by having the high bit set, or in some cases, by sending an ESC prior to the rune.) If the value of Key() is KeyRune, then the actual key value will be available with the Rune() method. This will be the case for most keys. In most situations, the modifiers will not be set. For example, if the rune is 'A', this will be reported without the ModShift bit set, since really can't tell if the Shift key was pressed (it might have been CAPSLOCK, or a terminal that only can send capitals, or keyboard with separate capital letters from lower case letters). Generally, terminal applications have far less visibility into keyboard activity than graphical applications. Hence, they should avoid depending overly much on availability of modifiers, or the availability of any specific keys. Key returns a virtual key code. We use this to identify specific key codes, such as KeyEnter, etc. Most control and function keys are reported with unique Key values. Normal alphanumeric and punctuation keys will generally return KeyRune here; the specific key can be further decoded using the Rune() function. Modifiers returns the modifiers that were present with the key press. Note that not all platforms and terminals support this equally well, and some cases we will not not know for sure. Hence, applications should avoid using this in most circumstances. Name returns a printable value or the key stroke. This can be used when printing the event, for example. Rune returns the rune corresponding to the key press, if it makes sense. The result is only defined if the value of Key() is KeyRune. When returns the time when this Event was created, which should closely match the time when the key was pressed. *EventKey : Event *EventKey : github.com/polarsignals/frostdb/query/logicalplan.Named func NewEventKey(k Key, ch rune, mod ModMask) *EventKey func code.rocketnine.space/tslocum/cbind.(*Configuration).Capture(ev *EventKey) *EventKey func github.com/pancsta/cview.HitShortcut(event *EventKey, keybindings ...[]string) bool func code.rocketnine.space/tslocum/cbind.(*Configuration).Capture(ev *EventKey) *EventKey
EventMouse is a mouse event. It is sent on either mouse up or mouse down events. It is also sent on mouse motion events - if the terminal supports it. We make every effort to ensure that mouse release events are delivered. Hence, click drag can be identified by a motion event with the mouse down, without any intervening button release. On some terminals only the initiating press and terminating release event will be delivered. Mouse wheel events, when reported, may appear on their own as individual impulses; that is, there will normally not be a release event delivered for mouse wheel movements. Most terminals cannot report the state of more than one button at a time -- and some cannot report motion events unless a button is pressed. Applications can inspect the time between events to resolve double or triple clicks. Buttons returns the list of buttons that were pressed or wheel motions. Modifiers returns a list of keyboard modifiers that were pressed with the mouse button(s). Position returns the mouse position in character cells. The origin 0, 0 is at the upper left corner. When returns the time when this EventMouse was created. *EventMouse : Event func NewEventMouse(x, y int, btn ButtonMask, mod ModMask) *EventMouse
EventPaste is used to mark the start and end of a bracketed paste. An event with .Start() true will be sent to mark the start of a bracketed paste, followed by a number of keys (string data) for the content, ending with the an event with .End() true. End returns true if this is the end of a paste. Start returns true if this is the start of a paste. When returns the time when this EventPaste was created. *EventPaste : Event func NewEventPaste(start bool) *EventPaste
EventResize is sent when the window size changes. PixelSize returns the new window size as width, height in pixels. The size will be 0,0 if the screen doesn't support this feature Size returns the new window size as width, height in character cells. When returns the time when the Event was created. *EventResize : Event func NewEventResize(width, height int) *EventResize
EventTime is a simple base event class, suitable for easy reuse. It can be used to deliver actual timer events as well. SetEventNow sets the time of occurrence for the event to the current time. SetEventTime sets the time of occurrence for the event. When returns the time stamp when the event occurred. *EventTime : Event
Key is a generic value for representing keys, and especially special keys (function keys, cursor movement keys, etc.) For normal keys, like ASCII letters, we use KeyRune, and then expect the application to inspect the Rune() member of the EventKey. func (*EventKey).Key() Key func code.rocketnine.space/tslocum/cbind.Decode(s string) (mod ModMask, key Key, ch rune, err error) func NewEventKey(k Key, ch rune, mod ModMask) *EventKey func Screen.HasKey(Key) bool func SimulationScreen.HasKey(Key) bool func SimulationScreen.InjectKey(key Key, r rune, mod ModMask) func code.rocketnine.space/tslocum/cbind.Encode(mod ModMask, key Key, ch rune) (string, error) func code.rocketnine.space/tslocum/cbind.(*Configuration).SetKey(mod ModMask, key Key, handler func(ev *EventKey) *EventKey) const KeyACK const KeyBackspace const KeyBackspace2 const KeyBacktab const KeyBEL const KeyBS const KeyCAN const KeyCancel const KeyCenter const KeyClear const KeyCR const KeyCtrlA const KeyCtrlB const KeyCtrlBackslash const KeyCtrlC const KeyCtrlCarat const KeyCtrlD const KeyCtrlE const KeyCtrlF const KeyCtrlG const KeyCtrlH const KeyCtrlI const KeyCtrlJ const KeyCtrlK const KeyCtrlL const KeyCtrlLeftSq const KeyCtrlM const KeyCtrlN const KeyCtrlO const KeyCtrlP const KeyCtrlQ const KeyCtrlR const KeyCtrlRightSq const KeyCtrlS const KeyCtrlSpace const KeyCtrlT const KeyCtrlU const KeyCtrlUnderscore const KeyCtrlV const KeyCtrlW const KeyCtrlX const KeyCtrlY const KeyCtrlZ const KeyDC1 const KeyDC2 const KeyDC3 const KeyDC4 const KeyDEL const KeyDelete const KeyDLE const KeyDown const KeyDownLeft const KeyDownRight const KeyEM const KeyEnd const KeyENQ const KeyEnter const KeyEOT const KeyESC const KeyEsc const KeyEscape const KeyETB const KeyETX const KeyExit const KeyF1 const KeyF10 const KeyF11 const KeyF12 const KeyF13 const KeyF14 const KeyF15 const KeyF16 const KeyF17 const KeyF18 const KeyF19 const KeyF2 const KeyF20 const KeyF21 const KeyF22 const KeyF23 const KeyF24 const KeyF25 const KeyF26 const KeyF27 const KeyF28 const KeyF29 const KeyF3 const KeyF30 const KeyF31 const KeyF32 const KeyF33 const KeyF34 const KeyF35 const KeyF36 const KeyF37 const KeyF38 const KeyF39 const KeyF4 const KeyF40 const KeyF41 const KeyF42 const KeyF43 const KeyF44 const KeyF45 const KeyF46 const KeyF47 const KeyF48 const KeyF49 const KeyF5 const KeyF50 const KeyF51 const KeyF52 const KeyF53 const KeyF54 const KeyF55 const KeyF56 const KeyF57 const KeyF58 const KeyF59 const KeyF6 const KeyF60 const KeyF61 const KeyF62 const KeyF63 const KeyF64 const KeyF7 const KeyF8 const KeyF9 const KeyFF const KeyFS const KeyGS const KeyHelp const KeyHome const KeyInsert const KeyLeft const KeyLF const KeyNAK const KeyNUL const KeyPause const KeyPgDn const KeyPgUp const KeyPrint const KeyRight const KeyRS const KeyRune const KeySI const KeySO const KeySOH const KeySTX const KeySUB const KeySYN const KeyTab const KeyTAB const KeyUp const KeyUpLeft const KeyUpRight const KeyUS const KeyVT
ModMask is a mask of modifier keys. Note that it will not always be possible to report modifier keys. func (*EventKey).Modifiers() ModMask func (*EventMouse).Modifiers() ModMask func code.rocketnine.space/tslocum/cbind.Decode(s string) (mod ModMask, key Key, ch rune, err error) func NewEventKey(k Key, ch rune, mod ModMask) *EventKey func NewEventMouse(x, y int, btn ButtonMask, mod ModMask) *EventMouse func SimulationScreen.InjectKey(key Key, r rune, mod ModMask) func SimulationScreen.InjectMouse(x, y int, buttons ButtonMask, mod ModMask) func code.rocketnine.space/tslocum/cbind.Encode(mod ModMask, key Key, ch rune) (string, error) func code.rocketnine.space/tslocum/cbind.(*Configuration).SetKey(mod ModMask, key Key, handler func(ev *EventKey) *EventKey) func code.rocketnine.space/tslocum/cbind.(*Configuration).SetRune(mod ModMask, ch rune, handler func(ev *EventKey) *EventKey) const ModAlt const ModCtrl const ModMeta const ModNone const ModShift
MouseFlags are options to modify the handling of mouse events. Actual events can be ORed together. func Screen.EnableMouse(...MouseFlags) func SimulationScreen.EnableMouse(...MouseFlags) const MouseButtonEvents const MouseDragEvents const MouseMotionEvents
Screen represents the physical (or emulated) screen. This can be a terminal window or a physical console. Platforms implement this differently. Beep attempts to sound an OS-dependent audible alert and returns an error when unsuccessful. CanDisplay returns true if the given rune can be displayed on this screen. Note that this is a best-guess effort -- whether your fonts support the character or not may be questionable. Mostly this is for folks who work outside of Unicode. If checkFallbacks is true, then if any (possibly imperfect) fallbacks are registered, this will return true. This will also return true if the terminal can replace the glyph with one that is visually indistinguishable from the one requested. ChannelEvents is an infinite loop that waits for an event and channels it into the user provided channel ch. Closing the quit channel and calling the Fini method are cancellation signals. When a cancellation signal is received the method returns after closing ch. This method should be used as a goroutine. NOTE: PollEvent should not be called while this method is running. CharacterSet returns information about the character set. This isn't the full locale, but it does give us the input/output character set. Note that this is just for diagnostic purposes, we normally translate input/output to/from UTF-8, regardless of what the user's environment is. Clear logically erases the screen. This is effectively a short-cut for Fill(' ', StyleDefault). Colors returns the number of colors. All colors are assumed to use the ANSI color map. If a terminal is monochrome, it will return 0. DisableFocus disables reporting of focus events. DisableMouse disables the mouse. DisablePaste disables bracketed paste mode. EnableFocus enables reporting of focus events, if your terminal supports it. EnableMouse enables the mouse. (If your terminal supports it.) If no flags are specified, then all events are reported, if the terminal supports them. EnablePaste enables bracketed paste mode, if supported. Fill fills the screen with the given character and style. The effect of filling the screen is not visible until Show is called (or Sync). Fini finalizes the screen also releasing resources. GetClipboard is used to request the clipboard contents. It may be ignored. If the terminal is willing, it will be post the clipboard contents using an EventPaste with the clipboard content as the Data() field. Terminals may prevent this for security reasons. GetContent returns the contents at the given location. If the coordinates are out of range, then the values will be 0, nil, StyleDefault. Note that the contents returned are logical contents and may not actually be what is displayed, but rather are what will be displayed if Show() or Sync() is called. The width is the width in screen cells; most often this will be 1, but some East Asian characters and emoji require two cells. HasKey returns true if the keyboard is believed to have the key. In some cases a keyboard may have keys with this name but no support for them, while in others a key may be reported as supported but not actually be usable (such as some emulators that hijack certain keys). Its best not to depend to strictly on this function, but it can be used for hinting when building menus, displayed hot-keys, etc. Note that KeyRune (literal runes) is always true. HasMouse returns true if the terminal (apparently) supports a mouse. Note that the return value of true doesn't guarantee that a mouse/pointing device is present; a false return definitely indicates no mouse support is available. HasPendingEvent returns true if PollEvent would return an event without blocking. If the screen is stopped and PollEvent would return nil, then the return value from this function is unspecified. The purpose of this function is to allow multiple events to be collected at once, to minimize screen redraws. HideCursor is used to hide the cursor. It's an alias for ShowCursor(-1, -1).sim Init initializes the screen for use. LockRegion sets or unsets a lock on a region of cells. A lock on a cell prevents the cell from being redrawn. PollEvent waits for events to arrive. Main application loops must spin on this to prevent the application from stalling. Furthermore, this will return nil if the Screen is finalized. PostEvent tries to post an event into the event stream. This can fail if the event queue is full. In that case, the event is dropped, and ErrEventQFull is returned. Deprecated: PostEventWait is unsafe, and will be removed in the future. PostEventWait is like PostEvent, but if the queue is full, it blocks until there is space in the queue, making delivery reliable. However, it is VERY important that this function never be called from within whatever event loop is polling with PollEvent(), otherwise a deadlock may arise. For this reason, when using this function, the use of a Goroutine is recommended to ensure no deadlock can occur. RegisterRuneFallback adds a fallback for runes that are not part of the character set -- for example one could register o as a fallback for ø. This should be done cautiously for characters that might be displayed ordinarily in language specific text -- characters that could change the meaning of written text would be dangerous. The intention here is to facilitate fallback characters in pseudo-graphical applications. If the terminal has fallbacks already in place via an alternate character set, those are used in preference. Also, standard fallbacks for graphical characters in the alternate character set terminfo string are registered implicitly. The display string should be the same width as original rune. This makes it possible to register two character replacements for full width East Asian characters, for example. It is recommended that replacement strings consist only of 7-bit ASCII, since other characters may not display everywhere. Resize does nothing, since it's generally not possible to ask a screen to resize, but it allows the Screen to implement the View interface. Resume resumes after Suspend(). SetCell is an older API, and will be removed. Please use SetContent instead; SetCell is implemented in terms of SetContent. SetClipboard is used to post arbitrary data to the system clipboard. This need not be UTF-8 string data. It's up to the recipient to decode the data meaningfully. Terminals may prevent this for security reasons. SetContent sets the contents of the given cell location. If the coordinates are out of range, then the operation is ignored. The first rune is the primary non-zero width rune. The array that follows is a possible list of combining characters to append, and will usually be nil (no combining characters.) The results are not displayed until Show() or Sync() is called. Note that wide (East Asian full width and emoji) runes occupy two cells, and attempts to place character at next cell to the right will have undefined effects. Wide runes that are printed in the last column will be replaced with a single width space on output. SetCursorStyle is used to set the cursor style. If the style is not supported (or cursor styles are not supported at all), then this will have no effect. Color will be changed if supplied, and the terminal supports doing so. SetSize attempts to resize the window. It also invalidates the cells and calls the resize function. Note that if the window size is changed, it will not be restored upon application exit. Many terminals cannot support this. Perversely, the "modern" Windows Terminal does not support application-initiated resizing, whereas the legacy terminal does. Also, some emulators can support this but may have it disabled by default. SetStyle sets the default style to use when clearing the screen or when StyleDefault is specified. If it is also StyleDefault, then whatever system/terminal default is relevant will be used. SetTitle sets a window title on the screen. Terminals may be configured to ignore this, or unable to. Tcell may attempt to save and restore the window title on entry and exit, but the results may vary. Use of unicode characters may not be supported. Show makes all the content changes made using SetContent() visible on the display. It does so in the most efficient and least visually disruptive manner possible. ShowCursor is used to display the cursor at a given location. If the coordinates -1, -1 are given or are otherwise outside the dimensions of the screen, the cursor will be hidden. Size returns the screen size as width, height. This changes in response to a call to Clear or Flush. Suspend pauses input and output processing. It also restores the terminal settings to what they were when the application started. This can be used to, for example, run a sub-shell. Sync works like Show(), but it updates every visible cell on the physical display, assuming that it is not synchronized with any internal model. This may be both expensive and visually jarring, so it should only be used when believed to actually be necessary. Typically, this is called as a result of a user-requested redraw (e.g. to clear up on-screen corruption caused by some other program), or during a resize event. Tty returns the underlying Tty. If the screen is not a terminal, the returned bool will be false UnregisterRuneFallback unmaps a replacement. It will unmap the implicit ASCII replacements for alternate characters as well. When an unmapped char needs to be displayed, but no suitable glyph is available, '?' is emitted instead. It is not possible to "disable" the use of alternate characters that are supported by your terminal except by changing the terminal database. SimulationScreen (interface) func NewConsoleScreen() (Screen, error) func NewScreen() (Screen, error) func NewTerminfoScreen() (Screen, error) func NewTerminfoScreenFromTty(tty Tty) (Screen, error) func NewTerminfoScreenFromTtyTerminfo(tty Tty, ti *terminfo.Terminfo) (s Screen, e error) func github.com/pancsta/asyncmachine-go/tools/cmd/am-dbg-ssh.NewSessionScreen(s ssh.Session) (Screen, error) func github.com/pancsta/cview.(*Application).GetScreen() Screen func github.com/pancsta/cview.Print(screen Screen, text []byte, x, y, maxWidth, align int, color Color) (int, int) func github.com/pancsta/cview.PrintJoinedSemigraphics(screen Screen, x, y int, ch rune, color Color) func github.com/pancsta/cview.PrintSimple(screen Screen, text []byte, x, y int) func github.com/pancsta/cview.PrintStyle(screen Screen, text []byte, x, y, maxWidth, align int, style Style) (int, int) func github.com/pancsta/cview.RenderScrollBar(screen Screen, visibility cview.ScrollBarVisibility, x int, y int, height int, items int, cursor int, printed int, focused bool, color Color) func github.com/pancsta/cview.(*Application).SetScreen(screen Screen) func github.com/pancsta/cview.(*Box).Draw(screen Screen) func github.com/pancsta/cview.(*Button).Draw(screen Screen) func github.com/pancsta/cview.(*CheckBox).Draw(screen Screen) func github.com/pancsta/cview.(*DropDown).Draw(screen Screen) func github.com/pancsta/cview.(*Flex).Draw(screen Screen) func github.com/pancsta/cview.(*Form).Draw(screen Screen) func github.com/pancsta/cview.FormItem.Draw(screen Screen) func github.com/pancsta/cview.(*Frame).Draw(screen Screen) func github.com/pancsta/cview.(*Grid).Draw(screen Screen) func github.com/pancsta/cview.(*InputField).Draw(screen Screen) func github.com/pancsta/cview.(*List).Draw(screen Screen) func github.com/pancsta/cview.(*Modal).Draw(screen Screen) func github.com/pancsta/cview.(*Panels).Draw(screen Screen) func github.com/pancsta/cview.Primitive.Draw(screen Screen) func github.com/pancsta/cview.(*ProgressBar).Draw(screen Screen) func github.com/pancsta/cview.(*ScrollView).Draw(screen Screen) func github.com/pancsta/cview.(*Slider).Draw(screen Screen) func github.com/pancsta/cview.(*TabbedPanels).Draw(screen Screen) func github.com/pancsta/cview.(*Table).Draw(screen Screen) func github.com/pancsta/cview.(*TextView).Draw(screen Screen) func github.com/pancsta/cview.(*TreeView).Draw(screen Screen) func github.com/pancsta/cview.(*Window).Draw(screen Screen) func github.com/pancsta/cview.(*WindowManager).Draw(screen Screen)
SimCell represents a simulated screen cell. The purpose of this is to track on screen content. Bytes is the actual character bytes. Normally this is rune data, but it could be be data in another encoding system. Runes is the list of runes, unadulterated, in UTF-8. Style is the style used to display the data. func SimulationScreen.GetContents() (cells []SimCell, width int, height int)
SimulationScreen represents a screen simulation. This is intended to be a superset of normal Screens, but also adds some important interfaces for testing. Beep attempts to sound an OS-dependent audible alert and returns an error when unsuccessful. CanDisplay returns true if the given rune can be displayed on this screen. Note that this is a best-guess effort -- whether your fonts support the character or not may be questionable. Mostly this is for folks who work outside of Unicode. If checkFallbacks is true, then if any (possibly imperfect) fallbacks are registered, this will return true. This will also return true if the terminal can replace the glyph with one that is visually indistinguishable from the one requested. ChannelEvents is an infinite loop that waits for an event and channels it into the user provided channel ch. Closing the quit channel and calling the Fini method are cancellation signals. When a cancellation signal is received the method returns after closing ch. This method should be used as a goroutine. NOTE: PollEvent should not be called while this method is running. CharacterSet returns information about the character set. This isn't the full locale, but it does give us the input/output character set. Note that this is just for diagnostic purposes, we normally translate input/output to/from UTF-8, regardless of what the user's environment is. Clear logically erases the screen. This is effectively a short-cut for Fill(' ', StyleDefault). Colors returns the number of colors. All colors are assumed to use the ANSI color map. If a terminal is monochrome, it will return 0. DisableFocus disables reporting of focus events. DisableMouse disables the mouse. DisablePaste disables bracketed paste mode. EnableFocus enables reporting of focus events, if your terminal supports it. EnableMouse enables the mouse. (If your terminal supports it.) If no flags are specified, then all events are reported, if the terminal supports them. EnablePaste enables bracketed paste mode, if supported. Fill fills the screen with the given character and style. The effect of filling the screen is not visible until Show is called (or Sync). Fini finalizes the screen also releasing resources. GetClipboard is used to request the clipboard contents. It may be ignored. If the terminal is willing, it will be post the clipboard contents using an EventPaste with the clipboard content as the Data() field. Terminals may prevent this for security reasons. GetClipboardData gets the actual data for the clipboard. GetContent returns the contents at the given location. If the coordinates are out of range, then the values will be 0, nil, StyleDefault. Note that the contents returned are logical contents and may not actually be what is displayed, but rather are what will be displayed if Show() or Sync() is called. The width is the width in screen cells; most often this will be 1, but some East Asian characters and emoji require two cells. GetContents returns screen contents as an array of cells, along with the physical width & height. Note that the physical contents will be used until the next time SetSize() is called. GetCursor returns the cursor details. GetTitle gets the previously set title. HasKey returns true if the keyboard is believed to have the key. In some cases a keyboard may have keys with this name but no support for them, while in others a key may be reported as supported but not actually be usable (such as some emulators that hijack certain keys). Its best not to depend to strictly on this function, but it can be used for hinting when building menus, displayed hot-keys, etc. Note that KeyRune (literal runes) is always true. HasMouse returns true if the terminal (apparently) supports a mouse. Note that the return value of true doesn't guarantee that a mouse/pointing device is present; a false return definitely indicates no mouse support is available. HasPendingEvent returns true if PollEvent would return an event without blocking. If the screen is stopped and PollEvent would return nil, then the return value from this function is unspecified. The purpose of this function is to allow multiple events to be collected at once, to minimize screen redraws. HideCursor is used to hide the cursor. It's an alias for ShowCursor(-1, -1).sim Init initializes the screen for use. InjectKey injects a key event. The rune is a UTF-8 rune, post any translation. InjectKeyBytes injects a stream of bytes corresponding to the native encoding (see charset). It turns true if the entire set of bytes were processed and delivered as KeyEvents, false if any bytes were not fully understood. Any bytes that are not fully converted are discarded. InjectMouse injects a mouse event. LockRegion sets or unsets a lock on a region of cells. A lock on a cell prevents the cell from being redrawn. PollEvent waits for events to arrive. Main application loops must spin on this to prevent the application from stalling. Furthermore, this will return nil if the Screen is finalized. PostEvent tries to post an event into the event stream. This can fail if the event queue is full. In that case, the event is dropped, and ErrEventQFull is returned. Deprecated: PostEventWait is unsafe, and will be removed in the future. PostEventWait is like PostEvent, but if the queue is full, it blocks until there is space in the queue, making delivery reliable. However, it is VERY important that this function never be called from within whatever event loop is polling with PollEvent(), otherwise a deadlock may arise. For this reason, when using this function, the use of a Goroutine is recommended to ensure no deadlock can occur. RegisterRuneFallback adds a fallback for runes that are not part of the character set -- for example one could register o as a fallback for ø. This should be done cautiously for characters that might be displayed ordinarily in language specific text -- characters that could change the meaning of written text would be dangerous. The intention here is to facilitate fallback characters in pseudo-graphical applications. If the terminal has fallbacks already in place via an alternate character set, those are used in preference. Also, standard fallbacks for graphical characters in the alternate character set terminfo string are registered implicitly. The display string should be the same width as original rune. This makes it possible to register two character replacements for full width East Asian characters, for example. It is recommended that replacement strings consist only of 7-bit ASCII, since other characters may not display everywhere. Resize does nothing, since it's generally not possible to ask a screen to resize, but it allows the Screen to implement the View interface. Resume resumes after Suspend(). SetCell is an older API, and will be removed. Please use SetContent instead; SetCell is implemented in terms of SetContent. SetClipboard is used to post arbitrary data to the system clipboard. This need not be UTF-8 string data. It's up to the recipient to decode the data meaningfully. Terminals may prevent this for security reasons. SetContent sets the contents of the given cell location. If the coordinates are out of range, then the operation is ignored. The first rune is the primary non-zero width rune. The array that follows is a possible list of combining characters to append, and will usually be nil (no combining characters.) The results are not displayed until Show() or Sync() is called. Note that wide (East Asian full width and emoji) runes occupy two cells, and attempts to place character at next cell to the right will have undefined effects. Wide runes that are printed in the last column will be replaced with a single width space on output. SetCursorStyle is used to set the cursor style. If the style is not supported (or cursor styles are not supported at all), then this will have no effect. Color will be changed if supplied, and the terminal supports doing so. SetSize attempts to resize the window. It also invalidates the cells and calls the resize function. Note that if the window size is changed, it will not be restored upon application exit. Many terminals cannot support this. Perversely, the "modern" Windows Terminal does not support application-initiated resizing, whereas the legacy terminal does. Also, some emulators can support this but may have it disabled by default. SetStyle sets the default style to use when clearing the screen or when StyleDefault is specified. If it is also StyleDefault, then whatever system/terminal default is relevant will be used. SetTitle sets a window title on the screen. Terminals may be configured to ignore this, or unable to. Tcell may attempt to save and restore the window title on entry and exit, but the results may vary. Use of unicode characters may not be supported. Show makes all the content changes made using SetContent() visible on the display. It does so in the most efficient and least visually disruptive manner possible. ShowCursor is used to display the cursor at a given location. If the coordinates -1, -1 are given or are otherwise outside the dimensions of the screen, the cursor will be hidden. Size returns the screen size as width, height. This changes in response to a call to Clear or Flush. Suspend pauses input and output processing. It also restores the terminal settings to what they were when the application started. This can be used to, for example, run a sub-shell. Sync works like Show(), but it updates every visible cell on the physical display, assuming that it is not synchronized with any internal model. This may be both expensive and visually jarring, so it should only be used when believed to actually be necessary. Typically, this is called as a result of a user-requested redraw (e.g. to clear up on-screen corruption caused by some other program), or during a resize event. Tty returns the underlying Tty. If the screen is not a terminal, the returned bool will be false UnregisterRuneFallback unmaps a replacement. It will unmap the implicit ASCII replacements for alternate characters as well. When an unmapped char needs to be displayed, but no suitable glyph is available, '?' is emitted instead. It is not possible to "disable" the use of alternate characters that are supported by your terminal except by changing the terminal database. SimulationScreen : Screen func NewSimulationScreen(charset string) SimulationScreen
Style represents a complete text style, including both foreground color, background color, and additional attributes such as "bold" or "underline". Note that not all terminals can display all colors or attributes, and many might have specific incompatibilities between specific attributes and color combinations. To use Style, just declare a variable of its type. Attributes returns a new style based on s, with its attributes set as specified. Background returns a new style based on s, with the background color set as requested. ColorDefault can be used to select the global default. Blink returns a new style based on s, with the blink attribute set as requested. Bold returns a new style based on s, with the bold attribute set as requested. Decompose breaks a style up, returning the foreground, background, and other attributes. The URL if set is not included. Deprecated: Applications should not attempt to decompose style, as this content is not sufficient to describe the actual style. Dim returns a new style based on s, with the dim attribute set as requested. Foreground returns a new style based on s, with the foreground color set as requested. ColorDefault can be used to select the global default. GetUnderlineColor returns the underline color for the style. GetUnderlineStyle returns the underline style for the style. Italic returns a new style based on s, with the italic attribute set as requested. Normal returns the style with all attributes disabled. Reverse returns a new style based on s, with the reverse attribute set as requested. (Reverse usually changes the foreground and background colors.) StrikeThrough sets strikethrough mode. Underline returns a new style based on s, with the underline attribute set as requested. The parameters can be: bool: on / off - enables just a simple underline UnderlineStyle: sets a specific style (should not coexist with the bool) Color: the color to use Url returns a style with the Url set. If the provided Url is not empty, and the terminal supports it, text will typically be marked up as a clickable link to that Url. If the Url is empty, then this mode is turned off. UrlId returns a style with the UrlId set. If the provided UrlId is not empty, any marked up Url with this style will be given the UrlId also. If the terminal supports it, any text with the same UrlId will be grouped as if it were one Url, even if it spans multiple lines. func (*CellBuffer).GetContent(x, y int) (rune, []rune, Style, int) func Screen.GetContent(x, y int) (primary rune, combining []rune, style Style, width int) func SimulationScreen.GetContent(x, y int) (primary rune, combining []rune, style Style, width int) func Style.Attributes(attrs AttrMask) Style func Style.Background(c Color) Style func Style.Blink(on bool) Style func Style.Bold(on bool) Style func Style.Dim(on bool) Style func Style.Foreground(c Color) Style func Style.Italic(on bool) Style func Style.Normal() Style func Style.Reverse(on bool) Style func Style.StrikeThrough(on bool) Style func Style.Underline(params ...interface{}) Style func Style.Url(url string) Style func Style.UrlId(id string) Style func github.com/pancsta/cview.SetAttributes(style Style, attrs AttrMask) Style func (*CellBuffer).Fill(r rune, style Style) func (*CellBuffer).SetContent(x int, y int, mainc rune, combc []rune, style Style) func Screen.Fill(rune, Style) func Screen.SetCell(x int, y int, style Style, ch ...rune) func Screen.SetContent(x int, y int, primary rune, combining []rune, style Style) func Screen.SetStyle(style Style) func SimulationScreen.Fill(rune, Style) func SimulationScreen.SetCell(x int, y int, style Style, ch ...rune) func SimulationScreen.SetContent(x int, y int, primary rune, combining []rune, style Style) func SimulationScreen.SetStyle(style Style) func github.com/pancsta/cview.PrintStyle(screen Screen, text []byte, x, y, maxWidth, align int, style Style) (int, int) func github.com/pancsta/cview.SetAttributes(style Style, attrs AttrMask) Style func github.com/pancsta/cview.(*TableCell).SetStyle(style Style) var StyleDefault
Tty is an abstraction of a tty (traditionally "teletype"). This allows applications to provide for alternate backends, as there are situations where the traditional /dev/tty does not work, or where more flexible handling is required. This interface is for use with the terminfo-style based API. It extends the io.ReadWriter API. It is reasonable that the implementation might choose to use different underlying files for the Reader and Writer sides of this API, as part of it's internal implementation. ( Tty) Close() error Drain is called before Stop, and ensures that the reader will wake up appropriately if it was blocked. This workaround is required for /dev/tty on certain UNIX systems to ensure that Read() does not block forever. This typically arranges for the tty driver to send data immediately (e.g. VMIN and VTIME both set zero) and sets a deadline on input. Implementations may reasonably make this a no-op. There will still be control sequences emitted between the time this is called, and when Stop is called. NotifyResize is used register a callback when the tty thinks the dimensions have changed. The standard UNIX implementation links this to a handler for SIGWINCH. If the supplied callback is nil, then any handler should be unregistered. ( Tty) Read(p []byte) (n int, err error) Start is used to activate the Tty for use. Upon return the terminal should be in raw mode, non-blocking, etc. The implementation should take care of saving any state that is required so that it may be restored when Stop is called. Stop is used to stop using this Tty instance. This may be a suspend, so that other terminal based applications can run in the foreground. Implementations should restore any state collected at Start(), and return to ordinary blocking mode, etc. Drain is called first to drain the input. Once this is called, no more Read or Write calls will be made until Start is called again. WindowSize is called to determine the terminal dimensions. This might be determined by an ioctl or other means. ( Tty) Write([]byte) (int, error) Tty : github.com/miekg/dns.Writer Tty : github.com/pion/stun.Connection Tty : github.com/pion/stun/v3.Connection Tty : github.com/prometheus/common/expfmt.Closer Tty : internal/bisect.Writer Tty : io.Closer Tty : io.ReadCloser Tty : io.Reader Tty : io.ReadWriteCloser Tty : io.ReadWriter Tty : io.WriteCloser Tty : io.Writer func NewDevTty() (Tty, error) func NewDevTtyFromDev(dev string) (Tty, error) func NewStdIoTty() (Tty, error) func Screen.Tty() (Tty, bool) func SimulationScreen.Tty() (Tty, bool) func NewTerminfoScreenFromTty(tty Tty) (Screen, error) func NewTerminfoScreenFromTtyTerminfo(tty Tty, ti *terminfo.Terminfo) (s Screen, e error)
Underline style. Modern terminals have the option of rendering the underline using different styles, and even different colors. func Style.GetUnderlineStyle() UnderlineStyle const UnderlineStyleCurly const UnderlineStyleDashed const UnderlineStyleDotted const UnderlineStyleDouble const UnderlineStyleNone const UnderlineStyleSolid
Height int PixelHeight int PixelWidth int Width int CellDimensions returns the dimensions of a single cell, in pixels func Tty.WindowSize() (WindowSize, error)
Package-Level Functions (total 27)
FindColor attempts to find a given color, or the best match possible for it, from the palette given. This is an expensive operation, so results should be cached by the caller.
FromImageColor converts an image/color.Color into tcell.Color. The alpha value is dropped, so it should be tracked separately if it is needed.
GetColor creates a Color from a color name (W3C name). A hex value may be supplied as a string in the format "#ffffff".
GetEncoding is used by Screen implementors who want to locate an encoding for the given character set name. Note that this will return nil for either the Unicode (UTF-8) or ASCII encodings, since we don't use encodings for them but instead have our own native methods.
LookupTerminfo attempts to find a definition for the named $TERM falling back to attempting to parse the output from infocmp.
NewConsoleScreen returns a console based screen. This platform doesn't have support for any, so it returns nil and a suitable error.
NewDevTty opens a /dev/tty based Tty.
NewDevTtyFromDev opens a tty device given a path. This can be useful to bind to other nodes.
NewEventClipboard returns a new NewEventClipboard with a data payload
NewEventError creates an ErrorEvent with the given error payload.
func NewEventFocus(focused bool) *EventFocus
NewEventInterrupt creates an EventInterrupt with the given payload.
NewEventKey attempts to create a suitable event. It parses the various ASCII control sequences if KeyRune is passed for Key, but if the caller has more precise information it should set that specifically. Callers that aren't sure about modifier state (most) should just pass ModNone.
NewEventMouse is used to create a new mouse event. Applications shouldn't need to use this; its mostly for screen implementors.
NewEventPaste returns a new EventPaste.
NewEventResize creates an EventResize with the new updated window size, which is given in character cells.
NewHexColor returns a color using the given 24-bit RGB value.
NewRGBColor returns a new color with the given red, green, and blue values. Each value must be represented in the range 0-255.
NewScreen returns a default Screen suitable for the user's terminal environment.
NewSimulationScreen returns a SimulationScreen. Note that SimulationScreen is also a Screen.
NewStdioTty opens a tty using standard input/output.
NewTerminfoScreen returns a Screen that uses the stock TTY interface and POSIX terminal control, combined with a terminfo description taken from the $TERM environment variable. It returns an error if the terminal is not supported for any reason. For terminals that do not support dynamic resize events, the $LINES $COLUMNS environment variables can be set to the actual window size, otherwise defaults taken from the terminal database are used.
NewTerminfoScreenFromTty returns a Screen using a custom Tty implementation. If the passed in tty is nil, then a reasonable default (typically /dev/tty) is presumed, at least on UNIX hosts. (Windows hosts will typically fail this call altogether.)
NewTerminfoScreenFromTtyTerminfo returns a Screen using a custom Tty implementation and custom terminfo specification. If the passed in tty is nil, then a reasonable default (typically /dev/tty) is presumed, at least on UNIX hosts. (Windows hosts will typically fail this call altogether.) If passed terminfo is nil, then TERM environment variable is queried for terminal specification.
PaletteColor creates a color based on the palette index.
The East Asian encodings have been seen to add 100-200K per encoding to the size of the resulting binary.
SetEncodingFallback changes the behavior of GetEncoding when a suitable encoding is not found. The default is EncodingFallbackFail, which causes GetEncoding to simply return nil.
Package-Level Variables (total 9)
ColorNames holds the written names of colors. Useful to present a list of recognized named colors.
ColorValues maps color constants to their RGB values.
ErrEventQFull indicates that the event queue is full, and cannot accept more events.
ErrNoCharset indicates that the locale environment the program is not supported by the program, because no suitable encoding was found for it. This problem never occurs if the environment is UTF-8 or UTF-16.
ErrNoScreen indicates that no suitable screen could be found. This may result from attempting to run on a platform where there is no support for either termios or console I/O (such as nacl), or from running in an environment where there is no access to a suitable console/terminal device. (For example, running on without a controlling TTY or with no /dev/tty on POSIX platforms.)
ErrTermNotFound indicates that a suitable terminal entry could not be found. This can result from either not having TERM set, or from the TERM failing to support certain minimal functionality, in particular absolute cursor addressability (the cup capability) is required. For example, legacy "adm3" lacks this capability, whereas the slightly newer "adm3a" supports it. This failure occurs most often with "dumb".
KeyNames holds the written names of special keys. Useful to echo back a key name, or to look up a key from a string value.
RuneFallbacks is the default map of fallback strings that will be used to replace a rune when no other more appropriate transformation is available, and the rune cannot be displayed directly. New entries may be added to this map over time, as it becomes clear that such is desirable. Characters that represent either letters or numbers should not be added to this list unless it is certain that the meaning will still convey unambiguously. As an example, it would be appropriate to add an ASCII mapping for the full width form of the letter 'A', but it would not be appropriate to do so a glyph representing the country China. Programs that desire richer fallbacks may register additional ones, or change or even remove these mappings with Screen.RegisterRuneFallback Screen.UnregisterRuneFallback methods. Note that Unicode is presumed to be able to display all glyphs. This is a pretty poor assumption, but there is no easy way to figure out which glyphs are supported in a given font. Hence, some care in selecting the characters you support in your application is still appropriate.
StyleDefault represents a default style, based upon the context. It is the zero value.
Package-Level Constants (total 631)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
Attributes are not colors, but affect the display of text. They can be combined, in some cases, but not others. (E.g. you can have Dim Italic, but only CurlyUnderline cannot be mixed with DottedUnderline.)
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
ColorDefault is used to leave the Color unchanged from whatever system or terminal default may exist. It's also the zero value.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
ColorIsRGB is used to indicate that the numeric value is not a known color constant, but rather an RGB value. The lower order 3 bytes are RGB.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
ColorNone indicates that we should not change the color from whatever is already displayed. This can only be used in limited circumstances.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
ColorReset is used to indicate that the color should use the vanilla terminal colors. (Basically go back to the defaults.)
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
These are aliases for the color gray, because some of us spell it as grey.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
ColorSpecial is a flag used to indicate that the values have special meaning, and live outside of the color space(s).
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
ColorValid is used to indicate the color value is actually valid (initialized). This is useful to permit the zero value to be treated as the default.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
Note that the order of these options is important -- it follows the definitions used by ECMA and XTerm. Hence any further named colors must begin at a value not less than 256.
const CursorStyleDefault CursorStyle = 0 // The default
EncodingFallbackASCII behavior causes GetEncoding to fall back to a 7-bit ASCII encoding, if no other encoding can be found.
EncodingFallbackFail behavior causes GetEncoding to fail when it cannot find an encoding.
EncodingFallbackUTF8 behavior causes GetEncoding to assume UTF8 can pass unmodified upon failure. Note that this behavior is not recommended, unless you are sure your terminal can cope with real UTF8 sequences.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These keys are aliases for other names.
These keys are aliases for other names.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the control keys. Note that they overlap with other keys, perhaps. For example, KeyCtrlH is the same as KeyBackspace.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These keys are aliases for other names.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These keys are aliases for other names.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These keys are aliases for other names.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These keys are aliases for other names.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
This is the list of named keys. KeyRune is special however, in that it is a place holder key indicating that a printable character was sent. The actual value of the rune will be transported in the Rune of the associated EventKey.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the defined ASCII values for key codes. They generally match with KeyCtrl values.
These are the modifiers keys that can be sent either with a key press, or a mouse event. Note that as of now, due to the confusion associated with Meta, and the lack of support for it on many/most platforms, the current implementations never use it. Instead, they use ModAlt, even for events that could possibly have been distinguished from ModAlt.
These are the modifiers keys that can be sent either with a key press, or a mouse event. Note that as of now, due to the confusion associated with Meta, and the lack of support for it on many/most platforms, the current implementations never use it. Instead, they use ModAlt, even for events that could possibly have been distinguished from ModAlt.
These are the modifiers keys that can be sent either with a key press, or a mouse event. Note that as of now, due to the confusion associated with Meta, and the lack of support for it on many/most platforms, the current implementations never use it. Instead, they use ModAlt, even for events that could possibly have been distinguished from ModAlt.
These are the modifiers keys that can be sent either with a key press, or a mouse event. Note that as of now, due to the confusion associated with Meta, and the lack of support for it on many/most platforms, the current implementations never use it. Instead, they use ModAlt, even for events that could possibly have been distinguished from ModAlt.
These are the modifiers keys that can be sent either with a key press, or a mouse event. Note that as of now, due to the confusion associated with Meta, and the lack of support for it on many/most platforms, the current implementations never use it. Instead, they use ModAlt, even for events that could possibly have been distinguished from ModAlt.
const MouseButtonEvents MouseFlags = 1 // Click events only
const MouseDragEvents MouseFlags = 2 // Click-drag events (includes button events)
const MouseMotionEvents MouseFlags = 4 // All mouse events (includes click and drag events)
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
The names of these constants are chosen to match Terminfo names, modulo case, and changing the prefix from ACS_ to Rune. These are the runes we provide extra special handling for, with ASCII fallbacks for terminals that lack them.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.
These are the actual button values. Note that tcell version 1.x reversed buttons two and three on *nix based terminals. We use button 1 as the primary, and button 2 as the secondary, and button 3 (which is often missing) as the middle.