Skip to content

Instantly share code, notes, and snippets.

@braidn
Created August 14, 2015 19:52
Show Gist options
  • Save braidn/2fec2c3db181768313e4 to your computer and use it in GitHub Desktop.
Save braidn/2fec2c3db181768313e4 to your computer and use it in GitHub Desktop.
Keymap
#include "keymap_common.h"
#include "action_layer.h"
#include "action.h"
#include "action_util.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(
Q, W, E, R, T, MINS, EQL, Y, U, I, O, P,
A, S, D, F, G, BSLS, QUOT, H, J, K, L, SCLN,
Z, X, C, V, B, TAB, ENT, N, M, COMM, DOT, SLSH,
FN1, RSFT, LCTL, LALT, LGUI, FN3, LGUI, LALT, LCTL, RSFT, FN1),
[2] = KEYMAP( /* RAISE */
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,
GRV, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, ENT,
FN22, BTN1, MS_U, BTN2, TRNS, TRNS, MINS, EQL, QUOT, LBRC, RBRC, TRNS,
TRNS, MS_L, MS_D, MS_R, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
[3] = KEYMAP( /* TMP OFF */
ESC, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC,
FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, ENT,
LCTL, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS,
TRNS, MS_D, MS_U, MS_R, FN2, TRNS, TRNS, BTN1, BTN2, TRNS, TRNS),
};
enum function_id {
SPACE_FN,
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch (id) {
case SPACE_FN:
if (record->event.pressed) {
// Change the keyboard maps.
layer_on(2);
} else {
layer_off(2);
if (record->tap.count != 0) {
// Space was tapped rather than used like a modifier.
// So send a space up and down event.
add_key(KC_SPC);
send_keyboard_report();
del_key(KC_SPC);
send_keyboard_report();
}
}
break;
}
}
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay
[2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay
[3] = ACTION_FUNCTION_TAP(SPACE_FN),
[4] = ACTION_DEFAULT_LAYER_SET(1),
[10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
[11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
[12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
[13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
[14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
[15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
[16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
[17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
[18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
[19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
[20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
[21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
[22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
[23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
[24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
[28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
[29] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT),
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment