Open hlship opened 8 years ago
Interesting.
Yeah, it should work. Right now I have two possibilities that come to mind.
Would you mind posting your generatedKeymap.h file when the F12 mapping isn't working (it'll be in the same folder as kiibohd.dfu.bin). This has the results of the kll compiler (it's a bit hard to read, but I can see if the KLL compiler is doing the right thing).
Might take me a moment; the compilation is inside a Docker container and that's not one of the files copied out of it.
/* Copyright (C) 2014-2015 by Jacob Alexander
*
* This file 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.
*
* This file 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 this file. If not, see <http://www.gnu.org/licenses/>.
*/
// This file was generated by the kll compiler, DO NOT EDIT.
// Generation Date: 2016-06-22
// KLL Backend: kiibohd
// KLL Git Rev: b6cf0f13a88fef650f48270a1d1e20ccb1972d21
// KLL Git Changes:
// .gitignore
// LICENSE
// README.markdown
// backends/__init__.py
// backends/kiibohd.py
// examples/capabilitiesExample.kll
// examples/colemak.kll
// examples/defaultMapExample.kll
// examples/example.kll
// examples/hhkbpro2.kll
// examples/md1Map.kll
// examples/simple1.kll
// examples/simple2.kll
// examples/simpleExample.kll
// funcparserlib/__init__.py
// funcparserlib/lexer.py
// funcparserlib/parser.py
// funcparserlib/util.py
// kll.py
// kll_lib/__init__.py
// kll_lib/backends.py
// kll_lib/containers.py
// kll_lib/hid_dict.py
// layouts/colemak.kll
// layouts/hhkbpro2.kll
// layouts/iced_func.kll
// layouts/iced_numpad.kll
// layouts/kishsaver_unix1.kll
// layouts/lcdFuncMap.kll
// layouts/md1Action.kll
// layouts/md1Overlay.kll
// layouts/mdergo1Overlay.kll
// layouts/remote_reload.kll
// layouts/stdFuncMap.kll
// layouts/whitefox.kll
// templates/kiibohdDefs.h
// templates/kiibohdKeymap.h
// Compiler arguments:
// ../../kll/kll.py
// /controller/Scan/ISSILed/capabilities.kll
// /controller/Scan/MatrixARM/capabilities.kll
// /controller/Scan/STLcd/capabilities.kll
// /controller/Scan/UARTConnect/capabilities.kll
// /controller/Macro/PartialMap/capabilities.kll
// /controller/Output/pjrcUSB/capabilities.kll
// /controller/Scan/MDErgo1/defaultMap.kll
// /controller/Scan/MDErgo1/rightHand.kll
// /controller/Scan/MDErgo1/slave1.kll
// /controller/Scan/MDErgo1/leftHand.kll
// -d
// /controller/kll/layouts/ergodox-0.kll
// /controller/kll/layouts/lcdFuncMap.kll
// -p
// /controller/kll/layouts/ergodox-1.kll
// /controller/kll/layouts/lcdFuncMap.kll
// -p
// /controller/kll/layouts/ergodox-2.kll
// /controller/kll/layouts/lcdFuncMap.kll
// -p
// /controller/kll/layouts/ergodox-3.kll
// /controller/kll/layouts/lcdFuncMap.kll
// --backend
// kiibohd
// --templates
// /controller/kll/templates/kiibohdKeymap.h
// /controller/kll/templates/kiibohdDefs.h
// --outputs
// generatedKeymap.h
// kll_defs.h
//
// - Base Layer -
// ISSILedCapabilities
// /controller/Scan/ISSILed/capabilities.kll
// MatrixArmCapabilities
// /controller/Scan/MatrixARM/capabilities.kll
// STLcdCapabilities
// /controller/Scan/STLcd/capabilities.kll
// UARTConnectCapabilities
// /controller/Scan/UARTConnect/capabilities.kll
// PartialMapCapabilities
// /controller/Macro/PartialMap/capabilities.kll
// pjrcUSBCapabilities
// /controller/Output/pjrcUSB/capabilities.kll
// MDErgo1
// /controller/Scan/MDErgo1/defaultMap.kll
// MDErgo1RightHand
// /controller/Scan/MDErgo1/rightHand.kll
// MDErgo1Slave1
// /controller/Scan/MDErgo1/slave1.kll
// MDErgo1LeftHand
// /controller/Scan/MDErgo1/leftHand.kll
// - Default Layer -
// ergodox
// /controller/kll/layouts/ergodox-0.kll
// lcdFuncMap
// /controller/kll/layouts/lcdFuncMap.kll
// - Partial Layers -
// Layer 1
// MDErgo1
// /controller/kll/layouts/ergodox-1.kll
// lcdFuncMap
// /controller/kll/layouts/lcdFuncMap.kll
// Layer 2
// MDErgo1
// /controller/kll/layouts/ergodox-2.kll
// lcdFuncMap
// /controller/kll/layouts/lcdFuncMap.kll
// Layer 3
// ergodox
// /controller/kll/layouts/ergodox-3.kll
// lcdFuncMap
// /controller/kll/layouts/lcdFuncMap.kll
#pragma once
// ----- Includes -----
// KLL Include
#include <kll.h>
// ----- Capabilities -----
// Capability function declarations
void LCD_layerStackExact_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void LCD_layerStack_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void LED_control_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Macro_layerLatch_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Macro_layerLock_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Macro_layerRotate_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Macro_layerShift_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Macro_layerState_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_flashMode_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_noneSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_sysCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
// Indexed Capabilities Table
const Capability CapabilitiesList[] = {
{ LCD_layerStackExact_capability, 9 },
{ LCD_layerStack_capability, 0 },
{ LED_control_capability, 4 },
{ Macro_layerLatch_capability, 2 },
{ Macro_layerLock_capability, 2 },
{ Macro_layerRotate_capability, 1 },
{ Macro_layerShift_capability, 2 },
{ Macro_layerState_capability, 3 },
{ Output_consCtrlSend_capability, 2 },
{ Output_flashMode_capability, 0 },
{ Output_kbdProtocolBoot_capability, 0 },
{ Output_kbdProtocolNKRO_capability, 0 },
{ Output_noneSend_capability, 0 },
{ Output_sysCtrlSend_capability, 1 },
{ Output_usbCodeSend_capability, 1 },
};
// -- Result Macros
// Result Macro Guides
Guide_RM( 0 ) = { 1, 14, KEY_9, 0 };
Guide_RM( 1 ) = { 2, 6, 3, 0, 1, 0 };
Guide_RM( 2 ) = { 1, 14, KEY_J, 0 };
Guide_RM( 3 ) = { 1, 14, KEY_A, 0 };
Guide_RM( 4 ) = { 1, 14, KEY_QUOTE, 0 };
Guide_RM( 5 ) = { 1, 14, KEY_F, 0 };
Guide_RM( 6 ) = { 1, 14, KEY_LCTRL, 0 };
Guide_RM( 7 ) = { 1, 14, KEY_DOWN, 0 };
Guide_RM( 8 ) = { 1, 14, KEY_RALT, 0 };
Guide_RM( 9 ) = { 1, 14, KEY_D, 0 };
Guide_RM( 10 ) = { 1, 14, KEY_ENTER, 0 };
Guide_RM( 11 ) = { 1, 14, KEY_LEFT, 0 };
Guide_RM( 12 ) = { 1, 14, KEY_6, 0 };
Guide_RM( 13 ) = { 1, 14, KEY_UP, 0 };
Guide_RM( 14 ) = { 1, 14, KEY_DELETE, 0 };
Guide_RM( 15 ) = { 1, 14, KEY_K, 0 };
Guide_RM( 16 ) = { 1, 14, KEY_BACKSLASH, 0 };
Guide_RM( 17 ) = { 1, 14, KEY_Q, 0 };
Guide_RM( 18 ) = { 1, 14, KEY_RIGHT, 0 };
Guide_RM( 19 ) = { 1, 14, KEY_MINUS, 0 };
Guide_RM( 20 ) = { 1, 14, KEY_BACKSPACE, 0 };
Guide_RM( 21 ) = { 1, 14, KEY_R, 0 };
Guide_RM( 22 ) = { 1, 14, KEY_L, 0 };
Guide_RM( 23 ) = { 1, 14, KEY_TAB, 0 };
Guide_RM( 24 ) = { 1, 14, KEY_H, 0 };
Guide_RM( 25 ) = { 1, 14, KEY_SPACE, 0 };
Guide_RM( 26 ) = { 1, 14, KEY_LSHIFT, 0 };
Guide_RM( 27 ) = { 1, 14, KEY_G, 0 };
Guide_RM( 28 ) = { 1, 14, KEY_PAGE_UP, 0 };
Guide_RM( 29 ) = { 1, 14, KEY_C, 0 };
Guide_RM( 30 ) = { 1, 14, KEY_I, 0 };
Guide_RM( 31 ) = { 1, 14, KEY_HOME, 0 };
Guide_RM( 32 ) = { 1, 14, KEY_PAGE_DOWN, 0 };
Guide_RM( 33 ) = { 1, 14, KEY_RIGHT_BRACKET, 0 };
Guide_RM( 34 ) = { 1, 14, KEY_E, 0 };
Guide_RM( 35 ) = { 1, 14, KEY_O, 0 };
Guide_RM( 36 ) = { 1, 14, KEY_END, 0 };
Guide_RM( 37 ) = { 1, 14, KEY_LEFT_BRACKET, 0 };
Guide_RM( 38 ) = { 1, 14, KEY_W, 0 };
Guide_RM( 39 ) = { 1, 14, KEY_PERIOD, 0 };
Guide_RM( 40 ) = { 1, 14, KEY_P, 0 };
Guide_RM( 41 ) = { 1, 14, KEY_T, 0 };
Guide_RM( 42 ) = { 1, 14, KEY_N, 0 };
Guide_RM( 43 ) = { 1, 14, KEY_X, 0 };
Guide_RM( 44 ) = { 1, 14, KEY_SLASH, 0 };
Guide_RM( 45 ) = { 1, 14, KEY_B, 0 };
Guide_RM( 46 ) = { 1, 14, KEY_CAPS_LOCK, 0 };
Guide_RM( 47 ) = { 1, 14, KEY_Y, 0 };
Guide_RM( 48 ) = { 1, 14, KEY_Z, 0 };
Guide_RM( 49 ) = { 1, 14, KEY_2, 0 };
Guide_RM( 50 ) = { 1, 14, KEY_RSHIFT, 0 };
Guide_RM( 51 ) = { 1, 14, KEY_0, 0 };
Guide_RM( 52 ) = { 1, 14, KEY_V, 0 };
Guide_RM( 53 ) = { 1, 14, KEY_5, 0 };
Guide_RM( 54 ) = { 1, 14, KEY_U, 0 };
Guide_RM( 55 ) = { 1, 14, KEY_1, 0 };
Guide_RM( 56 ) = { 1, 14, KEY_EQUAL, 0 };
Guide_RM( 57 ) = { 1, 14, KEY_M, 0 };
Guide_RM( 58 ) = { 1, 14, KEY_LALT, 0 };
Guide_RM( 59 ) = { 1, 14, KEY_BACKTICK, 0 };
Guide_RM( 60 ) = { 1, 14, KEY_RCTRL, 0 };
Guide_RM( 61 ) = { 1, 14, KEY_S, 0 };
Guide_RM( 62 ) = { 1, 14, KEY_COMMA, 0 };
Guide_RM( 63 ) = { 1, 14, KEY_7, 0 };
Guide_RM( 64 ) = { 2, 6, 1, 0, 1, 0 };
Guide_RM( 65 ) = { 1, 14, KEY_4, 0 };
Guide_RM( 66 ) = { 1, 14, KEY_ESC, 0 };
Guide_RM( 67 ) = { 1, 14, KEY_8, 0 };
Guide_RM( 68 ) = { 1, 14, KEY_RGUI, 0 };
Guide_RM( 69 ) = { 1, 14, KEY_3, 0 };
Guide_RM( 70 ) = { 1, 14, KEY_SEMICOLON, 0 };
Guide_RM( 71 ) = { 1, 14, KEY_LGUI, 0 };
Guide_RM( 72 ) = { 1, 14, KEY_F9, 0 };
Guide_RM( 73 ) = { 2, 4, 3, 0, 1, 0 };
Guide_RM( 74 ) = { 1, 14, KEY_F6, 0 };
Guide_RM( 75 ) = { 1, 14, KEY_F14, 0 };
Guide_RM( 76 ) = { 1, 8, 182, 0, 0 };
Guide_RM( 77 ) = { 3, 14, KEY_LGUI, 14, KEY_LALT, 14, KEY_RIGHT, 0 };
Guide_RM( 78 ) = { 3, 14, KEY_LGUI, 14, KEY_LALT, 14, KEY_LEFT, 0 };
Guide_RM( 79 ) = { 1, 8, 233, 0, 0 };
Guide_RM( 80 ) = { 1, 14, KEY_F11, 0 };
Guide_RM( 81 ) = { 1, 8, 111, 0, 0 };
Guide_RM( 82 ) = { 1, 14, KEY_F13, 0 };
Guide_RM( 83 ) = { 1, 8, 181, 0, 0 };
Guide_RM( 84 ) = { 1, 8, 112, 0, 0 };
Guide_RM( 85 ) = { 1, 14, KEY_F2, 0 };
Guide_RM( 86 ) = { 1, 14, KEY_F10, 0 };
Guide_RM( 87 ) = { 1, 8, 205, 0, 0 };
Guide_RM( 88 ) = { 1, 14, KEY_F5, 0 };
Guide_RM( 89 ) = { 1, 14, KEY_F1, 0 };
Guide_RM( 90 ) = { 2, 4, 2, 0, 1, 0 };
Guide_RM( 91 ) = { 1, 8, 226, 0, 0 };
Guide_RM( 92 ) = { 1, 8, 234, 0, 0 };
Guide_RM( 93 ) = { 1, 14, KEY_F7, 0 };
Guide_RM( 94 ) = { 1, 14, KEY_F4, 0 };
Guide_RM( 95 ) = { 1, 14, KEY_F8, 0 };
Guide_RM( 96 ) = { 1, 14, KEY_F3, 0 };
Guide_RM( 97 ) = { 1, 14, KEY_F12, 0 };
Guide_RM( 98 ) = { 1, 14, KEYPAD_ASTERISK, 0 };
Guide_RM( 99 ) = { 1, 14, KEYPAD_4, 0 };
Guide_RM( 100 ) = { 1, 14, KEYPAD_PERIOD, 0 };
Guide_RM( 101 ) = { 1, 14, KEYPAD_5, 0 };
Guide_RM( 102 ) = { 1, 14, KEYPAD_ENTER, 0 };
Guide_RM( 103 ) = { 1, 14, KEYPAD_6, 0 };
Guide_RM( 104 ) = { 1, 14, KEYPAD_0, 0 };
Guide_RM( 105 ) = { 1, 14, KEYPAD_8, 0 };
Guide_RM( 106 ) = { 1, 14, KEYPAD_9, 0 };
Guide_RM( 107 ) = { 1, 14, KEYPAD_3, 0 };
Guide_RM( 108 ) = { 1, 14, KEYPAD_PLUS, 0 };
Guide_RM( 109 ) = { 1, 14, KEYPAD_MINUS, 0 };
Guide_RM( 110 ) = { 1, 14, KEYPAD_7, 0 };
Guide_RM( 111 ) = { 1, 14, KEYPAD_1, 0 };
Guide_RM( 112 ) = { 1, 14, KEYPAD_2, 0 };
Guide_RM( 113 ) = { 1, 14, KEY_NUM_LOCK, 0 };
Guide_RM( 114 ) = { 1, 14, KEYPAD_SLASH, 0 };
Guide_RM( 115 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_0, 0 };
Guide_RM( 116 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_N, 0 };
Guide_RM( 117 ) = { 2, 14, KEY_LGUI, 14, KEY_QUOTE, 0 };
Guide_RM( 118 ) = { 3, 14, KEY_LALT, 14, KEY_LCTRL, 14, KEY_B, 0 };
Guide_RM( 119 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_M, 0 };
Guide_RM( 120 ) = { 2, 14, KEY_LSHIFT, 14, KEY_F6, 0 };
Guide_RM( 121 ) = { 2, 14, KEY_LALT, 14, KEY_S, 0 };
Guide_RM( 122 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_T, 0 };
Guide_RM( 123 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_C, 0 };
Guide_RM( 124 ) = { 3, 14, KEY_LALT, 14, KEY_LCTRL, 14, KEY_U, 0 };
Guide_RM( 125 ) = { 3, 14, KEY_LGUI, 14, KEY_LCTRL, 14, KEY_J, 0 };
Guide_RM( 126 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_O, 0 };
Guide_RM( 127 ) = { 3, 14, KEY_LCTRL, 14, KEY_LALT, 14, KEY_F, 0 };
Guide_RM( 128 ) = { 3, 14, KEY_LGUI, 14, KEY_LALT, 14, KEY_PERIOD, 0 };
Guide_RM( 129 ) = { 3, 14, KEY_LGUI, 14, KEY_LSHIFT, 14, KEY_A, 0 };
Guide_RM( 130 ) = { 3, 14, KEY_LCTRL, 14, KEY_LALT, 14, KEY_N, 0 };
Guide_RM( 131 ) = { 3, 14, KEY_LALT, 14, KEY_LSHIFT, 14, KEY_S, 0 };
Guide_RM( 132 ) = { 3, 14, KEY_LCTRL, 14, KEY_LALT, 14, KEY_D, 0 };
Guide_RM( 133 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_LEFT_BRACKET, 0 };
Guide_RM( 134 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_E, 0 };
Guide_RM( 135 ) = { 2, 14, KEY_LGUI, 14, KEY_F12, 0 };
Guide_RM( 136 ) = { 3, 14, KEY_LALT, 14, KEY_LCTRL, 14, KEY_P, 0 };
Guide_RM( 137 ) = { 3, 14, KEY_LCTRL, 14, KEY_LSHIFT, 14, KEY_RIGHT_BRACKET, 0 };
Guide_RM( 138 ) = { 2, 14, KEY_LALT, 14, KEY_F1, 0 };
Guide_RM( 139 ) = { 3, 14, KEY_LGUI, 14, KEY_LCTRL, 14, KEY_S, 0 };
Guide_RM( 140 ) = { 1, 9, 0 };
Guide_RM( 141 ) = { 3, 14, KEY_LGUI, 14, KEY_LALT, 14, KEY_COMMA, 0 };
Guide_RM( 142 ) = { 2, 14, KEY_LALT, 14, KEY_F7, 0 };
Guide_RM( 143 ) = { 2, 14, KEY_LGUI, 14, KEY_F3, 0 };
Guide_RM( 144 ) = { 3, 14, KEY_LGUI, 14, KEY_LALT, 14, KEY_L, 0 };
// -- Result Macro List
// Indexed Table of Result Macros
const ResultMacro ResultMacroList[] = {
Define_RM( 0 ),
Define_RM( 1 ),
Define_RM( 2 ),
Define_RM( 3 ),
Define_RM( 4 ),
Define_RM( 5 ),
Define_RM( 6 ),
Define_RM( 7 ),
Define_RM( 8 ),
Define_RM( 9 ),
Define_RM( 10 ),
Define_RM( 11 ),
Define_RM( 12 ),
Define_RM( 13 ),
Define_RM( 14 ),
Define_RM( 15 ),
Define_RM( 16 ),
Define_RM( 17 ),
Define_RM( 18 ),
Define_RM( 19 ),
Define_RM( 20 ),
Define_RM( 21 ),
Define_RM( 22 ),
Define_RM( 23 ),
Define_RM( 24 ),
Define_RM( 25 ),
Define_RM( 26 ),
Define_RM( 27 ),
Define_RM( 28 ),
Define_RM( 29 ),
Define_RM( 30 ),
Define_RM( 31 ),
Define_RM( 32 ),
Define_RM( 33 ),
Define_RM( 34 ),
Define_RM( 35 ),
Define_RM( 36 ),
Define_RM( 37 ),
Define_RM( 38 ),
Define_RM( 39 ),
Define_RM( 40 ),
Define_RM( 41 ),
Define_RM( 42 ),
Define_RM( 43 ),
Define_RM( 44 ),
Define_RM( 45 ),
Define_RM( 46 ),
Define_RM( 47 ),
Define_RM( 48 ),
Define_RM( 49 ),
Define_RM( 50 ),
Define_RM( 51 ),
Define_RM( 52 ),
Define_RM( 53 ),
Define_RM( 54 ),
Define_RM( 55 ),
Define_RM( 56 ),
Define_RM( 57 ),
Define_RM( 58 ),
Define_RM( 59 ),
Define_RM( 60 ),
Define_RM( 61 ),
Define_RM( 62 ),
Define_RM( 63 ),
Define_RM( 64 ),
Define_RM( 65 ),
Define_RM( 66 ),
Define_RM( 67 ),
Define_RM( 68 ),
Define_RM( 69 ),
Define_RM( 70 ),
Define_RM( 71 ),
Define_RM( 72 ),
Define_RM( 73 ),
Define_RM( 74 ),
Define_RM( 75 ),
Define_RM( 76 ),
Define_RM( 77 ),
Define_RM( 78 ),
Define_RM( 79 ),
Define_RM( 80 ),
Define_RM( 81 ),
Define_RM( 82 ),
Define_RM( 83 ),
Define_RM( 84 ),
Define_RM( 85 ),
Define_RM( 86 ),
Define_RM( 87 ),
Define_RM( 88 ),
Define_RM( 89 ),
Define_RM( 90 ),
Define_RM( 91 ),
Define_RM( 92 ),
Define_RM( 93 ),
Define_RM( 94 ),
Define_RM( 95 ),
Define_RM( 96 ),
Define_RM( 97 ),
Define_RM( 98 ),
Define_RM( 99 ),
Define_RM( 100 ),
Define_RM( 101 ),
Define_RM( 102 ),
Define_RM( 103 ),
Define_RM( 104 ),
Define_RM( 105 ),
Define_RM( 106 ),
Define_RM( 107 ),
Define_RM( 108 ),
Define_RM( 109 ),
Define_RM( 110 ),
Define_RM( 111 ),
Define_RM( 112 ),
Define_RM( 113 ),
Define_RM( 114 ),
Define_RM( 115 ),
Define_RM( 116 ),
Define_RM( 117 ),
Define_RM( 118 ),
Define_RM( 119 ),
Define_RM( 120 ),
Define_RM( 121 ),
Define_RM( 122 ),
Define_RM( 123 ),
Define_RM( 124 ),
Define_RM( 125 ),
Define_RM( 126 ),
Define_RM( 127 ),
Define_RM( 128 ),
Define_RM( 129 ),
Define_RM( 130 ),
Define_RM( 131 ),
Define_RM( 132 ),
Define_RM( 133 ),
Define_RM( 134 ),
Define_RM( 135 ),
Define_RM( 136 ),
Define_RM( 137 ),
Define_RM( 138 ),
Define_RM( 139 ),
Define_RM( 140 ),
Define_RM( 141 ),
Define_RM( 142 ),
Define_RM( 143 ),
Define_RM( 144 ),
};
// -- Trigger Macro Record
// Keeps a record/state of each result macro
ResultMacroRecord ResultMacroRecordList[ ResultMacroNum ];
// -- Trigger Macros
// Trigger Macro Guides
Guide_TM( 0 ) = { 1, 0x00, 0x01, 0x06, 0 };
Guide_TM( 1 ) = { 1, 0x00, 0x01, 0x2F, 0 };
Guide_TM( 2 ) = { 1, 0x00, 0x01, 0x16, 0 };
Guide_TM( 3 ) = { 1, 0x00, 0x01, 0x46, 0 };
Guide_TM( 4 ) = { 1, 0x00, 0x01, 0x1A, 0 };
Guide_TM( 5 ) = { 1, 0x00, 0x01, 0x43, 0 };
Guide_TM( 6 ) = { 1, 0x00, 0x01, 0x02, 0 };
Guide_TM( 7 ) = { 1, 0x00, 0x01, 0x47, 0 };
Guide_TM( 8 ) = { 1, 0x00, 0x01, 0x29, 0 };
Guide_TM( 9 ) = { 1, 0x00, 0x01, 0x1B, 0 };
Guide_TM( 10 ) = { 1, 0x00, 0x01, 0x44, 0 };
Guide_TM( 11 ) = { 1, 0x00, 0x01, 0x26, 0 };
Guide_TM( 12 ) = { 1, 0x00, 0x01, 0x56, 0 };
Guide_TM( 13 ) = { 1, 0x00, 0x01, 0x03, 0 };
Guide_TM( 14 ) = { 1, 0x00, 0x01, 0x2A, 0 };
Guide_TM( 15 ) = { 1, 0x00, 0x01, 0x53, 0 };
Guide_TM( 16 ) = { 1, 0x00, 0x01, 0x17, 0 };
Guide_TM( 17 ) = { 1, 0x00, 0x01, 0x57, 0 };
Guide_TM( 18 ) = { 1, 0x00, 0x01, 0x3D, 0 };
Guide_TM( 19 ) = { 1, 0x00, 0x01, 0x2B, 0 };
Guide_TM( 20 ) = { 1, 0x00, 0x01, 0x11, 0 };
Guide_TM( 21 ) = { 1, 0x00, 0x01, 0x54, 0 };
Guide_TM( 22 ) = { 1, 0x00, 0x01, 0x3A, 0 };
Guide_TM( 23 ) = { 1, 0x00, 0x01, 0x18, 0 };
Guide_TM( 24 ) = { 1, 0x00, 0x01, 0x3E, 0 };
Guide_TM( 25 ) = { 1, 0x00, 0x01, 0x15, 0 };
Guide_TM( 26 ) = { 1, 0x00, 0x01, 0x27, 0 };
Guide_TM( 27 ) = { 1, 0x00, 0x01, 0x50, 0 };
Guide_TM( 28 ) = { 1, 0x00, 0x01, 0x42, 0 };
Guide_TM( 29 ) = { 1, 0x00, 0x01, 0x24, 0 };
Guide_TM( 30 ) = { 1, 0x00, 0x01, 0x4D, 0 };
Guide_TM( 31 ) = { 1, 0x00, 0x01, 0x28, 0 };
Guide_TM( 32 ) = { 1, 0x00, 0x01, 0x0E, 0 };
Guide_TM( 33 ) = { 1, 0x00, 0x01, 0x51, 0 };
Guide_TM( 34 ) = { 1, 0x00, 0x01, 0x25, 0 };
Guide_TM( 35 ) = { 1, 0x00, 0x01, 0x0B, 0 };
Guide_TM( 36 ) = { 1, 0x00, 0x01, 0x3B, 0 };
Guide_TM( 37 ) = { 1, 0x00, 0x01, 0x0F, 0 };
Guide_TM( 38 ) = { 1, 0x00, 0x01, 0x52, 0 };
Guide_TM( 39 ) = { 1, 0x00, 0x01, 0x38, 0 };
Guide_TM( 40 ) = { 1, 0x00, 0x01, 0x3C, 0 };
Guide_TM( 41 ) = { 1, 0x00, 0x01, 0x21, 0 };
Guide_TM( 42 ) = { 1, 0x00, 0x01, 0x10, 0 };
Guide_TM( 43 ) = { 1, 0x00, 0x01, 0x39, 0 };
Guide_TM( 44 ) = { 1, 0x00, 0x01, 0x1E, 0 };
Guide_TM( 45 ) = { 1, 0x00, 0x01, 0x4E, 0 };
Guide_TM( 46 ) = { 1, 0x00, 0x01, 0x22, 0 };
Guide_TM( 47 ) = { 1, 0x00, 0x01, 0x4B, 0 };
Guide_TM( 48 ) = { 2, 0x00, 0x01, 0x50, 0x00, 0x01, 0x23, 0 };
Guide_TM( 49 ) = { 1, 0x00, 0x01, 0x0C, 0 };
Guide_TM( 50 ) = { 1, 0x00, 0x01, 0x4F, 0 };
Guide_TM( 51 ) = { 1, 0x00, 0x01, 0x33, 0 };
Guide_TM( 52 ) = { 1, 0x00, 0x01, 0x23, 0 };
Guide_TM( 53 ) = { 1, 0x00, 0x01, 0x07, 0 };
Guide_TM( 54 ) = { 1, 0x00, 0x01, 0x4C, 0 };
Guide_TM( 55 ) = { 1, 0x00, 0x01, 0x30, 0 };
Guide_TM( 56 ) = { 1, 0x00, 0x01, 0x0D, 0 };
Guide_TM( 57 ) = { 1, 0x00, 0x01, 0x34, 0 };
Guide_TM( 58 ) = { 1, 0x00, 0x01, 0x08, 0 };
Guide_TM( 59 ) = { 1, 0x00, 0x01, 0x1F, 0 };
Guide_TM( 60 ) = { 1, 0x00, 0x01, 0x48, 0 };
Guide_TM( 61 ) = { 1, 0x00, 0x01, 0x35, 0 };
Guide_TM( 62 ) = { 1, 0x00, 0x01, 0x1C, 0 };
Guide_TM( 63 ) = { 1, 0x00, 0x01, 0x45, 0 };
Guide_TM( 64 ) = { 1, 0x00, 0x01, 0x20, 0 };
Guide_TM( 65 ) = { 1, 0x00, 0x01, 0x04, 0 };
Guide_TM( 66 ) = { 1, 0x00, 0x01, 0x49, 0 };
Guide_TM( 67 ) = { 1, 0x00, 0x01, 0x1D, 0 };
Guide_TM( 68 ) = { 1, 0x00, 0x01, 0x31, 0 };
Guide_TM( 69 ) = { 1, 0x00, 0x01, 0x58, 0 };
Guide_TM( 70 ) = { 1, 0x00, 0x01, 0x05, 0 };
Guide_TM( 71 ) = { 1, 0x00, 0x01, 0x4A, 0 };
Guide_TM( 72 ) = { 1, 0x00, 0x01, 0x2C, 0 };
Guide_TM( 73 ) = { 1, 0x00, 0x01, 0x55, 0 };
Guide_TM( 74 ) = { 1, 0x00, 0x01, 0x32, 0 };
Guide_TM( 75 ) = { 1, 0x00, 0x01, 0x19, 0 };
Guide_TM( 76 ) = { 1, 0x00, 0x01, 0x59, 0 };
Guide_TM( 77 ) = { 1, 0x00, 0x01, 0x06, 0 };
Guide_TM( 78 ) = { 1, 0x00, 0x01, 0x2F, 0 };
Guide_TM( 79 ) = { 1, 0x00, 0x01, 0x16, 0 };
Guide_TM( 80 ) = { 1, 0x00, 0x01, 0x46, 0 };
Guide_TM( 81 ) = { 1, 0x00, 0x01, 0x02, 0 };
Guide_TM( 82 ) = { 1, 0x00, 0x01, 0x44, 0 };
Guide_TM( 83 ) = { 1, 0x00, 0x01, 0x03, 0 };
Guide_TM( 84 ) = { 1, 0x00, 0x01, 0x17, 0 };
Guide_TM( 85 ) = { 1, 0x00, 0x01, 0x2B, 0 };
Guide_TM( 86 ) = { 1, 0x00, 0x01, 0x18, 0 };
Guide_TM( 87 ) = { 1, 0x00, 0x01, 0x4D, 0 };
Guide_TM( 88 ) = { 1, 0x00, 0x01, 0x0E, 0 };
Guide_TM( 89 ) = { 1, 0x00, 0x01, 0x0B, 0 };
Guide_TM( 90 ) = { 1, 0x00, 0x01, 0x38, 0 };
Guide_TM( 91 ) = { 1, 0x00, 0x01, 0x3C, 0 };
Guide_TM( 92 ) = { 1, 0x00, 0x01, 0x21, 0 };
Guide_TM( 93 ) = { 1, 0x00, 0x01, 0x10, 0 };
Guide_TM( 94 ) = { 1, 0x00, 0x01, 0x4E, 0 };
Guide_TM( 95 ) = { 1, 0x00, 0x01, 0x22, 0 };
Guide_TM( 96 ) = { 1, 0x00, 0x01, 0x4B, 0 };
Guide_TM( 97 ) = { 1, 0x00, 0x01, 0x4F, 0 };
Guide_TM( 98 ) = { 1, 0x00, 0x01, 0x33, 0 };
Guide_TM( 99 ) = { 1, 0x00, 0x01, 0x07, 0 };
Guide_TM( 100 ) = { 1, 0x00, 0x01, 0x4C, 0 };
Guide_TM( 101 ) = { 1, 0x00, 0x01, 0x30, 0 };
Guide_TM( 102 ) = { 1, 0x00, 0x01, 0x34, 0 };
Guide_TM( 103 ) = { 1, 0x00, 0x01, 0x08, 0 };
Guide_TM( 104 ) = { 1, 0x00, 0x01, 0x1F, 0 };
Guide_TM( 105 ) = { 1, 0x00, 0x01, 0x35, 0 };
Guide_TM( 106 ) = { 1, 0x00, 0x01, 0x45, 0 };
Guide_TM( 107 ) = { 1, 0x00, 0x01, 0x20, 0 };
Guide_TM( 108 ) = { 1, 0x00, 0x01, 0x04, 0 };
Guide_TM( 109 ) = { 1, 0x00, 0x01, 0x31, 0 };
Guide_TM( 110 ) = { 1, 0x00, 0x01, 0x05, 0 };
Guide_TM( 111 ) = { 1, 0x00, 0x01, 0x32, 0 };
Guide_TM( 112 ) = { 1, 0x00, 0x01, 0x19, 0 };
Guide_TM( 113 ) = { 1, 0x00, 0x01, 0x06, 0 };
Guide_TM( 114 ) = { 1, 0x00, 0x01, 0x16, 0 };
Guide_TM( 115 ) = { 1, 0x00, 0x01, 0x2A, 0 };
Guide_TM( 116 ) = { 1, 0x00, 0x01, 0x17, 0 };
Guide_TM( 117 ) = { 1, 0x00, 0x01, 0x2B, 0 };
Guide_TM( 118 ) = { 1, 0x00, 0x01, 0x18, 0 };
Guide_TM( 119 ) = { 1, 0x00, 0x01, 0x27, 0 };
Guide_TM( 120 ) = { 1, 0x00, 0x01, 0x0E, 0 };
Guide_TM( 121 ) = { 1, 0x00, 0x01, 0x0F, 0 };
Guide_TM( 122 ) = { 1, 0x00, 0x01, 0x21, 0 };
Guide_TM( 123 ) = { 1, 0x00, 0x01, 0x10, 0 };
Guide_TM( 124 ) = { 1, 0x00, 0x01, 0x22, 0 };
Guide_TM( 125 ) = { 1, 0x00, 0x01, 0x07, 0 };
Guide_TM( 126 ) = { 1, 0x00, 0x01, 0x0D, 0 };
Guide_TM( 127 ) = { 1, 0x00, 0x01, 0x1F, 0 };
Guide_TM( 128 ) = { 1, 0x00, 0x01, 0x20, 0 };
Guide_TM( 129 ) = { 1, 0x00, 0x01, 0x04, 0 };
Guide_TM( 130 ) = { 1, 0x00, 0x01, 0x05, 0 };
Guide_TM( 131 ) = { 1, 0x00, 0x01, 0x19, 0 };
Guide_TM( 132 ) = { 1, 0x00, 0x01, 0x16, 0 };
Guide_TM( 133 ) = { 1, 0x00, 0x01, 0x46, 0 };
Guide_TM( 134 ) = { 1, 0x00, 0x01, 0x1A, 0 };
Guide_TM( 135 ) = { 1, 0x00, 0x01, 0x43, 0 };
Guide_TM( 136 ) = { 1, 0x00, 0x01, 0x26, 0 };
Guide_TM( 137 ) = { 1, 0x00, 0x01, 0x03, 0 };
Guide_TM( 138 ) = { 1, 0x00, 0x01, 0x17, 0 };
Guide_TM( 139 ) = { 1, 0x00, 0x01, 0x3D, 0 };
Guide_TM( 140 ) = { 1, 0x00, 0x01, 0x54, 0 };
Guide_TM( 141 ) = { 1, 0x00, 0x01, 0x3A, 0 };
Guide_TM( 142 ) = { 1, 0x00, 0x01, 0x15, 0 };
Guide_TM( 143 ) = { 1, 0x00, 0x01, 0x27, 0 };
Guide_TM( 144 ) = { 1, 0x00, 0x01, 0x42, 0 };
Guide_TM( 145 ) = { 1, 0x00, 0x01, 0x21, 0 };
Guide_TM( 146 ) = { 1, 0x00, 0x01, 0x10, 0 };
Guide_TM( 147 ) = { 1, 0x00, 0x01, 0x39, 0 };
Guide_TM( 148 ) = { 1, 0x00, 0x01, 0x1E, 0 };
Guide_TM( 149 ) = { 1, 0x00, 0x01, 0x4B, 0 };
Guide_TM( 150 ) = { 1, 0x00, 0x01, 0x0C, 0 };
Guide_TM( 151 ) = { 1, 0x00, 0x01, 0x4F, 0 };
Guide_TM( 152 ) = { 1, 0x00, 0x01, 0x33, 0 };
Guide_TM( 153 ) = { 1, 0x00, 0x01, 0x4C, 0 };
Guide_TM( 154 ) = { 1, 0x00, 0x01, 0x0D, 0 };
Guide_TM( 155 ) = { 1, 0x00, 0x01, 0x34, 0 };
Guide_TM( 156 ) = { 1, 0x00, 0x01, 0x1F, 0 };
Guide_TM( 157 ) = { 1, 0x00, 0x01, 0x35, 0 };
Guide_TM( 158 ) = { 1, 0x00, 0x01, 0x20, 0 };
Guide_TM( 159 ) = { 1, 0x00, 0x01, 0x04, 0 };
Guide_TM( 160 ) = { 1, 0x00, 0x01, 0x58, 0 };
Guide_TM( 161 ) = { 1, 0x00, 0x01, 0x32, 0 };
Guide_TM( 162 ) = { 1, 0x00, 0x01, 0x19, 0 };
// -- Trigger Macro List
// Indexed Table of Trigger Macros
const TriggerMacro TriggerMacroList[] = {
Define_TM( 0, 0 ),
Define_TM( 1, 1 ),
Define_TM( 2, 2 ),
Define_TM( 3, 3 ),
Define_TM( 4, 4 ),
Define_TM( 5, 5 ),
Define_TM( 6, 1 ),
Define_TM( 7, 6 ),
Define_TM( 8, 7 ),
Define_TM( 9, 8 ),
Define_TM( 10, 9 ),
Define_TM( 11, 10 ),
Define_TM( 12, 11 ),
Define_TM( 13, 12 ),
Define_TM( 14, 13 ),
Define_TM( 15, 14 ),
Define_TM( 16, 15 ),
Define_TM( 17, 16 ),
Define_TM( 18, 17 ),
Define_TM( 19, 18 ),
Define_TM( 20, 19 ),
Define_TM( 21, 20 ),
Define_TM( 22, 21 ),
Define_TM( 23, 22 ),
Define_TM( 24, 23 ),
Define_TM( 25, 24 ),
Define_TM( 26, 25 ),
Define_TM( 27, 26 ),
Define_TM( 28, 27 ),
Define_TM( 29, 28 ),
Define_TM( 30, 29 ),
Define_TM( 31, 11 ),
Define_TM( 32, 30 ),
Define_TM( 33, 31 ),
Define_TM( 34, 32 ),
Define_TM( 35, 33 ),
Define_TM( 36, 34 ),
Define_TM( 37, 35 ),
Define_TM( 38, 36 ),
Define_TM( 39, 37 ),
Define_TM( 40, 38 ),
Define_TM( 41, 39 ),
Define_TM( 42, 40 ),
Define_TM( 43, 41 ),
Define_TM( 44, 42 ),
Define_TM( 45, 43 ),
Define_TM( 46, 44 ),
Define_TM( 47, 45 ),
Define_TM( 48, 46 ),
Define_TM( 49, 47 ),
Define_TM( 50, 48 ),
Define_TM( 51, 49 ),
Define_TM( 52, 50 ),
Define_TM( 53, 51 ),
Define_TM( 54, 52 ),
Define_TM( 55, 53 ),
Define_TM( 56, 54 ),
Define_TM( 57, 55 ),
Define_TM( 58, 56 ),
Define_TM( 59, 57 ),
Define_TM( 60, 58 ),
Define_TM( 61, 59 ),
Define_TM( 62, 60 ),
Define_TM( 63, 61 ),
Define_TM( 64, 62 ),
Define_TM( 65, 63 ),
Define_TM( 66, 6 ),
Define_TM( 67, 64 ),
Define_TM( 68, 65 ),
Define_TM( 69, 66 ),
Define_TM( 70, 67 ),
Define_TM( 71, 64 ),
Define_TM( 72, 68 ),
Define_TM( 73, 18 ),
Define_TM( 74, 69 ),
Define_TM( 75, 70 ),
Define_TM( 76, 71 ),
Define_TM( 77, 72 ),
Define_TM( 78, 73 ),
Define_TM( 79, 11 ),
Define_TM( 80, 11 ),
Define_TM( 81, 73 ),
Define_TM( 82, 18 ),
Define_TM( 83, 74 ),
Define_TM( 84, 7 ),
Define_TM( 85, 75 ),
Define_TM( 86, 18 ),
Define_TM( 87, 76 ),
Define_TM( 88, 13 ),
Define_TM( 89, 77 ),
Define_TM( 90, 78 ),
Define_TM( 91, 13 ),
Define_TM( 92, 79 ),
Define_TM( 93, 80 ),
Define_TM( 94, 81 ),
Define_TM( 95, 82 ),
Define_TM( 96, 83 ),
Define_TM( 97, 84 ),
Define_TM( 98, 85 ),
Define_TM( 99, 86 ),
Define_TM( 100, 87 ),
Define_TM( 101, 88 ),
Define_TM( 102, 89 ),
Define_TM( 103, 90 ),
Define_TM( 104, 91 ),
Define_TM( 105, 66 ),
Define_TM( 106, 7 ),
Define_TM( 107, 92 ),
Define_TM( 108, 93 ),
Define_TM( 109, 94 ),
Define_TM( 110, 95 ),
Define_TM( 111, 96 ),
Define_TM( 112, 97 ),
Define_TM( 113, 98 ),
Define_TM( 114, 99 ),
Define_TM( 115, 100 ),
Define_TM( 116, 101 ),
Define_TM( 117, 102 ),
Define_TM( 118, 103 ),
Define_TM( 119, 104 ),
Define_TM( 120, 105 ),
Define_TM( 121, 106 ),
Define_TM( 122, 107 ),
Define_TM( 123, 108 ),
Define_TM( 124, 102 ),
Define_TM( 125, 109 ),
Define_TM( 126, 110 ),
Define_TM( 127, 111 ),
Define_TM( 128, 112 ),
Define_TM( 129, 113 ),
Define_TM( 130, 114 ),
Define_TM( 131, 108 ),
Define_TM( 132, 115 ),
Define_TM( 133, 116 ),
Define_TM( 134, 117 ),
Define_TM( 135, 118 ),
Define_TM( 136, 119 ),
Define_TM( 137, 120 ),
Define_TM( 138, 121 ),
Define_TM( 139, 122 ),
Define_TM( 140, 123 ),
Define_TM( 141, 124 ),
Define_TM( 142, 125 ),
Define_TM( 143, 126 ),
Define_TM( 144, 127 ),
Define_TM( 145, 128 ),
Define_TM( 146, 129 ),
Define_TM( 147, 130 ),
Define_TM( 148, 131 ),
Define_TM( 149, 132 ),
Define_TM( 150, 133 ),
Define_TM( 151, 134 ),
Define_TM( 152, 135 ),
Define_TM( 153, 136 ),
Define_TM( 154, 137 ),
Define_TM( 155, 138 ),
Define_TM( 156, 139 ),
Define_TM( 157, 140 ),
Define_TM( 158, 141 ),
Define_TM( 159, 142 ),
Define_TM( 160, 140 ),
Define_TM( 161, 143 ),
Define_TM( 162, 144 ),
};
// -- Trigger Macro Record List
// Keeps a record/state of each trigger macro
TriggerMacroRecord TriggerMacroRecordList[ TriggerMacroNum ];
// ----- Trigger Maps -----
// MaxScanCode
// - This is retrieved from the KLL configuration
// - Should be corollated with the max scan code in the scan module
// - Maximum value is 0x100 (0x0 to 0xFF)
// - Increasing it beyond the keyboard's capabilities is just a waste of ram...
#define MaxScanCode 0x59
// -- Trigger Lists
//
// Index 0: # of triggers in list
// Index n: pointer to trigger macro - use tm() macro
// - Default Layer -
Define_TL( default, 0x02 ) = { 1, 6 };
Define_TL( default, 0x03 ) = { 1, 13 };
Define_TL( default, 0x04 ) = { 1, 65 };
Define_TL( default, 0x05 ) = { 1, 70 };
Define_TL( default, 0x06 ) = { 1, 0 };
Define_TL( default, 0x07 ) = { 1, 53 };
Define_TL( default, 0x08 ) = { 1, 58 };
Define_TL( default, 0x09 ) = { 0 };
Define_TL( default, 0x0A ) = { 0 };
Define_TL( default, 0x0B ) = { 1, 35 };
Define_TL( default, 0x0C ) = { 1, 49 };
Define_TL( default, 0x0D ) = { 1, 56 };
Define_TL( default, 0x0E ) = { 1, 32 };
Define_TL( default, 0x0F ) = { 1, 37 };
Define_TL( default, 0x10 ) = { 1, 42 };
Define_TL( default, 0x11 ) = { 1, 20 };
Define_TL( default, 0x12 ) = { 0 };
Define_TL( default, 0x13 ) = { 0 };
Define_TL( default, 0x14 ) = { 0 };
Define_TL( default, 0x15 ) = { 1, 25 };
Define_TL( default, 0x16 ) = { 1, 2 };
Define_TL( default, 0x17 ) = { 1, 16 };
Define_TL( default, 0x18 ) = { 1, 23 };
Define_TL( default, 0x19 ) = { 1, 75 };
Define_TL( default, 0x1A ) = { 1, 4 };
Define_TL( default, 0x1B ) = { 1, 9 };
Define_TL( default, 0x1C ) = { 1, 62 };
Define_TL( default, 0x1D ) = { 1, 67 };
Define_TL( default, 0x1E ) = { 1, 44 };
Define_TL( default, 0x1F ) = { 1, 59 };
Define_TL( default, 0x20 ) = { 1, 64 };
Define_TL( default, 0x21 ) = { 1, 41 };
Define_TL( default, 0x22 ) = { 1, 46 };
Define_TL( default, 0x23 ) = { 2, 48, 52 };
Define_TL( default, 0x24 ) = { 1, 29 };
Define_TL( default, 0x25 ) = { 1, 34 };
Define_TL( default, 0x26 ) = { 1, 11 };
Define_TL( default, 0x27 ) = { 1, 26 };
Define_TL( default, 0x28 ) = { 1, 31 };
Define_TL( default, 0x29 ) = { 1, 8 };
Define_TL( default, 0x2A ) = { 1, 14 };
Define_TL( default, 0x2B ) = { 1, 19 };
Define_TL( default, 0x2C ) = { 1, 72 };
Define_TL( default, 0x2D ) = { 0 };
Define_TL( default, 0x2E ) = { 0 };
Define_TL( default, 0x2F ) = { 1, 1 };
Define_TL( default, 0x30 ) = { 1, 55 };
Define_TL( default, 0x31 ) = { 1, 68 };
Define_TL( default, 0x32 ) = { 1, 74 };
Define_TL( default, 0x33 ) = { 1, 51 };
Define_TL( default, 0x34 ) = { 1, 57 };
Define_TL( default, 0x35 ) = { 1, 61 };
Define_TL( default, 0x36 ) = { 0 };
Define_TL( default, 0x37 ) = { 0 };
Define_TL( default, 0x38 ) = { 1, 39 };
Define_TL( default, 0x39 ) = { 1, 43 };
Define_TL( default, 0x3A ) = { 1, 22 };
Define_TL( default, 0x3B ) = { 1, 36 };
Define_TL( default, 0x3C ) = { 1, 40 };
Define_TL( default, 0x3D ) = { 1, 18 };
Define_TL( default, 0x3E ) = { 1, 24 };
Define_TL( default, 0x3F ) = { 0 };
Define_TL( default, 0x40 ) = { 0 };
Define_TL( default, 0x41 ) = { 0 };
Define_TL( default, 0x42 ) = { 1, 28 };
Define_TL( default, 0x43 ) = { 1, 5 };
Define_TL( default, 0x44 ) = { 1, 10 };
Define_TL( default, 0x45 ) = { 1, 63 };
Define_TL( default, 0x46 ) = { 1, 3 };
Define_TL( default, 0x47 ) = { 1, 7 };
Define_TL( default, 0x48 ) = { 1, 60 };
Define_TL( default, 0x49 ) = { 1, 66 };
Define_TL( default, 0x4A ) = { 1, 71 };
Define_TL( default, 0x4B ) = { 1, 47 };
Define_TL( default, 0x4C ) = { 1, 54 };
Define_TL( default, 0x4D ) = { 1, 30 };
Define_TL( default, 0x4E ) = { 1, 45 };
Define_TL( default, 0x4F ) = { 1, 50 };
Define_TL( default, 0x50 ) = { 2, 27, 48 };
Define_TL( default, 0x51 ) = { 1, 33 };
Define_TL( default, 0x52 ) = { 1, 38 };
Define_TL( default, 0x53 ) = { 1, 15 };
Define_TL( default, 0x54 ) = { 1, 21 };
Define_TL( default, 0x55 ) = { 1, 73 };
Define_TL( default, 0x56 ) = { 1, 12 };
Define_TL( default, 0x57 ) = { 1, 17 };
Define_TL( default, 0x58 ) = { 1, 69 };
Define_TL( default, 0x59 ) = { 1, 76 };
// - Partial Layers -
// Partial Layer 1
Define_TL( layer1, 0x02 ) = { 1, 81 };
Define_TL( layer1, 0x03 ) = { 1, 83 };
Define_TL( layer1, 0x04 ) = { 1, 108 };
Define_TL( layer1, 0x05 ) = { 1, 110 };
Define_TL( layer1, 0x06 ) = { 1, 77 };
Define_TL( layer1, 0x07 ) = { 1, 99 };
Define_TL( layer1, 0x08 ) = { 1, 103 };
Define_TL( layer1, 0x09 ) = { 0 };
Define_TL( layer1, 0x0A ) = { 0 };
Define_TL( layer1, 0x0B ) = { 1, 89 };
Define_TL( layer1, 0x0C ) = { 0 };
Define_TL( layer1, 0x0D ) = { 0 };
Define_TL( layer1, 0x0E ) = { 1, 88 };
Define_TL( layer1, 0x0F ) = { 0 };
Define_TL( layer1, 0x10 ) = { 1, 93 };
Define_TL( layer1, 0x11 ) = { 0 };
Define_TL( layer1, 0x12 ) = { 0 };
Define_TL( layer1, 0x13 ) = { 0 };
Define_TL( layer1, 0x14 ) = { 0 };
Define_TL( layer1, 0x15 ) = { 0 };
Define_TL( layer1, 0x16 ) = { 1, 79 };
Define_TL( layer1, 0x17 ) = { 1, 84 };
Define_TL( layer1, 0x18 ) = { 1, 86 };
Define_TL( layer1, 0x19 ) = { 1, 112 };
Define_TL( layer1, 0x1A ) = { 0 };
Define_TL( layer1, 0x1B ) = { 0 };
Define_TL( layer1, 0x1C ) = { 0 };
Define_TL( layer1, 0x1D ) = { 0 };
Define_TL( layer1, 0x1E ) = { 0 };
Define_TL( layer1, 0x1F ) = { 1, 104 };
Define_TL( layer1, 0x20 ) = { 1, 107 };
Define_TL( layer1, 0x21 ) = { 1, 92 };
Define_TL( layer1, 0x22 ) = { 1, 95 };
Define_TL( layer1, 0x23 ) = { 0 };
Define_TL( layer1, 0x24 ) = { 0 };
Define_TL( layer1, 0x25 ) = { 0 };
Define_TL( layer1, 0x26 ) = { 0 };
Define_TL( layer1, 0x27 ) = { 0 };
Define_TL( layer1, 0x28 ) = { 0 };
Define_TL( layer1, 0x29 ) = { 0 };
Define_TL( layer1, 0x2A ) = { 0 };
Define_TL( layer1, 0x2B ) = { 1, 85 };
Define_TL( layer1, 0x2C ) = { 0 };
Define_TL( layer1, 0x2D ) = { 0 };
Define_TL( layer1, 0x2E ) = { 0 };
Define_TL( layer1, 0x2F ) = { 1, 78 };
Define_TL( layer1, 0x30 ) = { 1, 101 };
Define_TL( layer1, 0x31 ) = { 1, 109 };
Define_TL( layer1, 0x32 ) = { 1, 111 };
Define_TL( layer1, 0x33 ) = { 1, 98 };
Define_TL( layer1, 0x34 ) = { 1, 102 };
Define_TL( layer1, 0x35 ) = { 1, 105 };
Define_TL( layer1, 0x36 ) = { 0 };
Define_TL( layer1, 0x37 ) = { 0 };
Define_TL( layer1, 0x38 ) = { 1, 90 };
Define_TL( layer1, 0x39 ) = { 0 };
Define_TL( layer1, 0x3A ) = { 0 };
Define_TL( layer1, 0x3B ) = { 0 };
Define_TL( layer1, 0x3C ) = { 1, 91 };
Define_TL( layer1, 0x3D ) = { 0 };
Define_TL( layer1, 0x3E ) = { 0 };
Define_TL( layer1, 0x3F ) = { 0 };
Define_TL( layer1, 0x40 ) = { 0 };
Define_TL( layer1, 0x41 ) = { 0 };
Define_TL( layer1, 0x42 ) = { 0 };
Define_TL( layer1, 0x43 ) = { 0 };
Define_TL( layer1, 0x44 ) = { 1, 82 };
Define_TL( layer1, 0x45 ) = { 1, 106 };
Define_TL( layer1, 0x46 ) = { 1, 80 };
Define_TL( layer1, 0x47 ) = { 0 };
Define_TL( layer1, 0x48 ) = { 0 };
Define_TL( layer1, 0x49 ) = { 0 };
Define_TL( layer1, 0x4A ) = { 0 };
Define_TL( layer1, 0x4B ) = { 1, 96 };
Define_TL( layer1, 0x4C ) = { 1, 100 };
Define_TL( layer1, 0x4D ) = { 1, 87 };
Define_TL( layer1, 0x4E ) = { 1, 94 };
Define_TL( layer1, 0x4F ) = { 1, 97 };
// Partial Layer 2
Define_TL( layer2, 0x04 ) = { 1, 129 };
Define_TL( layer2, 0x05 ) = { 1, 130 };
Define_TL( layer2, 0x06 ) = { 1, 113 };
Define_TL( layer2, 0x07 ) = { 1, 125 };
Define_TL( layer2, 0x08 ) = { 0 };
Define_TL( layer2, 0x09 ) = { 0 };
Define_TL( layer2, 0x0A ) = { 0 };
Define_TL( layer2, 0x0B ) = { 0 };
Define_TL( layer2, 0x0C ) = { 0 };
Define_TL( layer2, 0x0D ) = { 1, 126 };
Define_TL( layer2, 0x0E ) = { 1, 120 };
Define_TL( layer2, 0x0F ) = { 1, 121 };
Define_TL( layer2, 0x10 ) = { 1, 123 };
Define_TL( layer2, 0x11 ) = { 0 };
Define_TL( layer2, 0x12 ) = { 0 };
Define_TL( layer2, 0x13 ) = { 0 };
Define_TL( layer2, 0x14 ) = { 0 };
Define_TL( layer2, 0x15 ) = { 0 };
Define_TL( layer2, 0x16 ) = { 1, 114 };
Define_TL( layer2, 0x17 ) = { 1, 116 };
Define_TL( layer2, 0x18 ) = { 1, 118 };
Define_TL( layer2, 0x19 ) = { 1, 131 };
Define_TL( layer2, 0x1A ) = { 0 };
Define_TL( layer2, 0x1B ) = { 0 };
Define_TL( layer2, 0x1C ) = { 0 };
Define_TL( layer2, 0x1D ) = { 0 };
Define_TL( layer2, 0x1E ) = { 0 };
Define_TL( layer2, 0x1F ) = { 1, 127 };
Define_TL( layer2, 0x20 ) = { 1, 128 };
Define_TL( layer2, 0x21 ) = { 1, 122 };
Define_TL( layer2, 0x22 ) = { 1, 124 };
Define_TL( layer2, 0x23 ) = { 0 };
Define_TL( layer2, 0x24 ) = { 0 };
Define_TL( layer2, 0x25 ) = { 0 };
Define_TL( layer2, 0x26 ) = { 0 };
Define_TL( layer2, 0x27 ) = { 1, 119 };
Define_TL( layer2, 0x28 ) = { 0 };
Define_TL( layer2, 0x29 ) = { 0 };
Define_TL( layer2, 0x2A ) = { 1, 115 };
Define_TL( layer2, 0x2B ) = { 1, 117 };
// Partial Layer 3
Define_TL( layer3, 0x03 ) = { 1, 137 };
Define_TL( layer3, 0x04 ) = { 1, 159 };
Define_TL( layer3, 0x05 ) = { 0 };
Define_TL( layer3, 0x06 ) = { 0 };
Define_TL( layer3, 0x07 ) = { 0 };
Define_TL( layer3, 0x08 ) = { 0 };
Define_TL( layer3, 0x09 ) = { 0 };
Define_TL( layer3, 0x0A ) = { 0 };
Define_TL( layer3, 0x0B ) = { 0 };
Define_TL( layer3, 0x0C ) = { 1, 150 };
Define_TL( layer3, 0x0D ) = { 1, 154 };
Define_TL( layer3, 0x0E ) = { 0 };
Define_TL( layer3, 0x0F ) = { 0 };
Define_TL( layer3, 0x10 ) = { 1, 146 };
Define_TL( layer3, 0x11 ) = { 0 };
Define_TL( layer3, 0x12 ) = { 0 };
Define_TL( layer3, 0x13 ) = { 0 };
Define_TL( layer3, 0x14 ) = { 0 };
Define_TL( layer3, 0x15 ) = { 1, 142 };
Define_TL( layer3, 0x16 ) = { 1, 132 };
Define_TL( layer3, 0x17 ) = { 1, 138 };
Define_TL( layer3, 0x18 ) = { 0 };
Define_TL( layer3, 0x19 ) = { 1, 162 };
Define_TL( layer3, 0x1A ) = { 1, 134 };
Define_TL( layer3, 0x1B ) = { 0 };
Define_TL( layer3, 0x1C ) = { 0 };
Define_TL( layer3, 0x1D ) = { 0 };
Define_TL( layer3, 0x1E ) = { 1, 148 };
Define_TL( layer3, 0x1F ) = { 1, 156 };
Define_TL( layer3, 0x20 ) = { 1, 158 };
Define_TL( layer3, 0x21 ) = { 1, 145 };
Define_TL( layer3, 0x22 ) = { 0 };
Define_TL( layer3, 0x23 ) = { 0 };
Define_TL( layer3, 0x24 ) = { 0 };
Define_TL( layer3, 0x25 ) = { 0 };
Define_TL( layer3, 0x26 ) = { 1, 136 };
Define_TL( layer3, 0x27 ) = { 1, 143 };
Define_TL( layer3, 0x28 ) = { 0 };
Define_TL( layer3, 0x29 ) = { 0 };
Define_TL( layer3, 0x2A ) = { 0 };
Define_TL( layer3, 0x2B ) = { 0 };
Define_TL( layer3, 0x2C ) = { 0 };
Define_TL( layer3, 0x2D ) = { 0 };
Define_TL( layer3, 0x2E ) = { 0 };
Define_TL( layer3, 0x2F ) = { 0 };
Define_TL( layer3, 0x30 ) = { 0 };
Define_TL( layer3, 0x31 ) = { 0 };
Define_TL( layer3, 0x32 ) = { 1, 161 };
Define_TL( layer3, 0x33 ) = { 1, 152 };
Define_TL( layer3, 0x34 ) = { 1, 155 };
Define_TL( layer3, 0x35 ) = { 1, 157 };
Define_TL( layer3, 0x36 ) = { 0 };
Define_TL( layer3, 0x37 ) = { 0 };
Define_TL( layer3, 0x38 ) = { 0 };
Define_TL( layer3, 0x39 ) = { 1, 147 };
Define_TL( layer3, 0x3A ) = { 1, 141 };
Define_TL( layer3, 0x3B ) = { 0 };
Define_TL( layer3, 0x3C ) = { 0 };
Define_TL( layer3, 0x3D ) = { 1, 139 };
Define_TL( layer3, 0x3E ) = { 0 };
Define_TL( layer3, 0x3F ) = { 0 };
Define_TL( layer3, 0x40 ) = { 0 };
Define_TL( layer3, 0x41 ) = { 0 };
Define_TL( layer3, 0x42 ) = { 1, 144 };
Define_TL( layer3, 0x43 ) = { 1, 135 };
Define_TL( layer3, 0x44 ) = { 0 };
Define_TL( layer3, 0x45 ) = { 0 };
Define_TL( layer3, 0x46 ) = { 1, 133 };
Define_TL( layer3, 0x47 ) = { 0 };
Define_TL( layer3, 0x48 ) = { 0 };
Define_TL( layer3, 0x49 ) = { 0 };
Define_TL( layer3, 0x4A ) = { 0 };
Define_TL( layer3, 0x4B ) = { 1, 149 };
Define_TL( layer3, 0x4C ) = { 1, 153 };
Define_TL( layer3, 0x4D ) = { 0 };
Define_TL( layer3, 0x4E ) = { 0 };
Define_TL( layer3, 0x4F ) = { 1, 151 };
Define_TL( layer3, 0x50 ) = { 0 };
Define_TL( layer3, 0x51 ) = { 0 };
Define_TL( layer3, 0x52 ) = { 0 };
Define_TL( layer3, 0x53 ) = { 0 };
Define_TL( layer3, 0x54 ) = { 1, 140 };
Define_TL( layer3, 0x55 ) = { 0 };
Define_TL( layer3, 0x56 ) = { 0 };
Define_TL( layer3, 0x57 ) = { 0 };
Define_TL( layer3, 0x58 ) = { 1, 160 };
// -- ScanCode Offset Map
// Maps interconnect ids to scancode offsets
//
// Only used for keyboards with an interconnect
const uint8_t InterconnectOffsetList[] = {
0x2D,
0x59,
};
// -- ScanCode Indexed Maps
// Maps to a trigger list of macro pointers
// _
// <scan code> -> |T|
// |r| -> <trigger macro pointer 1>
// |i|
// |g| -> <trigger macro pointer 2>
// |g|
// |e| -> <trigger macro pointer 3>
// |r|
// |s| -> <trigger macro pointer n>
// -
// - Default Map for ScanCode Lookup -
const nat_ptr_t *default_scanMap[] = {
default_tl_0x02, default_tl_0x03, default_tl_0x04, default_tl_0x05, default_tl_0x06, default_tl_0x07, default_tl_0x08, default_tl_0x09, default_tl_0x0A, default_tl_0x0B, default_tl_0x0C, default_tl_0x0D, default_tl_0x0E, default_tl_0x0F, default_tl_0x10, default_tl_0x11, default_tl_0x12, default_tl_0x13, default_tl_0x14, default_tl_0x15, default_tl_0x16, default_tl_0x17, default_tl_0x18, default_tl_0x19, default_tl_0x1A, default_tl_0x1B, default_tl_0x1C, default_tl_0x1D, default_tl_0x1E, default_tl_0x1F, default_tl_0x20, default_tl_0x21, default_tl_0x22, default_tl_0x23, default_tl_0x24, default_tl_0x25, default_tl_0x26, default_tl_0x27, default_tl_0x28, default_tl_0x29, default_tl_0x2A, default_tl_0x2B, default_tl_0x2C, default_tl_0x2D, default_tl_0x2E, default_tl_0x2F, default_tl_0x30, default_tl_0x31, default_tl_0x32, default_tl_0x33, default_tl_0x34, default_tl_0x35, default_tl_0x36, default_tl_0x37, default_tl_0x38, default_tl_0x39, default_tl_0x3A, default_tl_0x3B, default_tl_0x3C, default_tl_0x3D, default_tl_0x3E, default_tl_0x3F, default_tl_0x40, default_tl_0x41, default_tl_0x42, default_tl_0x43, default_tl_0x44, default_tl_0x45, default_tl_0x46, default_tl_0x47, default_tl_0x48, default_tl_0x49, default_tl_0x4A, default_tl_0x4B, default_tl_0x4C, default_tl_0x4D, default_tl_0x4E, default_tl_0x4F, default_tl_0x50, default_tl_0x51, default_tl_0x52, default_tl_0x53, default_tl_0x54, default_tl_0x55, default_tl_0x56, default_tl_0x57, default_tl_0x58, default_tl_0x59
};
// - Partial Layer ScanCode Lookup Maps -
// Partial Layer 1
const nat_ptr_t *layer1_scanMap[] = {
layer1_tl_0x02, layer1_tl_0x03, layer1_tl_0x04, layer1_tl_0x05, layer1_tl_0x06, layer1_tl_0x07, layer1_tl_0x08, layer1_tl_0x09, layer1_tl_0x0A, layer1_tl_0x0B, layer1_tl_0x0C, layer1_tl_0x0D, layer1_tl_0x0E, layer1_tl_0x0F, layer1_tl_0x10, layer1_tl_0x11, layer1_tl_0x12, layer1_tl_0x13, layer1_tl_0x14, layer1_tl_0x15, layer1_tl_0x16, layer1_tl_0x17, layer1_tl_0x18, layer1_tl_0x19, layer1_tl_0x1A, layer1_tl_0x1B, layer1_tl_0x1C, layer1_tl_0x1D, layer1_tl_0x1E, layer1_tl_0x1F, layer1_tl_0x20, layer1_tl_0x21, layer1_tl_0x22, layer1_tl_0x23, layer1_tl_0x24, layer1_tl_0x25, layer1_tl_0x26, layer1_tl_0x27, layer1_tl_0x28, layer1_tl_0x29, layer1_tl_0x2A, layer1_tl_0x2B, layer1_tl_0x2C, layer1_tl_0x2D, layer1_tl_0x2E, layer1_tl_0x2F, layer1_tl_0x30, layer1_tl_0x31, layer1_tl_0x32, layer1_tl_0x33, layer1_tl_0x34, layer1_tl_0x35, layer1_tl_0x36, layer1_tl_0x37, layer1_tl_0x38, layer1_tl_0x39, layer1_tl_0x3A, layer1_tl_0x3B, layer1_tl_0x3C, layer1_tl_0x3D, layer1_tl_0x3E, layer1_tl_0x3F, layer1_tl_0x40, layer1_tl_0x41, layer1_tl_0x42, layer1_tl_0x43, layer1_tl_0x44, layer1_tl_0x45, layer1_tl_0x46, layer1_tl_0x47, layer1_tl_0x48, layer1_tl_0x49, layer1_tl_0x4A, layer1_tl_0x4B, layer1_tl_0x4C, layer1_tl_0x4D, layer1_tl_0x4E, layer1_tl_0x4F
};
// Partial Layer 2
const nat_ptr_t *layer2_scanMap[] = {
layer2_tl_0x04, layer2_tl_0x05, layer2_tl_0x06, layer2_tl_0x07, layer2_tl_0x08, layer2_tl_0x09, layer2_tl_0x0A, layer2_tl_0x0B, layer2_tl_0x0C, layer2_tl_0x0D, layer2_tl_0x0E, layer2_tl_0x0F, layer2_tl_0x10, layer2_tl_0x11, layer2_tl_0x12, layer2_tl_0x13, layer2_tl_0x14, layer2_tl_0x15, layer2_tl_0x16, layer2_tl_0x17, layer2_tl_0x18, layer2_tl_0x19, layer2_tl_0x1A, layer2_tl_0x1B, layer2_tl_0x1C, layer2_tl_0x1D, layer2_tl_0x1E, layer2_tl_0x1F, layer2_tl_0x20, layer2_tl_0x21, layer2_tl_0x22, layer2_tl_0x23, layer2_tl_0x24, layer2_tl_0x25, layer2_tl_0x26, layer2_tl_0x27, layer2_tl_0x28, layer2_tl_0x29, layer2_tl_0x2A, layer2_tl_0x2B
};
// Partial Layer 3
const nat_ptr_t *layer3_scanMap[] = {
layer3_tl_0x03, layer3_tl_0x04, layer3_tl_0x05, layer3_tl_0x06, layer3_tl_0x07, layer3_tl_0x08, layer3_tl_0x09, layer3_tl_0x0A, layer3_tl_0x0B, layer3_tl_0x0C, layer3_tl_0x0D, layer3_tl_0x0E, layer3_tl_0x0F, layer3_tl_0x10, layer3_tl_0x11, layer3_tl_0x12, layer3_tl_0x13, layer3_tl_0x14, layer3_tl_0x15, layer3_tl_0x16, layer3_tl_0x17, layer3_tl_0x18, layer3_tl_0x19, layer3_tl_0x1A, layer3_tl_0x1B, layer3_tl_0x1C, layer3_tl_0x1D, layer3_tl_0x1E, layer3_tl_0x1F, layer3_tl_0x20, layer3_tl_0x21, layer3_tl_0x22, layer3_tl_0x23, layer3_tl_0x24, layer3_tl_0x25, layer3_tl_0x26, layer3_tl_0x27, layer3_tl_0x28, layer3_tl_0x29, layer3_tl_0x2A, layer3_tl_0x2B, layer3_tl_0x2C, layer3_tl_0x2D, layer3_tl_0x2E, layer3_tl_0x2F, layer3_tl_0x30, layer3_tl_0x31, layer3_tl_0x32, layer3_tl_0x33, layer3_tl_0x34, layer3_tl_0x35, layer3_tl_0x36, layer3_tl_0x37, layer3_tl_0x38, layer3_tl_0x39, layer3_tl_0x3A, layer3_tl_0x3B, layer3_tl_0x3C, layer3_tl_0x3D, layer3_tl_0x3E, layer3_tl_0x3F, layer3_tl_0x40, layer3_tl_0x41, layer3_tl_0x42, layer3_tl_0x43, layer3_tl_0x44, layer3_tl_0x45, layer3_tl_0x46, layer3_tl_0x47, layer3_tl_0x48, layer3_tl_0x49, layer3_tl_0x4A, layer3_tl_0x4B, layer3_tl_0x4C, layer3_tl_0x4D, layer3_tl_0x4E, layer3_tl_0x4F, layer3_tl_0x50, layer3_tl_0x51, layer3_tl_0x52, layer3_tl_0x53, layer3_tl_0x54, layer3_tl_0x55, layer3_tl_0x56, layer3_tl_0x57, layer3_tl_0x58
};
// ----- Layer Index -----
// -- Layer Index List
//
// Index 0: Default map
// Index n: Additional layers
const Layer LayerIndex[] = {
Layer_IN( default_scanMap, "D: ergodox + lcdFuncMap", 0x02 ),
Layer_IN( layer1_scanMap, "1: MDErgo1 + lcdFuncMap", 0x02 ),
Layer_IN( layer2_scanMap, "2: MDErgo1 + lcdFuncMap", 0x04 ),
Layer_IN( layer3_scanMap, "3: ergodox + lcdFuncMap", 0x03 ),
};
// - Layer State
uint8_t LayerState[ LayerNum ];
@hlship can you try only plugging in the one half and try again?
I want to verify that you're seeing what I am, and that it works when not daisy chained.
OK, I'll have to turn it around and flash the right side, since that's where the semicolon is. I normally flash the left side.
Interesting things happen when you flash the left firmware onto the right side!
With right flashed to right, getting the same behavior; every function key works but F12.
Are there any low-level tools on Mac OS X I can use to help debug this or provide more information? I'm mostly using the Keyboard Viewer application.
Just to confirm did you have only the one side connected (i.e. not interconnected)?
Multitasking == multifailing.
Let me try with just the right half plugged in.
No change in behavior with only the right side connected to the host computer.
Any ideas?
Sorry about the delay, I'll see if I can reproduce this evening.
Haven't found the issue yet, but I've noticed that your kll git repo is a bit out of date.
You're at: b6cf0f13a88fef650f48270a1d1e20ccb1972d21 Currently at: 6135cbb8329eff480c4100a1b46557f690ea604b
Looking at your generatedKeymap.h F12 is definitely getting generated. So that seems to be fine. I notice you have a U"Gui" + U"F12" mapped. Does this work as expected?
Doing a basic test, F12 seems to work ok on Linux. I'm starting to suspect Apple being annoying. Have you tried using F11? Or perhaps something like this needs to be done? http://apple.stackexchange.com/questions/110525/how-do-i-get-f11-and-f12-to-behave-like-normal-function-keys
Just to simplify, you may want to try remapping U"F12" to something on ergodox-0 to see if the issue still arises.
Ok, I'll see about creating a new Docker image that's more upto date with KLL. Do you recommend working off of kll master, or a specific tag?
The stack exchange link doesn't seem to apply.
I'll look into the remapping you suggested ... as in, maybe map it to some other character, just to narrow the problem space.
Conceptually, I see the firmware recognizing the keystroke, and generating a USB code that is sent up to the wire to the Mac ... and either the firmware is sending the wrong USB code, or the Apple code receiving the USB code is incorrect in someway. I'm more of an enterprise Clojure developer ... this stuff is a bit of a low level mystery to me that is kind of fun to learn about, but outside my comfort zone.
I have a customized layout for Infinity Ergodox. I've attempted to map Layer 1 semicolon to F12. I've mapped all of the other function keys succesfully, including "/" to F13 and the key below that to F14. I can verify all of this using the keyboard viewer tool in Mac OS X.
I'm at a loss as to why semicolon should be any different.
My .kll files are here: https://github.com/hlship/ergodox-infinity-layout/tree/hlship-personalized/kiibohd