profile
viewpoint
Jack Humbert jackhumbert @olkb, @qmk Indiana https://jackhumbert.com Owner of OLKB, Founder of QMK https://olkb.com, https://qmk.fm

jackhumbert/kicad_to_blender 26

An example to walkthrough a KiCAD to Blender workflow for creating renders of PCBs

jackhumbert/FreeTheWheel 20

Logitech driving wheel enabler based on Feral Interactive's FreeTheWheel

jackhumbert/kb_builder 2

The original builder which powered http://builder.swillkb.com

jackhumbert/KeyboardKit 2

KeyboardKit is a Swift library that helps you create iOS keyboard extensions.

jackhumbert/kle2xy 2

Turn keyboard-layout-editor code into X/Y coordinates.

jackhumbert/lojban-orthographies 2

A collector of Lojban Orthographies

Pull request review commentqmk/qmk_firmware

[Keymap] add noroadsleft userspace; add and update keymaps

+/* Copyright 2020 James Young (@noroadsleft)+ *+ * 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 "noroadsleft.h"+#include "version.h"++/*******************+** MODIFIER MASKS **+*******************/+bool macroMode = 0;++__attribute__((weak))+bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; };++bool process_record_user(uint16_t keycode, keyrecord_t *record) {+    switch (keycode) {+        case VRSN:+            if (record->event.pressed) {+                SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);+            }+            return false;+        case G_PUSH:+            if (record->event.pressed) {+                SEND_STRING("git push origin ");+            };+            return false;+        case G_FTCH:+            if (record->event.pressed) {+                if ( get_mods() & MOD_MASK_SHIFT ) {+                    clear_mods();+                    SEND_STRING("git pull upstream ");+                } else {+                    SEND_STRING("git fetch upstream ");+                }+            };+            return false;+        case G_BRCH:+            if (record->event.pressed) {+                if ( get_mods() & MOD_MASK_SHIFT ) {+                    clear_mods();+                    SEND_STRING("master");+                } else {+                    SEND_STRING("$(git branch-name)");+                }+            };+            return false;+        case M_SALL:+            if (record->event.pressed) {+                if ( macroMode == 1 ) {+                    SEND_STRING(SS_LGUI("a"));+                } else {+                    SEND_STRING(SS_LCTL("a"));+                }+            }+            return false;+        case M_UNDO:+            if (record->event.pressed) {+                if ( macroMode == 1 ) {+                    if ( get_mods() & MOD_MASK_SHIFT ) {+                        SEND_STRING(SS_LSFT(SS_LGUI("z")));+                    } else {+                        SEND_STRING(SS_LGUI("z"));+                    }+                } else {+                    SEND_STRING(SS_LCTL("z"));+                }+            }+            return false;+        case M_CUT:+            if (record->event.pressed) {+                if ( macroMode == 1 ) {+                    SEND_STRING(SS_LGUI("x"));+                } else {+                    SEND_STRING(SS_LCTL("x"));+                }+            }+            return false;+        case M_COPY:+            if (record->event.pressed) {+                if ( macroMode == 1 ) {+                    SEND_STRING(SS_LGUI("c"));+                } else {+                    SEND_STRING(SS_LCTL("c"));+                }+            }+            return false;+        case M_PASTE:+            if (record->event.pressed) {+                if ( macroMode == 1 ) {+                    if ( get_mods() & MOD_MASK_SHIFT ) {+                        SEND_STRING(SS_LSFT(SS_LALT(SS_LGUI("v"))));+                    } else {+                        SEND_STRING(SS_LGUI("v"));+                    }+                } else {+                    SEND_STRING(SS_LCTL("v"));+                }+            }+            return false;+        case M_MDSWP:+            if (record->event.pressed) {+                macroMode ^= 1;+            }+            return false;+        case KC_1 ... KC_0:+            if (record->event.pressed) {+                if (get_mods() & MOD_MASK_RALT) {+                    register_code(keycode + 0x3B);+                } else {+                    register_code(keycode);+                }+            } else {+                if (get_mods() & MOD_MASK_RALT) {+                    unregister_code(keycode + 0x3B);+                } else {+                    unregister_code(keycode);+                }+            }+            return false;+        case KC_F1 ... KC_F12:+            if (record->event.pressed) {+                if (get_mods() & MOD_MASK_RALT) {+                    register_code(keycode + 0x2E);+                } else {+                    register_code(keycode);+                }+            } else {+                if (get_mods() & MOD_MASK_RALT) {+                    unregister_code(keycode + 0x2E);+                } else {+                    unregister_code(keycode);+                }+            }+            return false;+    }  // switch()+    return process_record_keymap(keycode, record);

Personally, I like having this checked at top, before the switch. Eg:

if (!process_record_keymap(keycode, record)) return false;

It's a bit more inline with the core.

noroadsleft

comment created time in 15 minutes

Pull request review commentqmk/qmk_firmware

fix: ryloo studio m0110 layout 60 ansi fixed

 along with this program.  If not, see <http://www.gnu.org/licenses/>.  * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤  * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d        │  * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤- * │40  │41  │42  │46                      │49  │4a  │4c  │4d  │+ * │40  │41  │42  │47                      │49  │4a  │4c  │4d  │  * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ #define LAYOUT_60_ansi( \     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c,      k0e, \     k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \     k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \     k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,      \-    k40, k41, k42,                k46,           k49, k4a,           k4c, k4d  \+    k40, k41, k42,                     k47,      k49, k4a,           k4c, k4d  \ ) { \     { k00,  k01,   k02,  k03,   k04,   k05,   k06,  k07,   k08,   k09,  k0a,  k0b,   k0c,   KC_NO, k0e   }, \     { k10,  k11,   k12,  k13,   k14,   k15,   k16,   k17,  k18,   k19,  k1a,  k1b,   k1c,   k1d,   KC_NO }, \     { k20,  k21,   k22,  k23,   k24,   k25,   k26,   k27,  k28,   k29,  k2a,  k2b,   KC_NO, k2d,   KC_NO }, \     { k30,  KC_NO, k32,  k33,   k34,   k35,   k36,   k37,  k38,   k39,  k3a,  k3b,   KC_NO, k3d,   KC_NO }, \-    { k40,  k41,   k42,  KC_NO, KC_NO, KC_NO, k46,  KC_NO, KC_NO, k49,  k4a,  KC_NO, k4c,   k4d,   KC_NO }  \+    { k40,  k41,   k42,  KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, k49,  k4a,  KC_NO, k4c,   k4d,   KC_NO }  \

Ah thank you for catching this. The space bar should be mapped to k47 instead of k46 like in standard layout. Sorry about this. I only tested LAYOUT_60_ansi with my tweezer as I use a slightly different layout myself: https://github.com/newtonapple/qmk_firmware/blob/dev/keyboards/ryloo_studio/m0110/keymaps/newtonapple/config.h#L41. But, even in my own layout (the same bottom row as), I have the space bar mapped to k47.

    { k40,  k41,   k42,  KC_NO, KC_NO, KC_NO, KC_NO, k47,  KC_NO, k49,  k4a,  KC_NO, k4c,   k4d,   KC_NO }  \
pkisztelinski

comment created time in an hour

pull request commentqmk/qmk_firmware

Add VIA support for claw44

Thanks for reviewing it. I've applied the changes you suggested to the other keymaps.

yfuku

comment created time in an hour

push eventqmk/qmk_stats

QMK Bot

commit sha 79a764c31b7ef48f6d2fbdd198e7c1333a5e2a9f

new report

view details

push time in an hour

pull request commentqmk/qmk_firmware

Process combos earlier & overlapping combos

#response_container_BBPPID{font-family: initial; font-size:initial; color: initial;} Decent! I'm going to go ahead and get this pulled into germ/qmk_firmware. Once this hits master then maybe I can get all merged back QMK proper. -- Germ From: notifications@github.comSent: January 24, 2021 11:39 AMTo: qmk_firmware@noreply.github.comReply to: reply@reply.github.comCc: jane@gboards.ca; mention@noreply.github.comSubject: Re: [qmk/qmk_firmware] Process combos earlier & overlapping combos (#8591)
Friendly reminder that I've been using this PR for months without problems and that it should get merged hint hint (pls the next Breaking Change wave is coming)

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

sevanteri

comment created time in an hour

pull request commentqmk/qmk_firmware

Stop sounds when suspended

Did some verification:

  • PR as-is: Proton-C produces a constant buzz after startup.
  • PR, with the change from 300ms to 500ms: no difference
  • PR, with change to 5000ms: delay for 5 seconds, then constant buzz
  • PR, with change to 5000ms: delay for 15 seconds, then constant buzz
  • PR, with merge of develop branch: no difference
  • Untouched develop branch: normal startup "bleep" sound.
spidey3

comment created time in 2 hours

issue commentqmk/qmk_firmware

Consider adding Keychron K* keyboards

As far as I check the Bluetooth module can be connected to SWD for dumping the firmware. On the bottom right side, there are 4 pins, I expected that the 2 unlabeled connected are the IO and CLK for SWD. If that's the case, we only step from dumping the firmware.

If you can point me in the direction of some instructions on how to do that I have a K8 just taking up space on a shelf right now that I wouldn't miss if I messed something up.

I have checked the Datasheet of the module: It seems there is no interface for the SWD. The chip does provide an EPROM for saving the configuration of light profiles, connected devices, etc. The EPROM is being connected to the other MCU via SPI.

So far the only way to program this chip is via a tool called BlueTool, which is mentioned here: CYW20730 - Downloading Firmware to CYW20730 Modules Using Bluetool The tool uses a UART to flash the firmware. Therefore, I expect the two pins in the image above are for the UART for flashing at the factory, not for SWD flashing like the other MCU.

The module, which is being used is assembled and solid by a company called Sziton: BT5GMD-B47P

I found a post about replacing the module with STM32 but it does not help at all.

Replacing keyboard MCU

What I can think of at the moment is either we get access to BlueTool or a similar software Or we try to spoof the SPI protocol and replicate it within the qmk_firmware. Not sure though what is the best approach.

Apperatelaly, this company was able to dump the firmware of the Bluetooth module: Case Study: Security of Modern Bluetooth Keyboards

New_Tales_of_Wireless_Input_Devices

I managed to somehow get hold of the SPI communication protocol for the bluetooth mcu. It's not too bad, but QMK has very limited support atm. This is subject to change however when this https://github.com/qmk/qmk_firmware/pull/11521 and subsequent refactors take place. It will definitely be wiser time wise to rely on an api than write a driver completely from scratch or butcher up the adafruit ble drivers to work with it.

mdreizin

comment created time in 2 hours

PR opened qmk/qmk_firmware

[Keymap] add noroadsleft userspace; add and update keymaps keymap

Description

[title]

Types of Changes

  • [x] Keymap/layout/userspace (addition or update)

Checklist

  • [x] My code follows the code style of this project: C, Python
  • [x] I have read the PR Checklist document and have made the appropriate changes.
  • [x] I have read the CONTRIBUTING document.
  • [x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).
+752 -485

0 comment

16 changed files

pr created time in 2 hours

release qmk/qmk_distro_msys

beta

released time in 3 hours

pull request commentqmk/qmk_firmware

Add a-ball handwired trackball based on ADSN9800

Hi @fauxpark and @zvecr !

I appreciate both of your time and help so far. If I have missed a comment or change request somewhere along the line I apologize, but I'm not sure what needs to be done to get this PR merged. Would it be please be possible to get more notes, or an approval, on this pull request?

Thanks!

brickbots

comment created time in 3 hours

issue commentqmk/qmk_firmware

WhiteFox - RESET goes to "Kiibohd DFU Secure", cannot flash - needs to enter "Kiibohd DFU"

Possibly related to Cannot enter DFU mode with whitefox's reset key https://github.com/qmk/qmk_firmware/issues/4895

imchipwood

comment created time in 3 hours

issue commentqmk/qmk_firmware

Consider adding Keychron K* keyboards

That worked, after a bit of prodding and troubleshooting. I've manager to flash it, get everything working (except RGB on the bottom row, which stays white for some reason). I will upload pictures some time the coming days. Welcome to qmk!

if you used my trees as a base.. it could be a myriad of reasons depending on which branches you picked. But if it's a whole row misbehaving it's usually a simple fix.

Getting the keyboard to work is one thing. Getting it to work properly is a whole different story. I'm working with @smp4488 to tidy up the matrix implementation and fix a pesky memory leak there that makes it hang randomly. then there's the whole low level driver stack which is barely functional for sonix chips in chibios..

Fun times ahead

mdreizin

comment created time in 3 hours

push eventqmk/qmk_distro_msys

Joel Challis

commit sha 8f56057d4a8a8a0024247b60a67c1442c1168764

Fix terminal PS1 escaping

view details

push time in 3 hours

PR opened qmk/qmk_firmware

fix: ryloo studio m0110 layout 60 ansi fixed

<!--- Provide a general summary of your changes in the title above. -->

<!--- This template is entirely optional and can be removed, but is here to help both you and us. --> <!--- Anything on lines wrapped in comments like these will not show up in the final text. -->

Description

Fixed LAYOUT_60_ansi for the ryloo_studio/m0110 keyboard - space key is correctly mapped now.

I have this keyboard so I tested this manually and the space key works now

Types of Changes

<!--- What types of changes does your code introduce? Put an x in all the boxes that apply. -->

  • [ ] Core
  • [x] Bugfix
  • [ ] New feature
  • [ ] Enhancement/optimization
  • [ ] Keyboard (addition or update)
  • [x] Keymap/layout/userspace (addition or update)
  • [ ] Documentation

Issues Fixed or Closed by This PR

Checklist

<!--- Go over all the following points, and put an x in all the boxes that apply. --> <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->

  • [x] My code follows the code style of this project: C, Python
  • [x] I have read the PR Checklist document and have made the appropriate changes.
  • [ ] My change requires a change to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [x] I have read the CONTRIBUTING document.
  • [ ] I have added tests to cover my changes.
  • [x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).
+3 -3

0 comment

1 changed file

pr created time in 3 hours

Pull request review commentqmk/qmk_firmware

Add DSP40

+/* Copyright 2021 Danny Nguyen <danny@keeb.io>++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 layer_names {+    _MAC,+    _WINDOWS,+    _TESTMODE,+    _LOWER,+    _RAISE,+    _FKEYS,+    _ADJUST,+};++enum custom_keycodes {+  MAC = SAFE_RANGE,+  WINDOWS,+  TESTMODE,+  LOWER,+  RAISE,+  ADJUST,+};++#define KC_ KC_TRNS++#define KC_CAPW LGUI(LSFT(KC_3))        // Capture whole screen+#define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen+#define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen+#define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen+#define KC_ESCC MT(MOD_LCTL, KC_ESC)+#define KC_LOWR LOWER+#define KC_RASE RAISE+#define KC_GRVF LT(_FKEYS, KC_GRV)+#define KC_ENTS MT(MOD_LSFT, KC_ENT)+#define KC_BL_S BL_STEP+#define KC_BL_T BL_TOGG+#define KC_RMOD RGB_MOD++#ifndef LAYOUT_kc_ortho_4x12+#define LAYOUT_kc_ortho_4x12( \

Yeah, one day I'll kill this all off

nooges

comment created time in 3 hours

issue commentqmk/qmk_firmware

Consider adding Keychron K* keyboards

That worked, after a bit of prodding and troubleshooting. I've manager to flash it, get everything working (except RGB on the bottom row, which stays white for some reason). I will upload pictures some time the coming days.

mdreizin

comment created time in 3 hours

Pull request review commentqmk/qmk_firmware

Ergodone via support

+ /* Copyright HarshitGoel96 2021+  *  +  * 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+#include "version.h"++#define BASE 0 // default layer+#define SYMB 1 // symbols+#define MDIA 2 // media keys+#define EXTRA 3 // added extra layer for via+enum custom_keycodes {+  PLACEHOLDER = SAFE_RANGE, // can always be here+  EPRM,+  VRSN,+  RGB_SLD+};++const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {+/* Keymap 0: Basic layer+ *+ * ,--------------------------------------------------.           ,--------------------------------------------------.+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|+ * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|' / Cmd |+ * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift |+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |+ *   `----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|+ *                                 ,------|------|------|       |------+--------+------.+ *                                 |      |      | Home |       | PgUp |        |      |+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |+ *                                 |      |ace   | End  |       | PgDn |        |      |+ *                                 `--------------------'       `----------------------'+ */+// If it accepts an argument (i.e, is a function), it doesn't need KC_.+// Otherwise, it needs KC_*+[BASE] = LAYOUT_ergodox(  // layer 0 : default+        // left hand+        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_LEFT,+        KC_DEL,         KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(SYMB),+        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,+        KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   ALL_T(KC_NO),+        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,+                                              ALT_T(KC_APP),  KC_LGUI,+                                                              KC_HOME,+                                               KC_SPC,KC_BSPC,KC_END,+        // right hand+             KC_RGHT,     KC_6,   KC_7,  KC_8,   KC_9,   KC_0,             KC_MINS,+             TG(SYMB),    KC_Y,   KC_U,  KC_I,   KC_O,   KC_P,             KC_BSLS,+                          KC_H,   KC_J,  KC_K,   KC_L,   LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),+             MEH_T(KC_NO),KC_N,   KC_M,  KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,+                                  KC_UP, KC_DOWN,KC_LBRC,KC_RBRC,          TT(SYMB),+             KC_LALT,        CTL_T(KC_ESC),+             KC_PGUP,+             KC_PGDN,KC_TAB, KC_ENT+    ),+/* Keymap 1: Symbol Layer+ *+ * ,---------------------------------------------------.           ,--------------------------------------------------.+ * |Version  |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |+ * |---------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|+ * |         |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |+ * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |         |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |+ * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |         |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |+ * `---------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   | EPRM  |      |      |      |      |                                       |      |    . |   0  |   =  |      |+ *   `-----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        |Animat|      |       |Toggle|Solid |+ *                                 ,------|------|------|       |------+------+------.+ *                                 |Bright|Bright|      |       |      |Hue-  |Hue+  |+ *                                 |ness- |ness+ |------|       |------|      |      |+ *                                 |      |      |      |       |      |      |      |+ *                                 `--------------------'       `--------------------'+ */+// SYMBOLS+[SYMB] = LAYOUT_ergodox(+       // left hand+       VRSN,   KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,+          EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,+                                       RGB_MOD,KC_TRNS,+                                               KC_TRNS,+                               RGB_VAD,RGB_VAI,KC_TRNS,+       // right hand+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,+                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,+       RGB_TOG, RGB_SLD,+       KC_TRNS,+       KC_TRNS, RGB_HUD, RGB_HUI+),+/* Keymap 2: Media and mouse keys+ *+ * ,--------------------------------------------------.           ,--------------------------------------------------.+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|+ * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |+ *   `----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        |      |      |       |      |      |+ *                                 ,------|------|------|       |------+------+------.+ *                                 |      |      |      |       |      |      |Brwser|+ *                                 |      |      |------|       |------|      |Back  |+ *                                 |      |      |      |       |      |      |      |+ *                                 `--------------------'       `--------------------'+ */+// MEDIA AND MOUSE+[MDIA] = LAYOUT_ergodox(+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,+                                           KC_TRNS, KC_TRNS,+                                                    KC_TRNS,+                                  KC_TRNS, KC_TRNS, KC_TRNS,+    // right hand+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS,+       KC_TRNS,+       KC_TRNS, KC_TRNS, KC_WBAK+),+[EXTRA] = LAYOUT_ergodox(+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,+                                           KC_TRNS, KC_TRNS,+                                                    KC_TRNS,+                                  KC_TRNS, KC_TRNS, KC_TRNS,+    // right hand+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS,+       KC_TRNS,+       KC_TRNS, KC_TRNS, KC_WBAK+),+};++bool process_record_user(uint16_t keycode, keyrecord_t *record) {+  switch (keycode) {+    // dynamically generate these.+    case EPRM:+      if (record->event.pressed) {+        eeconfig_init();+      }+      return false;+      break;+    case VRSN:+      if (record->event.pressed) {+        SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);+      }+      return false;+      break;+    case RGB_SLD:+      if (record->event.pressed) {+        #ifdef RGBLIGHT_ENABLE+          rgblight_mode(1);+        #endif+      }+      return false;+      break;+  }+  return true;+}++// Runs just one time when the keyboard initializes.+void matrix_init_user(void) {++};++

harshitgoel96

comment created time in 3 hours

Pull request review commentqmk/qmk_firmware

Ergodone via support

+ /* Copyright HarshitGoel96 2021+  *  +  * 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+#include "version.h"++#define BASE 0 // default layer+#define SYMB 1 // symbols+#define MDIA 2 // media keys+#define EXTRA 3 // added extra layer for via+enum custom_keycodes {+  PLACEHOLDER = SAFE_RANGE, // can always be here+  EPRM,+  VRSN,+  RGB_SLD+};++const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {+/* Keymap 0: Basic layer+ *+ * ,--------------------------------------------------.           ,--------------------------------------------------.+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|+ * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|' / Cmd |+ * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift |+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |+ *   `----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|+ *                                 ,------|------|------|       |------+--------+------.+ *                                 |      |      | Home |       | PgUp |        |      |+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |+ *                                 |      |ace   | End  |       | PgDn |        |      |+ *                                 `--------------------'       `----------------------'+ */+// If it accepts an argument (i.e, is a function), it doesn't need KC_.+// Otherwise, it needs KC_*+[BASE] = LAYOUT_ergodox(  // layer 0 : default+        // left hand+        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_LEFT,+        KC_DEL,         KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(SYMB),+        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,+        KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   ALL_T(KC_NO),+        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,+                                              ALT_T(KC_APP),  KC_LGUI,+                                                              KC_HOME,+                                               KC_SPC,KC_BSPC,KC_END,+        // right hand+             KC_RGHT,     KC_6,   KC_7,  KC_8,   KC_9,   KC_0,             KC_MINS,+             TG(SYMB),    KC_Y,   KC_U,  KC_I,   KC_O,   KC_P,             KC_BSLS,+                          KC_H,   KC_J,  KC_K,   KC_L,   LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),+             MEH_T(KC_NO),KC_N,   KC_M,  KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,+                                  KC_UP, KC_DOWN,KC_LBRC,KC_RBRC,          TT(SYMB),+             KC_LALT,        CTL_T(KC_ESC),+             KC_PGUP,+             KC_PGDN,KC_TAB, KC_ENT+    ),+/* Keymap 1: Symbol Layer+ *+ * ,---------------------------------------------------.           ,--------------------------------------------------.+ * |Version  |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |+ * |---------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|+ * |         |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |+ * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |         |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |+ * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |         |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |+ * `---------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   | EPRM  |      |      |      |      |                                       |      |    . |   0  |   =  |      |+ *   `-----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        |Animat|      |       |Toggle|Solid |+ *                                 ,------|------|------|       |------+------+------.+ *                                 |Bright|Bright|      |       |      |Hue-  |Hue+  |+ *                                 |ness- |ness+ |------|       |------|      |      |+ *                                 |      |      |      |       |      |      |      |+ *                                 `--------------------'       `--------------------'+ */+// SYMBOLS+[SYMB] = LAYOUT_ergodox(+       // left hand+       VRSN,   KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,+          EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,+                                       RGB_MOD,KC_TRNS,+                                               KC_TRNS,+                               RGB_VAD,RGB_VAI,KC_TRNS,+       // right hand+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,+                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,+       RGB_TOG, RGB_SLD,+       KC_TRNS,+       KC_TRNS, RGB_HUD, RGB_HUI+),+/* Keymap 2: Media and mouse keys+ *+ * ,--------------------------------------------------.           ,--------------------------------------------------.+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|+ * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |+ *   `----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        |      |      |       |      |      |+ *                                 ,------|------|------|       |------+------+------.+ *                                 |      |      |      |       |      |      |Brwser|+ *                                 |      |      |------|       |------|      |Back  |+ *                                 |      |      |      |       |      |      |      |+ *                                 `--------------------'       `--------------------'+ */+// MEDIA AND MOUSE+[MDIA] = LAYOUT_ergodox(+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,+                                           KC_TRNS, KC_TRNS,+                                                    KC_TRNS,+                                  KC_TRNS, KC_TRNS, KC_TRNS,+    // right hand+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS,+       KC_TRNS,+       KC_TRNS, KC_TRNS, KC_WBAK+),+[EXTRA] = LAYOUT_ergodox(+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,+                                           KC_TRNS, KC_TRNS,+                                                    KC_TRNS,+                                  KC_TRNS, KC_TRNS, KC_TRNS,+    // right hand+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS,+       KC_TRNS,+       KC_TRNS, KC_TRNS, KC_WBAK+),+};++bool process_record_user(uint16_t keycode, keyrecord_t *record) {+  switch (keycode) {+    // dynamically generate these.+    case EPRM:+      if (record->event.pressed) {+        eeconfig_init();+      }+      return false;+      break;+    case VRSN:+      if (record->event.pressed) {+        SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);+      }+      return false;+      break;+    case RGB_SLD:+      if (record->event.pressed) {+        #ifdef RGBLIGHT_ENABLE+          rgblight_mode(1);+        #endif+      }+      return false;+      break;

RGB_M_P instead?

harshitgoel96

comment created time in 3 hours

Pull request review commentqmk/qmk_firmware

Ergodone via support

+ /* Copyright HarshitGoel96 2021+  *  +  * 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+#include "version.h"++#define BASE 0 // default layer+#define SYMB 1 // symbols+#define MDIA 2 // media keys+#define EXTRA 3 // added extra layer for via+enum custom_keycodes {+  PLACEHOLDER = SAFE_RANGE, // can always be here+  EPRM,+  VRSN,+  RGB_SLD+};++const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {+/* Keymap 0: Basic layer+ *+ * ,--------------------------------------------------.           ,--------------------------------------------------.+ * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|+ * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|' / Cmd |+ * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|+ * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift |+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |+ *   `----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|+ *                                 ,------|------|------|       |------+--------+------.+ *                                 |      |      | Home |       | PgUp |        |      |+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |+ *                                 |      |ace   | End  |       | PgDn |        |      |+ *                                 `--------------------'       `----------------------'+ */+// If it accepts an argument (i.e, is a function), it doesn't need KC_.+// Otherwise, it needs KC_*+[BASE] = LAYOUT_ergodox(  // layer 0 : default+        // left hand+        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_LEFT,+        KC_DEL,         KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(SYMB),+        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,+        KC_LSFT,        CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   ALL_T(KC_NO),+        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,+                                              ALT_T(KC_APP),  KC_LGUI,+                                                              KC_HOME,+                                               KC_SPC,KC_BSPC,KC_END,+        // right hand+             KC_RGHT,     KC_6,   KC_7,  KC_8,   KC_9,   KC_0,             KC_MINS,+             TG(SYMB),    KC_Y,   KC_U,  KC_I,   KC_O,   KC_P,             KC_BSLS,+                          KC_H,   KC_J,  KC_K,   KC_L,   LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),+             MEH_T(KC_NO),KC_N,   KC_M,  KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,+                                  KC_UP, KC_DOWN,KC_LBRC,KC_RBRC,          TT(SYMB),+             KC_LALT,        CTL_T(KC_ESC),+             KC_PGUP,+             KC_PGDN,KC_TAB, KC_ENT+    ),+/* Keymap 1: Symbol Layer+ *+ * ,---------------------------------------------------.           ,--------------------------------------------------.+ * |Version  |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |+ * |---------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|+ * |         |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |+ * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |         |   #  |   $  |   (  |   )  |   `  |------|           |------| Down |   4  |   5  |   6  |   +  |        |+ * |---------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |         |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   \  |        |+ * `---------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   | EPRM  |      |      |      |      |                                       |      |    . |   0  |   =  |      |+ *   `-----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        |Animat|      |       |Toggle|Solid |+ *                                 ,------|------|------|       |------+------+------.+ *                                 |Bright|Bright|      |       |      |Hue-  |Hue+  |+ *                                 |ness- |ness+ |------|       |------|      |      |+ *                                 |      |      |      |       |      |      |      |+ *                                 `--------------------'       `--------------------'+ */+// SYMBOLS+[SYMB] = LAYOUT_ergodox(+       // left hand+       VRSN,   KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,+          EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,+                                       RGB_MOD,KC_TRNS,+                                               KC_TRNS,+                               RGB_VAD,RGB_VAI,KC_TRNS,+       // right hand+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,+       KC_TRNS, KC_UP,   KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,+                KC_DOWN, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_BSLS, KC_TRNS,+                         KC_TRNS,KC_DOT,  KC_0,    KC_EQL,  KC_TRNS,+       RGB_TOG, RGB_SLD,+       KC_TRNS,+       KC_TRNS, RGB_HUD, RGB_HUI+),+/* Keymap 2: Media and mouse keys+ *+ * ,--------------------------------------------------.           ,--------------------------------------------------.+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|+ * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|+ * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'+ *   |      |      |      | Lclk | Rclk |                                       |VolUp |VolDn | Mute |      |      |+ *   `----------------------------------'                                       `----------------------------------'+ *                                        ,-------------.       ,-------------.+ *                                        |      |      |       |      |      |+ *                                 ,------|------|------|       |------+------+------.+ *                                 |      |      |      |       |      |      |Brwser|+ *                                 |      |      |------|       |------|      |Back  |+ *                                 |      |      |      |       |      |      |      |+ *                                 `--------------------'       `--------------------'+ */+// MEDIA AND MOUSE+[MDIA] = LAYOUT_ergodox(+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,+                                           KC_TRNS, KC_TRNS,+                                                    KC_TRNS,+                                  KC_TRNS, KC_TRNS, KC_TRNS,+    // right hand+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS,+       KC_TRNS,+       KC_TRNS, KC_TRNS, KC_WBAK+),+[EXTRA] = LAYOUT_ergodox(+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,+                                           KC_TRNS, KC_TRNS,+                                                    KC_TRNS,+                                  KC_TRNS, KC_TRNS, KC_TRNS,+    // right hand+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,+                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,+                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,+       KC_TRNS, KC_TRNS,+       KC_TRNS,+       KC_TRNS, KC_TRNS, KC_WBAK+),+};++bool process_record_user(uint16_t keycode, keyrecord_t *record) {+  switch (keycode) {+    // dynamically generate these.+    case EPRM:+      if (record->event.pressed) {+        eeconfig_init();+      }+      return false;+      break;

EEP_RST instead?

harshitgoel96

comment created time in 3 hours

Pull request review commentqmk/qmk_firmware

Add s-ol/0xC.pad

+# MCU name+MCU = atmega32u2++# Bootloader selection+#   Teensy       halfkay+#   Pro Micro    caterina+#   Atmel DFU    atmel-dfu+#   LUFA DFU     lufa-dfu+#   QMK DFU      qmk-dfu+#   ATmega32A    bootloadHID+#   ATmega328P   USBasp+BOOTLOADER = atmel-dfu++# Build Options+#   comment out to disable the options.+#+BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration+MOUSEKEY_ENABLE  = yes # Mouse keys+EXTRAKEY_ENABLE  = yes # Audio control and System control+CONSOLE_ENABLE   = no  # Console for debug+COMMAND_ENABLE   = no  # Commands for debug and configuration+NKRO_ENABLE      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work+UNICODE_ENABLE   = yes # Unicode+SLEEP_LED_ENABLE = no
# Bootloader selection
BOOTLOADER = atmel-dfu

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = yes       # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = no         # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes           # USB Nkey Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no       # Enable Bluetooth
AUDIO_ENABLE = no           # Audio output
s-ol

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

Add s-ol/0xC.pad

+/* Copyright 2021 s-ol+ *+ * 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/>.+ */+#pragma once++#include "quantum.h"++#define LAYOUT(                     \+                                    \+          k01, k05,                 \+        k02, k06, k10,              \+      k03, k07, k11, k15,           \+        k08, k12, k16         )     \+                                    \+    {                               \+        { k01, k05, KC_NO, KC_NO }, \+        { k02, k06, k10, KC_NO   }, \+        { k03, k07, k11, k15     }, \+        { KC_NO, k08, k12, k16   }, \+    }++#define LED_LAYOUT(            \+                               \+          k01, k05,            \+        k02, k06, k10,         \+      k03, k07, k11, k15,      \+        k08, k12, k16    )     \+                               \+    {                          \+        k01, k02, k03, k08,    \+        k07, k06, k05, k10,    \+        k11, k12, k16, k15,    \+    }
s-ol

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

add sam's sg81m keyboard

+#include "sg81m.h"
/* Copyright 2021 CMM.Studio Freather
 *
 * 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 "sg81m.h"
CMMS-Freather

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

add sam's sg81m keyboard

+/*

add sam's sg81m keyboard

but has other changes outside that keyboard?

CMMS-Freather

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

Add Hi-Tek AIM-65 keyboard

+# Hi-Tek AIM-65++![Hi-Tek AIM-65 Keyboard](https://imgur.com/7Gam1f2.jpg)++The keboard assembly that came with the Rockwell AIM-65, a microcomputer from the '70s [Wikipedia article](https://en.wikipedia.org/wiki/AIM-65)++The controller is a Pro Micro handwired to the original connector. [This](https://github.com/Bonnee/aim-65_keyboard) repo collects 3D models for the case, schematics for the matrix and pics.++* Keyboard Maintainer: [Matteo Bonora](https://github.com/bonnee)+* Hardware Supported: Pro Micro++The default layout is useless on a modern computer, you can use it as a base for your own though.++Make example for this keyboard (after setting up your build environment):++    make aim_65:bonnee
    make handwired/aim65:default
Bonnee

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

Add Hi-Tek AIM-65 keyboard

+# MCU name+MCU = atmega32u4++BOOTLOADER = caterina++# Build Options+#   comment out to disable the options.+#+BOOTMAGIC_ENABLE ?= yes	# Virtual DIP switch configuration(+1000)+MOUSEKEY_ENABLE ?= no	# Mouse keys(+4700)+EXTRAKEY_ENABLE ?= yes	# Audio control and System control(+450)+CONSOLE_ENABLE ?= no	# Console for debug(+400)+COMMAND_ENABLE ?= no    # Commands for debug and configuration+SLEEP_LED_ENABLE ?= no  # Breathing sleep LED during USB suspend+NKRO_ENABLE ?= no	# USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work+BACKLIGHT_ENABLE ?= no  # Enable keyboard backlight functionality+AUDIO_ENABLE ?= no
# Bootloader selection
BOOTLOADER = caterina

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = yes       # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = no         # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no            # USB Nkey Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no       # Enable Bluetooth
AUDIO_ENABLE = no           # Audio output
Bonnee

comment created time in 4 hours

pull request commentqmk/qmk_firmware

add sam's sg81m keyboard

this firmware is ready to be merged. thanks qmk team!

CMMS-Freather

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

added Pursuit40 PCB for Panc40

+# MCU name+MCU = atmega32u4++# Bootloader selection+BOOTLOADER = atmel-dfu++# Build Options+#   change yes to no to disable+#+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration+MOUSEKEY_ENABLE = no        # Mouse keys+EXTRAKEY_ENABLE = yes       # Audio control and System control+CONSOLE_ENABLE = no         # Console for debug+COMMAND_ENABLE = yes        # Commands for debug and configuration
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = yes       # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = no         # Commands for debug and configuration
npspears

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

added Pursuit40 PCB for Panc40

+# MCU name+MCU = atmega32u4++# Bootloader selection+BOOTLOADER = atmel-dfu++# Build Options+#   change yes to no to disable+#+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration+MOUSEKEY_ENABLE = no        # Mouse keys+EXTRAKEY_ENABLE = yes       # Audio control and System control+CONSOLE_ENABLE = no         # Console for debug+COMMAND_ENABLE = yes        # Commands for debug and configuration+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work+NKRO_ENABLE = yes           # USB Nkey Rollover+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow+BLUETOOTH_ENABLE = no       # Enable Bluetooth+AUDIO_ENABLE = no           # Audio output+UNICODE_ENABLE = yes        # Unicode+

shouldnt be enabled at the keyboard level

npspears

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

added Pursuit40 PCB for Panc40

+{+    "keyboard_name": "Pursuit40", +    "url": "https://panc.co/store/ols/products/panc40-keyboard", +    "maintainer": "nasp", +    "width": 12, +    "height": 4, +    "layouts": {+        "default": {
        "LAYOUT_default": {
npspears

comment created time in 4 hours

Pull request review commentqmk/qmk_firmware

Add SCRAMBLE

+# SCRAMBLE++![SCRAMBLE](https://nullbits.co/static/img/scramble1.jpg)++A 6-switch key tester macropad built by nullbits. [More info at nullbits.co](https://nullbits.co/scramble/)++* Keyboard Maintainer: [Jay Greco](https://github.com/jaygreco)+* Hardware Supported: SCRAMBLE Rev1+* Hardware Availability: [nullbits.co](https://nullbits.co/)++Note: If you are seeing issues with MacOS and keyboard hangs after sleep, make sure `NO_USB_STARTUP_CHECK = yes` is set in your rules.mk.++Make example for this keyboard (after setting up your build environment):++    make nullbitsco/scramble:default++See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
Flashing example for this keyboard:

    make nullbitsco/scramble:default:flash

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

Additionally, instructions here on how to access the bootloader mode would be good.

jaygreco

comment created time in 4 hours

more