Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions src/key_mapping/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import os
import json


class _JSONDict(dict):

def __init__(self, fp, *args, **kwds):
super(_JSONDict, self).__init__(*args, **kwds)
self.fp = fp
if os.path.exists(fp):
with open(self.fp) as fp:
data = json.load(fp)
self.update(data)

def __setitem__(self, key, value):
super(_JSONDict, self).__setitem__(key, value)
self.__updatejson__()

def __delitem__(self, key):
super(_JSONDict, self).__delitem__(key)
self.__updatejson__()

def clear(self):
super(_JSONDict, self).clear()
self.__updatejson__()

def update(self, other):
super(_JSONDict, self).update(other)
self.__updatejson__()

def __updatejson__(self):
with open(self.fp, "w") as fp:
json.dump(self, fp, indent=4)

_prefs = _JSONDict(os.path.join(os.path.dirname(__file__), "prefs.json"))


def list_languages():
return [x.split(".")[-2] for x in os.listdir(os.path.dirname(__file__))
if not x.startswith("_") and x.endswith(".py")]


def get_mapping():
lang = _prefs.get("language")
__import__("key_mapping." + lang)
return globals().get(lang).KEY_MAPPING


def set_language(lang):
if lang not in list_languages():
print "WARNING: " + lang + " key_mapping not found."
return
_prefs["language"] = lang


def get_language():
return _prefs.get("language")
158 changes: 158 additions & 0 deletions src/key_mapping/english.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyQt4.QtCore import Qt

KEY_MAPPING = {
# key: ( Qt::Key, ascii, modifiers )

8: (Qt.Key_Backspace, '', None),
9: (Qt.Key_Tab, '\t', None),
13: (Qt.Key_Enter, '\n', None),
16: (Qt.Key_Shift, '', None),
17: (Qt.Key_Control, '', None),
18: (Qt.Key_Alt, '', None),
19: (Qt.Key_Pause, '', None),
20: (Qt.Key_CapsLock, '', None),
27: (Qt.Key_Escape, '', None),
32: (Qt.Key_Space, ' ', None),
33: (Qt.Key_PageUp, '', None),
34: (Qt.Key_PageDown, '', None),
35: (Qt.Key_End, '', None),
36: (Qt.Key_Home, '', None),
37: (Qt.Key_Left, '', None),
38: (Qt.Key_Up, '', None),
39: (Qt.Key_Right, '', None),
40: (Qt.Key_Down, '', None),
44: (Qt.Key_SysReq, '', None),
45: (Qt.Key_Insert, '', None),
46: (Qt.Key_Delete, '', None),
48: (Qt.Key_0, '0', None),
49: (Qt.Key_1, '1', None),
50: (Qt.Key_2, '2', None),
51: (Qt.Key_3, '3', None),
52: (Qt.Key_4, '4', None),
53: (Qt.Key_5, '5', None),
54: (Qt.Key_6, '6', None),
55: (Qt.Key_7, '7', None),
56: (Qt.Key_8, '8', None),
57: (Qt.Key_9, '9', None),
65: (Qt.Key_A, 'a', None),
66: (Qt.Key_B, 'b', None),
67: (Qt.Key_C, 'c', None),
68: (Qt.Key_D, 'd', None),
69: (Qt.Key_E, 'e', None),
70: (Qt.Key_F, 'f', None),
71: (Qt.Key_G, 'g', None),
72: (Qt.Key_H, 'h', None),
73: (Qt.Key_I, 'i', None),
74: (Qt.Key_J, 'j', None),
75: (Qt.Key_K, 'k', None),
76: (Qt.Key_L, 'l', None),
77: (Qt.Key_M, 'm', None),
78: (Qt.Key_N, 'n', None),
79: (Qt.Key_O, 'o', None),
80: (Qt.Key_P, 'p', None),
81: (Qt.Key_Q, 'q', None),
82: (Qt.Key_R, 'r', None),
83: (Qt.Key_S, 's', None),
84: (Qt.Key_T, 't', None),
85: (Qt.Key_U, 'u', None),
86: (Qt.Key_V, 'v', None),
87: (Qt.Key_W, 'w', None),
88: (Qt.Key_X, 'x', None),
89: (Qt.Key_Y, 'y', None),
90: (Qt.Key_Z, 'z', None),
93: (Qt.Key_Print, '', None),
96: (Qt.Key_0, '0', Qt.KeypadModifier),
97: (Qt.Key_1, '1', Qt.KeypadModifier),
98: (Qt.Key_2, '2', Qt.KeypadModifier),
99: (Qt.Key_3, '3', Qt.KeypadModifier),
100: (Qt.Key_4, '4', Qt.KeypadModifier),
101: (Qt.Key_5, '5', Qt.KeypadModifier),
102: (Qt.Key_5, '6', Qt.KeypadModifier),
103: (Qt.Key_5, '7', Qt.KeypadModifier),
104: (Qt.Key_5, '8', Qt.KeypadModifier),
105: (Qt.Key_5, '9', Qt.KeypadModifier),
106: (Qt.Key_Asterisk, '*', Qt.KeypadModifier),
107: (Qt.Key_Plus, '+', Qt.KeypadModifier),
109: (Qt.Key_Minus, '-', Qt.KeypadModifier),
110: (Qt.Key_Period, '.', Qt.KeypadModifier),
111: (Qt.Key_Slash, '/', Qt.KeypadModifier),
112: (Qt.Key_F1, '', None),
113: (Qt.Key_F2, '', None),
114: (Qt.Key_F3, '', None),
115: (Qt.Key_F4, '', None),
116: (Qt.Key_F5, '', None),
117: (Qt.Key_F6, '', None),
118: (Qt.Key_F7, '', None),
119: (Qt.Key_F8, '', None),
120: (Qt.Key_F9, '', None),
121: (Qt.Key_F10, '', None),
122: (Qt.Key_F11, '', None),
113: (Qt.Key_F12, '', None),
144: (Qt.Key_NumLock, '', None),
145: (Qt.Key_ScrollLock, '', None),
186: (Qt.Key_Semicolon, ';', None),
187: (Qt.Key_Equal, '=', None),
188: (Qt.Key_Comma, ',', None),
189: (Qt.Key_Minus, '-', None),
190: (Qt.Key_Period, '.', None),
191: (Qt.Key_Slash, '/', None),
192: (Qt.Key_QuoteLeft, '`', None),
219: (Qt.Key_BracketLeft, '[', None),
220: (Qt.Key_Backslash, '\\', None),
221: (Qt.Key_BraceRight, ']', None),
222: (Qt.Key_QuoteLeft, "'", None),

# Calculate the SHIFT key as 300 + key value
348: (Qt.Key_ParenRight, ')', None), # Shift+0
349: (Qt.Key_Exclam, '!', None), # Shift+1
350: (Qt.Key_At, '@', None), # Shift+2
351: (Qt.Key_NumberSign, '#', None), # Shift+3
352: (Qt.Key_Dollar, '$', None), # Shift+4
353: (Qt.Key_Percent, '%', None), # Shift+5
354: (Qt.Key_6, '6', None),
355: (Qt.Key_Ampersand, '&', None), # Shift+7
356: (Qt.Key_Asterisk, '*', None), # Shift+8
357: (Qt.Key_ParenLeft, '(', None), # Shift+9

365: (Qt.Key_A, 'A', None),
366: (Qt.Key_B, 'B', None),
367: (Qt.Key_C, 'C', None),
368: (Qt.Key_D, 'D', None),
369: (Qt.Key_E, 'E', None),
370: (Qt.Key_F, 'F', None),
371: (Qt.Key_G, 'G', None),
372: (Qt.Key_H, 'H', None),
373: (Qt.Key_I, 'I', None),
374: (Qt.Key_J, 'J', None),
375: (Qt.Key_K, 'K', None),
376: (Qt.Key_L, 'L', None),
377: (Qt.Key_M, 'M', None),
378: (Qt.Key_N, 'N', None),
379: (Qt.Key_O, 'O', None),
380: (Qt.Key_P, 'P', None),
381: (Qt.Key_Q, 'Q', None),
382: (Qt.Key_R, 'R', None),
383: (Qt.Key_S, 'S', None),
384: (Qt.Key_T, 'T', None),
385: (Qt.Key_U, 'U', None),
386: (Qt.Key_V, 'V', None),
387: (Qt.Key_W, 'W', None),
388: (Qt.Key_X, 'X', None),
389: (Qt.Key_Y, 'Y', None),
390: (Qt.Key_Z, 'Z', None),

486: (Qt.Key_Colon, ':', None), # Shift+;
487: (Qt.Key_Plus, '+', None), # Shift++
488: (Qt.Key_Less, '<', None), # Shift+,
489: (Qt.Key_Underscore, '_', None), # Shift+-
490: (Qt.Key_Greater, '>', None), # Shift+>
491: (Qt.Key_Question, '?', None), # Shift+?
492: (Qt.Key_AsciiTilde, '~', None), # Shift+`
519: (Qt.Key_BraceLeft, '{', None), # Shift+[
520: (Qt.Key_Bar, '|', None), # Shift+
521: (Qt.Key_BraceRight, '}', None), # Shift+]
522: (Qt.Key_QuoteDbl, '"', None), # Shift+'
}
172 changes: 172 additions & 0 deletions src/key_mapping/french.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyQt4.QtCore import Qt

KEY_MAPPING = {
# key: ( Qt::Key, ascii, modifiers )
"8": (Qt.Key_Backspace, '', None),
"9": (Qt.Key_Tab, '\t', None),
"13": (Qt.Key_Enter, '\n', None),
"16": (Qt.Key_Shift, '', None),
"17": (Qt.Key_Control, '', None),
"18": (Qt.Key_Alt, '', None),
"19": (Qt.Key_Pause, '', None),
"20": (Qt.Key_CapsLock, '', None),
"27": (Qt.Key_Escape, '', None),
"32": (Qt.Key_Space, ' ', None),
"33": (Qt.Key_PageUp, '', None),
"34": (Qt.Key_PageDown, '', None),
"35": (Qt.Key_End, '', None),
"36": (Qt.Key_Home, '', None),
"37": (Qt.Key_Left, '', None),
"38": (Qt.Key_Up, '', None),
"39": (Qt.Key_Right, '', None),
"40": (Qt.Key_Down, '', None),
"44": (Qt.Key_SysReq, '', None),
"45": (Qt.Key_Insert, '', None),
"46": (Qt.Key_Delete, '', None),
"48": (Qt.Key_0, u'à', None),
"alt-48": (Qt.Key_At, '@', None),
"49": (Qt.Key_Ampersand, '&', None),
"50": (Qt.Key_2, u'é', None),
"alt-50": (Qt.Key_AsciiTilde, '~', None),
"51": (Qt.Key_QuoteDbl, '"', None),
"alt-51": (Qt.Key_NumberSign, '#', None),
"52": (Qt.Key_QuoteLeft, "'", None),
"alt-52": (Qt.Key_BraceLeft, "{", None),
"53": (Qt.Key_ParenLeft, '(', None),
"alt-53": (Qt.Key_BracketLeft, '[', None),
"54": (Qt.Key_Minus, '-', None),
"alt-54": (Qt.Key_Bar, '|', None),
"55": (Qt.Key_7, u'è', None),
"56": (Qt.Key_Underscore, '_', None),
"alt-56": (Qt.Key_Backslash, '\\', None),
"57": (Qt.Key_9, u'ç', None),
"alt-57": (Qt.Key_unknown, u'^', None),
"65": (Qt.Key_A, 'a', None),
"66": (Qt.Key_B, 'b', None),
"67": (Qt.Key_C, 'c', None),
"68": (Qt.Key_D, 'd', None),
"69": (Qt.Key_E, 'e', None),
"70": (Qt.Key_F, 'f', None),
"71": (Qt.Key_G, 'g', None),
"72": (Qt.Key_H, 'h', None),
"73": (Qt.Key_I, 'i', None),
"74": (Qt.Key_J, 'j', None),
"75": (Qt.Key_K, 'k', None),
"76": (Qt.Key_L, 'l', None),
"77": (Qt.Key_M, 'm', None),
"78": (Qt.Key_N, 'n', None),
"79": (Qt.Key_O, 'o', None),
"80": (Qt.Key_P, 'p', None),
"81": (Qt.Key_Q, 'q', None),
"82": (Qt.Key_R, 'r', None),
"83": (Qt.Key_S, 's', None),
"84": (Qt.Key_T, 't', None),
"85": (Qt.Key_U, 'u', None),
"86": (Qt.Key_V, 'v', None),
"87": (Qt.Key_W, 'w', None),
"88": (Qt.Key_X, 'x', None),
"89": (Qt.Key_Y, 'y', None),
"90": (Qt.Key_Z, 'z', None),
"93": (Qt.Key_Print, '', None),
"96": (Qt.Key_0, '0', Qt.KeypadModifier),
"97": (Qt.Key_1, '1', Qt.KeypadModifier),
"98": (Qt.Key_2, '2', Qt.KeypadModifier),
"99": (Qt.Key_3, '3', Qt.KeypadModifier),
"100": (Qt.Key_4, '4', Qt.KeypadModifier),
"101": (Qt.Key_5, '5', Qt.KeypadModifier),
"102": (Qt.Key_5, '6', Qt.KeypadModifier),
"103": (Qt.Key_5, '7', Qt.KeypadModifier),
"104": (Qt.Key_5, '8', Qt.KeypadModifier),
"105": (Qt.Key_5, '9', Qt.KeypadModifier),
"106": (Qt.Key_Asterisk, '*', Qt.KeypadModifier),
"107": (Qt.Key_Plus, '+', Qt.KeypadModifier),
"109": (Qt.Key_Minus, '-', Qt.KeypadModifier),
"110": (Qt.Key_Period, '.', Qt.KeypadModifier),
"111": (Qt.Key_Slash, '/', Qt.KeypadModifier),
"112": (Qt.Key_F1, '', None),
"113": (Qt.Key_F2, '', None),
"114": (Qt.Key_F3, '', None),
"115": (Qt.Key_F4, '', None),
"116": (Qt.Key_F5, '', None),
"117": (Qt.Key_F6, '', None),
"118": (Qt.Key_F7, '', None),
"119": (Qt.Key_F8, '', None),
"120": (Qt.Key_F9, '', None),
"121": (Qt.Key_F10, '', None),
"122": (Qt.Key_F11, '', None),
"113": (Qt.Key_F12, '', None),
"144": (Qt.Key_NumLock, '', None),
"145": (Qt.Key_ScrollLock, '', None),
"186": (Qt.Key_Dollar, '$', None),
"alt-186": (Qt.Key_Dollar, u'¤', None),
"187": (Qt.Key_Equal, '=', None),
"alt-187": (Qt.Key_BraceRight, '}', None),
"188": (Qt.Key_Comma, ',', None),
"189": (Qt.Key_Minus, '-', None),
"190": (Qt.Key_Period, ';', None),
"191": (Qt.Key_Colon, ':', None),
"192": (Qt.Key_Asterisk, u'ù', None),
"219": (Qt.Key_ParenRight, ')', None),
"alt-219": (Qt.Key_BracketRight, ']', None),
"220": (Qt.Key_Asterisk, '*', None),
"221": (Qt.Key_BracketRight, ']', None),
"222": (Qt.Key_unknown, u"²", None),
"223": (Qt.Key_Exclam, "!", None),
"226": (Qt.Key_Less, "<", None),

# Calculate the SHIFT key as 300 + key value
"348": (Qt.Key_ParenRight, '0', None), # Shift+0
"349": (Qt.Key_Exclam, '1', None), # Shift+1
"350": (Qt.Key_At, '2', None), # Shift+2
"351": (Qt.Key_NumberSign, '3', None), # Shift+3
"352": (Qt.Key_Dollar, '4', None), # Shift+4
"353": (Qt.Key_Percent, '5', None), # Shift+5
"354": (Qt.Key_6, '6', None),
"355": (Qt.Key_Ampersand, '7', None), # Shift+7
"356": (Qt.Key_Asterisk, '8', None), # Shift+8
"357": (Qt.Key_ParenLeft, '9', None), # Shift+9

"365": (Qt.Key_A, 'A', None),
"366": (Qt.Key_B, 'B', None),
"367": (Qt.Key_C, 'C', None),
"368": (Qt.Key_D, 'D', None),
"369": (Qt.Key_E, 'E', None),
"370": (Qt.Key_F, 'F', None),
"371": (Qt.Key_G, 'G', None),
"372": (Qt.Key_H, 'H', None),
"373": (Qt.Key_I, 'I', None),
"374": (Qt.Key_J, 'J', None),
"375": (Qt.Key_K, 'K', None),
"376": (Qt.Key_L, 'L', None),
"377": (Qt.Key_M, 'M', None),
"378": (Qt.Key_N, 'N', None),
"379": (Qt.Key_O, 'O', None),
"380": (Qt.Key_P, 'P', None),
"381": (Qt.Key_Q, 'Q', None),
"382": (Qt.Key_R, 'R', None),
"383": (Qt.Key_S, 'S', None),
"384": (Qt.Key_T, 'T', None),
"385": (Qt.Key_U, 'U', None),
"386": (Qt.Key_V, 'V', None),
"387": (Qt.Key_W, 'W', None),
"388": (Qt.Key_X, 'X', None),
"389": (Qt.Key_Y, 'Y', None),
"390": (Qt.Key_Z, 'Z', None),

"486": (Qt.Key_Dollar, u'£', None), # Shift+;
"487": (Qt.Key_Plus, '+', None), # Shift++
"488": (Qt.Key_Question, '?', None), # Shift+,
"489": (Qt.Key_Underscore, '_', None), # Shift+-
"490": (Qt.Key_Period, '.', None), # Shift+>
"491": (Qt.Key_Slash, '/', None), # Shift+?
"492": (Qt.Key_Percent, '%', None), # Shift+`
"519": (Qt.Key_ParenRight, u'°', None), # Shift+[
"520": (Qt.Key_Asterisk, u'µ', None), # Shift+
"521": (Qt.Key_unknown, u'¨', None), # Shift+]
"522": (Qt.Key_QuoteDbl, '"', None), # Shift+'
"523": (Qt.Key_unknown, u'§', None),
"526": (Qt.Key_Greater, '>', None)
}
3 changes: 3 additions & 0 deletions src/key_mapping/prefs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"language": "english"
}
Loading