[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>
This commit is contained in:
parent
ac24f203cc
commit
8ac9940a76
5 changed files with 251 additions and 205 deletions
|
@ -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),
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ===
|
||||
#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 QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
}
|
||||
// =============== ALT_TAB single key handling
|
||||
return process_alt_tab(keycode, record);
|
||||
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
|
||||
#endif
|
||||
}
|
||||
// =============== ALT_TAB single key handling
|
||||
return process_alt_tab(keycode, record);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue