Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/layouts/olpcm.py
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/olpcm.py')
-rw-r--r--layouts/olpcm.py139
1 files changed, 139 insertions, 0 deletions
diff --git a/layouts/olpcm.py b/layouts/olpcm.py
new file mode 100644
index 0000000..7e7999a
--- /dev/null
+++ b/layouts/olpcm.py
@@ -0,0 +1,139 @@
+# Copyright 2008 by Kate Scheppke and Wade Brainerd.
+# This file is part of Typing Turtle.
+#
+# Typing Turtle is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Typing Turtle is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Typing Turtle. If not, see <http://www.gnu.org/licenses/>.
+#!/usr/bin/env python
+# vi:sw=4 et
+
+
+# This is the OLPC XO non-membrane, mechanical keyboard layout.
+#
+# Check olpc.py in the same directory for instructions.
+OLPCM_LAYOUT = {
+ 'layout-name': "olpcm",
+
+ 'layout-width': 645,
+ 'layout-height': 265,
+
+ 'group-layout': 'horizontal',
+
+ 'key-width': 45,
+ 'key-height': 45,
+ 'key-gap': 5,
+
+ 'groups': [
+ {
+ 'group-name': "numbers",
+ 'group-x': 10,
+ 'group-y': 10,
+
+ 'keys': [
+ {'key-scan':0x31,'key-finger':'LP','key-hand-image':'OLPC_Lhand_tilde.svg','key-width':35},
+ {'key-scan':0x0a,'key-finger':'LP','key-hand-image':'OLPC_Lhand_1.svg'},
+ {'key-scan':0x0b,'key-finger':'LR','key-hand-image':'OLPC_Lhand_2.svg'},
+ {'key-scan':0x0c,'key-finger':'LM','key-hand-image':'OLPC_Lhand_3.svg'},
+ {'key-scan':0x0d,'key-finger':'LI','key-hand-image':'OLPC_Lhand_4.svg'},
+ {'key-scan':0x0e,'key-finger':'LI','key-hand-image':'OLPC_Lhand_5.svg'},
+ {'key-scan':0x0f,'key-finger':'RI','key-hand-image':'OLPC_Rhand_6.svg'},
+ {'key-scan':0x10,'key-finger':'RI','key-hand-image':'OLPC_Rhand_7.svg'},
+ {'key-scan':0x11,'key-finger':'RM','key-hand-image':'OLPC_Rhand_8.svg'},
+ {'key-scan':0x12,'key-finger':'RR','key-hand-image':'OLPC_Rhand_9.svg'},
+ {'key-scan':0x13,'key-finger':'RP','key-hand-image':'OLPC_Rhand_0.svg'},
+ {'key-scan':0x14,'key-finger':'RP','key-hand-image':'OLPC_Rhand_minus.svg','key-width':35},
+ {'key-scan':0x16,'key-finger':'RP','key-label':"erase",'key-width':45}
+ ]
+ },
+ {
+ 'group-name': "top",
+ 'group-x': 10,
+ 'group-y': 60,
+
+ 'keys': [
+ {'key-scan':0x17,'key-finger':'LP','key-label':"tab"},
+ {'key-scan':0x18,'key-finger':'LP','key-hand-image':'OLPC_Lhand_Q.svg'},
+ {'key-scan':0x19,'key-finger':'LR','key-hand-image':'OLPC_Lhand_W.svg'},
+ {'key-scan':0x1a,'key-finger':'LM','key-hand-image':'OLPC_Lhand_E.svg'},
+ {'key-scan':0x1b,'key-finger':'LI','key-hand-image':'OLPC_Lhand_R.svg'},
+ {'key-scan':0x1c,'key-finger':'LI','key-hand-image':'OLPC_Lhand_T.svg'},
+ {'key-scan':0x1d,'key-finger':'RI','key-hand-image':'OLPC_Rhand_Y.svg'},
+ {'key-scan':0x1e,'key-finger':'RI','key-hand-image':'OLPC_Rhand_U.svg'},
+ {'key-scan':0x1f,'key-finger':'RM','key-hand-image':'OLPC_Rhand_I.svg'},
+ {'key-scan':0x20,'key-finger':'RR','key-hand-image':'OLPC_Rhand_O.svg'},
+ {'key-scan':0x21,'key-finger':'RP','key-hand-image':'OLPC_Rhand_P.svg'},
+ {'key-scan':0x22,'key-finger':'RP','key-hand-image':'OLPC_Rhand_bracketL.svg', 'key-width':35},
+ {'key-scan':0x23,'key-finger':'RP','key-hand-image':'OLPC_Rhand_bracketR.svg','key-width':35},
+ ]
+ },
+ {
+ 'group-name': "home",
+ 'group-x': 10,
+ 'group-y': 110,
+
+ 'keys': [
+ {'key-scan':0x25,'key-finger':'LP','key-label':"ctrl",'key-width':55},
+ {'key-scan':0x26,'key-finger':'LP','key-hand-image':'OLPC_Lhand_A.svg'},
+ {'key-scan':0x27,'key-finger':'LR','key-hand-image':'OLPC_Lhand_S.svg'},
+ {'key-scan':0x28,'key-finger':'LM','key-hand-image':'OLPC_Lhand_D.svg'},
+ {'key-scan':0x29,'key-finger':'LI','key-hand-image':'OLPC_Lhand_F.svg'},
+ {'key-scan':0x2a,'key-finger':'LI','key-hand-image':'OLPC_Lhand_G.svg'},
+ {'key-scan':0x2b,'key-finger':'RI','key-hand-image':'OLPC_Rhand_H.svg'},
+ {'key-scan':0x2c,'key-finger':'RI','key-hand-image':'OLPC_Rhand_J.svg'},
+ {'key-scan':0x2d,'key-finger':'RM','key-hand-image':'OLPC_Rhand_K.svg'},
+ {'key-scan':0x2e,'key-finger':'RR','key-hand-image':'OLPC_Rhand_L.svg'},
+ {'key-scan':0x2f,'key-finger':'RP','key-hand-image':'OLPC_Rhand_SEMICOLON.svg', 'key-width':35},
+ {'key-scan':0x24,'key-finger':'RP','key-hand-image':'OLPCM_Rhand_ENTER.svg','key-label':"enter",'key-width':75},
+ ]
+ },
+ {
+ 'group-name': "bottom",
+ 'group-x': 10,
+ 'group-y': 160,
+
+ 'keys': [
+ {'key-scan':0x32,'key-finger':'LP','key-hand-image':'OLPC_Lhand_SHIFT.svg','key-label':"shift",'key-width':75},
+ {'key-scan':0x34,'key-finger':'LP','key-hand-image':'OLPC_Lhand_Z.svg'},
+ {'key-scan':0x35,'key-finger':'LR','key-hand-image':'OLPC_Lhand_X.svg'},
+ {'key-scan':0x36,'key-finger':'LM','key-hand-image':'OLPC_Lhand_C.svg'},
+ {'key-scan':0x37,'key-finger':'LI','key-hand-image':'OLPC_Lhand_V.svg'},
+ {'key-scan':0x38,'key-finger':'LI','key-hand-image':'OLPC_Lhand_B.svg'},
+ {'key-scan':0x39,'key-finger':'RI','key-hand-image':'OLPC_Rhand_N.svg'},
+ {'key-scan':0x3a,'key-finger':'RI','key-hand-image':'OLPC_Rhand_M.svg'},
+ {'key-scan':0x3b,'key-finger':'RM','key-hand-image':'OLPC_Rhand_COMMA.svg', 'key-width':35},
+ {'key-scan':0x3c,'key-finger':'RR','key-hand-image':'OLPC_Rhand_PERIOD.svg', 'key-width':35},
+ {'key-scan':0x3d,'key-finger':'RP','key-hand-image':'OLPC_Rhand_QUESTIONMARK.svg', 'key-width':35},
+ {'key-scan':0x3e,'key-finger':'RP','key-hand-image':'OLPC_Rhand_SHIFT.svg','key-label':"shift",'key-width':75},
+ ]
+ },
+ {
+ 'group-name': "space",
+ 'group-x': 10,
+ 'group-y': 210,
+
+ 'keys': [
+ {'key-label':"fn",'key-width':45},
+ {'key-label':"",'key-width':45}, # LHand
+ {'key-scan':0x33,'key-finger':'RP','key-width':35},
+ {'key-scan':0x40,'key-label':"alt",'key-width':45}, # LAlt
+ {'key-scan':0x41,'key-finger':'RT','key-hand-image':'OLPC_Rhand_SPACE.svg','key-width':155}, # Spacebar
+ {'key-scan':0x6c,'key-label':"altgr",'key-width':35}, # AltGr
+ {'key-scan':0x15,'key-finger':'RP','key-hand-image':'OLPC_Rhand_plus.svg','key-width':35},
+ {'key-scan':0x30,'key-finger':'RP','key-hand-image':'OLPC_Rhand_APOSTROPHE.svg','key-width':35},
+ {'key-scan':0x71,'key-label':"",'key-width':35}, # Left
+ {'key-scan':0x74,'key-label':"",'key-width':35}, # Down
+ {'key-scan':0x6f,'key-label':"",'key-width':35}, # Up
+ {'key-scan':0x72,'key-label':"",'key-width':35}, # Right
+ ]
+ }
+ ]
+}