Skip to content

Instantly share code, notes, and snippets.

@ordnungswidrig
Created March 16, 2017 13:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ordnungswidrig/d1859b5f7be8f27344566697ea7ee813 to your computer and use it in GitHub Desktop.
Save ordnungswidrig/d1859b5f7be8f27344566697ea7ee813 to your computer and use it in GitHub Desktop.
#include "bootloader.h"
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP( // Layer 0
ESC, 1, 2, 3, 4, 5, EQL, // 7
TAB, Q, W, E, R, T, FN1, // 7
LCTRL, A, S, D, F, G, // 6
LSFT, Z, X, C, V, B, FN2, // 7
FN3, NONUS_BSLASH, LCTRL, LALT, LGUI, // 5 L3
FN19, NO, // 2 meta-alt-ctrl, NO
NO, // 1 L2
BSPC, FN2, ESC, // 3
RBRC, 6, 7, 8, 9, 0, MINS, // 7
FN1, Y, U, I, O, P, NUHS, // 7
H, J, K, L, SCLN, RCTL, // 6
FN2, N, M, COMM, DOT, SLSH, RSFT, // 7
RGUI, RALT, RCTRL, QUOT, LBRC, // 5
NO, FN19, // 2 NO, meta-alt-ctrl
DEL, // 1
ENT, FN1, SPC), // 3
KEYMAP( // Layer 1 -- FN-Keys, parens, brackets, curlies, media
TRNS, F1, F2, F3, F4, F5, F6,
TRNS, NO, NO, MPRV, MPLY, MNXT, TRNS,
TRNS, NO, NO, VOLD, VOLU, MUTE,
TRNS, NO, NO, MRWD, MFFD, NO, TRNS,
FN7, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS,
TRNS,
TRNS, TRNS, TRNS,
F7, F8, F9, F10, F11, F12, NO,
TRNS, FN17, FN10, FN11, FN18, NO, NO, // <[]> ui
FN12, FN8, FN9, FN13, NO, TRNS, // {()} hjkl
TRNS, FN14, FN15, FN16, NO, NO, TRNS, // |\/ m,
TRNS, TRNS, TRNS, NO, NO,
TRNS, TRNS,
TRNS,
TRNS, TRNS, TRNS),
KEYMAP( // Layer 2 cursor
NO, NO, NO, NO, NO, NO, NO,
NO, NO, NO, NO, NO, NO, TRNS,
NO, NO, NO, NO, NO, NO,
NO, NO, NO, NO, NO, NO, TRNS,
NO, NO, NO, NO, TRNS,
TRNS, TRNS,
TRNS,
TRNS, TRNS, TRNS,
NO, NO, NO, NO, NO, NO, NO,
TRNS, HOME, PGDN, PGUP, END, NO, NO,
LEFT, DOWN, UP, RGHT, NO, TRNS,
TRNS, NO, NO, NO, NO, NO, TRNS,
NO, NO, NO, NO, TRNS,
TRNS, TRNS,
TRNS,
TRNS, TRNS, TRNS),
KEYMAP( // Layer 3 mouse - FN13+FN24
TRNS, NO, NO, NO, NO, NO, NO,
TRNS, F13, F14, F15, F16, NO, TRNS,
TRNS, F17, F18, F19, F20, NO,
TRNS, F21, F22, F23, F24, NO, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS,
TRNS,
TRNS, TRNS, TRNS,
NO, NO, NO, NO, NO, NO, TRNS,
TRNS, NO, BTN1, BTN2, NO, NO, TRNS,
MS_L, MS_D, MS_U, MS_R, NO, TRNS,
TRNS, WH_L, WH_D, WH_U, WH_R, NO, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS,
TRNS,
TRNS, TRNS, TRNS)
};
enum function_id {
TEENSY_KEY,
};
const uint16_t PROGMEM fn_actions[] = {
ACTION_DEFAULT_LAYER_SET(0), // FN0
ACTION_LAYER_MOMENTARY(1), // FN1
ACTION_LAYER_MOMENTARY(2), // FN2
ACTION_LAYER_MOMENTARY(3), // FN3
ACTION_LAYER_MOMENTARY(4), // FN4
ACTION_LAYER_MOMENTARY(5), // FN5
ACTION_LAYER_MOMENTARY(6), // FN6
ACTION_FUNCTION(TEENSY_KEY), // FN7
ACTION_MODS_KEY(MOD_RSFT, KC_8), // FN8 (
ACTION_MODS_KEY(MOD_RSFT, KC_9), // FN9 )
ACTION_MODS_KEY(MOD_RALT, KC_5), // FN10 [
ACTION_MODS_KEY(MOD_RALT, KC_6), // FN11 ]
ACTION_MODS_KEY(MOD_RALT, KC_8), // FN12 {
ACTION_MODS_KEY(MOD_RALT, KC_9), // FN13 }
ACTION_MODS_KEY(MOD_RALT, KC_7), // FN14 |
ACTION_MODS_KEY(MOD_RALT|MOD_RSFT, KC_7), // FN15 backslash
ACTION_MODS_KEY(MOD_RSFT, KC_7), // FN16 /
ACTION_KEY(KC_GRV), // FN17 <
ACTION_MODS_KEY(MOD_RSFT, KC_GRV), // FN18 >
ACTION_MODS(MOD_LALT|MOD_LGUI|MOD_LCTL) // FN19 ALT+META+CTRL
};
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
{
print("action_function called\n");
print("id = "); phex(id); print("\n");
print("opt = "); phex(opt); print("\n");
if (id == TEENSY_KEY) {
clear_keyboard();
print("\n\nJump to bootloader... ");
_delay_ms(250);
bootloader_jump(); // should not return
print("not supported.\n");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment