diff options
| author | rupa <rdeadwyler@ns1.com> | 2020-11-10 00:04:46 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-10 16:04:46 +1100 |
| commit | a9f65b760a49744b13d822ab359876a52779bd9e (patch) | |
| tree | f5e64f0d55df4f170e05f5f9d26218388102e628 | |
| parent | 53f11668a3399ff1bdf82902a7717832831219bf (diff) | |
| download | qmk_firmware-a9f65b760a49744b13d822ab359876a52779bd9e.tar.gz qmk_firmware-a9f65b760a49744b13d822ab359876a52779bd9e.zip | |
userspace and keymap changes for rupa (#10489)
* userspace and keymap changes for rupa
* remove layout wrappers and blocker rows from wrappers
handle this in keymaps for now
| -rw-r--r-- | keyboards/tada68/keymaps/rupa/config.h | 7 | ||||
| -rwxr-xr-x | keyboards/tada68/keymaps/rupa/keymap.c | 71 | ||||
| -rwxr-xr-x | keyboards/tada68/keymaps/rupa/readme.md | 8 | ||||
| -rw-r--r-- | keyboards/tada68/keymaps/rupa/rules.mk | 1 | ||||
| -rw-r--r-- | users/rupa/config.h | 3 | ||||
| -rw-r--r--[-rwxr-xr-x] | users/rupa/process_records.c | 118 | ||||
| -rw-r--r--[-rwxr-xr-x] | users/rupa/process_records.h | 0 | ||||
| -rw-r--r-- | users/rupa/readme.md | 7 | ||||
| -rw-r--r-- | users/rupa/rules.mk | 2 | ||||
| -rw-r--r--[-rwxr-xr-x] | users/rupa/rupa.c | 43 | ||||
| -rw-r--r--[-rwxr-xr-x] | users/rupa/rupa.h | 50 | ||||
| -rw-r--r--[-rwxr-xr-x] | users/rupa/unicode.c | 167 | ||||
| -rw-r--r--[-rwxr-xr-x] | users/rupa/unicode.h | 52 | ||||
| -rw-r--r-- | users/rupa/wrappers.h | 122 |
14 files changed, 519 insertions, 132 deletions
diff --git a/keyboards/tada68/keymaps/rupa/config.h b/keyboards/tada68/keymaps/rupa/config.h index ddbf0ab66..e1a6eb1a2 100644 --- a/keyboards/tada68/keymaps/rupa/config.h +++ b/keyboards/tada68/keymaps/rupa/config.h | |||
| @@ -1,10 +1,3 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 3 | #define GRAVE_ESC_ALT_OVERRIDE | 3 | #define GRAVE_ESC_ALT_OVERRIDE |
| 4 | |||
| 5 | /* disable features */ | ||
| 6 | //#define NO_ACTION_LAYER | ||
| 7 | //#define NO_ACTION_TAPPING | ||
| 8 | //#define NO_ACTION_ONESHOT | ||
| 9 | #define NO_ACTION_MACRO | ||
| 10 | #define NO_ACTION_FUNCTION | ||
diff --git a/keyboards/tada68/keymaps/rupa/keymap.c b/keyboards/tada68/keymaps/rupa/keymap.c index 3a8a55056..ce95673af 100755 --- a/keyboards/tada68/keymaps/rupa/keymap.c +++ b/keyboards/tada68/keymaps/rupa/keymap.c | |||
| @@ -1,45 +1,38 @@ | |||
| 1 | #include "rupa.h" | 1 | #include "rupa.h" |
| 2 | 2 | ||
| 3 | #define LAYOUT_65_ansi_wrapper(...) LAYOUT_65_ansi(__VA_ARGS__) | ||
| 4 | |||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 5 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 4 | /* Keymap _QWERTY: (Base Layer) Default Layer | 6 | [_QWERTY] = LAYOUT_65_ansi_wrapper( |
| 5 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | 7 | ____65_QWERTY______________ROW1, |
| 6 | * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│~ `│ | 8 | ____65_QWERTY______________ROW2, |
| 7 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ | 9 | ____65_QWERTY______________ROW3, |
| 8 | * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ | 10 | ____65_QWERTY______________ROW4, |
| 9 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ | 11 | ____65_QWERTY______________ROW5 |
| 10 | * │ Fn │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ | ||
| 11 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ | ||
| 12 | * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │PgD│ | ||
| 13 | * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ | ||
| 14 | * │Ctrl│Alt │Gui │ Space │Fn │Alt│Ctl│ ← │ ↓ │ → │ | ||
| 15 | * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ | ||
| 16 | */ | ||
| 17 | [_QWERTY] = LAYOUT_65_ansi( | ||
| 18 | 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_BSPC, KC_GRV, | ||
| 19 | 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, | ||
| 20 | RAISE, 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_PGUP, | ||
| 21 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | ||
| 22 | KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, RAISE, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 23 | ), | 12 | ), |
| 24 | 13 | [_RAISE] = LAYOUT_65_ansi_wrapper( | |
| 25 | /* Keymap _RAISE: Function Layer | 14 | ____65_RAISE_______________ROW1, |
| 26 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | 15 | ____65_RAISE_______________ROW2, |
| 27 | * │LOD│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del │Hme│ | 16 | ____65_RAISE_______________ROW3, |
| 28 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ | 17 | ____65_RAISE_______________ROW4, |
| 29 | * │ │VSN│U_s│U_f│U_m│ │ │uni│ │ ॐ │ │♩ ♪│♫ ♬│★ ☆ │Ins│ | 18 | ____65_RAISE_______________ROW5 |
| 30 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ | 19 | ), |
| 31 | * │ │ │ │ │ │ │ │ │ │ │ │ │ ✓ │End│ | 20 | [_LOWER] = LAYOUT_65_ansi_wrapper( |
| 32 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ | 21 | ____65_LOWER_______________ROW1, |
| 33 | * │ RShift │ ⸮ │Rup│Brt│Bls│Blt│ │Mut│V- │V+ │‽ ☭│ McL│M↑ │McR│ | 22 | ____65_LOWER_______________ROW2, |
| 34 | * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ | 23 | ____65_LOWER_______________ROW3, |
| 35 | * │RCtl│RAlt│RGui│ │ │ │CAP│M← │M↓ │M→ │ | 24 | ____65_LOWER_______________ROW4, |
| 36 | * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ | 25 | ____65_LOWER_______________ROW5 |
| 37 | */ | 26 | ), |
| 38 | [_RAISE] = LAYOUT_65_ansi( | 27 | [_ADJUST] = LAYOUT_65_ansi_wrapper( |
| 39 | LOD, 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_DEL, KC_HOME, | 28 | ____65_ADJUST______________ROW1, |
| 40 | _______, VRSN, U_SCRPT, U_FRACT, U_MONOS, _______, _______, UC_MOD, _______, X(OM), _______, XP(M4,M8), XP(M8B,M16), XP(STB, STW), KC_INS, | 29 | ____65_ADJUST___________BL_ROW2, |
| 41 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, X(CHEK), KC_END, | 30 | ____65_ADJUST______________ROW3, |
| 42 | OS_RSFT, X(IRNY), RUPA, BL_BRTG, BL_STEP, BL_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, XP(IBNG,HAS), KC_BTN1, KC_MS_U, KC_BTN2, | 31 | ____65_ADJUST______________ROW4, |
| 43 | OS_RCTL, OS_RALT, OS_RGUI, _______, _______, _______, KC_CAPS, KC_MS_L, KC_MS_D, KC_MS_R | 32 | ____65_ADJUST______________ROW5 |
| 44 | ), | 33 | ), |
| 45 | }; | 34 | }; |
| 35 | |||
| 36 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
| 37 | return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); | ||
| 38 | } | ||
diff --git a/keyboards/tada68/keymaps/rupa/readme.md b/keyboards/tada68/keymaps/rupa/readme.md index 77629131a..eea966fdb 100755 --- a/keyboards/tada68/keymaps/rupa/readme.md +++ b/keyboards/tada68/keymaps/rupa/readme.md | |||
| @@ -2,9 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | i've swapped the lufa-ms bootloader for caterina | 3 | i've swapped the lufa-ms bootloader for caterina |
| 4 | 4 | ||
| 5 | most everything is in my userspace dir | 5 | most everything is in my [userspace](../../../../users/rupa/) |
| 6 | |||
| 7 | console mode is on, and there's barely any room left! | ||
| 8 | 6 | ||
| 9 | * win/alt -> alt/cmd | 7 | * win/alt -> alt/cmd |
| 10 | * alt/fn -> fn/alt | 8 | * alt/fn -> fn/alt |
| @@ -16,6 +14,6 @@ fn layer: | |||
| 16 | * rotate mute/vol | 14 | * rotate mute/vol |
| 17 | * backlight -> breathing, step, toggle | 15 | * backlight -> breathing, step, toggle |
| 18 | * swap home and ins | 16 | * swap home and ins |
| 19 | * unicode chars sprinkled around | 17 | * unicode chars and strings sprinkled around |
| 20 | * script mode! | 18 | * script modes! |
| 21 | * (one-shot) right versions of shift/ctl/alt/gui (not working quite right yet) | 19 | * (one-shot) right versions of shift/ctl/alt/gui (not working quite right yet) |
diff --git a/keyboards/tada68/keymaps/rupa/rules.mk b/keyboards/tada68/keymaps/rupa/rules.mk index df6f5674b..1777fc10a 100644 --- a/keyboards/tada68/keymaps/rupa/rules.mk +++ b/keyboards/tada68/keymaps/rupa/rules.mk | |||
| @@ -1,4 +1,3 @@ | |||
| 1 | BOOTLOADER = caterina | 1 | BOOTLOADER = caterina |
| 2 | 2 | ||
| 3 | UNICODEMAP_ENABLE = yes | ||
| 4 | CONSOLE_ENABLE = yes | 3 | CONSOLE_ENABLE = yes |
diff --git a/users/rupa/config.h b/users/rupa/config.h index 902405204..723d9b3b5 100644 --- a/users/rupa/config.h +++ b/users/rupa/config.h | |||
| @@ -5,4 +5,7 @@ | |||
| 5 | #define ONESHOT_TAP_TOGGLE 5 | 5 | #define ONESHOT_TAP_TOGGLE 5 |
| 6 | #define ONESHOT_TIMEOUT 5000 | 6 | #define ONESHOT_TIMEOUT 5000 |
| 7 | 7 | ||
| 8 | #undef TAP_CODE_DELAY | ||
| 8 | #define TAP_CODE_DELAY 5 //DEFAULT: 100 | 9 | #define TAP_CODE_DELAY 5 //DEFAULT: 100 |
| 10 | |||
| 11 | //#define UNICODE_SCRIPT_MODE_ENABLE | ||
diff --git a/users/rupa/process_records.c b/users/rupa/process_records.c index 2d7231010..2d23e3401 100755..100644 --- a/users/rupa/process_records.c +++ b/users/rupa/process_records.c | |||
| @@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 17 | 17 | ||
| 18 | #include "rupa.h" | 18 | #include "rupa.h" |
| 19 | 19 | ||
| 20 | font_t *translator = NULL; | 20 | uint16_t processed_keycode; |
| 21 | 21 | ||
| 22 | __attribute__((weak)) | 22 | __attribute__((weak)) |
| 23 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | 23 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { |
| @@ -25,47 +25,93 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 27 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 28 | bool is_shifted = get_mods()&MOD_MASK_SHIFT; | 28 | if (record->event.pressed) { |
| 29 | bool is_pressed = record->event.pressed; | ||
| 30 | 29 | ||
| 31 | switch(keycode) { | 30 | processed_keycode = keycode; |
| 32 | case VRSN: | 31 | // mask out mod taps |
| 33 | if (is_pressed) { | 32 | if ( |
| 33 | (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || | ||
| 34 | (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) | ||
| 35 | ) { | ||
| 36 | processed_keycode &= 0xFF; | ||
| 37 | } | ||
| 38 | |||
| 39 | bool is_shifted = (get_mods() | get_oneshot_mods() | get_weak_mods()) & MOD_MASK_SHIFT; | ||
| 40 | switch(processed_keycode) { | ||
| 41 | case VRSN: | ||
| 34 | send_string_with_delay_P(PSTR( | 42 | send_string_with_delay_P(PSTR( |
| 35 | "# " QMK_KEYBOARD "/" QMK_KEYMAP ":" QMK_VERSION " " QMK_BUILDDATE "\n" | 43 | "# " QMK_KEYBOARD "/" QMK_KEYMAP ":" QMK_VERSION " " QMK_BUILDDATE "\n" |
| 36 | ), TAP_CODE_DELAY); | 44 | ), TAP_CODE_DELAY); |
| 37 | } | 45 | return false; |
| 38 | return false; | ||
| 39 | 46 | ||
| 40 | case LOD: | 47 | case BUGS: |
| 41 | case RUPA: | 48 | return u_xp(is_shifted, "ᙙᙖ", "ଳ"); |
| 42 | if (is_pressed) { | 49 | case CATS: |
| 43 | if (keycode == LOD) { | 50 | return u_xp(is_shifted, "ⓛ ᆽ ⓛ ", "ㅇㅅㅇ"); |
| 44 | send_unicode_string((is_shifted ? "¯\\_(ツ)_/¯" : "ಠ_ಠ")); | 51 | case DANCE: |
| 45 | } else if (keycode == RUPA) { | 52 | return u_x(dance(is_shifted)); |
| 46 | send_unicode_string((is_shifted ? "Śrīrūpa" : "rūpa")); | 53 | case DICE: |
| 47 | } | 54 | return u_x(d6()); |
| 48 | } | 55 | case DOMO: |
| 49 | return false; | 56 | return u_xp(is_shifted, "(シ_ _)シ", "m(_ _)m"); |
| 57 | case FART: | ||
| 58 | return u_x("⊥ʶ∀Ⅎ"); | ||
| 59 | case FLIP: | ||
| 60 | return u_x(flip(is_shifted)); | ||
| 61 | case HUGS: | ||
| 62 | return u_xp(is_shifted, "(づ ̄ ³ ̄)づ", "(っಠ‿ಠ)っ"); | ||
| 63 | case JOY: | ||
| 64 | return u_x(joy(is_shifted)); | ||
| 65 | case RNDM: | ||
| 66 | return false; | ||
| 67 | case KISS: | ||
| 68 | return u_xp(is_shifted, "꒒ ০ ⌵ ୧ ♡", "( ˘ ³˘)♥"); | ||
| 69 | case LOD: | ||
| 70 | return u_xp(is_shifted, "( ͡ಠ ʖ̯ ͡ಠ)", "ಠ_ಠ"); | ||
| 71 | case MUSIC: | ||
| 72 | return u_xp(is_shifted, "(˳˘ ɜ˘)˳ ♬ ♪♫", "(´▽`)ノ♫"); | ||
| 73 | case RUPA: | ||
| 74 | return u_xp(is_shifted, "Śrīrūpa", "rūpa"); | ||
| 75 | case SHRUG: | ||
| 76 | return u_xp(is_shifted, "⋌ ༼ •̀ ⌂ •́ ༽⋋", "¯\\_(ツ)_/¯"); | ||
| 77 | case TADA: | ||
| 78 | return u_xp(is_shifted, "☆ *・゜゚・*(^O^)/*・゜゚・*☆", "\\(゜ロ\\)Ξ(//ロ゜)//"); | ||
| 79 | case WAT: | ||
| 80 | return u_xp(is_shifted, "༼ ຶཽཀ ຶཽ༽", "ヽ༼⊙_⊙༽ノ"); | ||
| 81 | case YUNO: | ||
| 82 | return u_xp(is_shifted, "o(^^o)", "щ(゜ロ゜щ)"); | ||
| 83 | case ZALGO: | ||
| 84 | set_combined_mode(CM_ZALGO); | ||
| 85 | break; | ||
| 86 | case ZZZZZ: | ||
| 87 | cycle_combined_mode(); | ||
| 88 | break; | ||
| 50 | 89 | ||
| 51 | // script modes | 90 | #if defined(UNICODE_SCRIPT_MODE_ENABLE) |
| 52 | case U_FRACT: | 91 | // script modes |
| 53 | case U_MONOS: | 92 | case U_FRACT: |
| 54 | case U_SCRPT: | 93 | return set_script_mode(F_FRACT); |
| 55 | if (is_pressed) { | 94 | case U_ITALI: |
| 56 | if (keycode == U_SCRPT) { | 95 | return set_script_mode(F_ITALI); |
| 57 | translator = (translator == &script_bold ? NULL : &script_bold); | 96 | case U_MONOS: |
| 58 | } else if (keycode == U_FRACT) { | 97 | return set_script_mode(F_MONOS); |
| 59 | translator = (translator == &fraktu_bold ? NULL : &fraktu_bold); | 98 | case U_NORML: |
| 60 | } else if (keycode == U_MONOS) { | 99 | return set_script_mode(F_NORML); |
| 61 | translator = (translator == &monosp_bold ? NULL : &monosp_bold); | 100 | case U_SANSI: |
| 62 | } | 101 | return set_script_mode(F_SANSI); |
| 63 | } | 102 | case U_SANSN: |
| 64 | return true; | 103 | return set_script_mode(F_SANSN); |
| 104 | case U_SCRPT: | ||
| 105 | return set_script_mode(F_SCRPT); | ||
| 65 | 106 | ||
| 66 | default: | 107 | default: |
| 67 | if (is_pressed && translator != NULL) { | 108 | if (get_script_mode() != NULL) { |
| 68 | return script_mode_translate(translator, is_shifted, keycode); | 109 | return script_mode_translate(is_shifted, processed_keycode); |
| 110 | } | ||
| 111 | if (combined_mode != CM_NULL && combined_text(processed_keycode)) { | ||
| 112 | return false; | ||
| 113 | } | ||
| 114 | #endif | ||
| 69 | } | 115 | } |
| 70 | } | 116 | } |
| 71 | return process_record_keymap(keycode, record); | 117 | return process_record_keymap(keycode, record); |
diff --git a/users/rupa/process_records.h b/users/rupa/process_records.h index 7c7fe491b..7c7fe491b 100755..100644 --- a/users/rupa/process_records.h +++ b/users/rupa/process_records.h | |||
diff --git a/users/rupa/readme.md b/users/rupa/readme.md new file mode 100644 index 000000000..b6c2dd1f7 --- /dev/null +++ b/users/rupa/readme.md | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | # rupa's userspace | ||
| 2 | |||
| 3 | * rupa.c has some unicode script mode stuff | ||
| 4 | * unicode.c has my unicode map | ||
| 5 | * process_record.c has my keycode handler | ||
| 6 | |||
| 7 | my keymap is in [keyboards/tada68](../../keyboards/tada68/keymaps/rupa/) | ||
diff --git a/users/rupa/rules.mk b/users/rupa/rules.mk index c4f147d91..ed33e85f3 100644 --- a/users/rupa/rules.mk +++ b/users/rupa/rules.mk | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | UNICODEMAP_ENABLE = yes | ||
| 2 | LTO_ENABLE = yes | ||
| 1 | SRC += rupa.c \ | 3 | SRC += rupa.c \ |
| 2 | process_records.c \ | 4 | process_records.c \ |
| 3 | unicode.c | 5 | unicode.c |
diff --git a/users/rupa/rupa.c b/users/rupa/rupa.c index 60fec3caf..85de5c16f 100755..100644 --- a/users/rupa/rupa.c +++ b/users/rupa/rupa.c | |||
| @@ -18,14 +18,46 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 18 | #include <print.h> | 18 | #include <print.h> |
| 19 | #include "rupa.h" | 19 | #include "rupa.h" |
| 20 | 20 | ||
| 21 | #if defined(UNICODE_SCRIPT_MODE_ENABLE) | ||
| 22 | const font_t * translator = NULL; | ||
| 23 | |||
| 21 | // https://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols | 24 | // https://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols |
| 22 | font_t script_bold = {0x1D4D0, 0x1D4EA, 0x1D7CE}; // with bold numbers | 25 | static const font_t *fonts_map[] = { |
| 23 | font_t fraktu_bold = {0x1D56C, 0x1D586, 0x1D7D8}; // with doublestruck numbers | 26 | [F_FRACT] = &(font_t){0x1D56C, 0x1D586, 0x1D7D8}, // fraktur/doublestruck numbers |
| 24 | font_t monosp_bold = {0x1D670, 0x1D68A, 0x1D7F6}; | 27 | [F_ITALI] = &(font_t){0x1D468, 0x1D482, 0x1D7CE}, // italic/bold numbers |
| 28 | [F_MONOS] = &(font_t){0x1D670, 0x1D68A, 0x1D7F6}, // monospace | ||
| 29 | [F_NORML] = &(font_t){0x1D400, 0x1D41A, 0x00030}, // normal! | ||
| 30 | [F_SANSI] = &(font_t){0x1D63C, 0x1D656, 0x1D7EC}, // sans 1talic/sans bold numbers | ||
| 31 | [F_SANSN] = &(font_t){0x1D5D4, 0x1D5EE, 0x1D7E2}, // sans normal/sans numbers | ||
| 32 | [F_SCRPT] = &(font_t){0x1D4D0, 0x1D4EA, 0x1D7CE}, // script/bold numbers | ||
| 33 | }; | ||
| 34 | |||
| 35 | /* | ||
| 36 | font_t doublestruc = {0x1D538, 0x1D552, 0x1D7D8}; | ||
| 37 | uint_32 []snowflakes = { | ||
| 38 | // doublestruck | ||
| 39 | 0x1D53B, // C | ||
| 40 | 0x1D540, // H | ||
| 41 | 0x1D546, // N | ||
| 42 | 0x1D548, // P | ||
| 43 | 0x1D549, // Q | ||
| 44 | 0x1D54A, // R | ||
| 45 | 0x1D552, // Z | ||
| 46 | }; | ||
| 47 | */ | ||
| 48 | |||
| 49 | const font_t *get_script_mode(void) { | ||
| 50 | return translator; | ||
| 51 | } | ||
| 52 | bool set_script_mode(int fc) { | ||
| 53 | translator = translator == fonts_map[fc] ? NULL : fonts_map[fc]; | ||
| 54 | dprintf("set_script_mode: %u %b\n", fc, translator != NULL); | ||
| 55 | return true; | ||
| 56 | } | ||
| 25 | 57 | ||
| 26 | // Maps A-Z, a-z, and 0-9 to other unicode ranges. We also map space to EN | 58 | // Maps A-Z, a-z, and 0-9 to other unicode ranges. We also map space to EN |
| 27 | // SPACE for some reason :) | 59 | // SPACE for some reason :) |
| 28 | uint32_t map_alnum(font_t *f, bool is_shifted, uint32_t keycode) { | 60 | uint32_t map_alnum(const font_t *f, bool is_shifted, uint32_t keycode) { |
| 29 | switch (keycode) { | 61 | switch (keycode) { |
| 30 | case KC_SPACE: | 62 | case KC_SPACE: |
| 31 | return (is_shifted ? 0 : 0x2002); // EN SPACE | 63 | return (is_shifted ? 0 : 0x2002); // EN SPACE |
| @@ -40,10 +72,11 @@ uint32_t map_alnum(font_t *f, bool is_shifted, uint32_t keycode) { | |||
| 40 | } | 72 | } |
| 41 | } | 73 | } |
| 42 | 74 | ||
| 43 | bool script_mode_translate(font_t *translator, bool is_shifted, uint32_t keycode) { | 75 | bool script_mode_translate(bool is_shifted, uint32_t keycode) { |
| 44 | uint32_t translated = map_alnum(translator, is_shifted, keycode); | 76 | uint32_t translated = map_alnum(translator, is_shifted, keycode); |
| 45 | if (translated == 0) return true; | 77 | if (translated == 0) return true; |
| 46 | dprintf("script_mode_translate: %u => %d\n", keycode, translated); | 78 | dprintf("script_mode_translate: %u => %d\n", keycode, translated); |
| 47 | register_unicode(translated); | 79 | register_unicode(translated); |
| 48 | return false; | 80 | return false; |
| 49 | } | 81 | } |
| 82 | #endif | ||
diff --git a/users/rupa/rupa.h b/users/rupa/rupa.h index 9be3a2d62..cfe873ffc 100755..100644 --- a/users/rupa/rupa.h +++ b/users/rupa/rupa.h | |||
| @@ -20,19 +20,55 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 20 | #include "version.h" | 20 | #include "version.h" |
| 21 | #include "process_records.h" | 21 | #include "process_records.h" |
| 22 | #include "unicode.h" | 22 | #include "unicode.h" |
| 23 | #include "wrappers.h" | ||
| 23 | 24 | ||
| 24 | enum userspace_layers { | 25 | enum userspace_layers { |
| 25 | _QWERTY = 0, | 26 | _QWERTY = 0, |
| 27 | _LOWER, | ||
| 26 | _RAISE, | 28 | _RAISE, |
| 29 | _ADJUST | ||
| 27 | }; | 30 | }; |
| 28 | 31 | ||
| 29 | enum userspace_custom_keycodes { | 32 | enum userspace_custom_keycodes { |
| 30 | VRSN = SAFE_RANGE, | 33 | VRSN = SAFE_RANGE, |
| 34 | BUGS, | ||
| 35 | CATS, | ||
| 36 | DANCE, | ||
| 37 | DICE, | ||
| 38 | DOMO, | ||
| 39 | FART, | ||
| 40 | FLIP, | ||
| 41 | HUGS, | ||
| 42 | JOY, | ||
| 43 | KISS, | ||
| 31 | LOD, | 44 | LOD, |
| 45 | MUSIC, | ||
| 46 | RNDM, | ||
| 32 | RUPA, | 47 | RUPA, |
| 48 | SHRUG, | ||
| 49 | TADA, | ||
| 33 | U_FRACT, | 50 | U_FRACT, |
| 51 | U_ITALI, | ||
| 34 | U_MONOS, | 52 | U_MONOS, |
| 53 | U_NORML, | ||
| 54 | U_SANSI, | ||
| 55 | U_SANSN, | ||
| 35 | U_SCRPT, | 56 | U_SCRPT, |
| 57 | WAT, | ||
| 58 | YUNO, | ||
| 59 | ZALGO, | ||
| 60 | ZZZZZ, | ||
| 61 | NEXT_SAFE_RANGE | ||
| 62 | }; | ||
| 63 | |||
| 64 | enum userspace_font_choices { | ||
| 65 | F_FRACT = 0, | ||
| 66 | F_ITALI, | ||
| 67 | F_MONOS, | ||
| 68 | F_NORML, | ||
| 69 | F_SANSI, | ||
| 70 | F_SANSN, | ||
| 71 | F_SCRPT | ||
| 36 | }; | 72 | }; |
| 37 | 73 | ||
| 38 | typedef struct font_t { | 74 | typedef struct font_t { |
| @@ -41,14 +77,6 @@ typedef struct font_t { | |||
| 41 | uint32_t zero_glyph; | 77 | uint32_t zero_glyph; |
| 42 | } font_t; | 78 | } font_t; |
| 43 | 79 | ||
| 44 | font_t fraktu_bold; | 80 | const font_t* get_script_mode(void); |
| 45 | font_t monosp_bold; | 81 | bool set_script_mode(int fc); |
| 46 | font_t script_bold; | 82 | bool script_mode_translate(bool is_shifted, uint32_t keycode); |
| 47 | |||
| 48 | bool script_mode_translate(font_t *translator, bool is_shifted, uint32_t keycode); | ||
| 49 | |||
| 50 | #define RAISE MO(_RAISE) | ||
| 51 | #define OS_RGUI OSM(MOD_RGUI) | ||
| 52 | #define OS_RALT OSM(MOD_RALT) | ||
| 53 | #define OS_RCTL OSM(MOD_RCTL) | ||
| 54 | #define OS_RSFT OSM(MOD_RSFT) | ||
diff --git a/users/rupa/unicode.c b/users/rupa/unicode.c index 89a0d4766..2302a9555 100755..100644 --- a/users/rupa/unicode.c +++ b/users/rupa/unicode.c | |||
| @@ -17,26 +17,155 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 17 | 17 | ||
| 18 | #include "unicode.h" | 18 | #include "unicode.h" |
| 19 | 19 | ||
| 20 | combined_mode_t combined_mode = CM_NULL; | ||
| 21 | bool _seeded = false; | ||
| 22 | |||
| 20 | #if defined(UNICODEMAP_ENABLE) | 23 | #if defined(UNICODEMAP_ENABLE) |
| 21 | const uint32_t PROGMEM unicode_map[] = { | 24 | const uint32_t PROGMEM unicode_map[] = { |
| 22 | [CHEK] = 0x2713, // ✓ | 25 | [CCIR] = 0x20DD, // COMBINING CIRCLE ⃝ |
| 23 | /* | 26 | [CENT] = 0x00A2, // ¢ |
| 24 | [DI1] = 0x2680, // ⚀ | 27 | [CHEK] = 0x2713, // ✓ |
| 25 | [DI2] = 0x2681, // ⚁ | 28 | [CKEY] = 0x20E3, // COMBINING KEYCAP ⃣ |
| 26 | [DI3] = 0x2682, // ⚂ | 29 | [CUI] = 0x26A0, // ⚠ |
| 27 | [DI4] = 0x2683, // ⚃ | 30 | [ECKS] = 0x2716, // ✖ |
| 28 | [DI5] = 0x2684, // ⚄ | 31 | [EFF] = 0x017F, // ſ |
| 29 | [DI6] = 0x2685, // ⚅ | 32 | [HAS] = 0x262D, // ☭ |
| 30 | */ | 33 | [HUN] = 0x1F4AF, // 💯 |
| 31 | [HAS] = 0x262D, // ☭ | 34 | [IBNG] = 0x203D, // ‽ |
| 32 | [IBNG] = 0x203D, // ‽ | 35 | [IRNY] = 0x2E2E, // ⸮ |
| 33 | [IRNY] = 0x2E2E, // ⸮ | 36 | [LALL] = 0x2200, // ∀ |
| 34 | [M4] = 0x2669, // ♩ | 37 | [LELM] = 0x2208, // ∈ |
| 35 | [M8] = 0x266A, // ♪ | 38 | [LEXI] = 0x2203, // ∃ |
| 36 | [M8B] = 0x266B, // ♫ | 39 | [LPRO] = 0x22A2, // ⊢ |
| 37 | [M16] = 0x266C, // ♬ | 40 | [M4] = 0x2669, // ♩ |
| 38 | [OM] = 0x0950, // ॐ | 41 | [M8] = 0x266A, // ♪ |
| 39 | [STB] = 0x2605, // ★ | 42 | [M8B] = 0x266B, // ♫ |
| 40 | [STW] = 0x2606, // ☆ | 43 | [M16] = 0x266C, // ♬ |
| 44 | [NEG] = 0x20E0, // COMBINING NO ⃠ | ||
| 45 | [NOPE] = 0x1F6AB, // 🚫 | ||
| 46 | [NUM] = 0x2116, // № | ||
| 47 | [OM] = 0x0950, // ॐ | ||
| 48 | [SMB] = 0x263A, // ☻ | ||
| 49 | [SMW] = 0x263B, // ☺ | ||
| 50 | [STB] = 0x2605, // ★ | ||
| 51 | [STOP] = 0x26D4, // ⛔ | ||
| 52 | [STW] = 0x2606, // ☆ | ||
| 41 | }; | 53 | }; |
| 42 | #endif | 54 | #endif |
| 55 | |||
| 56 | const char *d6_map[] = { | ||
| 57 | "⚀", "⚁", "⚂", "⚃", "⚄", "⚅" | ||
| 58 | }; | ||
| 59 | const char *dance_map[] = { | ||
| 60 | "〜( ̄▽ ̄〜)", | ||
| 61 | "(〜 ̄▽ ̄)〜" | ||
| 62 | }; | ||
| 63 | const char *dance_more_map[] = { | ||
| 64 | "ƪ(˘⌣˘)┐", | ||
| 65 | "┌(˘⌣˘)ʃ" | ||
| 66 | }; | ||
| 67 | const char *flip_map[] = { | ||
| 68 | "(╯°□°)╯︵ ┻━━┻", | ||
| 69 | "(ノ-_-)ノ・・ ┻━━┻", | ||
| 70 | "(ノꐦ⊙曲ఠ)ノ彡┻━┻" | ||
| 71 | }; | ||
| 72 | const char *flip_back_map[] = { | ||
| 73 | "┬──┬◡ノ(° -°ノ)", | ||
| 74 | "┬──┬ノ( ゜-゜ノ)", | ||
| 75 | "┬──┬ノ(ಠ_ಠノ)" | ||
| 76 | }; | ||
| 77 | const char *joy_map[] = { | ||
| 78 | "ᕕ( ᐛ )ᕗ ", | ||
| 79 | "٩(ˊᗜˋ*)و", | ||
| 80 | "٩( ᐛ )و" | ||
| 81 | }; | ||
| 82 | const char *joy_harder_map[] = { | ||
| 83 | "\\\ ٩( ᐛ )و //", | ||
| 84 | "✧*。٩(ˊᗜˋ*)و✧*。" | ||
| 85 | }; | ||
| 86 | |||
| 87 | const char *choice(const char *choices[], int size) { | ||
| 88 | if (_seeded == false) { | ||
| 89 | srand(timer_read32()); | ||
| 90 | dprintf("_seeded the roll\n"); | ||
| 91 | _seeded = true; | ||
| 92 | } | ||
| 93 | return choices[rand() % size]; | ||
| 94 | } | ||
| 95 | |||
| 96 | const char *d6(void) { | ||
| 97 | return choice(d6_map, 6); | ||
| 98 | } | ||
| 99 | const char *dance(bool more) { | ||
| 100 | if (more) { | ||
| 101 | return choice(dance_more_map, 2); | ||
| 102 | } | ||
| 103 | return choice(dance_map, 2); | ||
| 104 | } | ||
| 105 | const char *flip(bool flip_back) { | ||
| 106 | if (flip_back) { | ||
| 107 | return choice(flip_back_map, 3); | ||
| 108 | } | ||
| 109 | return choice(flip_map, 3); | ||
| 110 | } | ||
| 111 | const char *joy(bool harder) { | ||
| 112 | if (harder) { | ||
| 113 | return choice(joy_harder_map, 2); | ||
| 114 | } | ||
| 115 | return choice(joy_map, 3); | ||
| 116 | } | ||
| 117 | |||
| 118 | bool u_x(const char *text) { | ||
| 119 | send_unicode_string(text); | ||
| 120 | return false; | ||
| 121 | }; | ||
| 122 | bool u_xp(bool is_shifted, const char *shifted, const char *plain) { | ||
| 123 | send_unicode_string(is_shifted ? shifted : plain); | ||
| 124 | return false; | ||
| 125 | }; | ||
| 126 | |||
| 127 | void zalgo(void) { | ||
| 128 | int number = (rand() % (8 + 1 - 2)) + 2; | ||
| 129 | unsigned int index; | ||
| 130 | for (index=0; index<number; index++) { | ||
| 131 | uint16_t hex = (rand() % (0x036F + 1 - 0x0300)) + 0x0300; | ||
| 132 | register_hex(hex); | ||
| 133 | } | ||
| 134 | } | ||
| 135 | |||
| 136 | bool combined_text(uint16_t keycode) { | ||
| 137 | if (keycode < KC_A || (keycode > KC_0 && keycode < KC_MINUS) || keycode > KC_SLASH) { | ||
| 138 | return false; | ||
| 139 | } | ||
| 140 | tap_code(keycode); | ||
| 141 | unicode_input_start(); | ||
| 142 | switch (combined_mode) { | ||
| 143 | case CM_CIRCLE: | ||
| 144 | register_hex(0x20DD); | ||
| 145 | break; | ||
| 146 | case CM_NO: | ||
| 147 | register_hex(0x20E0); | ||
| 148 | break; | ||
| 149 | case CM_KEYCAP: | ||
| 150 | register_hex(0x20E3); | ||
| 151 | break; | ||
| 152 | case CM_ZALGO: | ||
| 153 | zalgo(); | ||
| 154 | break; | ||
| 155 | default: | ||
| 156 | break; | ||
| 157 | } | ||
| 158 | unicode_input_finish(); | ||
| 159 | return true; | ||
| 160 | } | ||
| 161 | |||
| 162 | void cycle_combined_mode(void) { | ||
| 163 | if (combined_mode++ >= CM_MAX - 1) { | ||
| 164 | combined_mode = CM_NULL; | ||
| 165 | } | ||
| 166 | } | ||
| 167 | |||
| 168 | combined_mode_t set_combined_mode(combined_mode_t mode) { | ||
| 169 | combined_mode = combined_mode == mode ? CM_NULL : mode; | ||
| 170 | return combined_mode; | ||
| 171 | } | ||
diff --git a/users/rupa/unicode.h b/users/rupa/unicode.h index 0c067bd91..92303b13f 100755..100644 --- a/users/rupa/unicode.h +++ b/users/rupa/unicode.h | |||
| @@ -20,24 +20,58 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 20 | 20 | ||
| 21 | #if defined(UNICODEMAP_ENABLE) | 21 | #if defined(UNICODEMAP_ENABLE) |
| 22 | enum unicode_names { | 22 | enum unicode_names { |
| 23 | CHEK, | 23 | CCIR, // COMBINING ⃝ |
| 24 | /* | 24 | CENT, // ¢ |
| 25 | DI1, // ⚀ | 25 | CHEK, // ✓ |
| 26 | DI2, // ⚁ | 26 | CKEY, // COMBINING ⃣ |
| 27 | DI3, // ⚂ | 27 | CUI, // ⚠ |
| 28 | DI4, // ⚃ | 28 | ECKS, // ✖ |
| 29 | DI5, // ⚄ | 29 | EFF, // ſ |
| 30 | DI6, // ⚅ | ||
| 31 | */ | ||
| 32 | HAS, // ☭ | 30 | HAS, // ☭ |
| 31 | HUN, // 💯 | ||
| 33 | IBNG, // ‽ | 32 | IBNG, // ‽ |
| 34 | IRNY, // ⸮ | 33 | IRNY, // ⸮ |
| 34 | LALL, // ∀ | ||
| 35 | LELM, // ∈ | ||
| 36 | LEXI, // ∃ | ||
| 37 | LPRO, // ⊢ | ||
| 35 | M4, // ♩ | 38 | M4, // ♩ |
| 36 | M8, // ♪ | 39 | M8, // ♪ |
| 37 | M8B, // ♫ | 40 | M8B, // ♫ |
| 38 | M16, // ♬ | 41 | M16, // ♬ |
| 42 | NEG, // COMBINING ⃠ | ||
| 43 | NOPE, // 🚫 | ||
| 44 | NUM, // № | ||
| 39 | OM, // ॐ | 45 | OM, // ॐ |
| 46 | SMB, // ☻ | ||
| 47 | SMW, // ☺ | ||
| 40 | STB, // ★ | 48 | STB, // ★ |
| 49 | STOP, // ⛔ | ||
| 41 | STW, // ☆ | 50 | STW, // ☆ |
| 42 | }; | 51 | }; |
| 43 | #endif | 52 | #endif |
| 53 | |||
| 54 | typedef enum combined_modes { | ||
| 55 | CM_NULL = 0, | ||
| 56 | CM_CIRCLE, | ||
| 57 | CM_NO, | ||
| 58 | CM_KEYCAP, | ||
| 59 | CM_ZALGO, | ||
| 60 | CM_MAX | ||
| 61 | } combined_mode_t; | ||
| 62 | |||
| 63 | combined_mode_t combined_mode; | ||
| 64 | |||
| 65 | // random choices | ||
| 66 | const char * d6(void); | ||
| 67 | const char * dance(bool more); | ||
| 68 | const char * flip(bool back); | ||
| 69 | const char * joy(bool harder); | ||
| 70 | |||
| 71 | // like X and XP | ||
| 72 | bool u_x(const char *text); | ||
| 73 | bool u_xp(bool is_shifted, const char * shifted, const char *plain); | ||
| 74 | |||
| 75 | bool combined_text(uint16_t keycode); | ||
| 76 | void cycle_combined_mode(void); | ||
| 77 | combined_mode_t set_combined_mode(combined_mode_t mode); | ||
diff --git a/users/rupa/wrappers.h b/users/rupa/wrappers.h new file mode 100644 index 000000000..c5cae464b --- /dev/null +++ b/users/rupa/wrappers.h | |||
| @@ -0,0 +1,122 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 rupa <rupa@lrrr.us> @rupa | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | #include "rupa.h" | ||
| 20 | |||
| 21 | #define LOWER MO(_LOWER) | ||
| 22 | #define RAISE MO(_RAISE) | ||
| 23 | #define OS_RGUI OSM(MOD_RGUI) | ||
| 24 | #define OS_RALT OSM(MOD_RALT) | ||
| 25 | #define OS_RCTL OSM(MOD_RCTL) | ||
| 26 | #define OS_RSFT OSM(MOD_RSFT) | ||
| 27 | |||
| 28 | #define G_LWR LT(_LOWER, KC_G) | ||
| 29 | |||
| 30 | #if defined(UNICODEMAP_ENABLE) | ||
| 31 | # define CSHAPES XP(CCIR,CKEY) | ||
| 32 | # define CUIDADO XP(CUI,HAS) | ||
| 33 | # define NOPENAH XP(NOPE,STOP) | ||
| 34 | # define MUSIC_A XP(M4,M8) | ||
| 35 | # define MUSIC_B XP(M8B,M16) | ||
| 36 | # define SMILE XP(SMB,SMW) | ||
| 37 | # define STARS XP(STB,STW) | ||
| 38 | # define YEPYEP XP(CHEK,HUN) | ||
| 39 | #endif | ||
| 40 | |||
| 41 | /* _QWERTY | ||
| 42 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | ||
| 43 | * │Es~│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│~ `│ | ||
| 44 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ | ||
| 45 | * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ | ||
| 46 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ | ||
| 47 | * │RAISE │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ | ||
| 48 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ | ||
| 49 | * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │PgD│ | ||
| 50 | * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ | ||
| 51 | * │Ctrl│Alt │Gui │ Space │RAI│LOW│CAP│ ← │ ↓ │ → │ | ||
| 52 | * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ | ||
| 53 | */ | ||
| 54 | #define ____65_QWERTY______________ROW1 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_BSPC, KC_GRV | ||
| 55 | #define ____65_QWERTY______________ROW2 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 | ||
| 56 | #define ____65_QWERTY______________ROW3 RAISE, KC_A, KC_S, KC_D, KC_F, G_LWR, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP | ||
| 57 | #define ____65_QWERTY______________ROW4 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN | ||
| 58 | #define ____65_QWERTY______________ROW5 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, RAISE, LOWER, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 59 | |||
| 60 | /* _RAISE | ||
| 61 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | ||
| 62 | * │ ` │ ‽ │ ⸮ │ │ ¢ │ │ │ │★ │ │ ☻ │ ⃠ │CSH│ Del │Hme│ | ||
| 63 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ | ||
| 64 | * │ │ │WAT│ ∃ │Rup│TAD│YUN│ │ ∈ │ ॐ │ │♩ ♪│♫ ♬│ │Ins│ | ||
| 65 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ | ||
| 66 | * │ │ ∀ │ ſ │ ⚂ │FRT│ │HUG│JOY│KSS│LOD│ │NO!│ ✓ 💯 │End│ | ||
| 67 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ | ||
| 68 | * │ RShift │⚠ ☭│ ✖ │CAT│BOW│BUG│ № │MUS│DNC│ ⊢ │SHR│ McL│M↑ │McR│ | ||
| 69 | * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ | ||
| 70 | * │RCtl│RAlt│RGui│ FLIP │ │ │ │M← │M↓ │M→ │ | ||
| 71 | * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ | ||
| 72 | */ | ||
| 73 | #define ____65_RAISE_______________ROW1 KC_GRV, X(IBNG), X(IRNY), _______, X(CENT), _______, _______, _______, STARS, _______, SMILE, X(NEG), CSHAPES, KC_DEL, KC_HOME | ||
| 74 | #define ____65_RAISE_______________ROW2 _______, _______, WAT, X(LEXI), RUPA, TADA, YUNO, _______, X(LELM), X(OM), _______, MUSIC_A, MUSIC_B, _______, KC_INS | ||
| 75 | #define ____65_RAISE_______________ROW3 _______, X(LALL), X(EFF), DICE, FART, _______, HUGS, JOY, KISS, LOD, _______, NOPENAH, YEPYEP, KC_END | ||
| 76 | #define ____65_RAISE_______________ROW4 OS_RSFT, CUIDADO, X(ECKS), CATS, DOMO, BUGS, X(NUM), MUSIC, DANCE, X(LPRO), SHRUG, KC_BTN1, KC_MS_U, KC_BTN2 | ||
| 77 | #define ____65_RAISE_______________ROW5 OS_RCTL, OS_RALT, OS_RGUI, FLIP, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R | ||
| 78 | |||
| 79 | /* _LOWER | ||
| 80 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | ||
| 81 | * │ │ │ │ │ │ │ │ │ │ │ │ │zzz│ │ │ | ||
| 82 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ | ||
| 83 | * │ │u_f│u_i│u_m│u_n│usi│usn│u_s│ │ │PRT│ │ │ │ │ | ||
| 84 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ | ||
| 85 | * │ │ │SLK│PAU│ │ │ │ │ │ │ │ │ │ │ | ||
| 86 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ | ||
| 87 | * │ │ZAL│ │CAP│VSN│ │NLK│ │ │ │ │ │ │ │ | ||
| 88 | * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ | ||
| 89 | * │ │ │ │ │ │ │ │ ← │ ↓ │ → │ | ||
| 90 | * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ | ||
| 91 | */ | ||
| 92 | #define ____65_LOWER_______________ROW1 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ZZZZZ, _______, _______ | ||
| 93 | #define ____65_LOWER_______________ROW2 _______, U_FRACT, U_ITALI, U_MONOS, U_NORML, U_SANSI, U_SANSN, U_SCRPT, _______, _______, KC_PSCR, _______, _______, _______, _______ | ||
| 94 | #define ____65_LOWER_______________ROW3 _______, _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 95 | #define ____65_LOWER_______________ROW4 _______, ZALGO , _______, KC_CAPS, VRSN, _______, KC_NLCK, _______, _______, _______, _______, _______, _______, _______ | ||
| 96 | #define ____65_LOWER_______________ROW5 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 97 | |||
| 98 | /* _ADJUST | ||
| 99 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | ||
| 100 | * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ | ||
| 101 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ | ||
| 102 | * │ │r x│r m│rh+│rh-│rs+│rs-│rv+│rv-│ra+│ra-│ │ │RESET│ │ | ||
| 103 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ | ||
| 104 | * │ │ │ │ │ │ │ │ │ │ │ │ │EEP RSET│ │ | ||
| 105 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ | ||
| 106 | * │ │ │ │ │ │ │ │Mut│V- │V+ │ │U MODE│ │ │ | ||
| 107 | * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ | ||
| 108 | * │ │ │ │ │ │ │ │ │ │ │ | ||
| 109 | * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ | ||
| 110 | */ | ||
| 111 | #define ____65_ADJUST______________ROW1 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______ | ||
| 112 | #define ____65_ADJUST______________ROW2 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______ | ||
| 113 | #define ____65_ADJUST______________ROW3 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______ | ||
| 114 | #define ____65_ADJUST______________ROW4 _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, UC_MOD, _______, _______ | ||
| 115 | #define ____65_ADJUST______________ROW5 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 116 | |||
| 117 | #define ____65_ADJUST__________RGB_ROW2 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, RESET, _______ | ||
| 118 | #define ____65_ADJUST__________RGB_ROW3 _______, RGB_M_P, RGB_M_B, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______ | ||
| 119 | |||
| 120 | #define ____65_ADJUST___________BL_ROW2 _______, BL_TOGG, BL_BRTG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______ | ||
| 121 | |||
| 122 | // clang-format on | ||
