Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GON NerD codebase refactor #7795

Merged
merged 15 commits into from
Jan 24, 2020
Merged

GON NerD codebase refactor #7795

merged 15 commits into from
Jan 24, 2020

Conversation

noroadsleft
Copy link
Member

Description

The current gonnerd codebase supports both the NerD 60 and the NerD TKL PCBs. This PR refactors the codebase into two, one for each PCB, inside a gon vendor directory.

User keymaps affected:

Old Keymap New Keymap Owner
gonnerd:mauin gon/nerd60:mauin @Mauin
gonnerd:gam3cat gon/nerdtkl:gam3cat @Gam3cat

Special care was taken to make sure neither of the user keymaps experienced behaviour changes as best as I could. Each major change was tested by recompiling each keymap and checking the SHA-1 hash of the compiled .hex files, with the following exceptions/caveats:

  • The gon/nerdtkl:gam3cat keymap (previously gonnerd:gam3cat) was not checked through this testing, because the keymap.c includes version.h, which means the hash changes every time you compile it.
  • The gon/nerdtkl:default keymap (previously gonnerd:tkl) was checked with CONSOLE_ENABLE set to no, for the same reason as above.

Types of Changes

  • Enhancement/optimization
  • Keyboard (addition or update)

Checklist

  • My code follows the code style of this project.
  • I have read the CONTRIBUTING document.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@noroadsleft noroadsleft added enhancement keyboard keymap breaking_change Changes that need to wait for a version increment labels Jan 5, 2020
@noroadsleft noroadsleft requested a review from a team January 5, 2020 07:53
@fauxpark
Copy link
Member

fauxpark commented Jan 5, 2020

IMO these should be gon/nerd/60 and gon/nerd/tkl. The Wasdat does something similar as the matrix is the same for both fullsize and TKL. Perhaps they should also be changed to maartenwut/wasdat/fullsize and /tkl?

@noroadsleft
Copy link
Member Author

IMO these should be gon/nerd/60 and gon/nerd/tkl. The Wasdat does something similar as the matrix is the same for both fullsize and TKL. Perhaps they should also be changed to maartenwut/wasdat/fullsize and /tkl?

To me, the Wasdat argument isn't really relevant, because it's a converter that works with multiple keyboards. The NerD 60 and NerD TKL are two completely different PCBs (though yes, the 60 uses a subset of the TKL matrix).

I also don't see the point of introducing a /nerd/ directory tier here. What would be the supposed purpose of doing that?

@fauxpark
Copy link
Member

fauxpark commented Jan 6, 2020

Not really, just the WASD V2, which comes in TKL and fullsize flavours (ANSI and ISO), and also share the same common matrix. So to me it seems like a pretty similar situation, just that the MCU happens to be removable.

The 60% portion of the two NerD PCBs look very closely related:
http://www.gonskeyboardworks.com/214-thickbox_default/nerd-60-ver20-pcb.jpg
http://www.gonskeyboardworks.com/185-thickbox_default/nerd-tkl-ver20-pcb.jpg
So I feel they should be grouped together under the nerd name, as separate logical "revisions".

@noroadsleft
Copy link
Member Author

noroadsleft commented Jan 6, 2020

We're debating semantics at this point, as I would still consider the WASD V2 TKL and V2 Fullsize to be separate boards.

I went with gon/nerd(60|tkl) as vendor/keyboard. I don't see 60 vs. TKL here as a revision thing at all. I might feel differently if the only PCB sold were a TKL (or a 108 because there's one of those too) with mouse bites on the PCB such that you could snap sections off.

@fauxpark
Copy link
Member

fauxpark commented Jan 7, 2020

I see what you mean, the Wasdat itself is the same board, just able to be plugged into two different sized boards that happen to have the same matrix and name. I realise "revision" is not the best term here, which is why I put it in quotes - this is just what QMK mainly uses subfolders for, but I don't see why they couldn't be used for other distinctions.

Either way, ✔️

@drashna drashna requested a review from a team January 8, 2020 05:06
@noroadsleft noroadsleft changed the base branch from master to future January 24, 2020 17:57
- remove firmware size impact numbers
- add missing rules from AVR template
Previous notation was k<column><row>.
... instead of mapping through LAYOUT_tkl.
- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting
Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)
nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.
nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.
Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.
The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.
Make the default keymaps more complete, and add a readme for each keymap.
@noroadsleft
Copy link
Member Author

All keymaps compile in Travis CI; error is because I force-pushed after a rebase.

@noroadsleft noroadsleft merged commit 4919d17 into qmk:future Jan 24, 2020
noroadsleft added a commit to noroadsleft/qmk_firmware that referenced this pull request Jan 24, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
noroadsleft added a commit to noroadsleft/qmk_firmware that referenced this pull request Feb 1, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
noroadsleft added a commit to noroadsleft/qmk_firmware that referenced this pull request Feb 1, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
noroadsleft added a commit to noroadsleft/qmk_firmware that referenced this pull request Feb 8, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
noroadsleft added a commit to noroadsleft/qmk_firmware that referenced this pull request Feb 14, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
noroadsleft added a commit to noroadsleft/qmk_firmware that referenced this pull request Feb 21, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
noroadsleft added a commit that referenced this pull request Feb 27, 2020
* config.h: use #pragma once include guard

* gonnerd.h: use #pragma once include guard

* rules.mk: templating and cleanup

- remove firmware size impact numbers
- add missing rules from AVR template

* gonnerd.h: use four-space indent

* gonnerd.h: change to k<row><column> notation

Previous notation was k<column><row>.

* gonnerd.h: change LAYOUT_60 macro to use direct matrix

... instead of mapping through LAYOUT_tkl.

* info.json update

- use four-space indent
- update key labels to k<row><column> notation from k<column><row>
- use one key per line formatting

* split gonnerd codebase

Splits the unified gonnerd codebase into:

- gon/nerd60/ (NerD 60)
- gon/nerdtkl/ (NerD TKL)

* nerd60: cleanup rules.mk files

nerd60/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

Both nerd60 keymaps used the above settings, so using that as the keyboard-level default.

With this change, both the rules.mk files for the default and mauin keymaps are identical to the keyboard's rules.mk. The default keymap's rules.mk file has been deleted, while the mauin keymap's has been updated to match the AVR template, but without any settings changes or deletions.

* nerdtkl: cleanup rules.mk files

nerdtkl/rules.mk has the following changes:

- NKRO_ENABLE flipped from no to yes
- BACKLIGHT_ENABLE flipped from yes to no

The default keymap's rules.mk used the above settings, so using that as the keyboard-level default so that keymaps/default/rules.mk can be deleted.

The gam3cat keymap's rules.mk file has been updated to more closely match the AVR template and remove the firmware size impact notes, but without any settings changes or deletions.

* differentiate codebases

Remove the irrelevant code from each board's codebase, and differentiate the product names and descriptions.

Also update the USB Device Product IDs to make them unique within QMK.

* nerd60: minimize switch matrix

The NerD 60 doesn't have any switches on Column 8, so there's no need to matrix scan that column.

* add GON folder readme

* refactor default keymaps

Make the default keymaps more complete, and add a readme for each keymap.

* add ChangeLog entry
@noroadsleft noroadsleft deleted the rf/gonnerd branch July 7, 2022 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking_change Changes that need to wait for a version increment enhancement keyboard keymap
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants