add function keycaps

This commit is contained in:
Peter D. Gray 2024-01-11 10:29:07 -05:00
parent 1fc6cd4dc6
commit 7ac6915202
No known key found for this signature in database
GPG Key ID: A2DCD558C2BE5D7C
3 changed files with 19 additions and 6 deletions

View File

@ -28,7 +28,7 @@ BYTES_PER_CHAR = const(99)
#SPECIAL_CHARS = ['→', '←', '↳', '•', '⋯', '█', '▌', '▐', '▼', '▲', '▶', '◀', '⏵', '₿', '✔', '✓', '↦', '␣', '◉', '◯', '◌', '⬚', '░', '™', '©', '⬧', '※', '─', '—', '━', '┃', '┓', '┏', '┛', '┗']
class FontIosevka:
DOUBLE_WIDE = ['', '', '', '', '', '', '', '', '', '', '', '', '\x0e', '\x11', '\t']
DOUBLE_WIDE = ['', '', '', '', '', '', '', '', '', '', '', '', '\x0e', '\x11', '\t', '\x0f', '\x12', '\x13', '\x14', '\x16', '\x17']
@classmethod
def lookup(cls, cp):
@ -172,4 +172,10 @@ class FontIosevka:
'\x0e': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf6\xf1\x8d\x01\xff\xfd\x0b\xfdO\xf6\xf6\x8d\x01\xf73_\\\xcf\xf6\xfb\x8d\x01\xf5\x00~\x01/\xf6\xed\x9d\x01\xff\xf4~\x00\x0f\xf6\xf9\xcd\x01\xf71~\x00\x0f\xf6\xf3\xfd\x01\xf5\x00~\x01/\xf6\xf0\xdd\x01\xf5\x00_\\\xcf\xf6\xf0\x8d\x01\xf5\x00\x0b\xfdO\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x11': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\xaf\xd4\x06\xff\xd4\x00\x0f\xf0\x05\xf5\xbd\x06\xf3\xbc\x00\x0f\xf0\x07\xe0~\x06\xf0~\x00\x0f\xf0\x07\xe0~\x06\xf0\xad\x00\x0f\xf0\x07\xe0~\x06\xff\xf6\x00\x0f\xf0\x07\xe0~\x06\xf9\xe1\x00\x0f\xf0\x07\xe1\x8e\x06\xf1\xe7\x00\x0f\xf0\x02\xed\xe9\x06\xf0\x9d\x00\x0f\xf0\x00-\xc0\x00\x00\x00\x00\x0f\xf0\x00\x07\xfa\x00\x00\x00\x00\x0f\xf0\x00\x00"\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\t': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x0e \x00\x00\x83\x00\x00\x0f\xf0\x0e \x00\x00-\x10\x00\x0f\xf0\x0e \x00\x00\x05\xc0\x00\x0f\xf0\x0e\xff\xff\xff\xff\xf6\x00\x0f\xf0\x0eC339\x90\x00\x0f\xf0\x0e \x00\x00f\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x0f': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x01\xff\xfd\x00N\xc0\x00\x0f\xf0\x01\xf73\x03\xdc\xc0\x00\x0f\xf0\x01\xf5\x00\x00\n\xc0\x00\x0f\xf0\x01\xff\xf4\x00\n\xc0\x00\x0f\xf0\x01\xf71\x00\n\xc0\x00\x0f\xf0\x01\xf5\x00\x00\n\xc0\x00\x0f\xf0\x01\xf5\x00\x00\n\xc0\x00\x0f\xf0\x01\xf5\x00\x00\n\xc0\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x12': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x01\xff\xfd\x00\xaf\xd4\x00\x0f\xf0\x01\xf73\x05\xf5\xcc\x00\x0f\xf0\x01\xf5\x00\x01 \x8d\x00\x0f\xf0\x01\xff\xf4\x00\x01\xd9\x00\x0f\xf0\x01\xf71\x00-\xb1\x00\x0f\xf0\x01\xf5\x00\x00\xdc\x00\x00\x0f\xf0\x01\xf5\x00\x04\xf63\x00\x0f\xf0\x01\xf5\x00\x06\xff\xfd\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x13': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x01\xff\xfd\x00\xaf\xd4\x00\x0f\xf0\x01\xf73\x03\xe6\xbc\x00\x0f\xf0\x01\xf5\x00\x00\x00\xbc\x00\x0f\xf0\x01\xff\xf4\x00\x0b\xf4\x00\x0f\xf0\x01\xf71\x00\x02\xcc\x00\x0f\xf0\x01\xf5\x00\x020o\x00\x0f\xf0\x01\xf5\x00\x06\xf5\xad\x00\x0f\xf0\x01\xf5\x00\x00\xaf\xd5\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x14': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x01\xff\xfd\x00\x06\xe1\x00\x0f\xf0\x01\xf73\x00\r\x90\x00\x0f\xf0\x01\xf5\x00\x00_ \x00\x0f\xf0\x01\xff\xf4\x00\xcb\xf5\x00\x0f\xf0\x01\xf71\x04\xf4\xf5\x00\x0f\xf0\x01\xf5\x00\x07\xff\xfd\x00\x0f\xf0\x01\xf5\x00\x014\xf7\x00\x0f\xf0\x01\xf5\x00\x00\x01\xf5\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x16': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x01\xff\xfd\x05\xff\xfb\x00\x0f\xf0\x01\xf73\x05\xf42\x00\x0f\xf0\x01\xf5\x00\x05\xff\xd3\x00\x0f\xf0\x01\xff\xf4\x05\xf7\xcc\x00\x0f\xf0\x01\xf71\x01@~\x00\x0f\xf0\x01\xf5\x00\x01@~\x00\x0f\xf0\x01\xf5\x00\x03\xf6\xcc\x00\x0f\xf0\x01\xf5\x00\x00\x9f\xd3\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
'\x17': b'\x00\x0f\xff\xff\xff\xff\xff\xf0\x00\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x01\xff\xfd\x00\x0c\xc0\x00\x0f\xf0\x01\xf73\x00O@\x00\x0f\xf0\x01\xf5\x00\x00\xcc\x00\x00\x0f\xf0\x01\xff\xf4\x02\xff\xd4\x00\x0f\xf0\x01\xf71\x06\xf5\xbc\x00\x0f\xf0\x01\xf5\x00\x07\xe0~\x00\x0f\xf0\x01\xf5\x00\x04\xf5\xbc\x00\x0f\xf0\x01\xf5\x00\x00\x9f\xd4\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\xf0\x00\x00\x00\x00\x00\x0f\xf0\x00\x0f\xff\xff\xff\xff\xff\xf0\x00',
}

View File

@ -30,8 +30,15 @@ NUM_GREYS = 16
KEY_NFC = '\x0e' # ctrl-N
KEY_QR = '\x11' # ctrl-Q
KEY_TAB = '\t' # tab = ctrl-I
KEY_F1 = '\x0f'
KEY_F2 = '\x12'
KEY_F3 = '\x13'
KEY_F4 = '\x14'
KEY_F5 = '\x16'
KEY_F6 = '\x17'
KEYS_FUNCTION = KEY_F1 + KEY_F2 + KEY_F3 + KEY_F4 + KEY_F5 + KEY_F6
KEYCAP_SYMBOLS = [ KEY_NFC, KEY_QR, KEY_TAB, ]
KEYCAP_SYMBOLS = [ KEY_NFC, KEY_QR, KEY_TAB ] + list(KEYS_FUNCTION)
# TODO:
# - needed _ but for blank space; never found one, and may not need anyway
@ -45,14 +52,12 @@ CHARSET = [chr(x) for x in range(32,127)] \
'', '©', '', '',
'', '',
'', '', '', '', '','', # 'heavy' versions
KEY_NFC, KEY_QR, KEY_TAB,
]
] + KEYCAP_SYMBOLS
# these are be better as double-wide chars
DBL_WIDTH = ['', '', '','', '', '',
'', '', '', '', '', '',
KEY_NFC, KEY_QR, KEY_TAB,
]
] + KEYCAP_SYMBOLS
NUM_CHARS = len(CHARSET)
@ -63,6 +68,8 @@ REMAPS = {
KEY_QR: 'QR',
KEY_TAB: '',
}
for n, fn in enumerate(KEYS_FUNCTION):
REMAPS[fn] = f'F{n+1}'
# find hidden zero-width junk
assert all(len(ch) == 1 for ch in CHARSET), [ch for ch in CHARSET if len(ch) > 1]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB