), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
}; | }; |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* Common layout: ANSI+ISO | /* Common layout: ANSI+ISO |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_BSLS), | [0] = ACTION_LAYER_TAP_KEY(1, KC_BSLS), | ||||
}; | }; |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
}; | }; |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
}; | }; | ||||
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; |
// 32*8(256) byte array which converts PS/2 code into USB code | // 32*8(256) byte array which converts PS/2 code into USB code | ||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* 107-key */ | /* 107-key */ |
ALT_TAB, | ALT_TAB, | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_TAP_KEY(2, KC_SCLN), | [1] = ACTION_LAYER_TAP_KEY(2, KC_SCLN), | ||||
[2] = ACTION_LAYER_TAP_KEY(3, KC_SLASH), | [2] = ACTION_LAYER_TAP_KEY(3, KC_SLASH), |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* Common layout for M0110 and M0110A | /* Common layout for M0110 and M0110A |
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
#ifdef KEYMAP_SECTION_ENABLE | #ifdef KEYMAP_SECTION_ENABLE | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
#else | #else | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
#endif | #endif | ||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_MOMENTARY(2), | [1] = ACTION_LAYER_MOMENTARY(2), |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), | [1] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), | ||||
[2] = ACTION_LAYER_TAP_KEY(3, KC_SPACE), | [2] = ACTION_LAYER_TAP_KEY(3, KC_SPACE), |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | ||||
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | ||||
}; | }; |
#include "keycode.h" | #include "keycode.h" | ||||
// 32*8(256) byte array which converts PS/2 code into USB code | // 32*8(256) byte array which converts PS/2 code into USB code | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
ACTION_LAYER_MOMENTARY(1), // FN0 - left command key | ACTION_LAYER_MOMENTARY(1), // FN0 - left command key | ||||
ACTION_LAYER_MOMENTARY(1), // FN1 - right command key | ACTION_LAYER_MOMENTARY(1), // FN1 - right command key | ||||
ACTION_KEY(KC_BSLS), // FN2 - number pad slash & backslash | ACTION_KEY(KC_BSLS), // FN2 - number pad slash & backslash |
/* | /* | ||||
* Fn actions | * Fn actions | ||||
*/ | */ | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
ACTION_LAYER_TAP_TOGGLE(0), // FN0 | ACTION_LAYER_TAP_TOGGLE(0), // FN0 | ||||
ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1 | ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1 | ||||
ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2 | ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2 |
// 32*8(256) byte array which converts PS/2 code into USB code | // 32*8(256) byte array which converts PS/2 code into USB code | ||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* All keys */ | /* All keys */ |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
}; | }; |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
}; | }; |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | ||||
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | ||||
}; | }; |
#endif | #endif | ||||
}; | }; | ||||
const uint16_t fn_actions[] PROGMEM = {}; | |||||
const action_t fn_actions[] PROGMEM = {}; |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* ,---------------. ,---------------. ,---------------. | /* ,---------------. ,---------------. ,---------------. |
), | ), | ||||
}; | }; | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_MOMENTARY(2), | [1] = ACTION_LAYER_MOMENTARY(2), | ||||
[2] = ACTION_LAYER_MOMENTARY(3), | [2] = ACTION_LAYER_MOMENTARY(3), |
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
#ifdef KEYMAP_SECTION_ENABLE | #ifdef KEYMAP_SECTION_ENABLE | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
#else | #else | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
#endif | #endif | ||||
[0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) | [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) | ||||
[1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) | [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
}; | }; |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
}; | }; |
), | ), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | ||||
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | ||||
}; | }; |
} | } | ||||
const uint16_t PROGMEM actionmaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
const action_t PROGMEM actionmaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
/* Default Layer | /* Default Layer | ||||
* ,-----------------------------------------------------------. | * ,-----------------------------------------------------------. | ||||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | | * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | |
#define AC_LM1 ACTION_LAYER_MOMENTARY(1) // HHKB layer | #define AC_LM1 ACTION_LAYER_MOMENTARY(1) // HHKB layer | ||||
const uint16_t PROGMEM actionmaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
const action_t PROGMEM actionmaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
/* Default Layer | /* Default Layer | ||||
* ,-----------------------------------------------------------. | * ,-----------------------------------------------------------. | ||||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|BSpc | | * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|BSpc | |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* Alps64 keymap definition macro */ | /* Alps64 keymap definition macro */ |
}; | }; | ||||
#ifdef KEYMAP_SECTION_ENABLE | #ifdef KEYMAP_SECTION_ENABLE | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
#else | #else | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
#endif | #endif | ||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_MOMENTARY(2), | [1] = ACTION_LAYER_MOMENTARY(2), |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), // HHKB layer | [0] = ACTION_LAYER_MOMENTARY(1), // HHKB layer | ||||
[1] = ACTION_LAYER_TAP_KEY(1, KC_ENTER), // HHKB layer | [1] = ACTION_LAYER_TAP_KEY(1, KC_ENTER), // HHKB layer | ||||
[2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* | [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | ||||
}; | }; | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* GH60 keymap definition macro | /* GH60 keymap definition macro |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(4), | [0] = ACTION_LAYER_MOMENTARY(4), | ||||
[1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), | [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), | ||||
[2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), | [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; |
LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ | LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = {}; | |||||
const action_t PROGMEM fn_actions[] = {}; |
TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ | TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
/* Poker Layout */ | /* Poker Layout */ | ||||
[0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay | [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay | ||||
[1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay | [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay |
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ | TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), | TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
/* Poker Layout */ | /* Poker Layout */ | ||||
[0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) | [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) | ||||
[1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle | [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
/* Poker Layout */ | /* Poker Layout */ | ||||
[0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press | [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press | ||||
[1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press | [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | ||||
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | ||||
}; | }; |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
#define KEYMAP( \ | #define KEYMAP( \ |
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
#ifdef KEYMAP_SECTION_ENABLE | #ifdef KEYMAP_SECTION_ENABLE | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
#else | #else | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
#endif | #endif | ||||
[0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) | [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) | ||||
[1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) | [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) |
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
#ifdef KEYMAP_SECTION_ENABLE | #ifdef KEYMAP_SECTION_ENABLE | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_MOMENTARY(2), | [1] = ACTION_LAYER_MOMENTARY(2), | ||||
[2] = ACTION_LAYER_MOMENTARY(3), | [2] = ACTION_LAYER_MOMENTARY(3), | ||||
[31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSLASH), | [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSLASH), | ||||
}; | }; | ||||
#else | #else | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; | ||||
#endif | #endif |
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
#ifdef KEYMAP_SECTION_ENABLE | #ifdef KEYMAP_SECTION_ENABLE | ||||
const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { | |||||
#else | #else | ||||
const uint16_t fn_actions[] PROGMEM = { | |||||
const action_t fn_actions[] PROGMEM = { | |||||
#endif | #endif | ||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), | [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), | ||||
[2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde | [2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; | ||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
#ifdef INFINITY_PROTOTYPE | #ifdef INFINITY_PROTOTYPE |
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
#ifdef INFINITY_PROTOTYPE | #ifdef INFINITY_PROTOTYPE |
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
const uint16_t fn_actions[] = { | |||||
const action_t fn_actions[] = { | |||||
[0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) | [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) | ||||
[1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) | [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) | ||||
[2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* | [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), | ||||
}; | }; | ||||
const uint16_t fn_actions[] = { | |||||
const action_t fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
}; | }; | ||||
/* | /* | ||||
* Fn action definition | * Fn action definition | ||||
*/ | */ | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
}; | }; | ||||
if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) { | if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) { | ||||
action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]); | action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]); | ||||
} else { | } else { | ||||
action.code = ACTION_NO; | |||||
action = (action_t)ACTION_NO; | |||||
} | } | ||||
return action; | return action; | ||||
} | } |
#include "keycode.h" | #include "keycode.h" | ||||
#include "action.h" | #include "action.h" | ||||
#include "action_macro.h" | #include "action_macro.h" | ||||
#include "action_code.h" | |||||
#include "report.h" | #include "report.h" | ||||
#include "host.h" | #include "host.h" | ||||
#include "print.h" | #include "print.h" | ||||
{{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD | {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD | ||||
}; | }; | ||||
static const uint16_t fn_actions[] = { | |||||
static const action_t fn_actions[] = { | |||||
}; | }; | ||||
/* translates key to keycode */ | /* translates key to keycode */ | ||||
/* translates Fn keycode to action */ | /* translates Fn keycode to action */ | ||||
action_t keymap_fn_to_action(uint8_t keycode) | action_t keymap_fn_to_action(uint8_t keycode) | ||||
{ | { | ||||
return (action_t){ .code = fn_actions[FN_INDEX(keycode)] }; | |||||
return (action_t)fn_actions[FN_INDEX(keycode)]; | |||||
} | } |
{{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD | {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD | ||||
}; | }; | ||||
static const uint16_t fn_actions[] = { | |||||
static const action_t fn_actions[] = { | |||||
}; | }; | ||||
/* translates key to keycode */ | /* translates key to keycode */ |
{{KC_A}}, | {{KC_A}}, | ||||
}; // to test: KC_CAPS, KT_BTLD, KC_A | }; // to test: KC_CAPS, KT_BTLD, KC_A | ||||
static const uint16_t fn_actions[] = { | |||||
static const action_t fn_actions[] = { | |||||
}; | }; | ||||
/* translates key to keycode */ | /* translates key to keycode */ |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1) | [0] = ACTION_LAYER_MOMENTARY(1) | ||||
}; | }; |
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[1] = ACTION_LAYER_MOMENTARY(1), // activate layer 1 when FN1 pressed | [1] = ACTION_LAYER_MOMENTARY(1), // activate layer 1 when FN1 pressed | ||||
}; | }; |
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = {}; | |||||
static const action_t PROGMEM fn_actions[] = {}; |
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[1] = ACTION_LAYER_MOMENTARY(1), // activate layer 1 when FN1 pressed | [1] = ACTION_LAYER_MOMENTARY(1), // activate layer 1 when FN1 pressed | ||||
}; | }; |
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = {}; | |||||
static const action_t PROGMEM fn_actions[] = {}; |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1) | [0] = ACTION_LAYER_MOMENTARY(1) | ||||
}; | }; |
TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_BACKLIGHT_STEP() | [1] = ACTION_BACKLIGHT_STEP() | ||||
}; | }; |
TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_BACKLIGHT_STEP() | [1] = ACTION_BACKLIGHT_STEP() | ||||
}; | }; |
FN7, NO, MSTP) | FN7, NO, MSTP) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_FN1), | [1] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_FN1), | ||||
[2] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_FN2), | [2] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_FN2), |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_BACKLIGHT_TOGGLE(), | [1] = ACTION_BACKLIGHT_TOGGLE(), | ||||
[2] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_ALPHA), | [2] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_ALPHA), |
LEFT,DOWN,RGHT, TRNS, TRNS,TRNS,TRNS) | LEFT,DOWN,RGHT, TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(2), | [0] = ACTION_LAYER_MOMENTARY(2), | ||||
[1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), | [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), | ||||
[2] = ACTION_LAYER_TOGGLE(1), | [2] = ACTION_LAYER_TOGGLE(1), |
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS), | ||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = { | |||||
const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(2), | [0] = ACTION_LAYER_MOMENTARY(2), | ||||
[1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), | [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), | ||||
[2] = ACTION_LAYER_TOGGLE(1), | [2] = ACTION_LAYER_TOGGLE(1), |
#include "keymap.h" | #include "keymap.h" | ||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
#define KEYMAP( \ | #define KEYMAP( \ | ||||
K08, K09, K18, K19, K28, K29, K38, K39, K48, K49, K58, K59, K68, K69, K88, K89, \ | K08, K09, K18, K19, K28, K29, K38, K39, K48, K49, K58, K59, K68, K69, K88, K89, \ |
TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, \ | TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, \ | ||||
TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1), | [0] = ACTION_LAYER_MOMENTARY(1), | ||||
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_9), | [1] = ACTION_MODS_KEY(MOD_LSFT, KC_9), | ||||
[2] = ACTION_MODS_KEY(MOD_LSFT, KC_0) | [2] = ACTION_MODS_KEY(MOD_LSFT, KC_0) |
TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1) | [0] = ACTION_LAYER_MOMENTARY(1) | ||||
}; | }; |
TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1) | [0] = ACTION_LAYER_MOMENTARY(1) | ||||
}; | }; |
TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1) | [0] = ACTION_LAYER_MOMENTARY(1) | ||||
}; | }; |
TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | TRNS,TRNS,TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, CAPS, TRNS, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS) | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | |||||
static const action_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_LAYER_MOMENTARY(1) | [0] = ACTION_LAYER_MOMENTARY(1) | ||||
}; | }; |
// 32*8(256) byte array which converts PS/2 code into USB code | // 32*8(256) byte array which converts PS/2 code into USB code | ||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | ||||
extern const uint16_t fn_actions[]; | |||||
extern const action_t fn_actions[]; | |||||
/* All keys */ | /* All keys */ |
}; | }; | ||||
static const uint16_t fn_actions[] PROGMEM = { | |||||
static const action_t fn_actions[] PROGMEM = { | |||||
[0] = ACTION_DEFAULT_LAYER_SET(0), | [0] = ACTION_DEFAULT_LAYER_SET(0), | ||||
[1] = ACTION_LAYER_MOMENTARY(1), | [1] = ACTION_LAYER_MOMENTARY(1), | ||||
[2] = ACTION_LAYER_MOMENTARY(2), //ACTION_LAYER_ON(2, ON_RELEASE), | [2] = ACTION_LAYER_MOMENTARY(2), //ACTION_LAYER_ON(2, ON_RELEASE), |