~ruther/qmk_firmware

8ac9940a76f09d4a47be342fc123306ecbfb27f3 — Daniel Rodríguez Rivero 5 years ago ac24f20
[Keymap] danielo515/redox-1 (#9935)

* chore: pulled the latest from master

Bring my redox layout from my latest redox branch
Bring my latest user stuff from my redox branch

* Update users/danielo515/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* chore: small cleanup

Co-authored-by: Drashna Jaelre <drashna@live.com>
M keyboards/redox_w/keymaps/danielo515/keymap.c => keyboards/redox_w/keymaps/danielo515/keymap.c +34 -31
@@ 22,56 22,59 @@
# define GUI OSM(MOD_LGUI)
# define ENT_SYM LT(_SYMB, KC_ENT)
# define __S LT(_S,KC_S)
# define OSX_BACK LGUI(KC_GRV)
// Which key do you use to enter a layer
# define ENTRY _______


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  [_QWERTY] = LAYOUT(
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 KC_NAGR ,KC_1    ,KC_2    ,KC_3    ,KC_4    ,KC_5    ,                                            KC_6    ,KC_7    ,KC_8    ,KC_9    ,KC_0    ,KC_DQUO ,
	 KC_EQL  ,KC_1    ,KC_2    ,KC_3    ,KC_4    ,KC_5    ,                                            KC_6    ,KC_7    ,KC_8    ,KC_9    ,KC_0    ,KC_DQUO ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 KC_TAB  ,KC_Q    ,KC_W    ,KC_E    ,KC_R    ,KC_T    ,TD_PASTE,                          ALT_TAB ,KC_Y    ,KC_U    ,KC_I    ,KC_O    ,KC_P    ,SFT_MINS,
	 KC_TAB  ,KC_Q    ,KC_W    ,KC_E    ,KC_R    ,KC_T    ,TD_PASTE,                          KC_INS  ,KC_Y    ,KC_U    ,KC_I    ,KC_O    ,KC_P    ,CMD_MINS,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 SHIFT   ,KC_A    ,__S     ,FN_D    ,FN_F    ,KC_G    ,COPY_CUT,                          KC_UNDS ,HYPR_H  ,ALT_J   ,CTL_K   ,KC_L    ,TD_CLN  ,CMD_QUOT,
	 KC_PIPE ,KC_A    ,__S     ,FN_D    ,FN_F    ,KC_G    ,COPY_CUT,                          KC_UNDS ,HYPR_H  ,ALT_J   ,CTL_K   ,KC_L    ,TD_CLN  ,SFT_QUOT,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 KC_BSLS ,KC_Z    ,KC_X    ,KC_C    ,KC_V    ,KC_B    ,KC_DEL  ,KC_PGDN ,        ALT_TAB ,AD_ESC  ,KC_N    ,KC_M    ,KC_COMM ,KC_DOT  ,KC_SLSH ,KC_ASTR ,
	 KC_BSLS ,KC_Z    ,KC_X    ,KC_C    ,KC_V    ,KC_B    ,KC_DEL  ,KC_PLUS ,        ALT_TAB ,AD_ESC  ,KC_N    ,KC_M    ,KC_COMM ,KC_DOT  ,KC_SLSH ,KC_ASTR ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 CTL     ,ALT     ,KC_LEFT ,KC_RIGHT,     GUI     ,    SHIFT   ,KC_BSPC ,        KC_LEAD ,NAV_SPC ,    ENT_SYM,     KC_LBRC ,KC_RBRC ,KC_DOWN ,KC_UP
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),

  [_SYMB] = LAYOUT(
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 _______ ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                            KC_F6   ,KC_F7   ,KC_F8   ,KC_F9   ,KC_F10  ,KC_F11  ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 _______ ,KC_EXLM ,KC_DLR   ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ ,                         _______ ,KC_PSLS ,KC_P7 	,KC_P8 	 ,KC_P9   ,KC_PERC ,KC_PMNS ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 _______ ,KC_AT   ,KC_DLR  , KC_LPRN, KC_RPRN,KC_GRV  ,_______ ,                          _______ ,KC_PAST ,KC_P4 	,KC_P5   ,KC_P6   ,KC_PPLS ,KC_BSPC ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,_______ ,_______ ,        _______ ,_______ ,KC_COLN ,KC_P1 	,KC_P2   ,KC_P3   ,KC_PENT ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 _______ ,_______ ,_______ ,_______ ,     _______ ,    _______ ,_______ ,        _______ ,_______ ,    KC_P0   ,     KC_P0   ,KC_PDOT ,KC_PENT ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                              ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 _______ ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                               KC_F6   ,KC_F7   ,KC_F8   ,KC_F9   ,KC_F10  ,KC_F12  ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                            ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 _______ ,KC_EXLM ,KC_DLR  ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ ,                             _______ ,KC_PSLS ,KC_P7 	,KC_P8 	 ,KC_P9   ,KC_PERC ,KC_BSPC ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                            ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 _______ ,KC_AT   ,KC_DLR  , KC_LPRN, KC_RPRN,KC_GRV  ,_______ ,                             _______ ,KC_PENT ,KC_P4 	,KC_P5   ,KC_P6   ,KC_PPLS ,KC_PMNS ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐          ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,_______ ,_______ ,           _______ ,_______ ,KC_COLN ,KC_P1 	,KC_P2   ,KC_P3   ,KC_PSLS ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤          ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 _______ ,_______ ,_______ ,_______ ,     _______ ,    _______ ,_______ ,           _______ ,_______ ,    ENTRY   ,     KC_P0   ,KC_PDOT ,KC_PAST ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘          └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),

  [_NAV] = LAYOUT(
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                                            _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,KC_MS_U ,XXXXXXX ,KC_WH_U ,XXXXXXX ,_______ ,                          _______ ,XXXXXXX,SFT_LEFT,SFT_RIGHT,XXXXXXX ,XXXXXXX ,XXXXXXX ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,                          _______ ,SFT_LEFT_END,SFT_LEFT,SFT_RIGHT,SFT_RIGHT_END ,XXXXXXX ,KC_F12  ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D ,XXXXXXX ,_______ ,                          _______ ,KC_LEFT ,KC_DOWN ,KC_UP   ,KC_RIGHT,XXXXXXX ,XXXXXXX ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,                          _______ ,KC_LEFT ,KC_DOWN ,KC_UP   ,KC_RIGHT,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ ,        _______ ,XXXXXXX ,KC_HOME ,CTL_LEFT,CTL_RIGHT,XXXXXXX,XXXXXXX ,XXXXXXX ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ ,        _______ ,XXXXXXX ,KC_HOME ,CTL_LEFT,CTL_RIGHT,KC_END,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     KC_BTN1 ,    KC_BTN2 ,_______ ,        _______ ,_______ ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,WIN_LEFT,WIN_RIGHT
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     _______ ,    _______ ,_______ ,        _______ ,  ENTRY ,    KC_MUTE ,     KC_VOLD ,KC_VOLU ,WIN_LEFT,WIN_RIGHT
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),
  [_ADJUST] = LAYOUT(
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                                            XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,RESET   ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_F12  ,
	 XXXXXXX ,RESET   ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤


@@ 84,26 87,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 XXXXXXX ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                            KC_F6   ,KC_F7   ,KC_F8   ,KC_F9   ,KC_F10  ,KC_F11  ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,ALL_WIN ,EXPOSE  ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
	 XXXXXXX ,XXXXXXX ,ALL_WIN ,EXPOSE  ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,KC_F4   ,KC_F5   ,KC_F6   ,XXXXXXX ,KC_F12  ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
	 XXXXXXX ,XXXXXXX ,SAVE    ,OSX_BACK ,ENTRY ,XXXXXXX ,XXXXXXX ,                          XXXXXXX  ,KC_PSCR ,KC_F1   ,KC_F2   ,KC_F3   ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,        XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
	 XXXXXXX ,UNDO    ,REDO    ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,        XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,XXXXXXX ,        XXXXXXX ,_______ ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,XXXXXXX ,        KC_PGUP ,KC_PGDOWN ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),
  [_D] = LAYOUT(
  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐
	 XXXXXXX ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                            KC_F6   ,KC_F7   ,KC_F8   ,KC_F9   ,KC_F10  ,KC_F12  ,
	 XXXXXXX ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                            KC_A   ,KC_B   ,KC_C   ,KC_D   ,KC_E  ,KC_F  ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          _______ ,KC_PSLS ,KC_P7 	,KC_P8 	 ,KC_P9   ,KC_PERC ,KC_PMNS ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          _______ ,KC_LBRACKET ,KC_P7 	,KC_P8 	 ,KC_P9   ,KC_PERC ,KC_KP_MINUS ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          _______ ,KC_PAST ,KC_P4 	,KC_P5   ,KC_P6   ,KC_PPLS ,KC_BSPC ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,KC_F5 ,KC_F2 ,XXXXXXX ,                          _______ ,KC_RBRACKET ,KC_P4   ,KC_P5   ,KC_P6   ,KC_PPLS ,KC_PAST ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,        _______ ,_______ ,KC_COLN ,KC_P1 	,KC_P2   ,KC_P3   ,KC_PENT ,XXXXXXX ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,        _______ ,_______ ,KC_COLN ,KC_P1 	,KC_P2   ,KC_P3   ,KC_PSLS ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        _______ ,_______ ,    KC_P0   ,     KC_P0   ,KC_PDOT ,KC_PENT ,XXXXXXX
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        _______ ,_______ ,    KC_P0   ,     KC_COMMA   ,KC_PDOT ,KC_PAST ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),
	[_S] = LAYOUT(


@@ 114,9 117,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,_______ ,KC_EQL  ,F_ARROW ,KC_GRAVE,XXXXXXX ,                          XXXXXXX ,KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ  ,KC_PLUS ,KC_PIPE ,
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_CIRC ,KC_DLR  ,XXXXXXX ,XXXXXXX ,XXXXXXX ,        XXXXXXX ,XXXXXXX ,KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW  ,KC_BSLASH,IARROW  ,
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_CIRC ,ARROW  ,XXXXXXX ,XXXXXXX ,XXXXXXX ,        XXXXXXX ,XXXXXXX ,KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW  ,KC_BSLASH,IARROW  ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        XXXXXXX ,_______ ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
	 XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        XXXXXXX ,ENTRY ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  )


M users/danielo515/combo.c => users/danielo515/combo.c +26 -18
@@ 6,31 6,39 @@ enum combos {
    UI_COM,
    IO_COM,
    QW_COM,
    COM_SLS,
    DOT_SLS,
    COM_DOT,
    M_COMM,
    N_M,
    OP_COM,
    M_CM_DOT,
};

const uint16_t PROGMEM ui_combo[] = {KC_U, KC_I, COMBO_END};
const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
const uint16_t PROGMEM yu_combo[] = {KC_Y, KC_U, COMBO_END};
const uint16_t PROGMEM io_combo[] = {KC_I, KC_O, COMBO_END};
const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM com_sls[] = {KC_COMMA, KC_SLSH, COMBO_END};
const uint16_t PROGMEM com_dot[] = {KC_COMMA, KC_DOT, COMBO_END};
const uint16_t PROGMEM m_comm[] = {KC_M,KC_COMMA,  COMBO_END};
const uint16_t PROGMEM n_m[] = {KC_N, KC_M,COMBO_END};
const uint16_t PROGMEM ui_combo[]              = {KC_U, KC_I, COMBO_END};
const uint16_t PROGMEM jk_combo[]              = {KC_J, KC_K, COMBO_END};
const uint16_t PROGMEM yu_combo[]              = {KC_Y, KC_U, COMBO_END};
const uint16_t PROGMEM io_combo[]              = {KC_I, KC_O, COMBO_END};
const uint16_t PROGMEM qw_combo[]              = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM dot_sls[]               = {KC_DOT, KC_SLSH, COMBO_END};
const uint16_t PROGMEM com_dot[]               = {KC_COMMA, KC_DOT, COMBO_END};
const uint16_t PROGMEM m_comm[]                = {KC_M, KC_COMMA, COMBO_END};
const uint16_t PROGMEM n_m[]                   = {KC_N, KC_M, COMBO_END};
const uint16_t PROGMEM o_p_combo[]             = {KC_O, KC_P, COMBO_END};
const uint16_t PROGMEM m_cm_dot_combo[]        = {KC_M, KC_COMMA, KC_DOT, COMBO_END};

combo_t key_combos[COMBO_COUNT] = {
    [JK_ESC] = COMBO(jk_combo, KC_ESC),
    [YU_COM] = COMBO(yu_combo, KC_CIRC),
    [UI_COM] = COMBO(ui_combo, KC_DLR),
    [IO_COM] = COMBO(io_combo, KC_TILD),
    [JK_ESC]   = COMBO(jk_combo, KC_ESC),
    [YU_COM]   = COMBO(yu_combo, KC_AMPR),
    [UI_COM]   = COMBO(ui_combo, KC_CIRC),
    [IO_COM]   = COMBO(io_combo, KC_TILD),
    [DOT_SLS]  = COMBO(dot_sls, KC_EXLM),
    [COM_DOT]  = COMBO(com_dot, KC_QUES),
    [N_M]      = COMBO(n_m, KC_DLR),
    [OP_COM]   = COMBO(o_p_combo, KC_HASH),
    // m + , = {
    [M_COMM]   = COMBO(m_comm, KC_LCBR),
    // m + , + . = }
    // [M_CM_DOT] = COMBO(m_cm_dot_combo, KC_RCBR),
    // Right hand side combos
    [QW_COM] = COMBO(qw_combo, KC_AT),
    [COM_SLS] = COMBO(com_sls, KC_QUES),
    [COM_DOT] = COMBO(com_dot, KC_QUES),
    [M_COMM] = COMBO(m_comm, KC_ESC),
    [N_M] = COMBO(n_m, KC_DLR),
};

M users/danielo515/config.h => users/danielo515/config.h +2 -2
@@ 1,8 1,8 @@
#pragma once

#if defined(COMBO_ENABLE)
  #define COMBO_COUNT 9
  #define COMBO_TERM  40
#    define COMBO_COUNT 11
#    define COMBO_TERM  25
#endif // !COMBO_ENABLE
// Timeout settings for leader key
#undef  LEADER_TIMEOUT

M users/danielo515/process_records.c => users/danielo515/process_records.c +140 -107
@@ 4,11 4,11 @@ extern bool onMac;
// ======== INCREMENTAL MACROS STUFF =============
#define MAX_INCREMENTAL_MACRO 20
#define TAP_ROTATION_TIMEOUT 400
uint16_t latest_kc = 0;
uint16_t latest_kc       = 0;
uint16_t latest_rotation = 0;
int key_count = 0;
int      key_count       = 0;

const char incremental_macros[][MAX_INCREMENTAL_MACRO] = { "String1"SS_TAP(X_HOME)"X-", "String2"SS_TAP(X_HOME) };
const char incremental_macros[][MAX_INCREMENTAL_MACRO] = {"String1" SS_TAP(X_HOME) "X-", "String2" SS_TAP(X_HOME)};

bool process_incremental_macro(uint16_t kc) {
    if (kc < INC_MACROS_START || kc > INC_MACROS_END) {


@@ 44,124 44,157 @@ void refresh_incremental_macros(uint16_t kc) {
}
// Send control or GUI depending if we are on windows or mac
bool CMD(uint16_t kc) {
    if(onMac){ tap_code16(LGUI(kc)); } else { tap_code16(LCTL(kc)); }
    if (onMac) {
        tap_code16(LGUI(kc));
    } else {
        tap_code16(LCTL(kc));
    }
    return false;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    bool pressed = record->event.pressed;
    if(pressed){
    if (pressed) {
        refresh_incremental_macros(keycode);
        if(process_incremental_macro(keycode)){
        if (process_incremental_macro(keycode)) {
            return false;
        }
        switch (keycode) {
            case MAC_TGL:
            onMac = !onMac;
            onMac ? SEND_STRING("On mac") : SEND_STRING("Not on MAC");
            return false;
                onMac = !onMac;
                onMac ? SEND_STRING("On mac") : SEND_STRING("Not on MAC");
                return false;
        }
    }

    switch (keycode) {
    case QWERTY:
        if (record->event.pressed) {
        #ifdef AUDIO_ENABLE
        PLAY_SONG(tone_qwerty);
        #endif
        layer_on(_QWERTY);
        }
        return false;
    case LOWER:
        if (record->event.pressed) {
        layer_on(_LOWER);
        } else {
        layer_off(_LOWER);
        }
        return false;
    case RAISE:
        if (record->event.pressed) {
        layer_on(_RAISE);
        } else {
        layer_off(_RAISE);
        }
        return false;
    case ADJUST:
    if (record->event.pressed) {
        layer_on(_ADJUST);
        } else {
        layer_off(_ADJUST);
        }
        return false;
 // == Macros START ===
    case IARROW: if (record->event.pressed) SEND_STRING("<-"); return false;
    case ARROW: if (record->event.pressed) SEND_STRING("->"); return false;
    case F_ARROW: if (record->event.pressed) SEND_STRING("=>"); return false;
    case GREP: if (record->event.pressed) SEND_STRING(" | grep "); return false;
    case CLN_EQ: if (record->event.pressed) SEND_STRING(":="); return false;
 // == Macros END ===
 // == Multi Os START ===
  case KC_HOME:// make the home behave the same on OSX
    if (record->event.pressed && onMac) {
        SEND_STRING(SS_LCTRL("a"));
        return false;
    }
  case KC_END:// make the end behave the same on OSX
    if (record->event.pressed && onMac) {
        tap_code16(C(KC_E));
        return false;
    }
  case AC_A:// Accent á
    if (record->event.pressed) SEND_STRING(SS_LALT("e") "a"); return false;
  case AC_E:// Accent é
    if (record->event.pressed) SEND_STRING(SS_LALT("e") "e"); return false;
  case AC_I:// Accent í
    if (record->event.pressed) SEND_STRING(SS_LALT("e") "i"); return false;
  case AC_O:// Accent ó
    if (record->event.pressed) SEND_STRING(SS_LALT("e") "o"); return false;
  case CUT: if (record->event.pressed) return CMD(KC_X);
  case COPY:
    if (record->event.pressed) {
     onMac ?  SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTRL("c"));
    }
    return false;
  case PASTE:
    if (record->event.pressed) {
     onMac ?  SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTRL("v"));
    }
    return false;
  case SAVE:
    if (record->event.pressed) {
     onMac ?  SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTRL("s"));
    }
    return false;
  case UNDO:
    if (record->event.pressed) {
     onMac ?  SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTRL("z"));
    }
    return false;
  case FIND:
    if (record->event.pressed) {
     onMac ?  SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTRL("f"));
    }
    return false;
  case CHG_LAYOUT:
    if (record->event.pressed) {
     onMac ?  SEND_STRING(SS_LCTRL(" ")) : SEND_STRING(SS_LCTRL("f"));
    }
    return false;
 // == Multi Os END ===
        case QWERTY:
            if (record->event.pressed) {
#ifdef AUDIO_ENABLE
                PLAY_SONG(tone_qwerty);
#endif
                layer_on(_QWERTY);
            }
            return false;
        case LOWER:
            if (record->event.pressed) {
                layer_on(_LOWER);
            } else {
                layer_off(_LOWER);
            }
            return false;
        case RAISE:
            if (record->event.pressed) {
                layer_on(_RAISE);
            } else {
                layer_off(_RAISE);
            }
            return false;
        case ADJUST:
            if (record->event.pressed) {
                layer_on(_ADJUST);
            } else {
                layer_off(_ADJUST);
            }
            return false;
            // == Macros START ===
        case IARROW:
            if (record->event.pressed) SEND_STRING("<-");
            return false;
        case ARROW:
            if (record->event.pressed) SEND_STRING("->");
            return false;
        case F_ARROW:
            if (record->event.pressed) SEND_STRING("=>");
            return false;
        case GREP:
            if (record->event.pressed) SEND_STRING(" | grep ");
            return false;
        case CLN_EQ:
            if (record->event.pressed) SEND_STRING(":=");
            return false;
            // == Macros END ===
            // == Multi Os START ===
        case KC_HOME:  // make the home behave the same on OSX
            if (record->event.pressed && onMac) {
                SEND_STRING(SS_LCTRL("a"));
                return false;
            }
        case KC_END:  // make the end behave the same on OSX
            if (record->event.pressed && onMac) {
                tap_code16(C(KC_E));
                return false;
            }
        case AC_A:  // Accent á
            if (record->event.pressed) SEND_STRING(SS_LALT("e") "a");
            return false;
        case AC_E:  // Accent é
            if (record->event.pressed) SEND_STRING(SS_LALT("e") "e");
            return false;
        case AC_I:  // Accent í
            if (record->event.pressed) SEND_STRING(SS_LALT("e") "i");
            return false;
        case AC_O:  // Accent ó
            if (record->event.pressed) SEND_STRING(SS_LALT("e") "o");
            return false;
        case CUT:
            if (record->event.pressed) return CMD(KC_X);
        case COPY:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTRL("c"));
            }
            return false;
        case PASTE:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTRL("v"));
            }
            return false;
        case SAVE:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTRL("s"));
            }
            return false;
        case UNDO:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTRL("z"));
            }
            return false;
        case REDO:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LGUI(SS_LSFT("z"))) : SEND_STRING(SS_LCTRL("y"));
            }
            return false;
        case FIND:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTRL("f"));
            }
            return false;
        case WIN_TO_RIGHT:
            if (record->event.pressed) {
                onMac ? tap_code16(SGUI(A(KC_RIGHT))) : tap_code16(G(KC_RIGHT));
            }
            return false;
        case WIN_TO_LEFT:
            if (record->event.pressed) {
                onMac ? tap_code16(SGUI(A(KC_LEFT))) : tap_code16(G(KC_LEFT));
            }
            return false;
        case CHG_LAYOUT:
            if (record->event.pressed) {
                onMac ? SEND_STRING(SS_LCTRL(" ")) : SEND_STRING(SS_LCTRL("f"));
            }
            return false;
            // == Multi Os END ===
#ifdef RGBLIGHT_ENABLE
  case RGB_SLD:
    if (record->event.pressed) { rgblight_mode(1); }
    return false;
    break;
    //First time alt + tab, and alt stays sticky. Next press we just send tab. Any other key releases the alt
        case RGB_SLD:
            if (record->event.pressed) {
                rgblight_mode(1);
            }
            return false;
            break;
            // First time alt + tab, and alt stays sticky. Next press we just send tab. Any other key releases the alt
#endif
  }
// =============== ALT_TAB single key handling
  return process_alt_tab(keycode, record);
    }
    // =============== ALT_TAB single key handling
    return process_alt_tab(keycode, record);
};




M users/danielo515/process_records.h => users/danielo515/process_records.h +48 -46
@@ 1,35 1,36 @@
#pragma once
#include "quantum.h"

enum custom_keycodes
{
    EPRM = SAFE_RANGE, 
    RGB_SLD,
enum custom_keycodes {
    RGB_SLD = SAFE_RANGE,
    ALT_TAB,
    QWERTY,
    SYM,
    NAV,
    ADJUST,
// Macros
    // Macros
    ARROW,
    IARROW,
    CLN_EQ,
    F_ARROW,
    GREP,
// Accented characters
    // Accented characters
    AC_A,
    AC_E,
    AC_I,
    AC_O,
// Custom multi-os key-codes
    // Custom multi-os key-codes
    CUT,
    COPY,
    PASTE,
    SAVE,
    UNDO,
    REDO,
    CHG_LAYOUT,
    FIND,
// OTHER OLD STUFF
    WIN_TO_LEFT,
    WIN_TO_RIGHT,
    // OTHER OLD STUFF
    LOWER,
    RAISE,
    MAC_TGL,


@@ 57,48 58,49 @@ enum layers {
};

//===== Function letters
# define FN_F LT(_F,KC_F)
# define FN_D LT(_D,KC_D)
# define FN_S LT(_S,KC_S)
# define FN_A LT(_A,KC_A)
# define FN_K LT(_K,KC_K)
# define FN_J LT(_J,KC_J)
# define KC_FN_D FN_D
# define KC_FN_S FN_S
# define KC_FN_F FN_F
#define FN_F LT(_F, KC_F)
#define FN_D LT(_D, KC_D)
#define FN_S LT(_S, KC_S)
#define FN_A LT(_A, KC_A)
#define FN_K LT(_K, KC_K)
#define FN_J LT(_J, KC_J)
#define KC_FN_D FN_D
#define KC_FN_S FN_S
#define KC_FN_F FN_F

# define KC_MACROS OSL(_MACROS)
#define KC_MACROS OSL(_MACROS)


# define KC_E_COLN LSFT(KC_DOT)
# define KC_E_EQL ES_EQL
# define KC_GUI OSM(MOD_RGUI)
# define KC_R_NUB S(KC_NUBS)
# define KC_E_LT KC_NUBS
# define KC_E_GT S(KC_NUBS)
# define KC_E_TILD ES_TILD
# define KC_E_MINS ES_MINS
# define KC_E_OVRR ES_OVRR
# define KC_E_APOS ES_APOS
# define KC_E_IEXL ES_IEXL
#define KC_E_COLN LSFT(KC_DOT)
#define KC_E_EQL ES_EQL
#define KC_GUI OSM(MOD_RGUI)
#define KC_R_NUB S(KC_NUBS)
#define KC_E_LT KC_NUBS
#define KC_E_GT S(KC_NUBS)
#define KC_E_TILD ES_TILD
#define KC_E_MINS ES_MINS
#define KC_E_OVRR ES_OVRR
#define KC_E_APOS ES_APOS
#define KC_E_IEXL ES_IEXL
//==========  Short hand for complex key combinations
# define WIN_LEFT_HALF LALT(LGUI(KC_LEFT))
# define WIN_RIGHT_HALF LALT(LGUI(KC_RIGHT))
# define WIN_TO_LEFT LALT(LSFT( LGUI(KC_LEFT) ))
# define WIN_TO_RIGHT LALT(LSFT( LGUI(KC_RIGHT) ))
# define ALL_WIN LCTL(KC_DOWN)
# define EXPOSE LGUI(KC_DOWN)
#define WIN_LEFT_HALF LALT(LGUI(KC_LEFT))
#define WIN_RIGHT_HALF LALT(LGUI(KC_RIGHT))
#define ALL_WIN LCTL(KC_DOWN)
#define EXPOSE LGUI(KC_DOWN)
// ========== Modifiers!!
# define SHIFT OSM(MOD_LSFT)
#define SHIFT OSM(MOD_LSFT)
//=============== tap for key hold for mod
# define HYPR_H HYPR_T(KC_H)
# define CTL_K RCTL_T(KC_K)
# define ALT_J ALT_T(KC_J)
# define SFT_MINS LSFT_T(KC_MINS) // tap - hold shift
# define CMD_QUOT GUI_T(KC_QUOTE) // tap ' hold cmd
#define HYPR_H HYPR_T(KC_H)
#define CTL_K RCTL_T(KC_K)
#define ALT_J ALT_T(KC_J)
#define SFT_MINS LSFT_T(KC_MINS)   // tap - hold shift
#define CMD_MINS GUI_T(KC_MINS)    // tap - hold cmd
#define CMD_QUOT GUI_T(KC_QUOTE)   // tap ' hold cmd
#define SFT_QUOT LSFT_T(KC_QUOTE)  // tap ' hold shift
//=============== Movement modified
# define CTL_LEFT LCTL(KC_LEFT)
# define CTL_RIGHT LCTL(KC_RIGHT)
#define CTL_LEFT LCTL(KC_LEFT)
#define CTL_RIGHT LCTL(KC_RIGHT)

# define SFT_LEFT LSFT(KC_LEFT)
# define SFT_RIGHT LSFT(KC_RIGHT)
#define SFT_LEFT LSFT(KC_LEFT)
#define SFT_RIGHT LSFT(KC_RIGHT)
#define SFT_LEFT_END LGUI(LSFT(KC_LEFT))
#define SFT_RIGHT_END LGUI(LSFT(KC_RIGHT))