diff --git a/keyboards/1upkeyboards/sweet16/keymaps/hsuchil/config.h b/keyboards/1upkeyboards/sweet16/keymaps/hsuchil/config.h new file mode 100644 index 00000000000..00a6656ce05 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/hsuchil/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define HSUCHIL_DISABLE_TRILAYER diff --git a/keyboards/1upkeyboards/sweet16/keymaps/hsuchil/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/hsuchil/keymap.c new file mode 100644 index 00000000000..244f8c56c56 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/hsuchil/keymap.c @@ -0,0 +1,96 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "hsuchil.h" + +#define G_TIMEOUT 1500 + +enum sweet16_layers { + _FNKEYS, + _NUMS, + _QWER, + _ADJUST, +}; + +enum sweet16_keycodes { + TOG_MASHG = NEW_SAFE_RANGE, +}; + +#define ADJUST MO(_ADJUST) +#define FNKEYS DF(_FNKEYS) +#define NUMS DF(_NUMS) +#define QWER DF(_QWER) + +#define SLSH_ADJ LT(_ADJUST, KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_FNKEYS] = LAYOUT_ortho_4x4( + KC_F24, KC_F16, KC_F20, ADJUST, + KC_VOLU, KC_F15, KC_F19, KC_F23, + KC_VOLD, KC_F14, KC_F18, KC_F22, + KC_MPLY, KC_F13, KC_F17, TOG_MASHG +), + +[_NUMS] = LAYOUT_ortho_4x4( + KC_7, KC_8, KC_9, SLSH_ADJ, + KC_4, KC_5, KC_6, KC_ASTR, + KC_1, KC_2, KC_3, KC_MINUS, + KC_ENT, KC_0, KC_DOT, KC_PLUS +), + +[_QWER] = LAYOUT_ortho_4x4( + KC_GRV, KC_6, KC_7, ADJUST, + KC_Q, KC_W, KC_E, KC_R, + KC_A, KC_S, KC_D, KC_F, + KC_Z, KC_X, KC_C, KC_V +), + +[_ADJUST] = LAYOUT_ortho_4x4( + QWER, FNKEYS, NUMS, _______, + _______, RGB_TOG, RGB_MOD, RESET, + _______, _______, _______, _______, + _______, _______, _______, _______ +), + +}; + +static bool mash_g = false; +static uint16_t g_timer; + +bool extra_process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TOG_MASHG: + if (record->event.pressed){ + mash_g = mash_g ? false : true; + g_timer = timer_read(); + } + + return false; + break; + } + + return true; +} + +void extra_housekeeping_task_user(void) { + if (mash_g && timer_elapsed(g_timer) > G_TIMEOUT) { + tap_code(KC_G); + g_timer = timer_read(); + } +} diff --git a/keyboards/basketweave/keymaps/hsuchil/keymap.c b/keyboards/basketweave/keymaps/hsuchil/keymap.c new file mode 100644 index 00000000000..94f06f2f246 --- /dev/null +++ b/keyboards/basketweave/keymaps/hsuchil/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "hsuchil.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BSE] = LAYOUT_default( + KC_ESC, KC_GRV, 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_HYPR, 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_MUTE, + KC_MEH, RCT_ESC, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, L_BHGH, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, L_LOW, KC_SPC, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT +), + + +[_LOW] = LAYOUT_default( + _______, _______, 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, + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, TOG_MAC, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, KC_HYPR, _______, KC_MEH, _______, _______, KC_HOME, KC_PGDN, KC_END +), + +[_HGH] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_FNC] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; diff --git a/keyboards/mechwild/obe/keymaps/hsuchil/config.h b/keyboards/mechwild/obe/keymaps/hsuchil/config.h new file mode 100644 index 00000000000..7248c52fd8e --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/hsuchil/config.h @@ -0,0 +1,27 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +// Redefine number of LED +#ifdef RGBLED_NUM +# undef RGBLED_NUM +#endif // DEBUG +#define RGBLED_NUM 10 + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_SLEEP diff --git a/keyboards/mechwild/obe/keymaps/hsuchil/keymap.c b/keyboards/mechwild/obe/keymaps/hsuchil/keymap.c new file mode 100644 index 00000000000..90d9aae483a --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/hsuchil/keymap.c @@ -0,0 +1,52 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "hsuchil.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BSE] = LAYOUT( + KC_MUTE, KC_GRV, 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_PGUP, 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_PGDN, RCT_ESC, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, L_BHGH, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L_LOW, KC_SPC, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[_LOW] = LAYOUT( + _______, _______, 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, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, + KC_END , KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, TOG_MAC, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, KC_HYPR, _______, KC_MEH , _______, _______, KC_HOME, KC_PGDN, KC_END +), +[_HGH] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_MPLY +), +[_FNC] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/mechwild/obe/keymaps/hsuchil/rules.mk b/keyboards/mechwild/obe/keymaps/hsuchil/rules.mk new file mode 100644 index 00000000000..76d3c49ffd6 --- /dev/null +++ b/keyboards/mechwild/obe/keymaps/hsuchil/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/moonlander/keymaps/hsuchil/config.h b/keyboards/moonlander/keymaps/hsuchil/config.h new file mode 100644 index 00000000000..df8bcf22eb0 --- /dev/null +++ b/keyboards/moonlander/keymaps/hsuchil/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define ORYX_CONFIGURATOR + +#define USB_SUSPEND_WAKEUP_DELAY 0 +#define NO_AUTO_SHIFT_TAB +#define RGB_MATRIX_STARTUP_SPD 60 diff --git a/keyboards/moonlander/keymaps/hsuchil/keymap.c b/keyboards/moonlander/keymaps/hsuchil/keymap.c new file mode 100644 index 00000000000..28f38d56837 --- /dev/null +++ b/keyboards/moonlander/keymaps/hsuchil/keymap.c @@ -0,0 +1,57 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "hsuchil.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BSE] = LAYOUT_moonlander( + KC_GRV ,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_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_HOME ,KC_PGUP ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_DEL , + RCT_ESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_END ,KC_PGDN ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT , + KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_ENT , + KC_LCTL ,KC_HYPR ,KC_LALT ,KC_LGUI ,L_LOW ,L_LWESC ,LCT_ESC ,L_HGH ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT , + KC_SPC ,KC_LGUI ,KC_RCTL ,KC_MEH ,KC_BSPC ,KC_ENT + ), + + [_LOW] = LAYOUT_moonlander( + _______ ,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_LCBR ,KC_RCBR ,KC_QUES ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_UNDS ,KC_PLUS ,KC_LCBR ,KC_RCBR ,KC_PIPE , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_HOME ,KC_PGDN ,KC_PGUP ,KC_END , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ + ), + + [_HGH] = LAYOUT_moonlander( + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_LBRC ,KC_RBRC ,KC_SLSH ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_MINS ,KC_EQL ,KC_LBRC ,KC_RBRC ,KC_BSLS , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_MNXT ,KC_VOLD ,KC_VOLU ,KC_MPLY , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ + ), + + [_FNC] = LAYOUT_moonlander( + _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,_______ , + _______ ,RESET ,DEBUG ,_______ ,_______ ,RCG_NRM ,_______ ,_______ ,RCG_SWP ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,RGB_SPD ,RGB_SPI ,_______ ,_______ ,AG_NORM ,_______ ,_______ ,AG_SWAP ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,RGB_TOG ,RGB_MOD ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , + _______ ,_______ ,_______ ,_______ ,_______ ,_______ + ) +}; diff --git a/keyboards/moonlander/keymaps/hsuchil/rules.mk b/keyboards/moonlander/keymaps/hsuchil/rules.mk new file mode 100644 index 00000000000..ef72559a0c1 --- /dev/null +++ b/keyboards/moonlander/keymaps/hsuchil/rules.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes diff --git a/keyboards/preonic/keymaps/hsuchil/config.h b/keyboards/preonic/keymaps/hsuchil/config.h new file mode 100644 index 00000000000..c6b799e2e42 --- /dev/null +++ b/keyboards/preonic/keymaps/hsuchil/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL + +#define RGB_SLEEP +#define RGBLIGHT_SLEEP +#define RGBLIGHT_TIMEOUT 60000 diff --git a/keyboards/preonic/keymaps/hsuchil/keymap.c b/keyboards/preonic/keymaps/hsuchil/keymap.c new file mode 100644 index 00000000000..e4dc3de77e1 --- /dev/null +++ b/keyboards/preonic/keymaps/hsuchil/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "hsuchil.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BSE] = LAYOUT_preonic_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + RCT_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, L_LOW, KC_SPC, KC_SPC, L_HGH, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_LOW] = LAYOUT_preonic_grid( + 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_LCBR, KC_RCBR, KC_QUES, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +[_HGH] = LAYOUT_preonic_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SLSH, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +[_FNC] = LAYOUT_preonic_grid( + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______ , RESET , DEBUG , _______, _______, RCG_NRM, RCG_SWP, _______, _______, _______, _______, _______, + _______ , RGB_SPD, RGB_SPI, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______ , RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/preonic/keymaps/hsuchil/rules.mk b/keyboards/preonic/keymaps/hsuchil/rules.mk new file mode 100644 index 00000000000..03b7fd25bb4 --- /dev/null +++ b/keyboards/preonic/keymaps/hsuchil/rules.mk @@ -0,0 +1,4 @@ +# Copyright 2022 Hector Galindo + +RGBLIGHT_SLEEP = yes +RGBLIGHT_DEFAULT_MODE = RGBLIGHT_MODE_RAINBOW_SWIRL diff --git a/users/hsuchil/config.h b/users/hsuchil/config.h new file mode 100644 index 00000000000..59f8e27371a --- /dev/null +++ b/users/hsuchil/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define TAPPING_TERM 200 diff --git a/users/hsuchil/hsuchil.c b/users/hsuchil/hsuchil.c new file mode 100644 index 00000000000..3d91690b97e --- /dev/null +++ b/users/hsuchil/hsuchil.c @@ -0,0 +1,127 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H +#include "hsuchil.h" + +#ifndef HSUCHIL_DISABLE_TRILAYER +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOW, _HGH, _FNC); +} +#endif + +__attribute__((weak)) bool extra_process_record_user(uint16_t keycode, keyrecord_t * record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TOG_MAC: + if (keymap_config.swap_rctl_rgui) { + process_magic(RCG_NRM, record); + } else { + process_magic(RCG_SWP, record); + } + + if (keymap_config.swap_lalt_lgui) { + process_magic(LAG_NRM, record); + } else { + process_magic(LAG_SWP, record); + } + + return false; + default: + return extra_process_record_user(keycode, record); + break; + } + return true; +} + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return true; +} +#endif + +#ifdef RGBLIGHT_TIMEOUT +// Timer to track the last keyboard activity +static uint16_t key_timer; + +// Refreshes the activity timer and RGB, invoke whenever activity happens +static void refresh_rgb(void); + +// Checks if enough time has passed for RGB to timeout +static void check_rgb_timeout(void); + +// Store if RGB has timed out or not in a boolean +bool is_rgb_timeout = false; + +void refresh_rgb() { + key_timer = timer_read(); + if (is_rgb_timeout) { + is_rgb_timeout = false; + rgblight_wakeup(); + } +} + +void check_rgb_timeout() { + if (!is_rgb_timeout && timer_elapsed(key_timer) > RGBLIGHT_TIMEOUT) { + rgblight_suspend(); + is_rgb_timeout = true; + } +} +#endif + +__attribute__((weak)) void extra_housekeeping_task_user(void) {} + +void housekeeping_task_user(void) { +#ifdef RGBLIGHT_TIMEOUT + check_rgb_timeout(); +#endif + + extra_housekeeping_task_user(); +} + +__attribute__((weak)) void extra_post_process_record_user(uint16_t keycode, keyrecord_t *record) {} + +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + +#ifdef RGBLIGHT_TIMEOUT + if (record->event.pressed) { + refresh_rgb(); + } +#endif + + extra_post_process_record_user(keycode, record); +} + +__attribute__((weak)) void extra_post_encoder_update_user(uint8_t index, bool clockwise) {} + +void post_encoder_update_user(uint8_t index, bool clockwise) { +#ifdef RGBLIGHT_TIMEOUT + refresh_rgb(); +#endif + + extra_post_encoder_update_user(index, clockwise); +} diff --git a/users/hsuchil/hsuchil.h b/users/hsuchil/hsuchil.h new file mode 100644 index 00000000000..cc393ad0aa9 --- /dev/null +++ b/users/hsuchil/hsuchil.h @@ -0,0 +1,45 @@ +/* +Copyright 2022 Hector Galindo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +enum custom_user_layers { + _BSE, + _LOW, + _HGH, + _FNC, + NEW_SAFE_LAYER_RANGE, +}; + +enum custom_user_keycodes { + OLD_SAFE_RANGE = SAFE_RANGE, + TOG_MAC, // Swaps LGUI<->LALT and LGUI<->RCTL + NEW_SAFE_RANGE // Set a new safe range for keymap-specific custom keycodes +}; + +#define L_LOW MO(_LOW) +#define L_HGH MO(_HGH) +#define L_FNC MO(_FNC) + +#define L_BLOW LT(_LOW, KC_B) // B if tapped, LOW if held. +#define L_BHGH LT(_HGH, KC_B) // B if tapped, HGH if held. +#define L_BFNC LT(_FNC, KC_B) // B if tapped, FNC if held. + +#define L_LWESC LT(_LOW, KC_ESC) // ESC if tapped, LOW if held. + +#define LCT_ESC LCTL_T(KC_ESC) // ESC if tapped, LCTL if held. +#define RCT_ESC RCTL_T(KC_ESC) // ESC if tapped, RCTL if held. diff --git a/users/hsuchil/rules.mk b/users/hsuchil/rules.mk new file mode 100644 index 00000000000..49b58f34867 --- /dev/null +++ b/users/hsuchil/rules.mk @@ -0,0 +1 @@ +SRC += hsuchil.c