From 07465c0ebbabf35079fed70a58e73da1e9419444 Mon Sep 17 00:00:00 2001 From: Sergi Meseguer Date: Mon, 27 Dec 2021 11:24:14 +0100 Subject: zigotica userspace add raw_hid_receive (#14869) * zigotica userspace add raw_hid_receive * add 3 keys to figma keymap * add 2 keys to vim keymap * improve vim keys * add 3 keys to browser keymap * comment typo * shorten SEND_STRING Co-authored-by: Ryan Co-authored-by: Ryan --- keyboards/z12/keymaps/zigotica/keymap.c | 116 ++++++++++++++++++++++---------- 1 file changed, 82 insertions(+), 34 deletions(-) (limited to 'keyboards/z12/keymaps/zigotica/keymap.c') diff --git a/keyboards/z12/keymaps/zigotica/keymap.c b/keyboards/z12/keymaps/zigotica/keymap.c index 7e969de96e..ef01561f1a 100644 --- a/keyboards/z12/keymaps/zigotica/keymap.c +++ b/keyboards/z12/keymaps/zigotica/keymap.c @@ -16,25 +16,73 @@ along with this program. If not, see . */ #include "zigotica.h" +#include "raw_hid.h" + +#ifdef RAW_ENABLE +void raw_hid_receive(uint8_t* data, uint8_t length) { + layer_clear(); + if (data[0] == 99) { + layer_on(_BASE); + } + else { + layer_on(data[0]); + } +} +#endif // Custom Keycodes -#define MODE_1 TO(_TERMINAL) +#define MODE_1 TO(_BASE) #define MODE_2 TO(_FIGMA) #define MODE_3 TO(_BROWSER) #define MODE_4 TO(_VIM) enum custom_keycodes { - VIM_SIP = SAFE_RANGE + VIM_SIF = SAFE_RANGE, + VIM_SIP, + VIM_RIF, + VIM_RIP, + VIM_NEW }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case VIM_SIP: + case VIM_SIF:// Search in File + if (record->event.pressed) { + register_code(KC_ESC); + tap_code(KC_SLASH); + } else { // released + unregister_code(KC_ESC); + } + break; + case VIM_SIP:// Search in Project if (record->event.pressed) { register_code(KC_ESC); SEND_STRING(":Ag "); - } else { - // released + } else { // released + unregister_code(KC_ESC); + } + break; + case VIM_RIF:// Replace in File + if (record->event.pressed) { + register_code(KC_ESC); + SEND_STRING(":%s/a/b/g"); + } else { // released + unregister_code(KC_ESC); + } + break; + case VIM_RIP:// Replace in Project + if (record->event.pressed) { + register_code(KC_ESC); + SEND_STRING(":cdo %s/a/b/g"); + } else { // released + unregister_code(KC_ESC); + } + break; + case VIM_NEW:// New buffer + if (record->event.pressed) { + SEND_STRING("\e:vnew\n"); + } else { // released + unregister_code(KC_ENT); unregister_code(KC_ESC); } break; @@ -44,83 +92,83 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* - * TERMINAL Layer + * BASE Layer * * ,-----------------------------. - * | | TERM | FIGM | | + * | | BASE | FIGM | | * |-------+------+------+-------| - * | VOL | BROW | VIM | SCROLL| + * |VOL/PLY| BROW | VIM | SCROLL| * |-------+------+------+-------| * |-------+-------+-------| - * | MEDIA | o | o | + * | o | o | o | * |-------+-------+-------| * | o | o | o | * |-------+-------+-------| */ - [_TERMINAL] = LAYOUT( + [_BASE] = LAYOUT( MODE_1, MODE_2, ZK_MEDIA, MODE_3, MODE_4, _______, _______, _______, _______, _______, _______, _______ ), /* - * VIM Layer + * FIGMA Layer * * ,-----------------------------. - * | | TERM | FIGM | | + * | | BASE | FIGM | | * |-------+------+------+-------| - * |BUFFER | BROW | VIM | SCROLL| + * | TABS | BROW | VIM | ZOOM | * |-------+------+------+-------| * |-------+-------+-------| - * |SEARCH | o | o | + * |ZOOMFIT| GRIDS | FULL | * |-------+-------+-------| - * | o | o | o | + * |ZOOM100| NEXT | COLOR | * |-------+-------+-------| */ - [_VIM] = LAYOUT( + [_FIGMA] = LAYOUT( _______, _______, _______, _______, _______, _______, - VIM_SIP, _______, _______, - _______, _______, _______ + LSFT(KC_1), LCTL(KC_G), LGUI(KC_BSLS), + LSFT(KC_0), KC_N, LCTL(KC_C) ), /* - * FIGMA Layer + * BROWSER Layer * * ,-----------------------------. - * | | TERM | FIGM | | + * | | BASE | FIGM | | * |-------+------+------+-------| - * | VOL | BROW | VIM | ZOOM | + * | TABS | BROW | VIM | SCROLL| * |-------+------+------+-------| * |-------+-------+-------| - * | ZOOM | GRIDS | FULL | + * |SEARCH | BOOKM | DEVTL | * |-------+-------+-------| - * | o | o | o | + * |ZOOM100| MUTE | READ | * |-------+-------+-------| */ - [_FIGMA] = LAYOUT( + [_BROWSER] = LAYOUT( _______, _______, _______, _______, _______, _______, - LSFT(KC_1), LCTL(KC_G), LGUI(KC_BSLS), - _______, _______, _______ + G(KC_F), G(KC_D), G(A(KC_I)), + G(KC_0), C(KC_M), G(A(KC_R)) ), /* - * BROWSER Layer + * VIM Layer * * ,-----------------------------. - * | | TERM | FIGM | | + * | | BASE | FIGM | | * |-------+------+------+-------| - * | TABS | BROW | VIM | SCROLL| + * |BUFFER | BROW | VIM | SCROLL| * |-------+------+------+-------| * |-------+-------+-------| - * |SEARCH | BOOKM | DEVTL | + * |SRCH FL|REPL FL|NEW BUF| * |-------+-------+-------| - * | o | o | o | + * |SRCH PR|REPL PR| o | * |-------+-------+-------| */ - [_BROWSER] = LAYOUT( + [_VIM] = LAYOUT( _______, _______, _______, _______, _______, _______, - G(KC_F), G(KC_D), G(A(KC_I)), - _______, _______, _______ + VIM_SIF, VIM_RIF, VIM_NEW, + VIM_SIP, VIM_RIP, _______ ), }; -- cgit v1.2.3