godot-xterm/addons/godot_xterm/data/charsets.gd
Leroy Hopson 0d4e10f5ab Add more features, bug fixes and bugs ;-)
Most notably:
- Reflow is now working. Terminal size will fill the window and
cols/rows will be resized/calculated based on window and font size.
- Added support for different fonts (i.e. bold, italic, bolditalic).
- Enabled blinking characters.
- Adde more tests and caught a few subtle bugs.
- Removed renderer code (which was part of xterm.js) and just
doing naive rendering in terminal.gd, but it seems to perform
a lot faster.

Still not working completely:
- vim (some weirdness going on).
- vttest (more weirdness).

Todo:
- Fix the above.
- Draw the cursor!
- Improve performance. Performance is still not great. The terminal
becomes unusable when running `yes` or `cmatrix -r`.
2020-05-19 18:55:43 +07:00

256 lines
4.5 KiB
GDScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyrigth (c) 2016 The xterm.js authors. All rights reserved
# Ported to GDScript by the GodotXterm authors.
# License MIT
extends Reference
# The character sets supported by the terminal. These enable several languages
# to be represented within the terminal with only 8-bit encoding. See ISO 2022
# for a discussion on character sets. Only VT100 character sets are supported.
const CHARSETS = {
# DEC Special Character and Line Drawing Set.
# Reference: http:#vt100.net/docs/vt102-ug/table5-13.html
# A lot of curses apps use this if they see TERM=xterm.
# testing: echo -e "\e(0a\e(B"
# The xterm output sometimes seems to conflict with the
# reference above. xterm seems in line with the reference
# when running vttest however.
# The table below now uses xterm"s output from vttest.
"0": {
"`": "\u25c6", # "◆"
"a": "\u2592", # "▒"
"b": "\u2409", # "␉" (HT)
"c": "\u240c", # "␌" (FF)
"d": "\u240d", # "␍" (CR)
"e": "\u240a", # "␊" (LF)
"f": "\u00b0", # "°"
"g": "\u00b1", # "±"
"h": "\u2424", # "␤" (NL)
"i": "\u240b", # "␋" (VT)
"j": "\u2518", # "┘"
"k": "\u2510", # "┐"
"l": "\u250c", # "┌"
"m": "\u2514", # "└"
"n": "\u253c", # "┼"
"o": "\u23ba", # "⎺"
"p": "\u23bb", # "⎻"
"q": "\u2500", # "─"
"r": "\u23bc", # "⎼"
"s": "\u23bd", # "⎽"
"t": "\u251c", # "├"
"u": "\u2524", # "┤"
"v": "\u2534", # "┴"
"w": "\u252c", # "┬"
"x": "\u2502", # "│"
"y": "\u2264", # "≤"
"z": "\u2265", # "≥"
"{": "\u03c0", # "π"
"|": "\u2260", # "≠"
"}": "\u00a3", # "£"
"~": "\u00b7" # "·"
},
# British character set
# ESC (A
# Reference: http:#vt100.net/docs/vt220-rm/table2-5.html
"A": {
"#": "£"
},
# United States character set
# ESC (B
"B": null,
# Dutch character set
# ESC (4
# Reference: http:#vt100.net/docs/vt220-rm/table2-6.html
"4": {
"#": "£",
"@": "¾",
"[": "ij",
"\\": "½",
"]": "|",
"{": "¨",
"|": "f",
"}": "¼",
"~": "´"
},
# Finnish character set
# ESC (C or ESC (5
# Reference: http:#vt100.net/docs/vt220-rm/table2-7.html
"C": {
"[": "Ä",
"\\": "Ö",
"]": "Å",
"^": "Ü",
"`": "é",
"{": "ä",
"|": "ö",
"}": "å",
"~": "ü"
},
"5": {
"[": "Ä",
"\\": "Ö",
"]": "Å",
"^": "Ü",
"`": "é",
"{": "ä",
"|": "ö",
"}": "å",
"~": "ü"
},
# French character set
# ESC (R
# Reference: http:#vt100.net/docs/vt220-rm/table2-8.html
"R": {
"#": "£",
"@": "à",
"[": "°",
"\\": "ç",
"]": "§",
"{": "é",
"|": "ù",
"}": "è",
"~": "¨"
},
# French Canadian character set
# ESC (Q
# Reference: http:#vt100.net/docs/vt220-rm/table2-9.html
"Q": {
"@": "à",
"[": "â",
"\\": "ç",
"]": "ê",
"^": "î",
"`": "ô",
"{": "é",
"|": "ù",
"}": "è",
"~": "û"
},
# German character set
# ESC (K
# Reference: http:#vt100.net/docs/vt220-rm/table2-10.html
"K": {
"@": "§",
"[": "Ä",
"\\": "Ö",
"]": "Ü",
"{": "ä",
"|": "ö",
"}": "ü",
"~": "ß"
},
# Italian character set
# ESC (Y
# Reference: http:#vt100.net/docs/vt220-rm/table2-11.html
"Y": {
"#": "£",
"@": "§",
"[": "°",
"\\": "ç",
"]": "é",
"`": "ù",
"{": "à",
"|": "ò",
"}": "è",
"~": "ì"
},
# Norwegian/Danish character set
# ESC (E or ESC (6
# Reference: http:#vt100.net/docs/vt220-rm/table2-12.html
"E": {
"@": "Ä",
"[": "Æ",
"\\": "Ø",
"]": "Å",
"^": "Ü",
"`": "ä",
"{": "æ",
"|": "ø",
"}": "å",
"~": "ü"
},
"6": {
"@": "Ä",
"[": "Æ",
"\\": "Ø",
"]": "Å",
"^": "Ü",
"`": "ä",
"{": "æ",
"|": "ø",
"}": "å",
"~": "ü"
},
# Spanish character set
# ESC (Z
# Reference: http:#vt100.net/docs/vt220-rm/table2-13.html
"Z": {
"#": "£",
"@": "§",
"[": "¡",
"\\": "Ñ",
"]": "¿",
"{": "°",
"|": "ñ",
"}": "ç"
},
# Swedish character set
# ESC (H or ESC (7
# Reference: http:#vt100.net/docs/vt220-rm/table2-14.html
"H": {
"@": "É",
"[": "Ä",
"\\": "Ö",
"]": "Å",
"^": "Ü",
"`": "é",
"{": "ä",
"|": "ö",
"}": "å",
"~": "ü"
},
"7": {
"@": "É",
"[": "Ä",
"\\": "Ö",
"]": "Å",
"^": "Ü",
"`": "é",
"{": "ä",
"|": "ö",
"}": "å",
"~": "ü"
},
# Swiss character set
# ESC (=
# Reference: http:#vt100.net/docs/vt220-rm/table2-15.html
#/
"=": {
"#": "ù",
"@": "à",
"[": "é",
"\\": "ç",
"]": "ê",
"^": "î",
"_": "è",
"`": "ô",
"{": "ä",
"|": "ö",
"}": "ü",
"~": "û"
},
}
# The default character set, US.
const DEFAULT_CHARSET = CHARSETS["B"]