mirror of
https://github.com/aidygus/LinVAM.git
synced 2024-11-27 02:58:06 +11:00
1247 lines
29 KiB
Python
1247 lines
29 KiB
Python
# -*- coding: utf-8 -*-
|
||
from __future__ import unicode_literals
|
||
|
||
try:
|
||
basestring
|
||
except NameError:
|
||
basestring = str
|
||
|
||
import platform
|
||
|
||
# Defaults to Windows canonical names (platform-specific overrides below)
|
||
canonical_names = {
|
||
'escape': 'esc',
|
||
'return': 'enter',
|
||
'del': 'delete',
|
||
'control': 'ctrl',
|
||
|
||
'left arrow': 'left',
|
||
'up arrow': 'up',
|
||
'down arrow': 'down',
|
||
'right arrow': 'right',
|
||
|
||
' ': 'space', # Prefer to spell out keys that would be hard to read.
|
||
'\x1b': 'esc',
|
||
'\x08': 'backspace',
|
||
'\n': 'enter',
|
||
'\t': 'tab',
|
||
'\r': 'enter',
|
||
|
||
'scrlk': 'scroll lock',
|
||
'prtscn': 'print screen',
|
||
'prnt scrn': 'print screen',
|
||
'snapshot': 'print screen',
|
||
'ins': 'insert',
|
||
'pause break': 'pause',
|
||
'ctrll lock': 'caps lock',
|
||
'capslock': 'caps lock',
|
||
'number lock': 'num lock',
|
||
'numlock': 'num lock',
|
||
'space bar': 'space',
|
||
'spacebar': 'space',
|
||
'linefeed': 'enter',
|
||
'win': 'windows',
|
||
|
||
# Mac keys
|
||
'command': 'windows',
|
||
'cmd': 'windows',
|
||
'control': 'ctrl',
|
||
'option': 'alt',
|
||
|
||
'app': 'menu',
|
||
'apps': 'menu',
|
||
'application': 'menu',
|
||
'applications': 'menu',
|
||
|
||
'pagedown': 'page down',
|
||
'pageup': 'page up',
|
||
'pgdown': 'page down',
|
||
'pgup': 'page up',
|
||
|
||
'play/pause': 'play/pause media',
|
||
|
||
'num multiply': '*',
|
||
'num divide': '/',
|
||
'num add': '+',
|
||
'num plus': '+',
|
||
'num minus': '-',
|
||
'num sub': '-',
|
||
'num enter': 'enter',
|
||
'num 0': '0',
|
||
'num 1': '1',
|
||
'num 2': '2',
|
||
'num 3': '3',
|
||
'num 4': '4',
|
||
'num 5': '5',
|
||
'num 6': '6',
|
||
'num 7': '7',
|
||
'num 8': '8',
|
||
'num 9': '9',
|
||
|
||
'left win': 'left windows',
|
||
'right win': 'right windows',
|
||
'left control': 'left ctrl',
|
||
'right control': 'right ctrl',
|
||
'left menu': 'left alt', # Windows...
|
||
'altgr': 'alt gr',
|
||
|
||
# https://www.x.org/releases/X11R7.6/doc/libX11/Compose/en_US.UTF-8.html
|
||
# https://svn.apache.org/repos/asf/xmlgraphics/commons/tags/commons-1_0/src/java/org/apache/xmlgraphics/fonts/Glyphs.java
|
||
# Note this list has plenty of uppercase letters that are not being used
|
||
# at the moment, as normalization forces names to be lowercase.
|
||
"Aacute": "Á",
|
||
"aacute": "á",
|
||
"Aacutesmall": "",
|
||
"abovedot": "˙",
|
||
"Abreve": "Ă",
|
||
"abreve": "ă",
|
||
"Abreveacute": "Ắ",
|
||
"abreveacute": "ắ",
|
||
"Abrevebelowdot": "Ặ",
|
||
"abrevebelowdot": "ặ",
|
||
"Abrevegrave": "Ằ",
|
||
"abrevegrave": "ằ",
|
||
"Abrevehook": "Ẳ",
|
||
"abrevehook": "ẳ",
|
||
"Abrevetilde": "Ẵ",
|
||
"abrevetilde": "ẵ",
|
||
"Acircumflex": "Â",
|
||
"acircumflex": "â",
|
||
"Acircumflexacute": "Ấ",
|
||
"acircumflexacute": "ấ",
|
||
"Acircumflexbelowdot": "Ậ",
|
||
"acircumflexbelowdot": "ậ",
|
||
"Acircumflexgrave": "Ầ",
|
||
"acircumflexgrave": "ầ",
|
||
"Acircumflexhook": "Ẩ",
|
||
"acircumflexhook": "ẩ",
|
||
"Acircumflexsmall": "",
|
||
"Acircumflextilde": "Ẫ",
|
||
"acircumflextilde": "ẫ",
|
||
"acute": "´",
|
||
"Acute": "",
|
||
"acutecomb": "́",
|
||
"Acutesmall": "",
|
||
"add": "+",
|
||
"Adiaeresis": "Ä",
|
||
"adiaeresis": "ä",
|
||
"Adieresis": "Ä",
|
||
"adieresis": "ä",
|
||
"Adieresissmall": "",
|
||
"ae": "æ",
|
||
"AE": "Æ",
|
||
"AEacute": "Ǽ",
|
||
"aeacute": "ǽ",
|
||
"AEsmall": "",
|
||
"afii00208": "―",
|
||
"afii10017": "А",
|
||
"afii10018": "Б",
|
||
"afii10019": "В",
|
||
"afii10020": "Г",
|
||
"afii10021": "Д",
|
||
"afii10022": "Е",
|
||
"afii10023": "Ё",
|
||
"afii10024": "Ж",
|
||
"afii10025": "З",
|
||
"afii10026": "И",
|
||
"afii10027": "Й",
|
||
"afii10028": "К",
|
||
"afii10029": "Л",
|
||
"afii10030": "М",
|
||
"afii10031": "Н",
|
||
"afii10032": "О",
|
||
"afii10033": "П",
|
||
"afii10034": "Р",
|
||
"afii10035": "С",
|
||
"afii10036": "Т",
|
||
"afii10037": "У",
|
||
"afii10038": "Ф",
|
||
"afii10039": "Х",
|
||
"afii10040": "Ц",
|
||
"afii10041": "Ч",
|
||
"afii10042": "Ш",
|
||
"afii10043": "Щ",
|
||
"afii10044": "Ъ",
|
||
"afii10045": "Ы",
|
||
"afii10046": "Ь",
|
||
"afii10047": "Э",
|
||
"afii10048": "Ю",
|
||
"afii10049": "Я",
|
||
"afii10050": "Ґ",
|
||
"afii10051": "Ђ",
|
||
"afii10052": "Ѓ",
|
||
"afii10053": "Є",
|
||
"afii10054": "Ѕ",
|
||
"afii10055": "І",
|
||
"afii10056": "Ї",
|
||
"afii10057": "Ј",
|
||
"afii10058": "Љ",
|
||
"afii10059": "Њ",
|
||
"afii10060": "Ћ",
|
||
"afii10061": "Ќ",
|
||
"afii10062": "Ў",
|
||
"afii10063": "",
|
||
"afii10064": "",
|
||
"afii10065": "а",
|
||
"afii10066": "б",
|
||
"afii10067": "в",
|
||
"afii10068": "г",
|
||
"afii10069": "д",
|
||
"afii10070": "е",
|
||
"afii10071": "ё",
|
||
"afii10072": "ж",
|
||
"afii10073": "з",
|
||
"afii10074": "и",
|
||
"afii10075": "й",
|
||
"afii10076": "к",
|
||
"afii10077": "л",
|
||
"afii10078": "м",
|
||
"afii10079": "н",
|
||
"afii10080": "о",
|
||
"afii10081": "п",
|
||
"afii10082": "р",
|
||
"afii10083": "с",
|
||
"afii10084": "т",
|
||
"afii10085": "у",
|
||
"afii10086": "ф",
|
||
"afii10087": "х",
|
||
"afii10088": "ц",
|
||
"afii10089": "ч",
|
||
"afii10090": "ш",
|
||
"afii10091": "щ",
|
||
"afii10092": "ъ",
|
||
"afii10093": "ы",
|
||
"afii10094": "ь",
|
||
"afii10095": "э",
|
||
"afii10096": "ю",
|
||
"afii10097": "я",
|
||
"afii10098": "ґ",
|
||
"afii10099": "ђ",
|
||
"afii10100": "ѓ",
|
||
"afii10101": "є",
|
||
"afii10102": "ѕ",
|
||
"afii10103": "і",
|
||
"afii10104": "ї",
|
||
"afii10105": "ј",
|
||
"afii10106": "љ",
|
||
"afii10107": "њ",
|
||
"afii10108": "ћ",
|
||
"afii10109": "ќ",
|
||
"afii10110": "ў",
|
||
"afii10145": "Џ",
|
||
"afii10146": "Ѣ",
|
||
"afii10147": "Ѳ",
|
||
"afii10148": "Ѵ",
|
||
"afii10192": "",
|
||
"afii10193": "џ",
|
||
"afii10194": "ѣ",
|
||
"afii10195": "ѳ",
|
||
"afii10196": "ѵ",
|
||
"afii10831": "",
|
||
"afii10832": "",
|
||
"afii10846": "ә",
|
||
"afii299": "",
|
||
"afii300": "",
|
||
"afii301": "",
|
||
"afii57381": "٪",
|
||
"afii57388": "،",
|
||
"afii57392": "٠",
|
||
"afii57393": "١",
|
||
"afii57394": "٢",
|
||
"afii57395": "٣",
|
||
"afii57396": "٤",
|
||
"afii57397": "٥",
|
||
"afii57398": "٦",
|
||
"afii57399": "٧",
|
||
"afii57400": "٨",
|
||
"afii57401": "٩",
|
||
"afii57403": "؛",
|
||
"afii57407": "؟",
|
||
"afii57409": "ء",
|
||
"afii57410": "آ",
|
||
"afii57411": "أ",
|
||
"afii57412": "ؤ",
|
||
"afii57413": "إ",
|
||
"afii57414": "ئ",
|
||
"afii57415": "ا",
|
||
"afii57416": "ب",
|
||
"afii57417": "ة",
|
||
"afii57418": "ت",
|
||
"afii57419": "ث",
|
||
"afii57420": "ج",
|
||
"afii57421": "ح",
|
||
"afii57422": "خ",
|
||
"afii57423": "د",
|
||
"afii57424": "ذ",
|
||
"afii57425": "ر",
|
||
"afii57426": "ز",
|
||
"afii57427": "س",
|
||
"afii57428": "ش",
|
||
"afii57429": "ص",
|
||
"afii57430": "ض",
|
||
"afii57431": "ط",
|
||
"afii57432": "ظ",
|
||
"afii57433": "ع",
|
||
"afii57434": "غ",
|
||
"afii57440": "ـ",
|
||
"afii57441": "ف",
|
||
"afii57442": "ق",
|
||
"afii57443": "ك",
|
||
"afii57444": "ل",
|
||
"afii57445": "م",
|
||
"afii57446": "ن",
|
||
"afii57448": "و",
|
||
"afii57449": "ى",
|
||
"afii57450": "ي",
|
||
"afii57451": "ً",
|
||
"afii57452": "ٌ",
|
||
"afii57453": "ٍ",
|
||
"afii57454": "َ",
|
||
"afii57455": "ُ",
|
||
"afii57456": "ِ",
|
||
"afii57457": "ّ",
|
||
"afii57458": "ْ",
|
||
"afii57470": "ه",
|
||
"afii57505": "ڤ",
|
||
"afii57506": "پ",
|
||
"afii57507": "چ",
|
||
"afii57508": "ژ",
|
||
"afii57509": "گ",
|
||
"afii57511": "ٹ",
|
||
"afii57512": "ڈ",
|
||
"afii57513": "ڑ",
|
||
"afii57514": "ں",
|
||
"afii57519": "ے",
|
||
"afii57534": "ە",
|
||
"afii57636": "₪",
|
||
"afii57645": "־",
|
||
"afii57658": "׃",
|
||
"afii57664": "א",
|
||
"afii57665": "ב",
|
||
"afii57666": "ג",
|
||
"afii57667": "ד",
|
||
"afii57668": "ה",
|
||
"afii57669": "ו",
|
||
"afii57670": "ז",
|
||
"afii57671": "ח",
|
||
"afii57672": "ט",
|
||
"afii57673": "י",
|
||
"afii57674": "ך",
|
||
"afii57675": "כ",
|
||
"afii57676": "ל",
|
||
"afii57677": "ם",
|
||
"afii57678": "מ",
|
||
"afii57679": "ן",
|
||
"afii57680": "נ",
|
||
"afii57681": "ס",
|
||
"afii57682": "ע",
|
||
"afii57683": "ף",
|
||
"afii57684": "פ",
|
||
"afii57685": "ץ",
|
||
"afii57686": "צ",
|
||
"afii57687": "ק",
|
||
"afii57688": "ר",
|
||
"afii57689": "ש",
|
||
"afii57690": "ת",
|
||
"afii57694": "שׁ",
|
||
"afii57695": "שׂ",
|
||
"afii57700": "וֹ",
|
||
"afii57705": "ײַ",
|
||
"afii57716": "װ",
|
||
"afii57717": "ױ",
|
||
"afii57718": "ײ",
|
||
"afii57723": "וּ",
|
||
"afii57793": "ִ",
|
||
"afii57794": "ֵ",
|
||
"afii57795": "ֶ",
|
||
"afii57796": "ֻ",
|
||
"afii57797": "ָ",
|
||
"afii57798": "ַ",
|
||
"afii57799": "ְ",
|
||
"afii57800": "ֲ",
|
||
"afii57801": "ֱ",
|
||
"afii57802": "ֳ",
|
||
"afii57803": "ׂ",
|
||
"afii57804": "ׁ",
|
||
"afii57806": "ֹ",
|
||
"afii57807": "ּ",
|
||
"afii57839": "ֽ",
|
||
"afii57841": "ֿ",
|
||
"afii57842": "׀",
|
||
"afii57929": "ʼ",
|
||
"afii61248": "℅",
|
||
"afii61289": "ℓ",
|
||
"afii61352": "№",
|
||
"afii61573": "",
|
||
"afii61574": "",
|
||
"afii61575": "",
|
||
"afii61664": "",
|
||
"afii63167": "٭",
|
||
"afii64937": "ʽ",
|
||
"Agrave": "À",
|
||
"agrave": "à",
|
||
"Agravesmall": "",
|
||
"agudo": "´",
|
||
"aleph": "ℵ",
|
||
"Alpha": "Α",
|
||
"alpha": "α",
|
||
"Alphatonos": "Ά",
|
||
"alphatonos": "ά",
|
||
"Amacron": "Ā",
|
||
"amacron": "ā",
|
||
"ampersand": "&",
|
||
"ampersandsmall": "",
|
||
"angle": "∠",
|
||
"angleleft": "〈",
|
||
"angleright": "〉",
|
||
"anoteleia": "·",
|
||
"Aogonek": "Ą",
|
||
"aogonek": "ą",
|
||
"apostrophe": "'",
|
||
"approxequal": "≈",
|
||
"Aring": "Å",
|
||
"aring": "å",
|
||
"Aringacute": "Ǻ",
|
||
"aringacute": "ǻ",
|
||
"Aringsmall": "",
|
||
"arrowboth": "↔",
|
||
"arrowdblboth": "⇔",
|
||
"arrowdbldown": "⇓",
|
||
"arrowdblleft": "⇐",
|
||
"arrowdblright": "⇒",
|
||
"arrowdblup": "⇑",
|
||
"arrowdown": "↓",
|
||
"arrowhorizex": "",
|
||
"arrowleft": "←",
|
||
"arrowright": "→",
|
||
"arrowup": "↑",
|
||
"arrowupdn": "↕",
|
||
"arrowupdnbse": "↨",
|
||
"arrowvertex": "",
|
||
"asciicircum": "^",
|
||
"asciitilde": "~",
|
||
"Asmall": "",
|
||
"asterisk": "*",
|
||
"asteriskmath": "∗",
|
||
"asuperior": "",
|
||
"at": "@",
|
||
"Atilde": "Ã",
|
||
"atilde": "ã",
|
||
"Atildesmall": "",
|
||
"backslash": "\\",
|
||
"bar": "|",
|
||
"Beta": "Β",
|
||
"beta": "β",
|
||
"block": "█",
|
||
"braceex": "",
|
||
"braceleft": "{",
|
||
"braceleftbt": "",
|
||
"braceleftmid": "",
|
||
"bracelefttp": "",
|
||
"braceright": "}",
|
||
"bracerightbt": "",
|
||
"bracerightmid": "",
|
||
"bracerighttp": "",
|
||
"bracketleft": "[",
|
||
"bracketleftbt": "",
|
||
"bracketleftex": "",
|
||
"bracketlefttp": "",
|
||
"bracketright": "]",
|
||
"bracketrightbt": "",
|
||
"bracketrightex": "",
|
||
"bracketrighttp": "",
|
||
"breve": "˘",
|
||
"Brevesmall": "",
|
||
"brokenbar": "¦",
|
||
"Bsmall": "",
|
||
"bsuperior": "",
|
||
"bullet": "•",
|
||
"Cacute": "Ć",
|
||
"cacute": "ć",
|
||
"caron": "ˇ",
|
||
"Caron": "",
|
||
"Caronsmall": "",
|
||
"carriagereturn": "↵",
|
||
"Ccaron": "Č",
|
||
"ccaron": "č",
|
||
"Ccedilla": "Ç",
|
||
"ccedilla": "ç",
|
||
"Ccedillasmall": "",
|
||
"Ccircumflex": "Ĉ",
|
||
"ccircumflex": "ĉ",
|
||
"Cdotaccent": "Ċ",
|
||
"cdotaccent": "ċ",
|
||
"cedilla": "¸",
|
||
"Cedillasmall": "",
|
||
"cent": "¢",
|
||
"centinferior": "",
|
||
"centoldstyle": "",
|
||
"centsuperior": "",
|
||
"Chi": "Χ",
|
||
"chi": "χ",
|
||
"circle": "○",
|
||
"circlemultiply": "⊗",
|
||
"circleplus": "⊕",
|
||
"circumflex": "^",
|
||
"circumflex": "ˆ",
|
||
"Circumflexsmall": "",
|
||
"club": "♣",
|
||
"colon": ":",
|
||
"colonmonetary": "₡",
|
||
"ColonSign": "₡",
|
||
"comma": ",",
|
||
"commaaccent": "",
|
||
"commainferior": "",
|
||
"commasuperior": "",
|
||
"congruent": "≅",
|
||
"copyright": "©",
|
||
"copyrightsans": "",
|
||
"copyrightserif": "",
|
||
"CruzeiroSign": "₢",
|
||
"Csmall": "",
|
||
"currency": "¤",
|
||
"cyrBreve": "",
|
||
"cyrbreve": "",
|
||
"cyrFlex": "",
|
||
"cyrflex": "",
|
||
"dagger": "†",
|
||
"daggerdbl": "‡",
|
||
"dblGrave": "",
|
||
"dblgrave": "",
|
||
"Dcaron": "Ď",
|
||
"dcaron": "ď",
|
||
"Dcroat": "Đ",
|
||
"dcroat": "đ",
|
||
"degree": "°",
|
||
"Delta": "Δ",
|
||
"delta": "δ",
|
||
"diaeresis": "¨",
|
||
"diamond": "♦",
|
||
"dieresis": "¨",
|
||
"Dieresis": "",
|
||
"DieresisAcute": "",
|
||
"dieresisacute": "",
|
||
"DieresisGrave": "",
|
||
"dieresisgrave": "",
|
||
"Dieresissmall": "",
|
||
"dieresistonos": "΅",
|
||
"divide": "/",
|
||
"divide": "÷",
|
||
"division": "÷",
|
||
"dkshade": "▓",
|
||
"dnblock": "▄",
|
||
"dollar": "$",
|
||
"dollarinferior": "",
|
||
"dollaroldstyle": "",
|
||
"dollarsuperior": "",
|
||
"dong": "₫",
|
||
"DongSign": "₫",
|
||
"dot": ".",
|
||
"dotaccent": "˙",
|
||
"Dotaccentsmall": "",
|
||
"dotbelowcomb": "̣",
|
||
"dotlessi": "ı",
|
||
"dotlessj": "",
|
||
"dotmath": "⋅",
|
||
"Dsmall": "",
|
||
"dstroke": "đ",
|
||
"Dstroke": "Đ",
|
||
"dsuperior": "",
|
||
"Eacute": "É",
|
||
"eacute": "é",
|
||
"Eacutesmall": "",
|
||
"Ebreve": "Ĕ",
|
||
"ebreve": "ĕ",
|
||
"Ecaron": "Ě",
|
||
"ecaron": "ě",
|
||
"Ecircumflex": "Ê",
|
||
"ecircumflex": "ê",
|
||
"Ecircumflexacute": "Ế",
|
||
"ecircumflexacute": "ế",
|
||
"Ecircumflexbelowdot": "Ệ",
|
||
"ecircumflexbelowdot": "ệ",
|
||
"Ecircumflexgrave": "Ề",
|
||
"ecircumflexgrave": "ề",
|
||
"Ecircumflexhook": "Ể",
|
||
"ecircumflexhook": "ể",
|
||
"Ecircumflexsmall": "",
|
||
"Ecircumflextilde": "Ễ",
|
||
"ecircumflextilde": "ễ",
|
||
"EcuSign": "₠",
|
||
"Ediaeresis": "Ë",
|
||
"ediaeresis": "ë",
|
||
"Edieresis": "Ë",
|
||
"edieresis": "ë",
|
||
"Edieresissmall": "",
|
||
"Edotaccent": "Ė",
|
||
"edotaccent": "ė",
|
||
"Egrave": "È",
|
||
"egrave": "è",
|
||
"Egravesmall": "",
|
||
"eight": "8",
|
||
"eightinferior": "₈",
|
||
"eightoldstyle": "",
|
||
"eightsubscript": "₈",
|
||
"eightsuperior": "⁸",
|
||
"element": "∈",
|
||
"ellipsis": "…",
|
||
"Emacron": "Ē",
|
||
"emacron": "ē",
|
||
"emdash": "—",
|
||
"emptyset": "∅",
|
||
"endash": "–",
|
||
"enfilledcircbullet": "•",
|
||
"Eng": "Ŋ",
|
||
"eng": "ŋ",
|
||
"Eogonek": "Ę",
|
||
"eogonek": "ę",
|
||
"Epsilon": "Ε",
|
||
"epsilon": "ε",
|
||
"Epsilontonos": "Έ",
|
||
"epsilontonos": "έ",
|
||
"equal": "=",
|
||
"equivalence": "≡",
|
||
"Esmall": "",
|
||
"estimated": "℮",
|
||
"esuperior": "",
|
||
"Eta": "Η",
|
||
"eta": "η",
|
||
"Etatonos": "Ή",
|
||
"etatonos": "ή",
|
||
"ETH": "Ð",
|
||
"eth": "ð",
|
||
"Eth": "Ð",
|
||
"Ethsmall": "",
|
||
"euro": "€",
|
||
"Euro": "€",
|
||
"EuroSign": "€",
|
||
"exclam": "!",
|
||
"exclamdbl": "‼",
|
||
"exclamdown": "¡",
|
||
"exclamdownsmall": "",
|
||
"exclamsmall": "",
|
||
"existential": "∃",
|
||
"female": "♀",
|
||
"ff": "ff",
|
||
"ffi": "ffi",
|
||
"ffl": "ffl",
|
||
"FFrancSign": "₣",
|
||
"fi": "fi",
|
||
"figuredash": "‒",
|
||
"filledbox": "■",
|
||
"filledrect": "▬",
|
||
"five": "5",
|
||
"fiveeighths": "⅝",
|
||
"fiveinferior": "₅",
|
||
"fiveoldstyle": "",
|
||
"fivesubscript": "₅",
|
||
"fivesuperior": "⁵",
|
||
"fl": "fl",
|
||
"florin": "ƒ",
|
||
"four": "4",
|
||
"fourinferior": "₄",
|
||
"fouroldstyle": "",
|
||
"foursubscript": "₄",
|
||
"foursuperior": "⁴",
|
||
"fraction": "∕",
|
||
"franc": "₣",
|
||
"Fsmall": "",
|
||
"function": "ƒ",
|
||
"Gamma": "Γ",
|
||
"gamma": "γ",
|
||
"Gbreve": "Ğ",
|
||
"gbreve": "ğ",
|
||
"Gcaron": "Ǧ",
|
||
"gcaron": "ǧ",
|
||
"Gcircumflex": "Ĝ",
|
||
"gcircumflex": "ĝ",
|
||
"Gcommaaccent": "Ģ",
|
||
"gcommaaccent": "ģ",
|
||
"Gdotaccent": "Ġ",
|
||
"gdotaccent": "ġ",
|
||
"germandbls": "ß",
|
||
"gradient": "∇",
|
||
"grave": "`",
|
||
"Grave": "",
|
||
"gravecomb": "̀",
|
||
"Gravesmall": "",
|
||
"greater": ">",
|
||
"greaterequal": "≥",
|
||
"Gsmall": "",
|
||
"guillemotleft": "«",
|
||
"guillemotright": "»",
|
||
"guilsinglleft": "‹",
|
||
"guilsinglright": "›",
|
||
"H18533": "●",
|
||
"H18543": "▪",
|
||
"H18551": "▫",
|
||
"H22073": "□",
|
||
"hash": "#",
|
||
"hashtag": "#",
|
||
"Hbar": "Ħ",
|
||
"hbar": "ħ",
|
||
"Hcircumflex": "Ĥ",
|
||
"hcircumflex": "ĥ",
|
||
"heart": "♥",
|
||
"hookabovecomb": "̉",
|
||
"house": "⌂",
|
||
"Hsmall": "",
|
||
"hungarumlaut": "˝",
|
||
"Hungarumlaut": "",
|
||
"Hungarumlautsmall": "",
|
||
"hyphen": "",
|
||
"hypheninferior": "",
|
||
"hyphensuperior": "",
|
||
"Iacute": "Í",
|
||
"iacute": "í",
|
||
"Iacutesmall": "",
|
||
"Ibreve": "Ĭ",
|
||
"ibreve": "ĭ",
|
||
"Icircumflex": "Î",
|
||
"icircumflex": "î",
|
||
"Icircumflexsmall": "",
|
||
"Idiaeresis": "Ï",
|
||
"idiaeresis": "ï",
|
||
"Idieresis": "Ï",
|
||
"idieresis": "ï",
|
||
"Idieresissmall": "",
|
||
"Idotaccent": "İ",
|
||
"Ifraktur": "ℑ",
|
||
"Igrave": "Ì",
|
||
"igrave": "ì",
|
||
"Igravesmall": "",
|
||
"IJ": "IJ",
|
||
"ij": "ij",
|
||
"Imacron": "Ī",
|
||
"imacron": "ī",
|
||
"infinity": "∞",
|
||
"integral": "∫",
|
||
"integralbt": "⌡",
|
||
"integralex": "",
|
||
"integraltp": "⌠",
|
||
"intersection": "∩",
|
||
"invbullet": "◘",
|
||
"invcircle": "◙",
|
||
"invsmileface": "☻",
|
||
"Iogonek": "Į",
|
||
"iogonek": "į",
|
||
"Iota": "Ι",
|
||
"iota": "ι",
|
||
"Iotadieresis": "Ϊ",
|
||
"iotadieresis": "ϊ",
|
||
"iotadieresistonos": "ΐ",
|
||
"Iotatonos": "Ί",
|
||
"iotatonos": "ί",
|
||
"Ismall": "",
|
||
"isuperior": "",
|
||
"Itilde": "Ĩ",
|
||
"itilde": "ĩ",
|
||
"Jcircumflex": "Ĵ",
|
||
"jcircumflex": "ĵ",
|
||
"Jsmall": "",
|
||
"Kappa": "Κ",
|
||
"kappa": "κ",
|
||
"Kcommaaccent": "Ķ",
|
||
"kcommaaccent": "ķ",
|
||
"kgreenlandic": "ĸ",
|
||
"Ksmall": "",
|
||
"Lacute": "Ĺ",
|
||
"lacute": "ĺ",
|
||
"Lambda": "Λ",
|
||
"lambda": "λ",
|
||
"Lcaron": "Ľ",
|
||
"lcaron": "ľ",
|
||
"Lcommaaccent": "Ļ",
|
||
"lcommaaccent": "ļ",
|
||
"Ldot": "Ŀ",
|
||
"ldot": "ŀ",
|
||
"less": "<",
|
||
"lessequal": "≤",
|
||
"lfblock": "▌",
|
||
"lira": "₤",
|
||
"LiraSign": "₤",
|
||
"LL": "",
|
||
"ll": "",
|
||
"logicaland": "∧",
|
||
"logicalnot": "¬",
|
||
"logicalor": "∨",
|
||
"longs": "ſ",
|
||
"lozenge": "◊",
|
||
"Lslash": "Ł",
|
||
"lslash": "ł",
|
||
"Lslashsmall": "",
|
||
"Lsmall": "",
|
||
"lsuperior": "",
|
||
"ltshade": "░",
|
||
"macron": "¯",
|
||
"macron": "ˉ",
|
||
"Macron": "",
|
||
"Macronsmall": "",
|
||
"male": "♂",
|
||
"masculine": "º",
|
||
"MillSign": "₥",
|
||
"minplus": "+",
|
||
"minus": "-",
|
||
"minus": "−",
|
||
"minute": "′",
|
||
"Msmall": "",
|
||
"msuperior": "",
|
||
"mu": "µ",
|
||
"Mu": "Μ",
|
||
"mu": "μ",
|
||
"multiply": "*",
|
||
"multiply": "×",
|
||
"musicalnote": "♪",
|
||
"musicalnotedbl": "♫",
|
||
"Nacute": "Ń",
|
||
"nacute": "ń",
|
||
"NairaSign": "₦",
|
||
"napostrophe": "ʼn",
|
||
"Ncaron": "Ň",
|
||
"ncaron": "ň",
|
||
"Ncommaaccent": "Ņ",
|
||
"ncommaaccent": "ņ",
|
||
"NewSheqelSign": "₪",
|
||
"nine": "9",
|
||
"nineinferior": "₉",
|
||
"nineoldstyle": "",
|
||
"ninesubscript": "₉",
|
||
"ninesuperior": "⁹",
|
||
"nobreakspace": " ",
|
||
"notelement": "∉",
|
||
"notequal": "≠",
|
||
"notsign": "¬",
|
||
"notsubset": "⊄",
|
||
"Nsmall": "",
|
||
"nsuperior": "ⁿ",
|
||
"Ntilde": "Ñ",
|
||
"ntilde": "ñ",
|
||
"Ntildesmall": "",
|
||
"Nu": "Ν",
|
||
"nu": "ν",
|
||
"numbersign": "#",
|
||
"numerosign": "№",
|
||
"Oacute": "Ó",
|
||
"oacute": "ó",
|
||
"Oacutesmall": "",
|
||
"Obreve": "Ŏ",
|
||
"obreve": "ŏ",
|
||
"Ocircumflex": "Ô",
|
||
"ocircumflex": "ô",
|
||
"Ocircumflexacute": "Ố",
|
||
"ocircumflexacute": "ố",
|
||
"Ocircumflexbelowdot": "Ộ",
|
||
"ocircumflexbelowdot": "ộ",
|
||
"Ocircumflexgrave": "Ồ",
|
||
"ocircumflexgrave": "ồ",
|
||
"Ocircumflexhook": "Ổ",
|
||
"ocircumflexhook": "ổ",
|
||
"Ocircumflexsmall": "",
|
||
"Ocircumflextilde": "Ỗ",
|
||
"ocircumflextilde": "ỗ",
|
||
"Odiaeresis": "Ö",
|
||
"odiaeresis": "ö",
|
||
"Odieresis": "Ö",
|
||
"odieresis": "ö",
|
||
"Odieresissmall": "",
|
||
"oe": "œ",
|
||
"OE": "Œ",
|
||
"OEsmall": "",
|
||
"ogonek": "˛",
|
||
"Ogoneksmall": "",
|
||
"Ograve": "Ò",
|
||
"ograve": "ò",
|
||
"Ogravesmall": "",
|
||
"Ohorn": "Ơ",
|
||
"ohorn": "ơ",
|
||
"Ohornacute": "Ớ",
|
||
"ohornacute": "ớ",
|
||
"Ohornbelowdot": "Ợ",
|
||
"ohornbelowdot": "ợ",
|
||
"Ohorngrave": "Ờ",
|
||
"ohorngrave": "ờ",
|
||
"Ohornhook": "Ở",
|
||
"ohornhook": "ở",
|
||
"Ohorntilde": "Ỡ",
|
||
"ohorntilde": "ỡ",
|
||
"Ohungarumlaut": "Ő",
|
||
"ohungarumlaut": "ő",
|
||
"Omacron": "Ō",
|
||
"omacron": "ō",
|
||
"Omega": "Ω",
|
||
"omega": "ω",
|
||
"omega1": "ϖ",
|
||
"Omegatonos": "Ώ",
|
||
"omegatonos": "ώ",
|
||
"Omicron": "Ο",
|
||
"omicron": "ο",
|
||
"Omicrontonos": "Ό",
|
||
"omicrontonos": "ό",
|
||
"one": "1",
|
||
"onedotenleader": "․",
|
||
"oneeighth": "⅛",
|
||
"onefitted": "",
|
||
"onehalf": "½",
|
||
"oneinferior": "₁",
|
||
"oneoldstyle": "",
|
||
"onequarter": "¼",
|
||
"onesubscript": "₁",
|
||
"onesuperior": "¹",
|
||
"onethird": "⅓",
|
||
"openbullet": "◦",
|
||
"ordfeminine": "ª",
|
||
"ordmasculine": "º",
|
||
"orthogonal": "∟",
|
||
"Oslash": "Ø",
|
||
"oslash": "ø",
|
||
"Oslashacute": "Ǿ",
|
||
"oslashacute": "ǿ",
|
||
"Oslashsmall": "",
|
||
"Osmall": "",
|
||
"osuperior": "",
|
||
"Otilde": "Õ",
|
||
"otilde": "õ",
|
||
"Otildesmall": "",
|
||
"paragraph": "¶",
|
||
"parenleft": "(",
|
||
"parenleftbt": "",
|
||
"parenleftex": "",
|
||
"parenleftinferior": "₍",
|
||
"parenleftsuperior": "⁽",
|
||
"parenlefttp": "",
|
||
"parenright": ")",
|
||
"parenrightbt": "",
|
||
"parenrightex": "",
|
||
"parenrightinferior": "₎",
|
||
"parenrightsuperior": "⁾",
|
||
"parenrighttp": "",
|
||
"partialdiff": "∂",
|
||
"percent": "%",
|
||
"period": ".",
|
||
"periodcentered": "·",
|
||
"periodcentered": "∙",
|
||
"periodinferior": "",
|
||
"periodsuperior": "",
|
||
"perpendicular": "⊥",
|
||
"perthousand": "‰",
|
||
"peseta": "₧",
|
||
"PesetaSign": "₧",
|
||
"Phi": "Φ",
|
||
"phi": "φ",
|
||
"phi1": "ϕ",
|
||
"Pi": "Π",
|
||
"pi": "π",
|
||
"plus": "+",
|
||
"plusminus": "±",
|
||
"pound": "£",
|
||
"prescription": "℞",
|
||
"product": "∏",
|
||
"propersubset": "⊂",
|
||
"propersuperset": "⊃",
|
||
"proportional": "∝",
|
||
"Psi": "Ψ",
|
||
"psi": "ψ",
|
||
"Psmall": "",
|
||
"Qsmall": "",
|
||
"question": "?",
|
||
"questiondown": "¿",
|
||
"questiondownsmall": "",
|
||
"questionsmall": "",
|
||
"quotedbl": "\"",
|
||
"quotedblbase": "„",
|
||
"quotedblleft": "“",
|
||
"quotedblright": "”",
|
||
"quoteleft": "‘",
|
||
"quotereversed": "‛",
|
||
"quoteright": "’",
|
||
"quotesinglbase": "‚",
|
||
"quotesingle": "'",
|
||
"Racute": "Ŕ",
|
||
"racute": "ŕ",
|
||
"radical": "√",
|
||
"radicalex": "",
|
||
"Rcaron": "Ř",
|
||
"rcaron": "ř",
|
||
"Rcommaaccent": "Ŗ",
|
||
"rcommaaccent": "ŗ",
|
||
"reflexsubset": "⊆",
|
||
"reflexsuperset": "⊇",
|
||
"registered": "®",
|
||
"registersans": "",
|
||
"registerserif": "",
|
||
"revlogicalnot": "⌐",
|
||
"Rfraktur": "ℜ",
|
||
"Rho": "Ρ",
|
||
"rho": "ρ",
|
||
"ring": "˚",
|
||
"Ringsmall": "",
|
||
"Rsmall": "",
|
||
"rsuperior": "",
|
||
"rtblock": "▐",
|
||
"RupeeSign": "₨",
|
||
"rupiah": "",
|
||
"Sacute": "Ś",
|
||
"sacute": "ś",
|
||
"Scaron": "Š",
|
||
"scaron": "š",
|
||
"Scaronsmall": "",
|
||
"Scedilla": "",
|
||
"scedilla": "",
|
||
"Scircumflex": "Ŝ",
|
||
"scircumflex": "ŝ",
|
||
"Scommaaccent": "Ș",
|
||
"scommaaccent": "ș",
|
||
"second": "″",
|
||
"section": "§",
|
||
"semicolon": ";",
|
||
"seven": "7",
|
||
"seveneighths": "⅞",
|
||
"seveninferior": "₇",
|
||
"sevenoldstyle": "",
|
||
"sevensubscript": "₇",
|
||
"sevensuperior": "⁷",
|
||
"SF010000": "┌",
|
||
"SF020000": "└",
|
||
"SF030000": "┐",
|
||
"SF040000": "┘",
|
||
"SF050000": "┼",
|
||
"SF060000": "┬",
|
||
"SF070000": "┴",
|
||
"SF080000": "├",
|
||
"SF090000": "┤",
|
||
"SF100000": "─",
|
||
"SF110000": "│",
|
||
"SF190000": "╡",
|
||
"SF200000": "╢",
|
||
"SF210000": "╖",
|
||
"SF220000": "╕",
|
||
"SF230000": "╣",
|
||
"SF240000": "║",
|
||
"SF250000": "╗",
|
||
"SF260000": "╝",
|
||
"SF270000": "╜",
|
||
"SF280000": "╛",
|
||
"SF360000": "╞",
|
||
"SF370000": "╟",
|
||
"SF380000": "╚",
|
||
"SF390000": "╔",
|
||
"SF400000": "╩",
|
||
"SF410000": "╦",
|
||
"SF420000": "╠",
|
||
"SF430000": "═",
|
||
"SF440000": "╬",
|
||
"SF450000": "╧",
|
||
"SF460000": "╨",
|
||
"SF470000": "╤",
|
||
"SF480000": "╥",
|
||
"SF490000": "╙",
|
||
"SF500000": "╘",
|
||
"SF510000": "╒",
|
||
"SF520000": "╓",
|
||
"SF530000": "╫",
|
||
"SF540000": "╪",
|
||
"shade": "▒",
|
||
"Sigma": "Σ",
|
||
"sigma": "σ",
|
||
"sigma1": "ς",
|
||
"similar": "∼",
|
||
"similarequal": "≃",
|
||
"six": "6",
|
||
"sixinferior": "₆",
|
||
"sixoldstyle": "",
|
||
"sixsubscript": "₆",
|
||
"sixsuperior": "⁶",
|
||
"slash": "/",
|
||
"smileface": "☺",
|
||
"spade": "♠",
|
||
"ssharp": "§",
|
||
"ssharp": "ß",
|
||
"Ssharp": "ẞ",
|
||
"Ssmall": "",
|
||
"ssuperior": "",
|
||
"sterling": "£",
|
||
"subtract": "-",
|
||
"suchthat": "∋",
|
||
"summation": "∑",
|
||
"sun": "☼",
|
||
"Tau": "Τ",
|
||
"tau": "τ",
|
||
"Tbar": "Ŧ",
|
||
"tbar": "ŧ",
|
||
"Tcaron": "Ť",
|
||
"tcaron": "ť",
|
||
"Tcommaaccent": "Ț",
|
||
"tcommaaccent": "ț",
|
||
"Thai_baht": "฿",
|
||
"therefore": "∴",
|
||
"Theta": "Θ",
|
||
"theta": "θ",
|
||
"theta1": "ϑ",
|
||
"THORN": "Þ",
|
||
"thorn": "þ",
|
||
"Thorn": "Þ",
|
||
"Thornsmall": "",
|
||
"three": "3",
|
||
"threeeighths": "⅜",
|
||
"threeinferior": "₃",
|
||
"threeoldstyle": "",
|
||
"threequarters": "¾",
|
||
"threequartersemdash": "",
|
||
"threesubscript": "₃",
|
||
"threesuperior": "³",
|
||
"til": "~",
|
||
"tilde": "~",
|
||
"tilde": "˜",
|
||
"tildecomb": "̃",
|
||
"Tildesmall": "",
|
||
"tonos": "΄",
|
||
"trademark": "™",
|
||
"trademarksans": "",
|
||
"trademarkserif": "",
|
||
"triagdn": "▼",
|
||
"triaglf": "◄",
|
||
"triagrt": "►",
|
||
"triagup": "▲",
|
||
"Tsmall": "",
|
||
"tsuperior": "",
|
||
"two": "2",
|
||
"twodotenleader": "‥",
|
||
"twoinferior": "₂",
|
||
"twooldstyle": "",
|
||
"twosubscript": "₂",
|
||
"twosuperior": "²",
|
||
"twothirds": "⅔",
|
||
"Uacute": "Ú",
|
||
"uacute": "ú",
|
||
"Uacutesmall": "",
|
||
"Ubreve": "Ŭ",
|
||
"ubreve": "ŭ",
|
||
"Ucircumflex": "Û",
|
||
"ucircumflex": "û",
|
||
"Ucircumflexsmall": "",
|
||
"Udiaeresis": "Ü",
|
||
"udiaeresis": "ü",
|
||
"Udieresis": "Ü",
|
||
"udieresis": "ü",
|
||
"Udieresissmall": "",
|
||
"Ugrave": "Ù",
|
||
"ugrave": "ù",
|
||
"Ugravesmall": "",
|
||
"Uhorn": "Ư",
|
||
"uhorn": "ư",
|
||
"Uhornacute": "Ứ",
|
||
"uhornacute": "ứ",
|
||
"Uhornbelowdot": "Ự",
|
||
"uhornbelowdot": "ự",
|
||
"Uhorngrave": "Ừ",
|
||
"uhorngrave": "ừ",
|
||
"Uhornhook": "Ử",
|
||
"uhornhook": "ử",
|
||
"Uhorntilde": "Ữ",
|
||
"uhorntilde": "ữ",
|
||
"Uhungarumlaut": "Ű",
|
||
"uhungarumlaut": "ű",
|
||
"Umacron": "Ū",
|
||
"umacron": "ū",
|
||
"underscore": "_",
|
||
"underscoredbl": "‗",
|
||
"union": "∪",
|
||
"universal": "∀",
|
||
"Uogonek": "Ų",
|
||
"uogonek": "ų",
|
||
"upblock": "▀",
|
||
"Upsilon": "Υ",
|
||
"upsilon": "υ",
|
||
"Upsilon1": "ϒ",
|
||
"Upsilondieresis": "Ϋ",
|
||
"upsilondieresis": "ϋ",
|
||
"upsilondieresistonos": "ΰ",
|
||
"Upsilontonos": "Ύ",
|
||
"upsilontonos": "ύ",
|
||
"Uring": "Ů",
|
||
"uring": "ů",
|
||
"Usmall": "",
|
||
"Utilde": "Ũ",
|
||
"utilde": "ũ",
|
||
"Vsmall": "",
|
||
"Wacute": "Ẃ",
|
||
"wacute": "ẃ",
|
||
"Wcircumflex": "Ŵ",
|
||
"wcircumflex": "ŵ",
|
||
"Wdieresis": "Ẅ",
|
||
"wdieresis": "ẅ",
|
||
"weierstrass": "℘",
|
||
"Wgrave": "Ẁ",
|
||
"wgrave": "ẁ",
|
||
"WonSign": "₩",
|
||
"Wsmall": "",
|
||
"Xi": "Ξ",
|
||
"xi": "ξ",
|
||
"Xsmall": "",
|
||
"Yacute": "Ý",
|
||
"yacute": "ý",
|
||
"Yacutesmall": "",
|
||
"Ycircumflex": "Ŷ",
|
||
"ycircumflex": "ŷ",
|
||
"ydiaeresis": "ÿ",
|
||
"Ydieresis": "Ÿ",
|
||
"ydieresis": "ÿ",
|
||
"Ydieresissmall": "",
|
||
"yen": "¥",
|
||
"Ygrave": "Ỳ",
|
||
"ygrave": "ỳ",
|
||
"Ysmall": "",
|
||
"Zacute": "Ź",
|
||
"zacute": "ź",
|
||
"Zcaron": "Ž",
|
||
"zcaron": "ž",
|
||
"Zcaronsmall": "",
|
||
"Zdotaccent": "Ż",
|
||
"zdotaccent": "ż",
|
||
"zero": "0",
|
||
"zeroinferior": "₀",
|
||
"zerooldstyle": "",
|
||
"zerosubscript": "₀",
|
||
"zerosuperior": "⁰",
|
||
"zeta": "ζ",
|
||
"Zeta": "Ζ",
|
||
"Zsmall": "",
|
||
}
|
||
sided_modifiers = {'ctrl', 'alt', 'shift', 'windows'}
|
||
all_modifiers = {'alt', 'alt gr', 'ctrl', 'shift', 'windows'} | set('left ' + n for n in sided_modifiers) | set('right ' + n for n in sided_modifiers)
|
||
|
||
# Platform-specific canonical overrides
|
||
|
||
if platform.system() == 'Darwin':
|
||
canonical_names.update({
|
||
"command": "command",
|
||
"windows": "command",
|
||
"cmd": "command",
|
||
"win": "command",
|
||
"backspace": "delete",
|
||
'alt gr': 'alt' # Issue #117
|
||
})
|
||
all_modifiers = {'alt', 'ctrl', 'shift', 'windows'}
|
||
if platform.system() == 'Linux':
|
||
canonical_names.update({
|
||
"select": "end",
|
||
"find": "home",
|
||
'next': 'page down',
|
||
'prior': 'page up',
|
||
})
|
||
|
||
def normalize_name(name):
|
||
"""
|
||
Given a key name (e.g. "LEFT CONTROL"), clean up the string and convert to
|
||
the canonical representation (e.g. "left ctrl") if one is known.
|
||
"""
|
||
if not name or not isinstance(name, basestring):
|
||
raise ValueError('Can only normalize non-empty string names. Unexpected '+ repr(name))
|
||
|
||
if len(name) > 1:
|
||
name = name.lower()
|
||
if name != '_' and '_' in name:
|
||
name = name.replace('_', ' ')
|
||
|
||
return canonical_names.get(name, name)
|