GithubHelp home page GithubHelp logo

Comments (18)

mcm avatar mcm commented on May 29, 2024

Also, generatedKeymap.h because either GitHub won't allow me to attach a file or I can't figure out how:

/* 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:    2015-02-27
// KLL Backend:        kiibohd
// KLL Git Rev:        867e7495a5cc050ef5c93fabd2a66eadf170e60d
// KLL Git Changes:    None
// Compiler arguments:
//    ../kll/kll.py
//      /Users/steve/git/github/controller/Macro/PartialMap/capabilities.kll
//      /Users/steve/git/github/controller/Output/pjrcUSB/capabilities.kll
//      /Users/steve/git/github/controller/Scan/MD1/defaultMap.kll
//      -d
//      /Users/steve/git/github/controller/kll/layouts/mcmLayer0.kll
//      /Users/steve/git/github/controller/kll/layouts/stdFuncMap.kll
//      -p
//      /Users/steve/git/github/controller/kll/layouts/mcmLayer1.kll
//    --backend
//      kiibohd
//    --templates
//      /Users/steve/git/github/controller/kll/templates/kiibohdKeymap.h
//      /Users/steve/git/github/controller/kll/templates/kiibohdDefs.h
//    --outputs
//      generatedKeymap.h
//      kll_defs.h
//
// - Base Layer -
//    PartialMapCapabilities
//      /Users/steve/git/github/controller/Macro/PartialMap/capabilities.kll
//    pjrcUSBCapabilities
//      /Users/steve/git/github/controller/Output/pjrcUSB/capabilities.kll
//    MD1
//      /Users/steve/git/github/controller/Scan/MD1/defaultMap.kll
// - Default Layer -
//    mcmLayer0
//      /Users/steve/git/github/controller/kll/layouts/mcmLayer0.kll
//    stdFuncMap
//      /Users/steve/git/github/controller/kll/layouts/stdFuncMap.kll
// - Partial Layers -
//    Layer 1
//     mcmLayer1
//       /Users/steve/git/github/controller/kll/layouts/mcmLayer1.kll



#ifndef __kiibohdKeymap_h
#define __kiibohdKeymap_h

// ----- Includes -----

// KLL Include
#include <kll.h>



// ----- Capabilities -----

// Indexed Capabilities Table
const Capability CapabilitiesList[] = {
    { Macro_layerLatch_capability, 2 },
    { Macro_layerLock_capability, 2 },
    { Macro_layerShift_capability, 2 },
    { Macro_layerState_capability, 3 },
    { Output_consCtrlSend_capability, 2 },
    { Output_kbdProtocolBoot_capability, 0 },
    { Output_kbdProtocolNKRO_capability, 0 },
    { Output_sysCtrlSend_capability, 1 },
    { Output_usbCodeSend_capability, 1 },
};


// -- Result Macros

// Result Macro Guides
Guide_RM( 0 ) = { 1, 8, KEY_4, 0 };
Guide_RM( 1 ) = { 1, 8, KEY_L, 0 };
Guide_RM( 2 ) = { 1, 8, KEY_TAB, 0 };
Guide_RM( 3 ) = { 1, 8, KEY_LALT, 0 };
Guide_RM( 4 ) = { 1, 8, KEY_R, 0 };
Guide_RM( 5 ) = { 1, 8, KEY_RSHIFT, 0 };
Guide_RM( 6 ) = { 1, 8, KEY_ESC, 0 };
Guide_RM( 7 ) = { 1, 8, KEY_LGUI, 0 };
Guide_RM( 8 ) = { 1, 8, KEY_G, 0 };
Guide_RM( 9 ) = { 1, 8, KEY_T, 0 };
Guide_RM( 10 ) = { 1, 2, 1, 0, 0 };
Guide_RM( 11 ) = { 1, 8, KEY_S, 0 };
Guide_RM( 12 ) = { 1, 8, KEY_1, 0 };
Guide_RM( 13 ) = { 1, 8, KEY_H, 0 };
Guide_RM( 14 ) = { 1, 8, KEY_Q, 0 };
Guide_RM( 15 ) = { 1, 8, KEY_COMMA, 0 };
Guide_RM( 16 ) = { 1, 8, KEY_J, 0 };
Guide_RM( 17 ) = { 1, 8, KEY_BACKSLASH, 0 };
Guide_RM( 18 ) = { 1, 8, KEY_B, 0 };
Guide_RM( 19 ) = { 1, 8, KEY_W, 0 };
Guide_RM( 20 ) = { 1, 8, KEY_PERIOD, 0 };
Guide_RM( 21 ) = { 1, 8, KEY_DELETE, 0 };
Guide_RM( 22 ) = { 1, 8, KEY_D, 0 };
Guide_RM( 23 ) = { 1, 8, KEY_SLASH, 0 };
Guide_RM( 24 ) = { 1, 8, KEY_LCTRL, 0 };
Guide_RM( 25 ) = { 1, 8, KEY_F, 0 };
Guide_RM( 26 ) = { 1, 8, KEY_0, 0 };
Guide_RM( 27 ) = { 1, 8, KEY_A, 0 };
Guide_RM( 28 ) = { 1, 8, KEY_7, 0 };
Guide_RM( 29 ) = { 1, 8, KEY_N, 0 };
Guide_RM( 30 ) = { 1, 8, KEY_MINUS, 0 };
Guide_RM( 31 ) = { 1, 8, KEY_C, 0 };
Guide_RM( 32 ) = { 1, 8, KEY_M, 0 };
Guide_RM( 33 ) = { 1, 8, KEY_LEFT_BRACE, 0 };
Guide_RM( 34 ) = { 1, 8, KEY_EQUAL, 0 };
Guide_RM( 35 ) = { 1, 8, KEY_V, 0 };
Guide_RM( 36 ) = { 1, 8, KEY_I, 0 };
Guide_RM( 37 ) = { 1, 8, KEY_RIGHT_BRACE, 0 };
Guide_RM( 38 ) = { 1, 2, 3, 0, 0 };
Guide_RM( 39 ) = { 1, 8, KEY_8, 0 };
Guide_RM( 40 ) = { 1, 8, KEY_LSHIFT, 0 };
Guide_RM( 41 ) = { 1, 8, KEY_BACKSPACE, 0 };
Guide_RM( 42 ) = { 1, 8, KEY_5, 0 };
Guide_RM( 43 ) = { 1, 2, 4, 0, 0 };
Guide_RM( 44 ) = { 1, 8, KEY_SEMICOLON, 0 };
Guide_RM( 45 ) = { 1, 8, KEY_9, 0 };
Guide_RM( 46 ) = { 1, 8, KEY_Z, 0 };
Guide_RM( 47 ) = { 1, 8, KEY_6, 0 };
Guide_RM( 48 ) = { 1, 8, KEY_O, 0 };
Guide_RM( 49 ) = { 1, 8, KEY_SPACE, 0 };
Guide_RM( 50 ) = { 1, 8, KEY_X, 0 };
Guide_RM( 51 ) = { 1, 8, KEY_Y, 0 };
Guide_RM( 52 ) = { 1, 8, KEY_P, 0 };
Guide_RM( 53 ) = { 1, 8, KEY_2, 0 };
Guide_RM( 54 ) = { 1, 8, KEY_RGUI, 0 };
Guide_RM( 55 ) = { 1, 8, KEY_U, 0 };
Guide_RM( 56 ) = { 1, 8, KEY_QUOTE, 0 };
Guide_RM( 57 ) = { 1, 8, KEY_3, 0 };
Guide_RM( 58 ) = { 1, 8, KEY_RALT, 0 };
Guide_RM( 59 ) = { 1, 8, KEY_K, 0 };
Guide_RM( 60 ) = { 1, 8, KEY_ENTER, 0 };
Guide_RM( 61 ) = { 1, 8, KEY_E, 0 };
Guide_RM( 62 ) = { 1, 8, KEY_F4, 0 };
Guide_RM( 63 ) = { 1, 8, KEY_BACKTICK, 0 };
Guide_RM( 64 ) = { 1, 8, KEY_DOWN, 0 };
Guide_RM( 65 ) = { 1, 8, KEY_F1, 0 };
Guide_RM( 66 ) = { 1, 8, KEY_PAGE_UP, 0 };
Guide_RM( 67 ) = { 1, 8, KEY_UP, 0 };
Guide_RM( 68 ) = { 1, 8, KEY_PAGE_DOWN, 0 };
Guide_RM( 69 ) = { 1, 8, KEY_RIGHT, 0 };
Guide_RM( 70 ) = { 1, 8, KEY_F10, 0 };
Guide_RM( 71 ) = { 1, 8, KEY_LEFT, 0 };
Guide_RM( 72 ) = { 1, 8, KEY_F7, 0 };
Guide_RM( 73 ) = { 1, 8, KEY_HOME, 0 };
Guide_RM( 74 ) = { 1, 8, KEY_END, 0 };
Guide_RM( 75 ) = { 1, 8, KEY_F8, 0 };
Guide_RM( 76 ) = { 1, 8, KEY_F5, 0 };
Guide_RM( 77 ) = { 1, 8, KEY_F9, 0 };
Guide_RM( 78 ) = { 1, 8, KEY_F6, 0 };
Guide_RM( 79 ) = { 1, 8, KEY_F2, 0 };
Guide_RM( 80 ) = { 1, 8, KEY_F3, 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 ),
};


// -- 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, 0x04, 0 };
Guide_TM( 1 ) = { 1, 0x00, 0x01, 0x26, 0 };
Guide_TM( 2 ) = { 1, 0x00, 0x01, 0x0F, 0 };
Guide_TM( 3 ) = { 1, 0x00, 0x01, 0x38, 0 };
Guide_TM( 4 ) = { 1, 0x00, 0x01, 0x13, 0 };
Guide_TM( 5 ) = { 1, 0x00, 0x01, 0x35, 0 };
Guide_TM( 6 ) = { 1, 0x00, 0x01, 0x00, 0 };
Guide_TM( 7 ) = { 1, 0x00, 0x01, 0x39, 0 };
Guide_TM( 8 ) = { 1, 0x00, 0x01, 0x22, 0 };
Guide_TM( 9 ) = { 1, 0x00, 0x01, 0x14, 0 };
Guide_TM( 10 ) = { 1, 0x00, 0x01, 0x36, 0 };
Guide_TM( 11 ) = { 1, 0x00, 0x01, 0x1F, 0 };
Guide_TM( 12 ) = { 1, 0x00, 0x01, 0x01, 0 };
Guide_TM( 13 ) = { 1, 0x00, 0x01, 0x23, 0 };
Guide_TM( 14 ) = { 1, 0x00, 0x01, 0x10, 0 };
Guide_TM( 15 ) = { 1, 0x00, 0x01, 0x32, 0 };
Guide_TM( 16 ) = { 1, 0x00, 0x01, 0x24, 0 };
Guide_TM( 17 ) = { 1, 0x00, 0x01, 0x0D, 0 };
Guide_TM( 18 ) = { 1, 0x00, 0x01, 0x2F, 0 };
Guide_TM( 19 ) = { 1, 0x00, 0x01, 0x11, 0 };
Guide_TM( 20 ) = { 1, 0x00, 0x01, 0x33, 0 };
Guide_TM( 21 ) = { 1, 0x00, 0x01, 0x0E, 0 };
Guide_TM( 22 ) = { 1, 0x00, 0x01, 0x20, 0 };
Guide_TM( 23 ) = { 1, 0x00, 0x01, 0x34, 0 };
Guide_TM( 24 ) = { 1, 0x00, 0x01, 0x1D, 0 };
Guide_TM( 25 ) = { 1, 0x00, 0x01, 0x21, 0 };
Guide_TM( 26 ) = { 1, 0x00, 0x01, 0x0A, 0 };
Guide_TM( 27 ) = { 1, 0x00, 0x01, 0x1E, 0 };
Guide_TM( 28 ) = { 1, 0x00, 0x01, 0x07, 0 };
Guide_TM( 29 ) = { 1, 0x00, 0x01, 0x30, 0 };
Guide_TM( 30 ) = { 1, 0x00, 0x01, 0x0B, 0 };
Guide_TM( 31 ) = { 1, 0x00, 0x01, 0x2D, 0 };
Guide_TM( 32 ) = { 1, 0x00, 0x01, 0x31, 0 };
Guide_TM( 33 ) = { 1, 0x00, 0x01, 0x1A, 0 };
Guide_TM( 34 ) = { 1, 0x00, 0x01, 0x0C, 0 };
Guide_TM( 35 ) = { 1, 0x00, 0x01, 0x2E, 0 };
Guide_TM( 36 ) = { 1, 0x00, 0x01, 0x17, 0 };
Guide_TM( 37 ) = { 1, 0x00, 0x01, 0x1B, 0 };
Guide_TM( 38 ) = { 1, 0x00, 0x01, 0x3D, 0 };
Guide_TM( 39 ) = { 1, 0x00, 0x01, 0x08, 0 };
Guide_TM( 40 ) = { 1, 0x00, 0x01, 0x2A, 0 };
Guide_TM( 41 ) = { 1, 0x00, 0x01, 0x1C, 0 };
Guide_TM( 42 ) = { 1, 0x00, 0x01, 0x05, 0 };
Guide_TM( 43 ) = { 1, 0x00, 0x01, 0x3E, 0 };
Guide_TM( 44 ) = { 1, 0x00, 0x01, 0x27, 0 };
Guide_TM( 45 ) = { 1, 0x00, 0x01, 0x09, 0 };
Guide_TM( 46 ) = { 1, 0x00, 0x01, 0x2B, 0 };
Guide_TM( 47 ) = { 1, 0x00, 0x01, 0x06, 0 };
Guide_TM( 48 ) = { 1, 0x00, 0x01, 0x18, 0 };
Guide_TM( 49 ) = { 1, 0x00, 0x01, 0x3A, 0 };
Guide_TM( 50 ) = { 1, 0x00, 0x01, 0x2C, 0 };
Guide_TM( 51 ) = { 1, 0x00, 0x01, 0x15, 0 };
Guide_TM( 52 ) = { 1, 0x00, 0x01, 0x37, 0 };
Guide_TM( 53 ) = { 1, 0x00, 0x01, 0x19, 0 };
Guide_TM( 54 ) = { 1, 0x00, 0x01, 0x02, 0 };
Guide_TM( 55 ) = { 1, 0x00, 0x01, 0x3B, 0 };
Guide_TM( 56 ) = { 1, 0x00, 0x01, 0x16, 0 };
Guide_TM( 57 ) = { 1, 0x00, 0x01, 0x28, 0 };
Guide_TM( 58 ) = { 1, 0x00, 0x01, 0x03, 0 };
Guide_TM( 59 ) = { 1, 0x00, 0x01, 0x3C, 0 };
Guide_TM( 60 ) = { 1, 0x00, 0x01, 0x25, 0 };
Guide_TM( 61 ) = { 1, 0x00, 0x01, 0x29, 0 };
Guide_TM( 62 ) = { 1, 0x00, 0x01, 0x12, 0 };
Guide_TM( 63 ) = { 1, 0x00, 0x01, 0x04, 0 };
Guide_TM( 64 ) = { 1, 0x00, 0x01, 0x00, 0 };
Guide_TM( 65 ) = { 1, 0x00, 0x01, 0x1F, 0 };
Guide_TM( 66 ) = { 1, 0x00, 0x01, 0x01, 0 };
Guide_TM( 67 ) = { 1, 0x00, 0x01, 0x0D, 0 };
Guide_TM( 68 ) = { 1, 0x00, 0x01, 0x11, 0 };
Guide_TM( 69 ) = { 1, 0x00, 0x01, 0x0E, 0 };
Guide_TM( 70 ) = { 1, 0x00, 0x01, 0x20, 0 };
Guide_TM( 71 ) = { 1, 0x00, 0x01, 0x34, 0 };
Guide_TM( 72 ) = { 1, 0x00, 0x01, 0x0A, 0 };
Guide_TM( 73 ) = { 1, 0x00, 0x01, 0x1E, 0 };
Guide_TM( 74 ) = { 1, 0x00, 0x01, 0x07, 0 };
Guide_TM( 75 ) = { 1, 0x00, 0x01, 0x0B, 0 };
Guide_TM( 76 ) = { 1, 0x00, 0x01, 0x1A, 0 };
Guide_TM( 77 ) = { 1, 0x00, 0x01, 0x0C, 0 };
Guide_TM( 78 ) = { 1, 0x00, 0x01, 0x08, 0 };
Guide_TM( 79 ) = { 1, 0x00, 0x01, 0x1C, 0 };
Guide_TM( 80 ) = { 1, 0x00, 0x01, 0x05, 0 };
Guide_TM( 81 ) = { 1, 0x00, 0x01, 0x27, 0 };
Guide_TM( 82 ) = { 1, 0x00, 0x01, 0x09, 0 };
Guide_TM( 83 ) = { 1, 0x00, 0x01, 0x06, 0 };
Guide_TM( 84 ) = { 1, 0x00, 0x01, 0x02, 0 };
Guide_TM( 85 ) = { 1, 0x00, 0x01, 0x28, 0 };
Guide_TM( 86 ) = { 1, 0x00, 0x01, 0x03, 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, 6 ),
    Define_TM( 7, 7 ),
    Define_TM( 8, 8 ),
    Define_TM( 9, 9 ),
    Define_TM( 10, 10 ),
    Define_TM( 11, 11 ),
    Define_TM( 12, 12 ),
    Define_TM( 13, 13 ),
    Define_TM( 14, 14 ),
    Define_TM( 15, 15 ),
    Define_TM( 16, 16 ),
    Define_TM( 17, 17 ),
    Define_TM( 18, 18 ),
    Define_TM( 19, 19 ),
    Define_TM( 20, 20 ),
    Define_TM( 21, 21 ),
    Define_TM( 22, 22 ),
    Define_TM( 23, 23 ),
    Define_TM( 24, 24 ),
    Define_TM( 25, 25 ),
    Define_TM( 26, 26 ),
    Define_TM( 27, 27 ),
    Define_TM( 28, 28 ),
    Define_TM( 29, 29 ),
    Define_TM( 30, 30 ),
    Define_TM( 31, 31 ),
    Define_TM( 32, 32 ),
    Define_TM( 33, 33 ),
    Define_TM( 34, 34 ),
    Define_TM( 35, 35 ),
    Define_TM( 36, 36 ),
    Define_TM( 37, 37 ),
    Define_TM( 38, 38 ),
    Define_TM( 39, 39 ),
    Define_TM( 40, 40 ),
    Define_TM( 41, 41 ),
    Define_TM( 42, 42 ),
    Define_TM( 43, 43 ),
    Define_TM( 44, 44 ),
    Define_TM( 45, 45 ),
    Define_TM( 46, 46 ),
    Define_TM( 47, 47 ),
    Define_TM( 48, 48 ),
    Define_TM( 49, 49 ),
    Define_TM( 50, 50 ),
    Define_TM( 51, 51 ),
    Define_TM( 52, 10 ),
    Define_TM( 53, 52 ),
    Define_TM( 54, 53 ),
    Define_TM( 55, 54 ),
    Define_TM( 56, 55 ),
    Define_TM( 57, 56 ),
    Define_TM( 58, 57 ),
    Define_TM( 59, 58 ),
    Define_TM( 60, 59 ),
    Define_TM( 61, 60 ),
    Define_TM( 62, 61 ),
    Define_TM( 63, 62 ),
    Define_TM( 64, 63 ),
    Define_TM( 65, 64 ),
    Define_TM( 66, 65 ),
    Define_TM( 67, 66 ),
    Define_TM( 68, 67 ),
    Define_TM( 69, 68 ),
    Define_TM( 70, 69 ),
    Define_TM( 71, 64 ),
    Define_TM( 72, 70 ),
    Define_TM( 73, 71 ),
    Define_TM( 74, 72 ),
    Define_TM( 75, 73 ),
    Define_TM( 76, 67 ),
    Define_TM( 77, 74 ),
    Define_TM( 78, 75 ),
    Define_TM( 79, 21 ),
    Define_TM( 80, 76 ),
    Define_TM( 81, 71 ),
    Define_TM( 82, 77 ),
    Define_TM( 83, 78 ),
    Define_TM( 84, 79 ),
    Define_TM( 85, 69 ),
    Define_TM( 86, 80 ),
};


// -- 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 0x3E

// -- Trigger Lists
//
// Index 0: # of triggers in list
// Index n: pointer to trigger macro - use tm() macro

// - Default Layer -
Define_TL( default, 0x00 ) = { 1, 6 };
Define_TL( default, 0x01 ) = { 1, 12 };
Define_TL( default, 0x02 ) = { 1, 54 };
Define_TL( default, 0x03 ) = { 1, 58 };
Define_TL( default, 0x04 ) = { 1, 0 };
Define_TL( default, 0x05 ) = { 1, 42 };
Define_TL( default, 0x06 ) = { 1, 47 };
Define_TL( default, 0x07 ) = { 1, 28 };
Define_TL( default, 0x08 ) = { 1, 39 };
Define_TL( default, 0x09 ) = { 1, 45 };
Define_TL( default, 0x0A ) = { 1, 26 };
Define_TL( default, 0x0B ) = { 1, 30 };
Define_TL( default, 0x0C ) = { 1, 34 };
Define_TL( default, 0x0D ) = { 1, 17 };
Define_TL( default, 0x0E ) = { 1, 21 };
Define_TL( default, 0x0F ) = { 1, 2 };
Define_TL( default, 0x10 ) = { 1, 14 };
Define_TL( default, 0x11 ) = { 1, 19 };
Define_TL( default, 0x12 ) = { 1, 62 };
Define_TL( default, 0x13 ) = { 1, 4 };
Define_TL( default, 0x14 ) = { 1, 9 };
Define_TL( default, 0x15 ) = { 1, 51 };
Define_TL( default, 0x16 ) = { 1, 56 };
Define_TL( default, 0x17 ) = { 1, 36 };
Define_TL( default, 0x18 ) = { 1, 48 };
Define_TL( default, 0x19 ) = { 1, 53 };
Define_TL( default, 0x1A ) = { 1, 33 };
Define_TL( default, 0x1B ) = { 1, 37 };
Define_TL( default, 0x1C ) = { 1, 41 };
Define_TL( default, 0x1D ) = { 1, 24 };
Define_TL( default, 0x1E ) = { 1, 27 };
Define_TL( default, 0x1F ) = { 1, 11 };
Define_TL( default, 0x20 ) = { 1, 22 };
Define_TL( default, 0x21 ) = { 1, 25 };
Define_TL( default, 0x22 ) = { 1, 8 };
Define_TL( default, 0x23 ) = { 1, 13 };
Define_TL( default, 0x24 ) = { 1, 16 };
Define_TL( default, 0x25 ) = { 1, 60 };
Define_TL( default, 0x26 ) = { 1, 1 };
Define_TL( default, 0x27 ) = { 1, 44 };
Define_TL( default, 0x28 ) = { 1, 57 };
Define_TL( default, 0x29 ) = { 1, 61 };
Define_TL( default, 0x2A ) = { 1, 40 };
Define_TL( default, 0x2B ) = { 1, 46 };
Define_TL( default, 0x2C ) = { 1, 50 };
Define_TL( default, 0x2D ) = { 1, 31 };
Define_TL( default, 0x2E ) = { 1, 35 };
Define_TL( default, 0x2F ) = { 1, 18 };
Define_TL( default, 0x30 ) = { 1, 29 };
Define_TL( default, 0x31 ) = { 1, 32 };
Define_TL( default, 0x32 ) = { 1, 15 };
Define_TL( default, 0x33 ) = { 1, 20 };
Define_TL( default, 0x34 ) = { 1, 23 };
Define_TL( default, 0x35 ) = { 1, 5 };
Define_TL( default, 0x36 ) = { 1, 10 };
Define_TL( default, 0x37 ) = { 1, 52 };
Define_TL( default, 0x38 ) = { 1, 3 };
Define_TL( default, 0x39 ) = { 1, 7 };
Define_TL( default, 0x3A ) = { 1, 49 };
Define_TL( default, 0x3B ) = { 1, 55 };
Define_TL( default, 0x3C ) = { 1, 59 };
Define_TL( default, 0x3D ) = { 1, 38 };
Define_TL( default, 0x3E ) = { 1, 43 };


// - Partial Layers -
// Partial Layer 1
Define_TL( layer1, 0x00 ) = { 1, 64 };
Define_TL( layer1, 0x01 ) = { 1, 66 };
Define_TL( layer1, 0x02 ) = { 1, 84 };
Define_TL( layer1, 0x03 ) = { 1, 86 };
Define_TL( layer1, 0x04 ) = { 1, 63 };
Define_TL( layer1, 0x05 ) = { 1, 80 };
Define_TL( layer1, 0x06 ) = { 1, 83 };
Define_TL( layer1, 0x07 ) = { 1, 74 };
Define_TL( layer1, 0x08 ) = { 1, 78 };
Define_TL( layer1, 0x09 ) = { 1, 82 };
Define_TL( layer1, 0x0A ) = { 1, 72 };
Define_TL( layer1, 0x0B ) = { 1, 75 };
Define_TL( layer1, 0x0C ) = { 1, 77 };
Define_TL( layer1, 0x0D ) = { 1, 67 };
Define_TL( layer1, 0x0E ) = { 1, 69 };
Define_TL( layer1, 0x0F ) = { 0 };
Define_TL( layer1, 0x10 ) = { 0 };
Define_TL( layer1, 0x11 ) = { 1, 68 };
Define_TL( layer1, 0x12 ) = { 0 };
Define_TL( layer1, 0x13 ) = { 0 };
Define_TL( layer1, 0x14 ) = { 0 };
Define_TL( layer1, 0x15 ) = { 0 };
Define_TL( layer1, 0x16 ) = { 0 };
Define_TL( layer1, 0x17 ) = { 0 };
Define_TL( layer1, 0x18 ) = { 0 };
Define_TL( layer1, 0x19 ) = { 0 };
Define_TL( layer1, 0x1A ) = { 1, 76 };
Define_TL( layer1, 0x1B ) = { 0 };
Define_TL( layer1, 0x1C ) = { 1, 79 };
Define_TL( layer1, 0x1D ) = { 0 };
Define_TL( layer1, 0x1E ) = { 1, 73 };
Define_TL( layer1, 0x1F ) = { 1, 65 };
Define_TL( layer1, 0x20 ) = { 1, 70 };
Define_TL( layer1, 0x21 ) = { 0 };
Define_TL( layer1, 0x22 ) = { 0 };
Define_TL( layer1, 0x23 ) = { 0 };
Define_TL( layer1, 0x24 ) = { 0 };
Define_TL( layer1, 0x25 ) = { 0 };
Define_TL( layer1, 0x26 ) = { 0 };
Define_TL( layer1, 0x27 ) = { 1, 81 };
Define_TL( layer1, 0x28 ) = { 1, 85 };
Define_TL( layer1, 0x29 ) = { 0 };
Define_TL( layer1, 0x2A ) = { 0 };
Define_TL( layer1, 0x2B ) = { 0 };
Define_TL( layer1, 0x2C ) = { 0 };
Define_TL( layer1, 0x2D ) = { 0 };
Define_TL( layer1, 0x2E ) = { 0 };
Define_TL( layer1, 0x2F ) = { 0 };
Define_TL( layer1, 0x30 ) = { 0 };
Define_TL( layer1, 0x31 ) = { 0 };
Define_TL( layer1, 0x32 ) = { 0 };
Define_TL( layer1, 0x33 ) = { 0 };
Define_TL( layer1, 0x34 ) = { 1, 71 };


// -- 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_0x00, default_tl_0x01, 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
};


// - Partial Layer ScanCode Lookup Maps -
// Partial Layer 1
const nat_ptr_t *layer1_scanMap[] = {
layer1_tl_0x00, layer1_tl_0x01, 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
};



// ----- Layer Index -----

// -- Layer Index List
//
// Index 0: Default map
// Index n: Additional layers
const Layer LayerIndex[] = {
    Layer_IN( default_scanMap, "D: mcmLayer0 + stdFuncMap", 0x00 ),
    Layer_IN( layer1_scanMap, "1: mcmLayer1", 0x00 ),
};


// - Layer State
uint8_t LayerState[ LayerNum ];



#endif // __generatedKeymap_h

from controller.

mcm avatar mcm commented on May 29, 2024

Actually, I realized that I had mapped the key i THOUGHT was control to function 1, and also conveniently made myself function 1 + escape is backtick. So, the control option doesn't work either.

from controller.

mcm avatar mcm commented on May 29, 2024

As best as I can tell with my limited understanding of how the KLL compiler works, it looks like in the eval_usbCode function (kll.py, line 427ish), the triggers has the properly expanded KEY_LCTRL and KEY_BACKTICK, but when it calls macros_map.lookupUSBCodes, the combination of those two isn't found anywhere. I'm not sure how to go about investigating this further, but I'm happy to help if you can point me in the right direction.

from controller.

haata avatar haata commented on May 29, 2024

Yeah, kll.py and kll_lib/containers.py are responsible for the kll file parsing and correlation.

backends/kiibohd.py is responsible for generating the .h file output. I'd probably start here to see if the correct data is available in the data structures.
Unforunately, these data structures are multi-dimensional lists so it gets a bit confusing to think about (I'm going to have to add more dimensions for the next draft of kll too...).
The easiest way to think about it though: Sequence of combinations. The inner most list deals with key combinations, where level up you are looking at sequences. It starts to get tricky when you get into dealing with the range definitions of kll (so hopefully you don't have to dig that deep).

from controller.

mcm avatar mcm commented on May 29, 2024

So this works:

S0x1D + S0x00 : '1';

Which in my case is Control + Escape. If I use S0x2A instead of S0x1D (LShift), then I get an "!" and an escape character (that is, if I open vim, go into insert mode and press shift + esc, I get a "!" and it exits insert mode, as if I had typed "!" and then pressed escape.

Hopefully I'm getting closer?

from controller.

haata avatar haata commented on May 29, 2024

So, that sorta makes sense with the current implementation.

First, it sounds like scan codes are definitely working and the issues has to do with the USB -> Scan translation (the firmware uses Scan codes internally as that's the most efficient lookup).

Second, ! is expected, because the keyboard is also sending the shift key at the same time. Right now there isn't a way to block shift key from sending shift. Is this a feature you want?
It would involve changes to the KLL and compiler so it would a bit lower on my priority list right now (bug fixing first :P).

from controller.

mcm avatar mcm commented on May 29, 2024

I think it would be neat but since my end goal is shift + esc = ~, which itself requires shift, I don't think this is in particular a problem. I can get by with using Scan codes for now.

I'll keep poking at the KLL compiler because I'm having fun and see if I can make the USB -> Scan translation work for combinations and sequences (I tested U"Shift" , U"Esc" as well, also doesn't work).

from controller.

haata avatar haata commented on May 29, 2024

It's a fun little compiler.
But it was a bit of a rush job so it doesn't have the error and debug reporting that I'd like it to have.

I'm also working on a kll -> json backend (as well as a json -> kll option) to better support web configurators. The massdrop configurator was only intended as a temporary thing until we could find someone to write us a full featured one (and support future features as well). All of it will be opensource.

from controller.

mcm avatar mcm commented on May 29, 2024

I submitted a PR to the KLL compiler that seems to fix the issue with not supporting combinations/sequences with USB codes as triggers. Works in my testing.

I will keep this issue around in case you decide to add support for blocking the Shift key in combinations.

from controller.

haata avatar haata commented on May 29, 2024

Thanks a lot! The patch looks good, but I want to run it through a couple of tests first. I should be able to properly review it this weekend.

Shift key blocking will take changes in a bunch of places as the state of the shift key must be tracked by the macro using the shift key.

from controller.

mcm avatar mcm commented on May 29, 2024

Understood. Not really a high priority feature for me at this point, just figured in case you get bored down the road I'll leave the issue laying around.

from controller.

haata avatar haata commented on May 29, 2024

While not the full feature, I did implement an example of how to achieve this using capabiltiies.
It's somewhat hack'ish but seems to work ok (at least until I can get KLL straightened out for doing it properly).

398018e

from controller.

joetoth avatar joetoth commented on May 29, 2024

I'm having a similar problem. I would like to map Space+Q = 1.

Infinity keyboard using infinity.bash with my custommap
DefaultMap="md1Overlay mycustommap stdFuncMap"
that contains:

U["Space"] : blockHold( 0x10 );
U"Q" : blockKey( 0x10 );
U["Space"] + U"Q" : '1';

Space+Q does work, but Q by itself now emits 'm' and space does not work.

Thoughts on what I could try?

from controller.

burnedmonk avatar burnedmonk commented on May 29, 2024

hi,
edit the "scancode_map.kll" is the best way to make dvorak programmer layout(on infinity keyboard)?

S0x01 : U"7"+U"LShift";
S0x01 + S0x2A : U"5"+U"LShift";
S0x01 + S0x35 : U"5"+U"LShift";
work!

i try same thing in base layer
S0x01 : '&';
S0x2A + S0x01 : '%';
S0x35 + S0x01 : '%';
if I press the S0x01 the keyboard print '&'
if I press S0x01 and (S0x2A or S0x35) the keyboard print "%&"

http://www.kaufmann.no/roland/dvorak/images/dvp1.png

thanks

from controller.

haata avatar haata commented on May 29, 2024

The easiest way is to use a kll "overlay".

I have a Colemak example here -> https://github.com/kiibohd/kll/blob/master/layouts/colemak.kll

from controller.

burnedmonk avatar burnedmonk commented on May 29, 2024

I put this :
'1':'&'
'!':'%'
In infinity60%.bash as default map...

If I press 1+Lshift to print '%' the keyboard print "%&"

If I press 1+Rshift to print '%' the keyboard print "&"

from controller.

haata avatar haata commented on May 29, 2024

Ah, yes. So, you have two options for that.

  1. Wait till KLL 0.5 (still rewriting the compiler for support of this)
  2. Write a custom capability in C, that handles key blocking

from controller.

burnedmonk avatar burnedmonk commented on May 29, 2024

Thanks for the reply!
I'll wait the .5 ;)

from controller.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.