Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master' into develop

QMK Bot 3 жил өмнө
parent
commit
eccdba0124

+ 160 - 0
keyboards/3w6/keymaps/helltm/keymap.c

@@ -0,0 +1,160 @@
+/* Copyright 2021 HellSingCoder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layers
+{
+    _ALPHA_QWERTY = 0,
+    _SYM,
+    _NAV,
+    _NUM,
+};
+
+enum custom_keycodes {
+    KC_THUMB_SWAP,
+};
+
+/* Space Enter swap */
+bool swap_space_enter = false;
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    /*
+    * QWERTY
+    *              _____                                                   _____
+    *       .-----|  E  |-----._____                           _____.-----|  I  |-----.
+    * .-----|  W  |_____|  R  |  T  |                         |  Y  |  U  |_____|  O  |-----.
+    * |  Q  |-----|  D  |-----|_____|                         |_____|-----|  K  |-----|  P  |
+    * |-----|  S  |_____|  F  |  G  |                         |  H  |  J  |_____|  L  |-----|
+    * |  A  |-----|  C  |-----|_____|                         |_____|-----| , < |-----| ; : |
+    * |-----|  X  |_____|  V  |  B  |                         |  N  |  M  |_____| . > |-----|
+    * |  Z  |-----'     '-----|_____|                         |_____|-----'     '-----| / ? |
+    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----'
+    *  SHIFT           | WIN ||CTRL | /     /         \     \ | BSp || Del |           SHIFT
+    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----'
+    *                    NUM        '--.._/             \_..--' NAV    SYM
+    */
+    [_ALPHA_QWERTY] = LAYOUT(
+        KC_Q,         KC_W   , KC_E   , KC_R   , KC_T   ,                                    KC_Y   , KC_U   , KC_I   , KC_O   , KC_P           ,
+        KC_A,         KC_S   , KC_D   , KC_F   , KC_G   ,                                    KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN        ,
+        LSFT_T(KC_Z), KC_X   , KC_C   , KC_V   , KC_B   ,                                    KC_N   , KC_M   , KC_COMM, KC_DOT , RSFT_T(KC_SLSH),
+                                LT(_NUM, KC_LGUI), KC_LCTRL, KC_ENT,       KC_SPC, LT(_NAV, KC_BSPC), LT(_SYM, KC_DEL)
+    ),
+
+    /*
+    * Symbols
+    *              _____                                                   _____
+    *       .-----|  #  |-----._____                           _____.-----|  *  |-----.
+    * .-----|  @  |_____|  $  |  %  |                         |  ^  |  &  |_____|  (  |-----.
+    * |  !  |-----|     |-----|_____|                         |_____|-----| [ { |-----|  )  |
+    * |-----|     |_____|     |     |                         |  {  |  }  |_____| ] } |-----|
+    * | ` ~ |-----|     |-----|_____|                         |_____|-----|     |-----| ' " |
+    * |-----|     |_____|     |     |                         | - _ | = + |_____|  |  |-----|
+    * |  ~  |-----'     '-----|_____|                         |_____|-----'     '-----| \ | |
+    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----'
+    *  SHIFT           |     ||CTRL | /     /         \     \ | BSp ||     |           SHIFT
+    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----'
+    *                               '--.._/             \_..--'
+    */
+    [_SYM] = LAYOUT(
+        KC_EXLM,         KC_AT  , KC_HASH, KC_DLR , KC_PERC,                                KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN        ,
+        KC_GRV ,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_QUOT        ,
+        LSFT_T(KC_TILD), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                KC_MINS, KC_EQL , XXXXXXX, KC_PIPE, RSFT_T(KC_BSLS),
+                                        XXXXXXX, _______, _______,                    _______, KC_BSPC, XXXXXXX
+    ),
+
+    /*
+    * Navigation
+    *              _____                                                   _____
+    *       .-----|Mute |-----._____                           _____.-----| Up  |-----.
+    * .-----|VDown|_____| VUp |     |                         |     |PDown|_____| PUp |-----.
+    * | Esc |-----|Play |-----|_____|                         |_____|-----|Down |-----| BSp |
+    * |-----|Prev |_____|Next |     |                         |Home |Left |_____|Right|-----|
+    * | Tab |-----|Stop |-----|_____|                         |_____|-----|     |-----| ' " |
+    * |-----|     |_____|     |Swap |                         |     |     |_____| End |-----|
+    * | CPS |-----'     '-----|_____|                         |_____|-----'     '-----| Del |
+    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----'
+    *  SHIFT           |     ||CTRL | /     /         \     \ | BSp ||     |           SHIFT
+    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----'
+    *                               '--.._/             \_..--'
+    */
+    [_NAV] = LAYOUT(
+        KC_ESC         , KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX      ,                                XXXXXXX, KC_PGDN, KC_UP  , KC_PGUP, KC_BSPC,
+        KC_TAB         , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX      ,                                KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_QUOT,
+        LSFT_T(KC_CAPS), XXXXXXX, KC_MSTP, XXXXXXX, KC_THUMB_SWAP,                                XXXXXXX, XXXXXXX, XXXXXXX, KC_END , RSFT_T(KC_DEL) ,
+                                              XXXXXXX, _______, _______,                    _______, KC_BSPC, XXXXXXX
+    ),
+
+    /*
+    * Numbers
+    *              _____                                                   _____
+    *       .-----|  3  |-----._____                           _____.-----|  8  |-----.
+    * .-----|  2  |_____|  4  |  5  |                         |  6  |  7  |_____|  9  |-----.
+    * |  1  |-----| F3  |-----|_____|                         |_____|-----| F8  |-----|  0  |
+    * |-----| F2  |_____| F4  | F5  |                         | F6  | F7  |_____| F9  |-----|
+    * | F1  |-----| Scr |-----|_____|                         |_____|-----|     |-----| F10 |
+    * |-----| TMg |_____|     |     |                         |     |     |_____| F11 |-----|
+    * |Shift|-----'     '-----|_____|                         |_____|-----'     '-----| F12 |
+    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----'
+    *                  |     ||CTRL | /     /         \     \ | BSp ||     |           SHIFT
+    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----'
+    *                               '--.._/             \_..--'
+    */
+    [_NUM] = LAYOUT(
+        KC_1   , KC_2       , KC_3      , KC_4   , KC_5   ,                                KC_6   , KC_7   , KC_8   , KC_9   , KC_0   ,
+        KC_F1  , KC_F2      , KC_F3     , KC_F4  , KC_F5  ,                                KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 ,
+        KC_LSFT, LCA(KC_DEL), SWIN(KC_S), XXXXXXX, XXXXXXX,                                XXXXXXX, XXXXXXX, XXXXXXX, KC_F11 , RSFT_T(KC_F12) ,
+                                       XXXXXXX, _______, _______,                    _______, KC_BSPC, XXXXXXX
+    ),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        /* Space Enter swap */
+        case KC_THUMB_SWAP:
+            if (record->event.pressed) {
+                unregister_code(KC_SPC);
+                unregister_code(KC_ENT);
+                swap_space_enter = !swap_space_enter;
+            }
+            return false;
+            break;
+
+        case KC_ENT:
+            if (swap_space_enter) {
+                if (record->event.pressed) {
+                    register_code(KC_SPC);
+                } else {
+                    unregister_code(KC_SPC);
+                }
+                return false;
+            }
+            break;
+        case KC_SPC:
+            if (swap_space_enter) {
+                if (record->event.pressed) {
+                    register_code(KC_ENT);
+                } else {
+                    unregister_code(KC_ENT);
+                }
+                return false;
+            }
+            break;
+    }
+    return true;
+}