diff options
17 files changed, 497 insertions, 791 deletions
| diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c index 151288edc2..c261e892d4 100644 --- a/keyboards/atreus/keymaps/erlandsona/keymap.c +++ b/keyboards/atreus/keymaps/erlandsona/keymap.c @@ -1,6 +1,3 @@ -// this is the style you want to emulate. -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -  #include QMK_KEYBOARD_H  // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -23,21 +20,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   ,                   KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC,      KC_TAB , KC_5   , KC_6   , KC_7   , KC_8   ,                   KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT, KC_RBRC,      _______, KC_9   , KC_0   , KC_DOT , KC_COMM,                   KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______, -    _______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______ +    _______, _______, _______, _______, KC_DEL , TG(MOUS), _______, _______, _______, _______, _______, _______    ),    [MOUS] = LAYOUT( /* Mouse and Media Keys */      KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9  ,                   KC_F8  , KC_F7  , KC_F6  , KC_F5  , KC_F4,      KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU,                   KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3,      KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE,                   KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2, -    _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET  , KC_F12 , KC_F1 +    _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, TO(BASE), RESET  , KC_F12 , KC_F1    ),  }; - - -// I prefer this layer switching strategy to the TG and MO functions. -// so that I can get out of mouse mode just by tapping/holding my base layer FN key. -const uint16_t PROGMEM fn_actions[] = { -  [BASE] = ACTION_LAYER_OFF(2, 1),  // switch back to layer 0 -  [MOUS] = ACTION_LAYER_ON(2, 1)  // switch to layer 2 -}; diff --git a/keyboards/atreus/keymaps/khitsule/keymap.c b/keyboards/atreus/keymaps/khitsule/keymap.c index e6a5366916..1190efa3cb 100644 --- a/keyboards/atreus/keymaps/khitsule/keymap.c +++ b/keyboards/atreus/keymaps/khitsule/keymap.c @@ -16,12 +16,6 @@ enum layers {  #define KM_DRIGHT LGUI(LCTL(KC_RIGHT))  #define TSKMGR LCTL(LSFT(KC_ESC)) -#define tap_mod_macro(record, mod, macro) ( ((record)->event.pressed) ? \ -     ( ((record)->tap.count <= 0 || (record)->tap.interrupted) ? MACRO(D(mod), END) : MACRO_NONE ) : \ -     ( ((record)->tap.count > 0 && !((record)->tap.interrupted)) ? (macro) : MACRO(U(mod), END) ) ) - - -  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    [ALPH] = LAYOUT(      KC_Q,    KC_W,     KC_E,     KC_R,           KC_T,                                               KC_Y,              KC_U,     KC_I,     KC_O,     KC_P, @@ -54,21 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      RESET,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS, KC_TRNS    )  }; - -const uint16_t PROGMEM fn_actions[] = { -  [1] = ACTION_MACRO_TAP(1), -  [2] = ACTION_MACRO_TAP(2) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { -  switch(id) { -    case 1: -      return tap_mod_macro(record, LGUI, MACRO( D(LSFT), T(9), U(LSFT), END)); -      break; -    case 2: -      return tap_mod_macro(record, LALT, MACRO( D(LSFT), T(0), U(LSFT), END)); -      break; - -  } -  return MACRO_NONE; -}; diff --git a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c index e2b56132bf..cc4d0bca63 100644 --- a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c +++ b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c @@ -1,12 +1,6 @@  #include QMK_KEYBOARD_H  #include "mousekey.h" -#undef C -#undef S -#define C(kc) LCTL(KC_##kc) -#define S(kc) LSFT(KC_##kc) -#define RA(kc) RALT(KC_##kc) -#define KC_SLCT KC_SELECT  #define MEDAPP LT(MEDIA, KC_APP)  uint8_t current_layer_global = 255; @@ -21,19 +15,16 @@ enum layers {      MISC,  }; -enum function_id { -    LSHFT_PAREN, +enum custom_keycodes { +    LSHFT_PAREN = SAFE_RANGE,      RSHFT_PAREN,      LCTRL_BRACKET,      RCTRL_BRACKET,      LALT_CURLY,      RALT_CURLY, -    CTRL_CLICK -}; - -enum macro_id { -    GRV, -    CFLEX +    CTRL_CLICK, +    M_GRV, +    M_CFLEX  };  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -42,25 +33,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {            KC_GRV,   KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,KC_MINS, KC_EQL,KC_BSPC,    KC_INS,KC_HOME,KC_PGUP,  KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \            KC_TAB,   KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,KC_LBRC,KC_RBRC,KC_BSLS,    KC_DEL, KC_END,KC_PGDN,    KC_P7,  KC_P8,  KC_P9,KC_PPLS, \          TT(MOUSE1), KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,KC_SCLN,KC_QUOT,         KC_ENT,                               KC_P4,  KC_P5,  KC_P6,         \ -            F(8),KC_NUBS,   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,KC_COMM, KC_DOT,KC_SLSH,           F(9),             KC_UP,            KC_P1,  KC_P2,  KC_P3,KC_PENT, \ -            F(1),KC_LGUI,   F(3),              LT(MISC,  KC_SPC),                           F(4),TT(PROG1), MEDAPP, F(2),   KC_LEFT,KC_DOWN,KC_RGHT,    KC_P0,KC_PDOT), +            LSHFT_PAREN,KC_NUBS,   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,KC_COMM, KC_DOT,KC_SLSH,           RSHFT_PAREN,             KC_UP,            KC_P1,  KC_P2,  KC_P3,KC_PENT, \ +            LCTRL_BRACKET,KC_LGUI,   LALT_CURLY,              LT(MISC,  KC_SPC),                           RALT_CURLY,TT(PROG1), MEDAPP, RCTRL_BRACKET,   KC_LEFT,KC_DOWN,KC_RGHT,    KC_P0,KC_PDOT),    /* Layer 1: Programming Layer 1, emulating US l ayout */    [PROG1] = LAYOUT(\            KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,           _______,_______,_______,                                   \ -          M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,   S(0),_______,   _______,_______,_______,  _______,_______,_______,_______, \ -         _______,_______,_______,_______,_______,_______,   KC_Z,_______,_______,_______,_______,  RA(8),  RA(9),RA(MINS),  _______,_______,_______,  _______,_______,_______,_______, \ -         _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,S(COMM),S(BSLS),        _______,                             _______,_______,_______,         \ -       MO(PROG2),_______,   KC_Y,_______,_______,_______,_______,_______,_______,_______,_______,   S(7),      MO(PROG2),           _______,          _______,_______,_______,_______, \ +          M_GRV,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,S(KC_0),_______,   _______,_______,_______,  _______,_______,_______,_______, \ +         _______,_______,_______,_______,_______,_______,   KC_Z,_______,_______,_______,_______,ALGR(KC_8),ALGR(KC_9),ALGR(KC_MINS),  _______,_______,_______,  _______,_______,_______,_______, \ +         _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,S(KC_COMM),S(KC_BSLS),        _______,                             _______,_______,_______,         \ +       MO(PROG2),_______,   KC_Y,_______,_______,_______,_______,_______,_______,_______,_______,   S(KC_7),      MO(PROG2),           _______,          _______,_______,_______,_______, \           _______,_______,_______,                        _______,                        _______,_______,_______,_______,   _______,_______,_______,  _______,_______),      /* Layer 2: programming layer 2         all keys that are not FN keys are sent as LSFT+key on this layer      */    [PROG2] = LAYOUT(\           _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,           _______,_______,_______,                                   \ -        RA(RBRC),_______,  RA(Q),KC_BSLS,_______,_______,M(CFLEX),  S(6),S(RBRC),   S(8),   S(9),S(SLSH),KC_RBRC,_______,   _______,_______,_______,  _______,_______,_______,_______, \ -         _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  RA(7),  RA(0),RA(NUBS),  _______,_______,_______,  _______,_______,_______,_______, \ -         _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, S(DOT),   S(2),        _______,                             _______,_______,_______,         \ -         _______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS),        _______,           _______,          _______,_______,_______,_______, \ +        ALGR(KC_RBRC),_______,  ALGR(KC_Q),KC_BSLS,_______,_______,M_CFLEX,  S(KC_6),S(KC_RBRC),   S(KC_8),S(KC_9),S(KC_SLSH),KC_RBRC,_______,   _______,_______,_______,  _______,_______,_______,_______, \ +         _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,  ALGR(KC_7),ALGR(KC_0),ALGR(KC_NUBS),  _______,_______,_______,  _______,_______,_______,_______, \ +         _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, S(KC_DOT),   S(KC_2),        _______,                             _______,_______,_______,         \ +         _______,S(KC_NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(KC_NUBS),S(KC_MINS),        _______,           _______,          _______,_______,_______,_______, \           _______,_______,_______,                        _______,                        _______,_______,_______,_______,   _______,_______,_______,  _______,_______),      /* Layer 3: media layer */    [MEDIA] = LAYOUT(\ @@ -72,11 +63,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {           XXXXXXX,XXXXXXX,XXXXXXX,                        XXXXXXX,                        XXXXXXX,XXXXXXX,_______,XXXXXXX,   KC_MRWD,KC_MSTP,KC_MFFD,  XXXXXXX,XXXXXXX),      /* Layer 4: Mouse layer */    [MOUSE1] = LAYOUT(\ -            F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,           _______,_______,_______,                                   \ +            TO(DEFAULT),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,           _______,_______,_______,                                   \           _______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,   _______,_______,_______,  _______,_______,_______,_______, \ -         _______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______,   C(Z),_______,_______,_______,_______,_______,_______,_______,   _______,_______,_______,  _______,_______,_______,_______, \ -         _______,KC_BTN5,KC_MS_L,KC_MS_D,KC_MS_R,   F(7),KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,_______,_______,        _______,                             _______,_______,_______,         \ -      MO(MOUSE2),_______,   C(Y),   C(X),   C(C),   C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______,        KC_RSFT,           _______,          _______,_______,_______,_______, \ +         _______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______,   C(KC_Z),_______,_______,_______,_______,_______,_______,_______,   _______,_______,_______,  _______,_______,_______,_______, \ +         _______,KC_BTN5,KC_MS_L,KC_MS_D,KC_MS_R,   CTRL_CLICK,KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,_______,_______,        _______,                             _______,_______,_______,         \ +      MO(MOUSE2),_______,C(KC_Y),C(KC_X),C(KC_C),C(KC_V),_______,KC_BTN2,KC_BTN3,C(KC_PGUP),C(KC_PGDN),_______,        KC_RSFT,           _______,          _______,_______,_______,_______, \           KC_LCTL,_______,KC_LALT,                        KC_BTN1,                        KC_RALT,KC_RGUI, KC_APP,KC_RCTL,   _______,_______,_______,  _______,_______),      /* Layer 5: Mouse layer 2*/    [MOUSE2] = LAYOUT(\ @@ -90,44 +81,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    [MISC] = LAYOUT(\           _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,           _______,_______,_______,                                   \           _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,   _______,_______,_______,  _______,_______,_______,_______, \ -         _______,KC_SLCT,   C(W),  KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______,   _______,_______,_______,  _______,_______,_______,_______, \ +         _______,KC_SLCT,   C(KC_W),  KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______,   _______,_______,_______,  _______,_______,_______,_______, \           _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_HOME,KC_PGDN,KC_PGUP,_______,_______,_______,        _______,                             _______,_______,_______,         \ -         KC_LSFT,_______,   C(Y),   C(X),   C(C),   C(V), KC_SPC, KC_END,_______,C(PGUP),C(PGDN),_______,        _______,           _______,          _______,_______,_______,_______, \ +         KC_LSFT,_______,C(KC_Y),C(KC_X),C(KC_C),C(KC_V), KC_SPC, KC_END,_______,C(KC_PGUP),C(KC_PGDN),_______,        _______,           _______,          _______,_______,_______,_______, \           _______,_______,_______,               LT(MISC, KC_SPC),                        _______,_______,_______,_______,   _______,_______,_______,  _______,_______),  }; -const uint16_t PROGMEM fn_actions[] = { -    [1] = ACTION_FUNCTION_TAP(LCTRL_BRACKET),   // tap to print [ -    [2] = ACTION_FUNCTION_TAP(RCTRL_BRACKET),   // tap to print ] -    [3] = ACTION_FUNCTION_TAP(LALT_CURLY),      // tap to print { -    [4] = ACTION_FUNCTION_TAP(RALT_CURLY),      // tap to print } -    [6] = ACTION_LAYER_SET_CLEAR(DEFAULT), -    [7] = ACTION_FUNCTION_TAP(CTRL_CLICK), -    [8] = ACTION_FUNCTION_TAP(LSHFT_PAREN),     // tap to print ( -    [9] = ACTION_FUNCTION_TAP(RSHFT_PAREN),     // tap to print ) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -  // MACRODOWN only works in this function -      switch(id) { -        case GRV: // macro to print accent grave -            return (record->event.pressed ? -                    MACRO( D(LSFT), T(EQL), U(RALT), T(SPC), END) : -                    MACRO_NONE ); -        case CFLEX: // print accent circonflex -            return (record->event.pressed ? -                    MACRO( T(GRV), T(SPC), END ) : -                    MACRO_NONE ); -      } -    return MACRO_NONE; -}; - - -void matrix_init_user(void) { - -} -  void matrix_scan_user(void) {      uint8_t layer;      layer = biton32(layer_state); @@ -147,10 +106,6 @@ void matrix_scan_user(void) {      }  } -void led_set_user(uint8_t usb_led) { - -} -  void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) {    if (record->event.pressed) {        if (record->tap.count > 0 && !record->tap.interrupted) { @@ -175,28 +130,45 @@ void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint    }  } -/* if LCTRL is tabbed, print (, or ) if RCTRL is tabbed, same for LALT/RALT and [/] */ -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { -    // The code is copied from keymap_hasu.c in the tmk keyboards hhkb folder -    switch (id) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    uint8_t layer; +    layer = biton32(layer_state); +    if (layer == PROG2) { +         if (keycode >= KC_A && keycode <= KC_EXSEL && \ +             !(  // do not send LSFT + these keycodes, they are needed for emulating the US layout +                 keycode == KC_NONUS_BSLASH || +                 keycode == KC_RBRC || +                 keycode == KC_BSLS || +                 keycode == KC_GRV +            )) { +              // LSFT is the modifier for this layer, so we set LSFT for every key to get the expected behavior +              if (record->event.pressed) { +                  register_mods(MOD_LSFT); +              } else { +                  unregister_mods(MOD_LSFT); +              } +         } +    } + +    switch (keycode) {          case LCTRL_BRACKET:              tap_helper(record, KC_LCTL, KC_RALT, KC_8); -            break; +            return false;          case RCTRL_BRACKET:              tap_helper(record, KC_RCTL, KC_RALT, KC_9); -            break; +            return false;          case LALT_CURLY:              tap_helper(record, KC_LALT, KC_RALT, KC_7); -            break; +            return false;          case RALT_CURLY:              tap_helper(record, KC_RALT, KC_RALT, KC_0); -            break; +            return false;          case LSHFT_PAREN:              tap_helper(record, KC_LSFT, KC_LSFT, KC_8); -            break; +            return false;          case RSHFT_PAREN:              tap_helper(record, KC_RSFT, KC_LSFT, KC_9); -            break; +            return false;          case CTRL_CLICK:              if (record->event.pressed) {                  mousekey_clear(); @@ -212,28 +184,16 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {                  unregister_mods(MOD_BIT(KC_LCTL));                  send_keyboard_report();              } -            break; +            return false; +        case M_GRV: +            tap_code16(S(KC_EQL)); +            tap_code(KC_SPC); +            return false; +        case M_CFLEX: +            tap_code(KC_GRV); +            tap_code(KC_SPC); +            return false;      } -} -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -    uint8_t layer; -    layer = biton32(layer_state); -    if (layer == PROG2) { -         if (keycode >= KC_A && keycode <= KC_EXSEL && \ -             !(  // do not send LSFT + these keycodes, they are needed for emulating the US layout -                 keycode == KC_NONUS_BSLASH || -                 keycode == KC_RBRC || -                 keycode == KC_BSLS || -                 keycode == KC_GRV -            )) { -              // LSFT is the modifier for this layer, so we set LSFT for every key to get the expected behavior -              if (record->event.pressed) { -                  register_mods(MOD_LSFT); -              } else { -                  unregister_mods(MOD_LSFT); -              } -         } -    }      return true;  } diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c index 54420d31b6..56d4c47071 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c @@ -40,8 +40,9 @@  // CTRL when held, ESC when tapped  #define CTL_ESC CTL_T(KC_ESC) -// Reset RGB mode to layer signalling -#define RGB_RST F(0) +enum custom_keycodes { +    RGB_RST = SAFE_RANGE +};  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    /* Keymap _BL: Base Layer (Default Layer) */ @@ -103,21 +104,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  #endif  }; -/* This is a list of user defined functions. F(N) corresponds to item N -   of this list. - */ -const uint16_t PROGMEM fn_actions[] = { -  [0] = ACTION_FUNCTION(0),  // Calls action_function() -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { -  switch (id) { -    case 0: -      if (record->event.pressed) { -        rgblight_mode(1); -        rgblight_sethsv(206, 255, 255); -      } -  } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case RGB_RST: +            if (record->event.pressed) { +                rgblight_mode(1); +                rgblight_sethsv(206, 255, 255); +            } +            return false; +    } +    return true;  }  enum layer_id { diff --git a/keyboards/clueboard/66/keymaps/tetris/keymap.c b/keyboards/clueboard/66/keymaps/tetris/keymap.c index ef3abd6672..26dd97feec 100644 --- a/keyboards/clueboard/66/keymaps/tetris/keymap.c +++ b/keyboards/clueboard/66/keymaps/tetris/keymap.c @@ -1,9 +1,6 @@  #include QMK_KEYBOARD_H  #include "tetris_text.h" -// Helpful defines -#define GRAVE_MODS  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) -  // Each layer gets a name for readability, which is then used in the keymap matrix below.  // The underscores don't mean anything - you can have a layer called STUFF or any other name.  // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -12,11 +9,15 @@  #define _FL 1  #define _CL 2 +enum custom_keycodes { +    TETRIS_START = SAFE_RANGE +}; +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    /* Keymap _BL: Base Layer (Default Layer)     */  [_BL] = LAYOUT( -  F(0),    KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,    KC_0,     KC_MINS,  KC_EQL,   KC_GRV,  KC_BSPC,          KC_PGUP, +  KC_GESC, KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,    KC_0,     KC_MINS,  KC_EQL,   KC_GRV,  KC_BSPC,          KC_PGUP,    KC_TAB,  KC_Q,    KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,    KC_P,     KC_LBRC,  KC_RBRC,  KC_BSLS,                   KC_PGDN,    KC_CAPS, KC_A,    KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,    KC_SCLN,  KC_QUOT,  KC_NUHS,  KC_ENT,    KC_LSFT, KC_NUBS, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,   KC_SLSH,  KC_RO,    KC_RSFT,          KC_UP, @@ -41,71 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    _______, _______, _______,_______,        RGB_MOD,   RGB_MOD,                            _______,  _______,  _______,  _______, RGB_HUD,    RGB_SAD,    RGB_HUI),  }; -/* This is a list of user defined functions. F(N) corresponds to item N -   of this list. - */ -const uint16_t PROGMEM fn_actions[] = { -  [0] = ACTION_FUNCTION(0),  // Calls action_function() -  [1] = ACTION_FUNCTION(1) -}; -  static uint8_t tetris_key_presses = 0;  static uint16_t tetris_timer = 0;  static uint8_t tetris_running = 0;  static int tetris_keypress = 0; -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { -  static uint8_t mods_pressed; -  static bool mod_flag; - -  switch (id) { -    case 0: -      // clueboard specific hook to make escape quite tetris -      if (tetris_running) { -        tetris_running = 0; -        return; -      } -       -      /* Handle the combined Grave/Esc key -       */ -      mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed - -      if (record->event.pressed) { -        /* The key is being pressed. -         */ -        if (mods_pressed) { -          mod_flag = true; -          add_key(KC_GRV); -          send_keyboard_report(); -        } else { -          add_key(KC_ESC); -          send_keyboard_report(); -        } -      } else { -        /* The key is being released. -         */ -        if (mod_flag) { -          mod_flag = false; -          del_key(KC_GRV); -          send_keyboard_report(); -        } else { -          del_key(KC_ESC); -          send_keyboard_report(); -        } -      } -      break; -  case 1: -      if (record->event.pressed) { -        tetris_running = 1; -        tetris_timer = 0; -        tetris_keypress = 0; -        // set randomness using total number of key presses -        tetris_start(tetris_key_presses); -      } -      break; -  } -} -  /*   * Set up tetris   */ @@ -130,6 +71,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {      }    } +  switch (keycode) { +    case KC_GESC: +      // clueboard specific hook to make escape quite tetris +      if (tetris_running) { +        tetris_running = 0; +        return false; +      } +      break; +    case TETRIS_START: +      if (record->event.pressed) { +        tetris_running = 1; +        tetris_timer = 0; +        tetris_keypress = 0; +        // set randomness using total number of key presses +        tetris_start(tetris_key_presses); +      } +      return false; +  } +    return true;  } @@ -148,57 +108,45 @@ void matrix_scan_user(void) {    }        } -void send_keycode(uint16_t keycode) { -  register_code(keycode); -  unregister_code(keycode); -} - -void send_keycode_shift(uint16_t keycode) { -  register_code(KC_LSFT); -  register_code(keycode); -  unregister_code(keycode); -  unregister_code(KC_LSFT); -} -  void tetris_send_up(void) { -  send_keycode(KC_UP); +  tap_code(KC_UP);  }  void tetris_send_left(void) { -  send_keycode(KC_LEFT); +  tap_code(KC_LEFT);  }  void tetris_send_down(void) { -  send_keycode(KC_DOWN); +  tap_code(KC_DOWN);  }  void tetris_send_right(void) { -  send_keycode(KC_RGHT); +  tap_code(KC_RGHT);  }  void tetris_send_backspace(void) { -  send_keycode(KC_BSPC); +  tap_code(KC_BSPC);  }  void tetris_send_delete(void) { -  send_keycode(KC_DEL); +  tap_code(KC_DEL);  }  void tetris_send_string(const char *s) {    for (int i = 0; s[i] != 0; i++) {      if (s[i] >= 'a' && s[i] <= 'z') { -      send_keycode(KC_A + (s[i] - 'a')); +      tap_code(KC_A + (s[i] - 'a'));      } else if (s[i] >= 'A' && s[i] <= 'Z') { -      send_keycode_shift(KC_A + (s[i] - 'A')); +      tap_code16(S(KC_A + (s[i] - 'A')));      } else if (s[i] >= '1' && s[i] <= '9') { -      send_keycode(KC_1 + (s[i] - '1')); +      tap_code(KC_1 + (s[i] - '1'));      } else {        switch (s[i]) { -      case ' ': send_keycode(KC_SPACE); break; -      case '.': send_keycode(KC_DOT); break; -      case '0': send_keycode(KC_0); break; +      case ' ': tap_code(KC_SPACE); break; +      case '.': tap_code(KC_DOT); break; +      case '0': tap_code(KC_0); break;        }      }    }  }  void tetris_send_newline(void) { -  send_keycode(KC_ENT); +  tap_code(KC_ENT);  }  int tetris_get_keypress(void) { diff --git a/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c b/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c index 5b58d7686a..a79b89e9c2 100644 --- a/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c +++ b/keyboards/gh60/revc/keymaps/dbroqua_7U/keymap.c @@ -3,6 +3,10 @@  #define _DEFAULT 0  #define _FN 1 +enum custom_keycodes { +    LED_TOGGLE = SAFE_RANGE +}; +  int esc_led = 0;  // Fillers to make layering more clear @@ -44,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   *         `-----------------------------------------------------------------'   */    [_FN] = LAYOUT_60_ansi_split_bs_rshift( /* Layer 1 */ -      F(0),   KC_F1,   KC_F2,   KC_F3,   KC_F4,  KC_F5,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11, KC_F12, KC_INS,  KC_DEL, \ +      LED_TOGGLE,KC_F1,   KC_F2,   KC_F3,   KC_F4,  KC_F5,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11, KC_F12, KC_INS,  KC_DEL, \        KC_CAPS, ______,  ______,  ______,  ______, ______, ______,  ______,  KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,  ______, ______,  \        ______,  KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______,   \        ______,  KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END,  KC_PGDN, KC_DOWN, ______, ______,  \ @@ -52,14 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {        )  }; -enum function_id { -    LED_TOGGLE -}; - -const uint16_t PROGMEM fn_actions[] = { -  [0]  = ACTION_FUNCTION(LED_TOGGLE) -}; -  void esc_led_toggle(void) {      if (esc_led == 0){          esc_led = 1; @@ -70,12 +66,13 @@ void esc_led_toggle(void) {      }  } -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { -  switch (id) { -    case LED_TOGGLE: -      if (record->event.pressed) { -        esc_led_toggle(); -      } -      break; -  } -}
\ No newline at end of file +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case LED_TOGGLE: +            if (record->event.pressed) { +                esc_led_toggle(); +            } +            return false; +    } +    return true; +} diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c index c34d56ec85..3c2e0d4da8 100644 --- a/keyboards/infinity60/keymaps/jpetermans/keymap.c +++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c @@ -11,20 +11,25 @@  //IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles  #define max_pages 6 -enum ic60_keycodes { -  NUMPAD, -  FNAV, -  MEDIA, -  BACKLIGHT, -  BRIGHT, -  DIM, -  ALL, -  GAME, +enum led_modes { +  MODE_ALL, +  MODE_GAME,    MODE_SINGLE,    MODE_PAGE,    MODE_FLASH  }; +enum macro_id { +  LED_ALL = SAFE_RANGE, +  LED_GAME, +  LED_BACKLIGHT, +  LED_BRIGHT, +  LED_DIM, +  LED_SINGLE, +  LED_PAGE, +  LED_FLASH +}; +  uint8_t current_layer_global = 0;  uint8_t led_mode_global = MODE_SINGLE;  uint8_t backlight_status_global = 1; //init on/off state of backlight @@ -77,10 +82,10 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      /* media */      [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift( \ -        _______,F(MODE_SINGLE),F(MODE_PAGE),F(MODE_FLASH),_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ +        _______,LED_SINGLE,LED_PAGE,LED_FLASH,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\          _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ -        _______,_______,_______,_______,_______,F(GAME),_______, _______, _______, _______,_______, _______,_______,     \ -        _______,_______,F(ALL) ,F(BRIGHT),F(DIM),F(BACKLIGHT),_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO,       \ +        _______,_______,_______,_______,_______,LED_GAME,_______, _______, _______, _______,_______, _______,_______,     \ +        _______,_______,LED_ALL ,LED_BRIGHT,LED_DIM,LED_BACKLIGHT,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO,       \          _______,_______,_______,               KC_MPLY,             _______,_______, _______,_______      \      ),      /* ~ */ @@ -101,22 +106,6 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      ),  }; -//id for user defined functions and macros -enum function_id { -    NONE, -}; - -enum macro_id { -    ACTION_LEDS_ALL, -    ACTION_LEDS_GAME, -    ACTION_LEDS_BACKLIGHT, -    ACTION_LEDS_BRIGHT, -    ACTION_LEDS_DIM, -    ACTION_LEDS_SINGLE, -    ACTION_LEDS_PAGE, -    ACTION_LEDS_FLASH -}; -  /* ==================================   *          LED MAPPING   * ==================================*/ @@ -158,74 +147,62 @@ uint8_t led_game[5] = {       47,48,51  }; -//======== qmk functions ========= -const uint16_t fn_actions[] = { -    [ALL] = ACTION_FUNCTION(ACTION_LEDS_ALL), -    [GAME] = ACTION_FUNCTION(ACTION_LEDS_GAME), -    [BACKLIGHT] = ACTION_FUNCTION(ACTION_LEDS_BACKLIGHT), -    [BRIGHT] = ACTION_FUNCTION(ACTION_LEDS_BRIGHT), -    [DIM] = ACTION_FUNCTION(ACTION_LEDS_DIM), -    [MODE_SINGLE] = ACTION_FUNCTION(ACTION_LEDS_SINGLE), -    [MODE_PAGE] = ACTION_FUNCTION(ACTION_LEDS_PAGE), -    [MODE_FLASH] = ACTION_FUNCTION(ACTION_LEDS_FLASH), -}; - -/* custom action function */ -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) {    msg_t msg; -  switch(id) { -    case ACTION_LEDS_ALL: +  switch(keycode) { +    case LED_ALL:        if(record->event.pressed) { -        led_mode_global = led_mode_global == ALL ? MODE_SINGLE : ALL; +        led_mode_global = led_mode_global == MODE_ALL ? MODE_SINGLE : MODE_ALL;          msg=TOGGLE_ALL;          chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);        } -      break; +      return false; -    case ACTION_LEDS_BACKLIGHT: +    case LED_BACKLIGHT:        if(record->event.pressed) {          backlight_status_global ^= 1;          msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT;          chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);        } -      break; +      return false; -    case ACTION_LEDS_GAME: +    case LED_GAME:        if(record->event.pressed) { -        led_mode_global = led_mode_global == GAME ? MODE_SINGLE : GAME; +        led_mode_global = led_mode_global == MODE_GAME ? MODE_SINGLE : MODE_GAME;          msg=(4 << 8) | DISPLAY_PAGE;          chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);        } -      break; +      return false; -    case ACTION_LEDS_BRIGHT: +    case LED_BRIGHT:        if(record->event.pressed) {          msg=(1 << 8) | STEP_BRIGHTNESS;          chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);        } -      break; +      return false; -    case ACTION_LEDS_DIM: +    case LED_DIM:        if(record->event.pressed) {          msg=(0 << 8) | STEP_BRIGHTNESS;          chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);        } -      break; +      return false;      //set led_mode for matrix_scan to toggle leds -    case ACTION_LEDS_SINGLE: +    case LED_SINGLE:        led_mode_global = MODE_SINGLE; -      break; -    case ACTION_LEDS_PAGE: +      return false; +    case LED_PAGE:        led_mode_global = MODE_PAGE; -      break; -    case ACTION_LEDS_FLASH: +      return false; +    case LED_FLASH:        led_mode_global = MODE_FLASH; -      break; +      return false;    } +  return true;  }  // Runs just one time when the keyboard initializes. @@ -257,7 +234,7 @@ void matrix_scan_user(void) {      return;    } -  if (led_layer_state != layer_state && led_mode_global != GAME && led_mode_global != ALL) { +  if (led_layer_state != layer_state && led_mode_global != MODE_GAME && led_mode_global != MODE_ALL) {      //check mode      //Turn on layer indicator or page depending on mode      switch(led_mode_global) { diff --git a/keyboards/whitefox/keymaps/kim-kim/keymap.c b/keyboards/whitefox/keymaps/kim-kim/keymap.c index a254067582..baaa136873 100644 --- a/keyboards/whitefox/keymaps/kim-kim/keymap.c +++ b/keyboards/whitefox/keymaps/kim-kim/keymap.c @@ -51,18 +51,3 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          _______,_______,_______,               _______,          _______,_______,_______,     KC_HOME,_______,KC_END  \      ),  }; - -/* Give numbers some descriptive names */ -#define ACTION_LEDS_ALL 1 -#define ACTION_LEDS_GAME 2 - -const uint16_t fn_actions[] = { -    [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), -    [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), - -    [4] = ACTION_USAGE_CONSUMER(0x1B4), -    [5] = ACTION_USAGE_CONSUMER(0x196), -    [6] = ACTION_USAGE_CONSUMER(0x1A6), -    [7] = ACTION_USAGE_CONSUMER(0x1A0), - -}; diff --git a/keyboards/whitefox/keymaps/matt3o/keymap.c b/keyboards/whitefox/keymaps/matt3o/keymap.c index f6987fe1aa..bb84196684 100644 --- a/keyboards/whitefox/keymaps/matt3o/keymap.c +++ b/keyboards/whitefox/keymaps/matt3o/keymap.c @@ -16,6 +16,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */  #include QMK_KEYBOARD_H +enum custom_keycodes { +    AL_FILE = SAFE_RANGE, +    AL_WWW, +    AL_HELP, +    AL_CMD +}; +  const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      /* Layer 0: Default Layer       * ,---------------------------------------------------------------. @@ -45,25 +52,44 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          KC_TRNS,KC_TRNS,KC_TRNS,               KC_TRNS,          KC_TRNS,KC_TRNS,KC_TRNS,     KC_HOME,KC_PGDN,KC_END  \      ),      [2] = LAYOUT( \ -        KC_SLEP,KC_P1,  KC_P2,  KC_P3,  KC_P4,  KC_P5,  KC_P6,  KC_P7,  KC_P8,  KC_P9,  KC_P0,  KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_FN2, \ -        KC_TRNS,KC_TRNS,KC_FN5 ,KC_FN6 ,KC_TRNS,KC_FN7 ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_TRNS,KC_TRNS,KC_TRNS,     KC_FN3, \ -        KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_FN4 ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,     KC_TRNS,\ +        KC_SLEP,KC_P1,  KC_P2,  KC_P3,  KC_P4,  KC_P5,  KC_P6,  KC_P7,  KC_P8,  KC_P9,  KC_P0,  KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_NO, \ +        KC_TRNS,KC_TRNS,AL_WWW ,AL_HELP ,KC_TRNS,AL_CMD ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_TRNS,KC_TRNS,KC_TRNS,     KC_NO, \ +        KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,AL_FILE ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,     KC_TRNS,\          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_TRNS,KC_TRNS,KC_TRNS,KC_MAIL,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,     KC_TRNS,KC_TRNS,\          KC_TRNS,KC_TRNS,KC_TRNS,               KC_TRNS,          KC_TRNS,KC_TRNS,KC_TRNS,     KC_TRNS,KC_TRNS,KC_TRNS \      ),  }; -/* Give numbers some descriptive names */ -#define ACTION_LEDS_ALL 1 -#define ACTION_LEDS_GAME 2 - -const uint16_t fn_actions[] = { -    [2] = ACTION_FUNCTION(ACTION_LEDS_ALL), -    [3] = ACTION_FUNCTION(ACTION_LEDS_GAME), - -    [4] = ACTION_USAGE_CONSUMER(0x1B4), -    [5] = ACTION_USAGE_CONSUMER(0x196), -    [6] = ACTION_USAGE_CONSUMER(0x1A6), -    [7] = ACTION_USAGE_CONSUMER(0x1A0), - -}; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case AL_FILE: +            if (record->event.pressed) { +                host_consumer_send(0x1B4); // AL File Browser +            } else { +                host_consumer_send(0); +            } +            return false; +        case AL_WWW: +            if (record->event.pressed) { +                host_consumer_send(0x196); // AL Internet Browser +            } else { +                host_consumer_send(0); +            } +            return false; +        case AL_HELP: +            if (record->event.pressed) { +                host_consumer_send(0x1A6); // AL Integrated Help Center +            } else { +                host_consumer_send(0); +            } +            return false; +        case AL_CMD: +            if (record->event.pressed) { +                host_consumer_send(0x1A0); // AL Command Line Processor/Run +            } else { +                host_consumer_send(0); +            } +            return false; +    } +    return true; +} diff --git a/layouts/community/ergodox/coderkun_neo2/keymap.c b/layouts/community/ergodox/coderkun_neo2/keymap.c index b38c99f2ea..b731ab4950 100644 --- a/layouts/community/ergodox/coderkun_neo2/keymap.c +++ b/layouts/community/ergodox/coderkun_neo2/keymap.c @@ -215,12 +215,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      ),  }; -const uint16_t PROGMEM fn_actions[] = { -    [BASE] = ACTION_FUNCTION(BASE), -    [PMQ]  = ACTION_FUNCTION(PMQ), -    [PMN]  = ACTION_FUNCTION(PMN), -}; -  // Runs just one time when the keyboard initializes.  void matrix_init_user(void) {      set_unicode_input_mode(UC_LNX); diff --git a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c index e94e6f219c..b9986e0e9d 100644 --- a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c +++ b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c @@ -9,6 +9,18 @@  #define NUMB_SYMB_MAC 3 // numbers and symbols mac  #define FUNCTION 4 // function keys +enum custom_keycodes { +    TILDE_NO = SAFE_RANGE, +    LESS_NO, +    GRTR_NO, +    CIRC_NO, +    ACUT_NO, +    GRV_NO, +    LESS_NO_MAC, +    GRTR_NO_MAC, +    ACUT_NO_MAC +}; +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  /* Keymap 0: Basic layer PC @@ -43,11 +55,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {                                                                NO_PLUS,                                                 OSM(MOD_LSFT),CTL_T(KC_DOT),ALT_T(NO_MINS),          // right hand -             KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, +             CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT,               NO_QUOT,      KC_J,    KC_L,    KC_U,      KC_Y,     NO_ARNG, NO_AE  ,                             KC_H,    KC_N,    KC_E,      KC_I,      KC_O,    NO_OSTR,               NO_EQL,        KC_K,    KC_M, KC_RIGHT,  KC_DOWN,   KC_UP, NO_UNDS, -                                  KC_LEFT,  KC_ESC,   KC_FN7,   KC_HASH,   MO(2), +                                  KC_LEFT,  KC_ESC,   GRV_NO,   KC_HASH,   MO(2),               KC_INSERT,  NO_SLSH,               KC_DEL,               KC_BSPC,KC_ENT,KC_SPC @@ -83,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {                                                      KC_TRNS,                                    KC_TRNS,GUI_T(KC_DOT) , KC_TRNS,      // right hand -       KC_TRNS,  S(NO_4), KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_QUOT, +       KC_TRNS,  S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT,         NO_LABK,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -125,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {                                    KC_TRNS, KC_TRNS, KC_TRNS,      // right hand         KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, -       KC_TRNS,  KC_TRNS, KC_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS,  KC_TRNS, TILDE_NO, ACUT_NO , KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS,         KC_TRNS,  KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,                            KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -166,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {                                    KC_TRNS, KC_TRNS, KC_TRNS,      // right hand         KC_TRNS,  KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, -       KC_TRNS,  KC_TRNS, KC_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, +       KC_TRNS,  KC_TRNS, TILDE_NO, ACUT_NO_MAC, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS,         KC_TRNS,  KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,                            KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -217,47 +229,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  )  }; -enum macro_id { -    TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO,  GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC -}; - -const uint16_t PROGMEM fn_actions[] = { -    [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. -    [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. -    [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. -    [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. -    [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. -    [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. -    [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly -    [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly -    [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed -}; - - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -    keyevent_t event = record->event; - -    switch (id) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) {          case TILDE_NO: -            return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(ALGR(KC_RBRC)); +                tap_code(KC_SPC); +            } +            return false;          case LESS_NO: -            return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_NUBS); +            } +            return false;          case GRTR_NO: -            return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_NUBS)); +            } +            return false;          case CIRC_NO: -            return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_RBRC)); +                tap_code(KC_SPC); +            } +            return false;          case ACUT_NO: -            return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(ALGR(KC_EQL)); +                tap_code(KC_SPC); +            } +            return false;          case GRV_NO: -            return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                SEND_STRING(SS_LSFT("= ")); +            } +            return false;          case LESS_NO_MAC: -            return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_GRV); +            } +            return false;          case GRTR_NO_MAC: -            return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_GRV)); +            } +            return false;          case ACUT_NO_MAC: -            return (event.pressed ? MACRO( T(EQL), T(SPC),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_EQL); +                tap_code(KC_SPC); +            } +            return false;      } -    return MACRO_NONE; -}; +    return true; +} diff --git a/layouts/community/ergodox/deadcyclo/keymap.c b/layouts/community/ergodox/deadcyclo/keymap.c index 0ae1ef7fb2..345e25e03e 100644 --- a/layouts/community/ergodox/deadcyclo/keymap.c +++ b/layouts/community/ergodox/deadcyclo/keymap.c @@ -1,6 +1,4 @@  #include QMK_KEYBOARD_H -#include "debug.h" -#include "action_layer.h"  #include "version.h"  #define BASE 0 // default layer @@ -9,45 +7,19 @@  #define UNI 3  // unicode 1  #define UNI2 4 // unicode 2 -enum macros { -  RUN -}; - -enum function_ids { -  EMOJI, -  EMOJI2, -  EPRM, +enum custom_keycodes { +  I3_RUN = SAFE_RANGE,    VRSN, -  RGB_SLD, -  GO_GROUP -}; - -/* opt can only be 0-15 */ -enum emojis { -  SHRUG, -  YAY, -  HUG, -  SMILE, -  SMILE2, -  HMM1, -  HMM2, -  BEAR1, -  BEAR2, -  FUU, -  EGGY1, -  EGGY2, -  FACE1, -  FACE2, -  UHU, -  SMRK1 -}; - -enum emojis2 { -  SMRK2, -  LOVE -}; - -enum progmem_ids { +  I3_GO_GROUP_1, +  I3_GO_GROUP_2, +  I3_GO_GROUP_3, +  I3_GO_GROUP_4, +  I3_GO_GROUP_5, +  I3_GO_GROUP_6, +  I3_GO_GROUP_7, +  I3_GO_GROUP_8, +  I3_GO_GROUP_9, +  I3_GO_GROUP_10,    EMOJI_SHRUG,    EMOJI_YAY,    EMOJI_HUG, @@ -65,20 +37,7 @@ enum progmem_ids {    EMOJI_UHU,    EMOJI_SMRK1,    EMOJI_SMRK2, -  EMOJI_LOVE, -  F_EPRM, -  F_VRSN, -  F_RGB_SLD, -  I3_GO_GROUP_10, -  I3_GO_GROUP_1, -  I3_GO_GROUP_2, -  I3_GO_GROUP_3, -  I3_GO_GROUP_4, -  I3_GO_GROUP_5, -  I3_GO_GROUP_6, -  I3_GO_GROUP_7, -  I3_GO_GROUP_8, -  I3_GO_GROUP_9, +  EMOJI_LOVE  };  // TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch) @@ -163,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {         KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                                         RGB_TOG,RGB_MOD, -       F(F_RGB_SLD), +       RGB_M_P,                                 RGB_VAD,RGB_VAI,KC_TRNS,         // right hand         KC_F6, KC_F7,   KC_F8,  KC_F9,   KC_F10,   KC_F11,  KC_F12, @@ -173,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {                           KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,         RGB_HUD, RGB_HUI,         KC_TRNS, -       F(F_EPRM), KC_DEL, KC_TRNS +       EEP_RST, KC_DEL, KC_TRNS  ),  /* Keymap 2: Media, mouse and navigation   * @@ -198,8 +157,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   */  // MEDIA , MOUSE and NAVIGATION  [MDIA] = LAYOUT_ergodox( -		KC_TRNS, F(I3_GO_GROUP_1), F(I3_GO_GROUP_2), F(I3_GO_GROUP_3), F(I3_GO_GROUP_4), F(I3_GO_GROUP_5), F(I3_GO_GROUP_6), -KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, +		KC_TRNS, I3_GO_GROUP_1, I3_GO_GROUP_2, I3_GO_GROUP_3, I3_GO_GROUP_4, I3_GO_GROUP_5, I3_GO_GROUP_6, +KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS,         KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, @@ -207,7 +166,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS,                                                      KC_TRNS,                                    KC_TRNS, KC_TRNS, KC_TRNS,      // right hand -		F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS, +		I3_GO_GROUP_6, I3_GO_GROUP_7, I3_GO_GROUP_8, I3_GO_GROUP_9, I3_GO_GROUP_10, KC_TRNS, KC_TRNS,         KC_TRNS,  KC_TRNS, KC_TRNS, KC_UP,   KC_TRNS,  KC_TRNS, KC_TRNS,                   KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,         KC_TRNS,  KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS,  KC_TRNS, KC_TRNS, @@ -241,10 +200,10 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS,  // Unicode  [UNI] = LAYOUT_ergodox(  		KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500), -		KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS, -		KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU), -		KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS, -		KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN), +		KC_TRNS, EMOJI_SHRUG, EMOJI_YAY, EMOJI_HUG, EMOJI_SMILE, EMOJI_SMILE2, KC_TRNS, +		KC_TRNS, EMOJI_HMM1, EMOJI_HMM2, EMOJI_BEAR1, EMOJI_BEAR2, EMOJI_FUU, +		KC_TRNS, EMOJI_EGGY1, EMOJI_EGGY2, EMOJI_FACE1, EMOJI_FACE2, EMOJI_UHU, KC_TRNS, +		KC_TRNS, EMOJI_SMRK1, EMOJI_SMRK2, EMOJI_LOVE, VRSN,  		KC_TRNS, KC_TRNS,                                                      KC_TRNS,                                    KC_TRNS, KC_TRNS, KC_TRNS, @@ -302,220 +261,84 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS,  ),  }; -const uint16_t PROGMEM fn_actions[] = { -  [EMOJI_SHRUG]   = ACTION_FUNCTION_OPT(EMOJI, SHRUG), -  [EMOJI_YAY]     = ACTION_FUNCTION_OPT(EMOJI, YAY), -  [EMOJI_HUG]     = ACTION_FUNCTION_OPT(EMOJI,HUG), -  [EMOJI_SMILE]   = ACTION_FUNCTION_OPT(EMOJI,SMILE), -  [EMOJI_SMILE2]  = ACTION_FUNCTION_OPT(EMOJI,SMILE2), -  [EMOJI_HMM1]    = ACTION_FUNCTION_OPT(EMOJI,HMM1), -  [EMOJI_HMM2]    = ACTION_FUNCTION_OPT(EMOJI,HMM2), -  [EMOJI_BEAR1]   = ACTION_FUNCTION_OPT(EMOJI,BEAR1), -  [EMOJI_BEAR2]   = ACTION_FUNCTION_OPT(EMOJI,BEAR2), -  [EMOJI_FUU]     = ACTION_FUNCTION_OPT(EMOJI,FUU), -  [EMOJI_EGGY1]   = ACTION_FUNCTION_OPT(EMOJI,EGGY1), -  [EMOJI_EGGY2]   = ACTION_FUNCTION_OPT(EMOJI,EGGY2), -  [EMOJI_FACE1]   = ACTION_FUNCTION_OPT(EMOJI,FACE1), -  [EMOJI_FACE2]   = ACTION_FUNCTION_OPT(EMOJI,FACE2), -  [EMOJI_UHU]     = ACTION_FUNCTION_OPT(EMOJI,UHU), -  [EMOJI_SMRK1]   = ACTION_FUNCTION_OPT(EMOJI,SMRK1), -  [EMOJI_SMRK2]   = ACTION_FUNCTION_OPT(EMOJI2,SMRK2), -  [EMOJI_LOVE]    = ACTION_FUNCTION_OPT(EMOJI2,LOVE), -  [F_EPRM]        = ACTION_FUNCTION(EPRM), -  [F_VRSN]        = ACTION_FUNCTION(VRSN), -  [F_RGB_SLD]     = ACTION_FUNCTION(RGB_SLD), -  [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0), -  [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1), -  [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2), -  [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3), -  [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4), -  [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5), -  [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6), -  [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7), -  [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8), -  [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9), -}; - -#define TAP_ONCE(code)  \ -  register_code (code); \ -  unregister_code (code) - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { -  if (record->event.pressed) { -    switch(id) { -    case EPRM: -      eeconfig_init(); -      break; -    case VRSN: -      SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); -      break; -    case RGB_SLD: -#ifdef RGBLIGHT_ENABLE -      rgblight_mode(1); -#endif -      break; -    case GO_GROUP: -      register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL); -      TAP_ONCE(KC_G); -      if (opt == 0) { -	TAP_ONCE(39); -      } else { -	TAP_ONCE(29+opt); -      } -      break; -    case EMOJI: -      switch(opt) { -      case SHRUG: -	unicode_input_start(); register_hex(0xaf); unicode_input_finish(); -	TAP_ONCE (KC_BSLS); -	register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); -	unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); -	register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); -	TAP_ONCE (KC_SLSH); -	unicode_input_start (); register_hex(0xaf); unicode_input_finish(); -	break; -      case YAY: -	SEND_STRING ("\\o/");	 -	break; -      case HUG: -	unicode_input_start(); register_hex(0x0f3c); unicode_input_finish(); -	TAP_ONCE (KC_SPC); -	unicode_input_start(); register_hex(0x3064); unicode_input_finish(); -	TAP_ONCE (KC_SPC); -	unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); -	TAP_ONCE (KC_SPC); -	unicode_input_start(); register_hex(0x0f3d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x3064); unicode_input_finish(); -	break; -      case SMILE: -	unicode_input_start(); register_hex(0x0298); unicode_input_finish(); -	unicode_input_start(); register_hex(0x203f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0298); unicode_input_finish(); -	break; -      case SMILE2: -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0298); unicode_input_finish(); -	unicode_input_start(); register_hex(0x203f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0298); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	break; -      case HMM1: -	unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); -	break; -      case HMM2: -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	break; -      case BEAR1: -	unicode_input_start(); register_hex(0x0295); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2022); unicode_input_finish(); -	unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2022); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0294); unicode_input_finish(); -	break; -      case BEAR2: -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); -	unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); -	unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	break; -      case FUU: -	unicode_input_start(); register_hex(0x256d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2229); unicode_input_finish(); -	unicode_input_start(); register_hex(0x256e); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x002d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x002d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	unicode_input_start(); register_hex(0x256d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2229); unicode_input_finish(); -	unicode_input_start(); register_hex(0x256e); unicode_input_finish(); -	break; -      case EGGY1: -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x256f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); -	unicode_input_start(); register_hex(0x25a1); unicode_input_finish(); -	unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); -	unicode_input_start(); register_hex(0xff09); unicode_input_finish(); -	unicode_input_start(); register_hex(0x256f); unicode_input_finish(); -	break; -      case EGGY2: -	unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0020); unicode_input_finish(); -	unicode_input_start(); register_hex(0x309c); unicode_input_finish(); -	unicode_input_start(); register_hex(0x002d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x309c); unicode_input_finish(); -	unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	break; -      case FACE1: -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x002d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x002d); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	break; -      case FACE2: -	unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2022); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2022); unicode_input_finish(); -	unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	break; -      case UHU: -	unicode_input_start(); register_hex(0x2299); unicode_input_finish(); -	unicode_input_start(); register_hex(0xfe4f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2299); unicode_input_finish(); -	break; -      case SMRK1: -	unicode_input_start(); register_hex(0x005e); unicode_input_finish(); -	unicode_input_start(); register_hex(0x032e); unicode_input_finish(); -	unicode_input_start(); register_hex(0x005e); unicode_input_finish(); -	break; -      } -      break; -    case EMOJI2: -      switch(opt) { -	case SMRK2: -	  unicode_input_start(); register_hex(0x0028); unicode_input_finish(); -	  unicode_input_start(); register_hex(0x005e); unicode_input_finish(); -	  unicode_input_start(); register_hex(0x032e); unicode_input_finish(); -	  unicode_input_start(); register_hex(0x005e); unicode_input_finish(); -	  unicode_input_start(); register_hex(0x0029); unicode_input_finish(); -	  break; -      case LOVE: -	unicode_input_start(); register_hex(0x2665); unicode_input_finish(); -	unicode_input_start(); register_hex(0x203f); unicode_input_finish(); -	unicode_input_start(); register_hex(0x2665); unicode_input_finish(); -	break; -      } -      break;    +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    if (record->event.pressed) { +        switch (keycode) { +            case I3_RUN: +                tap_code16(C(KC_I)); +                tap_code(KC_R); +                return false; +            case VRSN: +                SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); +                return false; +            case I3_GO_GROUP_1 ... I3_GO_GROUP_10: +                tap_code16(C(KC_I)); +                tap_code(KC_G); +                if (keycode == I3_GO_GROUP_10) { +                    tap_code(KC_0); +                } else { +                    tap_code(KC_1 + (keycode - I3_GO_GROUP_1)); +                } +                return false; +            case EMOJI_SHRUG: +                send_unicode_string("¯\\_(ツ)_/¯"); +                return false; +            case EMOJI_YAY: +                SEND_STRING("\\o/"); +                return false; +            case EMOJI_HUG: +                send_unicode_string("༼ つ ◕_◕ ༽つ"); +                return false; +            case EMOJI_SMILE: +                send_unicode_string("ʘ‿ʘ"); +                return false; +            case EMOJI_SMILE2: +                send_unicode_string("(ʘ‿ʘ)"); +                return false; +            case EMOJI_HMM1: +                send_unicode_string("ಠ_ಠ"); +                return false; +            case EMOJI_HMM2: +                send_unicode_string("(ಠ_ಠ)"); +                return false; +            case EMOJI_BEAR1: +                send_unicode_string("ʕ•ᴥ•ʔ"); +                return false; +            case EMOJI_BEAR2: +                send_unicode_string("(ᵔᴥᵔ)"); +                return false; +            case EMOJI_FUU: +                send_unicode_string("╭∩╮(-_-)╭∩╮"); +                return false; +            case EMOJI_EGGY1: +                send_unicode_string("(╯°□°)╯"); +                return false; +            case EMOJI_EGGY2: +                send_unicode_string("ノ( ゜-゜ノ)"); +                return false; +            case EMOJI_FACE1: +                SEND_STRING("(-_-)"); +                return false; +            case EMOJI_FACE2: +                send_unicode_string("(•_•)"); +                return false; +            case EMOJI_UHU: +                send_unicode_string("⊙﹏⊙"); +                return false; +            case EMOJI_SMRK1: +                send_unicode_string("^̮^"); +                return false; +            case EMOJI_SMRK2: +                send_unicode_string("(^̮^)"); +                return false; +            case EMOJI_LOVE: +                send_unicode_string("♥‿♥"); +                return false; +        }      } -  } +    return true;  } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { -  if (record->event.pressed) { -    switch(id) { -      case RUN: -	return MACRO( D(LCTL), T(I), U(LCTL), T(R), END  ); -      break; -    } -  } -  return MACRO_NONE; -}; -  // Runs just one time when the keyboard initializes.  void matrix_init_user(void) {    set_unicode_input_mode(UC_LNX); diff --git a/layouts/community/ergodox/guni/keymap.c b/layouts/community/ergodox/guni/keymap.c index 0707bcf774..cc67fbdeaa 100644 --- a/layouts/community/ergodox/guni/keymap.c +++ b/layouts/community/ergodox/guni/keymap.c @@ -1,7 +1,4 @@  #include QMK_KEYBOARD_H -#include "debug.h" -#include "action_layer.h" -#include "bootloader.h"  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      LAYOUT_ergodox(  // layer 0 : default @@ -13,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          KC_LGUI , KC_GRV,KC_LEFT,KC_RGHT,KC_LALT,                                            KC_NO , KC_NO  ,                                                 KC_NO  , -                                     KC_BSPC,KC_DEL ,KC_FN23, +                                     KC_BSPC,KC_DEL ,TO(3),          // right hand               KC_RBRC , KC_6,   KC_7 ,  KC_8,   KC_9,   KC_0,   KC_MINS,               KC_END  , KC_Y,   KC_U ,  KC_I,   KC_O,   KC_P,   MT(MOD_RCTL, KC_BSLS), @@ -34,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                                         KC_TRNS,KC_TRNS,                                             KC_TRNS, -                                 KC_TRNS,KC_TRNS,KC_FN1, +                                 KC_TRNS,KC_TRNS,TO(0),          // right hand               KC_F12, KC_F6,  KC_F7,  KC_F8,  KC_F9,  KC_F10, KC_TRNS,               KC_TRNS,KC_EXLM,LSFT(KC_COMM),LSFT(KC_DOT),KC_EQL,KC_AMPR, KC_TRNS, @@ -55,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                                        KC_TRNS,KC_TRNS,                                             KC_TRNS, -                                 KC_TRNS,KC_TRNS,KC_FN1 , +                                 KC_TRNS,KC_TRNS,TO(0) ,          // right hand               KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,               KC_TRNS ,KC_TRNS,  KC_HOME,  KC_TRNS,  KC_TRNS, KC_END ,KC_TRNS, @@ -68,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      ),      LAYOUT_ergodox(  // layer 3 : teensy bootloader functions          // left hand -        KC_FN0, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, +        RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                                        KC_TRNS,KC_TRNS,                                             KC_TRNS, -                                 KC_TRNS,KC_TRNS,KC_FN1 , +                                 KC_TRNS,KC_TRNS,TO(0) ,          // right hand               KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,               KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, @@ -110,31 +107,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {      ),  }; - -/* id for user defined functions */ -enum function_id { -    TEENSY_KEY, -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { -   	[0]   =  ACTION_FUNCTION(TEENSY_KEY),                    // FN0 - Teensy key -	[1]   =  ACTION_LAYER_SET(0, ON_PRESS),               -	[23]  =  ACTION_LAYER_SET(3, ON_PRESS), -        [24]  =  ACTION_LAYER_SET(2, ON_PRESS),    -	[26]  =  ACTION_LAYER_SET(1, ON_PRESS), -}; - -void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) -{ -    -    if (id == TEENSY_KEY) { -        clear_keyboard(); -        print("\n\nJump to bootloader... "); -        wait_ms(250); -        bootloader_jump(); // should not return -        print("not supported.\n"); -    } -} diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c index 2315284492..2ddd7ab209 100644 --- a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c +++ b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c @@ -7,6 +7,18 @@  #define BASE_MAC 1 // default layer mac  #define NUMB_FUNC 2 // numbers and function keys +enum custom_keycodes { +    TILDE_NO = SAFE_RANGE, +    LESS_NO, +    GRTR_NO, +    CIRC_NO, +    ACUT_NO, +    GRV_NO, +    LESS_NO_MAC, +    GRTR_NO_MAC, +    ACUT_NO_MAC +}; +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  /* Keymap 0: Basic layer PC @@ -32,16 +44,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   */  [BASE] = LAYOUT_ergodox(          // left hand -        KC_PAST,       NO_LBRC, NO_RBRC, NO_LCBR,  NO_RCBR, KC_FN2,  TG(1), +        KC_PAST,       NO_LBRC, NO_RBRC, NO_LCBR,  NO_RCBR, TILDE_NO,  TG(1),          KC_PPLS,         KC_Q,         KC_W,    KC_E,   KC_R,   KC_T,   NO_DQUO,          KC_PSLS,         KC_A,         KC_S,    KC_D,   KC_F,   KC_G,          KC_PMNS,        KC_Z,         KC_X,    KC_C,   KC_V,   KC_B,   NO_SCLN,          ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, -                                                      KC_HASH, KC_FN7, -                                                              KC_FN6, +                                                      KC_HASH, GRV_NO, +                                                              ACUT_NO,                                                 OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA),          // right hand -             KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, +             CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT,               NO_QUOT,      KC_Y,    KC_U,    KC_I,      KC_O,     KC_P,   NO_ARNG,                             KC_H,    KC_J,    KC_K,      KC_L,  NO_OSTR,    NO_AE,               NO_EQL,        KC_N,    KC_M, KC_RIGHT,  KC_DOWN,   KC_UP,    NO_BSLS, @@ -78,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                             KC_TRNS, ALGR(NO_BSLS), -                                                    KC_FN10, +                                                    ACUT_NO_MAC,                                    KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA),      // right hand -       KC_TRNS,  S(NO_4), KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_QUOT, +       KC_TRNS,  S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT,         NO_LABK,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)), @@ -133,47 +145,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  )  }; -enum macro_id { -    TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO,  GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC -}; - -const uint16_t PROGMEM fn_actions[] = { -    [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. -    [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. -    [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. -    [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. -    [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. -    [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. -    [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly -    [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly -    [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed -}; - - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -    keyevent_t event = record->event; - -    switch (id) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) {          case TILDE_NO: -            return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(ALGR(KC_RBRC)); +                tap_code(KC_SPC); +            } +            return false;          case LESS_NO: -            return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_NUBS); +            } +            return false;          case GRTR_NO: -            return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_NUBS)); +            } +            return false;          case CIRC_NO: -            return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_RBRC)); +                tap_code(KC_SPC); +            } +            return false;          case ACUT_NO: -            return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(ALGR(KC_EQL)); +                tap_code(KC_SPC); +            } +            return false;          case GRV_NO: -            return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                SEND_STRING(SS_LSFT("= ")); +            } +            return false;          case LESS_NO_MAC: -            return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_GRV); +            } +            return false;          case GRTR_NO_MAC: -            return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_GRV)); +            } +            return false;          case ACUT_NO_MAC: -            return (event.pressed ? MACRO( T(EQL), T(SPC),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_EQL); +                tap_code(KC_SPC); +            } +            return false;      } -    return MACRO_NONE; -}; +    return true; +} diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c index b9ddefb679..5ca8d40db0 100644 --- a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c +++ b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c @@ -7,6 +7,18 @@  #define BASE_MAC 1 // default layer mac  #define NUMB_FUNC 2 // numbers and function keys +enum custom_keycodes { +    TILDE_NO = SAFE_RANGE, +    LESS_NO, +    GRTR_NO, +    CIRC_NO, +    ACUT_NO, +    GRV_NO, +    LESS_NO_MAC, +    GRTR_NO_MAC, +    ACUT_NO_MAC +}; +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  /* Keymap 0: Basic layer PC @@ -32,16 +44,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   */  [BASE] = LAYOUT_ergodox(          // left hand -        KC_PAST,       NO_LBRC, NO_RBRC, NO_LCBR,  NO_RCBR, KC_FN2,  TG(1), +        KC_PAST,       NO_LBRC, NO_RBRC, NO_LCBR,  NO_RCBR, TILDE_NO,  TG(1),          KC_PPLS,         KC_Q,         KC_W,    KC_F,   KC_P,   KC_G,   NO_DQUO,          KC_PSLS,         KC_A,         KC_R,    KC_S,   KC_T,   KC_D,          KC_PMNS,        KC_Z,         KC_X,    KC_C,   KC_V,   KC_B,   NO_SCLN,          ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, -                                                      KC_HASH, KC_FN7, -                                                              KC_FN6, +                                                      KC_HASH, GRV_NO, +                                                              ACUT_NO,                                                 OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA),          // right hand -             KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, +             CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT,               NO_QUOT,      KC_J,    KC_L,    KC_U,      KC_Y,     NO_ARNG, NO_AE  ,                             KC_H,    KC_N,    KC_E,      KC_I,      KC_O,    NO_OSTR,               NO_EQL,        KC_K,    KC_M, KC_RIGHT,  KC_DOWN,   KC_UP,    NO_BSLS, @@ -78,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                             KC_TRNS, ALGR(NO_BSLS), -                                                    KC_FN10, +                                                    ACUT_NO_MAC,                                    KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA),      // right hand -       KC_TRNS,  S(NO_4), KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_QUOT, +       KC_TRNS,  S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT,         NO_LABK,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)), @@ -133,47 +145,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  )  }; -enum macro_id { -    TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO,  GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC -}; - -const uint16_t PROGMEM fn_actions[] = { -    [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. -    [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. -    [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. -    [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. -    [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. -    [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. -    [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly -    [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly -    [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed -}; - - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -    keyevent_t event = record->event; - -    switch (id) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) {          case TILDE_NO: -            return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(ALGR(KC_RBRC)); +                tap_code(KC_SPC); +            } +            return false;          case LESS_NO: -            return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_NUBS); +            } +            return false;          case GRTR_NO: -            return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_NUBS)); +            } +            return false;          case CIRC_NO: -            return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_RBRC)); +                tap_code(KC_SPC); +            } +            return false;          case ACUT_NO: -            return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(ALGR(KC_EQL)); +                tap_code(KC_SPC); +            } +            return false;          case GRV_NO: -            return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                SEND_STRING(SS_LSFT("= ")); +            } +            return false;          case LESS_NO_MAC: -            return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_GRV); +            } +            return false;          case GRTR_NO_MAC: -            return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code16(S(KC_GRV)); +            } +            return false;          case ACUT_NO_MAC: -            return (event.pressed ? MACRO( T(EQL), T(SPC),  END ) : MACRO_NONE); +            if (record->event.pressed) { +                tap_code(KC_EQL); +                tap_code(KC_SPC); +            } +            return false;      } -    return MACRO_NONE; -}; +    return true; +} diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c index 729810705b..6bf0285ab6 100644 --- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c +++ b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          M(KC_CAPS), M(KC_A),  M(KC_S), M(KC_D), M(KC_F), M(KC_G),          KC_LSFT,    M(KC_Z),  M(KC_X), M(KC_C), M(KC_V), M(KC_B), MO(SYMB),          KC_LCTL,    KC_LALT,  KC_LGUI, KC_LEFT, KC_RGHT, -                                                         KC_TRNS, KC_FN1, +                                                         KC_TRNS, F(1),                                                                    KC_HOME,                                                  KC_BSPC, KC_DEL,  KC_END,          // right hand @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,         KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, -                                               KC_FN3, KC_FN2, +                                               F(3),   F(2),                                                         KC_TRNS,                                         KC_TRNS,KC_TRNS,KC_TRNS,         // right hand @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {         KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,         KC_TRNS, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,         KC_TRNS, KC_TRNS, KC_TRNS, KC_NO,   KC_NO, -                                                    KC_FN4,  KC_NO, +                                                    F(4),    KC_NO,                                                               KC_TRNS,                                             KC_TRNS, KC_TRNS, KC_TRNS,         // right hand diff --git a/layouts/community/ergodox/workman_osx_mdw/keymap.c b/layouts/community/ergodox/workman_osx_mdw/keymap.c index 81fd3984b3..f14d9cf4cd 100644 --- a/layouts/community/ergodox/workman_osx_mdw/keymap.c +++ b/layouts/community/ergodox/workman_osx_mdw/keymap.c @@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {               TG(1),       KC_J,   KC_F,   KC_U,   KC_P,   KC_SCLN,          KC_BSLS,                            KC_Y,   KC_N,   KC_E,   KC_O,   KC_I,             KC_QUOT,               MEH_T(KC_NO),KC_K,   KC_L,   KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT, -                                  KC_LEFT,KC_DOWN,KC_UP,  KC_RGHT,          KC_FN4, +                                  KC_LEFT,KC_DOWN,KC_UP,  KC_RGHT,          F(4),               KC_NO,        KC_NO,               KC_PGUP,               KC_PGDN,KC_SPC,KC_ENT | 
