Added one-handed layers

master
Mark 2023-12-13 17:46:21 -08:00
parent 7f1253abe7
commit c0c1312a6b
No known key found for this signature in database
GPG Key ID: B4DF96450FAAD9F2
11 changed files with 231 additions and 96 deletions

View File

@ -4,7 +4,7 @@
// Timeout resets after each keypress
#define LEADER_PER_KEY_TIMING
#define LEADER_TIMEOUT 100
#define LEADER_TIMEOUT 200
// Enable spellcheck over HID
@ -26,6 +26,6 @@
//#define RGBLIGHT_EFFECT_TWINKLE
// Custom effects
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define ENABLE_RGB_MATRIX_FFT_ANIM // Requires framebuffer
// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// #define ENABLE_RGB_MATRIX_FFT_ANIM // Requires framebuffer

View File

@ -57,6 +57,7 @@ enum tap_dance_codes {
#define LC_CYAN LC_HSV(134, 255, 213)
#define LC_ORANGE LC_HSV( 14, 255, 255)
#define LC_WHITE LC_HSV( 0, 0, 150)
#define LC_RED LC_HSV( 0, 255, 145)
#define LC_RU_B LC_HSV( 0, 0, 165)
#define LC_RU_G LC_HSV(153, 255, 153)

View File

@ -9,26 +9,26 @@
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
TO(LAYER_MAIN), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KC_NO,\
KC_NO, KC_NO, LGUI(LCTL(KC_ENTER)), KC_NO, KC_NO, LGUI(KC_T), KC_NO,\
KC_NO, LGUI(KC_EQL), LGUI(KC_MINUS), KC_NO, LGUI(KC_F), LGUI(KC_G),\
KC_NO, KC_NO, KC_NO, LGUI(LSFT(KC_C)), LGUI(KC_N), LGUI(KC_M), KC_NO,\
TO(LAYER_MAIN), KC_NO, KC_NO, KC_NO, KC_NO,\
KC_MEDIA_PLAY_PAUSE, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KC_NO,\
LGUI(KC_TAB), KC_NO, LGUI(LCTL(KC_ENTER)), KC_NO, KC_NO, LGUI(KC_T), KC_NO,\
KC_NO, LGUI(KC_EQL), LGUI(KC_MINUS), KC_NO, LGUI(KC_F), LGUI(KC_G),\
KC_NO, KC_NO, KC_NO, LGUI(LSFT(KC_C)), LGUI(KC_N), LGUI(KC_M), KC_NO,\
KC_NO, KC_NO, KC_NO, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK,\
\
KC_NO, M_RESETWM,\
KC_NO,\
KC_NO, M_RESETWM,\
KC_NO,\
LGUI(KC_ENTER), LGUI(KC_BSLS), KC_NO,\
\
\
M_SHUTDOWN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LGUI(KC_P), KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, LGUI(KC_H), LGUI(KC_J), KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
M_SHUTDOWN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LGUI(KC_P), KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
\
KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK,\
KC_AUDIO_VOL_UP,\
KC_AUDIO_VOL_DOWN, KC_MEDIA_STOP, KC_MEDIA_PLAY_PAUSE\
KC_NO, KC_NO,\
KC_NO, \
KC_NO, KC_NO, KC_NO\
)
BETA_LAYER_MAGIC_MACRO

View File

@ -0,0 +1,58 @@
// See symbols.h for docs
#define BETA_LAYER_MAGIC_MACRO BETA_LAYER(FKEYS)
#ifdef BETA_LAYER_LAYOUTS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_NULL
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
TO(LAYER_MAIN), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,\
KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_NO,\
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,\
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO,\
\
KC_TRNS, KC_TRNS,\
KC_TRNS,\
KC_TRNS, KC_TRNS, KC_TRNS,\
\
\
KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, \
KC_NO, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(LAYER_MAIN), \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
\
KC_TRNS, KC_TRNS,\
KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS \
)
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_LEDS
#define BETA_LAYER_CONTEXT_DATA LEDS_ergodox(\
LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, \
LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
\
LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, \
LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF \
)
BETA_LAYER_MAGIC_MACRO
#endif
#undef BETA_LAYER_CONTEXT_DATA
#undef BETA_LAYER_MAGIC_MACRO

View File

@ -10,7 +10,7 @@
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
TO(LAYER_MAIN), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,\
KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_NO,\
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,\
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,\
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO,\
@ -20,11 +20,11 @@
KC_TRNS, KC_TRNS, KC_TRNS,\
\
\
KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, \
KC_NO, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(LAYER_MAIN), \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(LAYER_MAIN), \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
\
KC_TRNS, KC_TRNS,\
KC_TRNS, \
@ -43,8 +43,8 @@
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
\
LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, \
LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, LC_CYAN, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF \

View File

@ -0,0 +1,118 @@
// See symbols.h for docs
#define BETA_LAYER_MAGIC_MACRO BETA_LAYER(FLIP)
#ifdef BETA_LAYER_LAYOUTS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_EN
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
KC_ESCAPE, KC_0, KC_9, KC_8, KC_7, KC_6, TO(LAYER_NUMPAD),\
KC_TAB, KC_NO, KC_O, KC_I, KC_U, KC_Y, KC_LGUI,\
KC_DELETE, KC_L, OSL(LAYER_FLIP_SYMBOLS_A), KC_K, KC_J, KC_H,\
KC_LCTL, KC_COMMA, KC_DOT, KC_P, KC_M, KC_N, KC_LALT,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
\
TD(TD_SCREENSHOT), TD(TD_OCR),\
TD(TD_WMLAYOUT),\
KC_ENTER, KC_RSFT, KC_NO,\
\
\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
\
KC_NO, KC_NO,\
KC_NO,\
KC_NO, KC_NO, KC_NO\
)
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_LEDS
#define BETA_LAYER_CONTEXT_DATA LEDS_ergodox(\
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF,\
\
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF \
)
BETA_LAYER_MAGIC_MACRO
#endif
#undef BETA_LAYER_CONTEXT_DATA
#undef BETA_LAYER_MAGIC_MACRO
#define BETA_LAYER_MAGIC_MACRO BETA_LAYER(FLIP_SYMBOLS_A)
#ifdef BETA_LAYER_LAYOUTS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_EN
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO,\
KC_NO, KC_GRAVE, KC_LPRN, KC_RPRN, KC_QUES, KC_LCBR, KC_TRNS,\
KC_NO, KC_TILD, KC_QUOTE, KC_COMMA, KC_DOT, KC_DQUO,\
KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_EXLM, KC_RCBR, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
\
KC_NO, KC_NO,\
KC_NO,\
KC_NO, KC_NO, KC_NO,\
\
\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
\
KC_NO, KC_NO,\
KC_NO,\
KC_NO, KC_NO, KC_NO\
)
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_LEDS
#define BETA_LAYER_CONTEXT_DATA LEDS_ergodox(\
LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
LC_ORANGE, LC_CYAN, LC_CYAN, LC_PINK, LC_CYAN, \
LC_ORANGE, LC_PINK, LC_PINK, LC_PINK, LC_PINK, \
LC_OFF, LC_CYAN, LC_CYAN, LC_PINK, LC_CYAN, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF, \
\
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_RED, LC_RED, LC_RED, LC_RED, LC_RED, \
LC_OFF, LC_OFF, LC_OFF, LC_OFF \
)
BETA_LAYER_MAGIC_MACRO
#endif
#undef BETA_LAYER_CONTEXT_DATA
#undef BETA_LAYER_MAGIC_MACRO

View File

@ -9,16 +9,16 @@
// These MUST be first, since they activate other layers.
// (For example, LAYER_ARROWS overlays on top of LAYER_MAIN.)
#include "main.h"
#include "russian.h"
#include "plain.h"
// The order of these doesn't really matter,
// since only one will be active at a time.
#include "symbols.h"
#include "symbols_ru.h"
#include "flip.h"
#include "arrows.h"
#include "desktop.h"

View File

@ -12,19 +12,19 @@
KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, TO(LAYER_NUMPAD),\
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI,\
KC_DELETE, KC_A, KC_S, KC_D, KC_F, KC_G,\
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT,\
OSL(LAYER_DESKTOP), KC_NO, KC_NO, KC_LSFT, MO(LAYER_ARROWS),\
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT,\
OSL(LAYER_DESKTOP), OSL(LAYER_FKEYS), KC_NO, KC_LSFT, MO(LAYER_ARROWS),\
\
TD(TD_SCREENSHOT), TD(TD_OCR),\
TD(TD_WMLAYOUT),\
KC_SPACE, KC_BSPC, KC_NO,\
KC_SPACE, KC_BSPC, OSL(LAYER_FLIP),\
\
\
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_TAB),\
KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_NO, KC_NO,\
KC_H, KC_J, KC_K, MO(LAYER_SYMBOLS), KC_L, KC_LEAD,\
KC_DLR, KC_N, KC_M, KC_P, KC_DOT, KC_COMMA, TT(LAYER_FKEYS),\
KC_RIGHT, KC_NO, TO(LAYER_KEYBOARD), KC_NO, LGUI(KC_SPACE),\
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_TAB),\
KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_NO, KC_NO,\
KC_H, KC_J, KC_K, MO(LAYER_SYMBOLS), KC_L, KC_LEAD,\
KC_NO, KC_N, KC_M, KC_P, KC_DOT, KC_COMMA, KC_NO,\
KC_RIGHT, KC_NO, TO(LAYER_KEYBOARD), KC_NO, LGUI(KC_SPACE),\
\
KC_NO, KC_NO,\
KC_NO, \

View File

@ -1,46 +0,0 @@
// See symbols.h for docs
#define BETA_LAYER_MAGIC_MACRO BETA_LAYER(PLAIN)
#ifdef BETA_LAYER_LAYOUTS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_EN
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSCR,\
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI,\
KC_DELETE, KC_A, KC_S, KC_D, KC_F, KC_G,\
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP,\
KC_LALT, KC_NO, KC_NO, KC_LSFT, MO(LAYER_ARROWS),\
\
KC_F1, KC_F2,\
KC_F3,\
KC_SPACE, KC_BSPC, KC_F4,\
\
\
KC_SCRL, KC_6, KC_7, KC_8, KC_9, KC_0, TO(LAYER_MAIN),\
KC_PAUSE, KC_Y, KC_U, KC_I, KC_O, KC_QUES, KC_HOME,\
KC_H, KC_J, KC_K, KC_DOT, KC_L, KC_END,\
KC_PGDN, KC_N, KC_M, KC_P, KC_COLON, KC_GRAVE, TT(LAYER_FKEYS),\
KC_UP, KC_DOWN, KC_LCBR, KC_RCBR, KC_DQUO,\
\
KC_F7, KC_F8,\
KC_F6,\
KC_F5, KC_RSFT, KC_ENTER\
)
BETA_LAYER_MAGIC_MACRO
#endif
#ifdef BETA_LAYER_INDICATORS
case BETA_LAYER_MAGIC_MACRO:
//ergodox_right_led_1_on();
ergodox_right_led_2_on();
//ergodox_right_led_3_on();
break;
#endif
#undef BETA_LAYER_CONTEXT_DATA
#undef BETA_LAYER_MAGIC_MACRO

View File

@ -37,7 +37,7 @@
#ifdef BETA_LAYER_KEYS
#define BETA_LAYER_CONTEXT_DATA LAYOUT_ergodox(\
KC_NO, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO,\
KC_NO, KC_GRAVE, KC_LPRN, KC_RPRN, KC_QUES, KC_LCBR, KC_TRNS,\
KC_NO, KC_GRAVE, KC_LPRN, KC_RPRN, KC_QUES, KC_LCBR, KC_NO,\
KC_NO, KC_TILD, KC_QUOTE, KC_COMMA, KC_DOT, KC_DQUO,\
KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_EXLM, KC_RCBR, KC_NO,\
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\

View File

@ -18,21 +18,25 @@ void matrix_scan_user(void) {
SEND_STRING(SECRET_SCHOOL_EMAIL);
}
SEQ_TWO_KEYS(KC_P, KC_L) {
layer_move(LAYER_PLAIN);
SEQ_THREE_KEYS(KC_L, KC_I, KC_G) {
// TODO: cleanup.
// This is a copy of RGB_TOG
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
keyboard_config.rgb_matrix_enable = false;
rgb_matrix_set_color_all(0, 0, 0);
}
break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
keyboard_config.rgb_matrix_enable = true;
}
break;
}
eeconfig_update_kb(keyboard_config.raw);
}
// LaTeX
SEQ_TWO_KEYS(KC_B, KC_R) { SEND_STRING("\\mathbb{R}"); }
SEQ_TWO_KEYS(KC_B, KC_Z) { SEND_STRING("\\mathbb{Z}"); }
SEQ_TWO_KEYS(KC_B, KC_Q) { SEND_STRING("\\mathbb{Q}"); }
SEQ_TWO_KEYS(KC_B, KC_N) { SEND_STRING("\\mathbb{N}"); }
SEQ_TWO_KEYS(KC_P, KC_B) { SEND_STRING("\\pagebreak"); }
SEQ_TWO_KEYS(KC_V, KC_S) { SEND_STRING("\\vspace"); }
//SEQ_ONE_KEY(KC_F) {}
//
//SEQ_TWO_KEYS(KC_A, KC_S) {