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

Update Keychron series - Part 1 #21129

Closed
wants to merge 56 commits into from
Closed

Conversation

adophoxia
Copy link
Contributor

@adophoxia adophoxia commented Jun 5, 2023

Description

This is Part 1 of a 5-part series of PRs to updating the entire Keychron lineup to current QMK standards. Since doing 1 PR to update 25 keyboards is unmanageable, doing them in batches would help make it tolerable. This

Changes:

  • Full DD-configuration wherever necessary (including RGB_Matrix DD-configuration)
  • Moving common code to "keyboard" level files (Ex: q2/info.json/q2/config.h)
    • Encoder-specifc code like #define ENCODER_DEFAULT_POS 0x3 to the keyboard-level config.h inside of a #ifdef ENCODER_ENABLE block
    • rules.mk features into the keyboard level info.json
    • RGB Matrix effects and rgb_matrix driver (CKLED2001/IS31FL3733(Q1v1))
    • bootloader and MCU processor, diode_direction
    • This:
      "keyboard_name": "Keychron Q/V[XX]",
      "manufacturer": "Keychron",
      "url": "https://github.com/Keychron",
      "maintainer": "lalalademaxiya1",
      "usb": {
          "vid": "0x3434"
      }
  • Updating readme.mds to include variants of boards forcompile and flash instructions and to provide imgur links

Keyboard-specific

  • Q1
    • Update files to show as Q1v1 since there are two variants of the Q1, Q1v2 being the newer variant, and to partially restructure for when the Q1v2 gets merged into upstream QMK
    • Add Keychron Q1 Version 2 #20416
  • Q4
    • Consolidate both keymaps folders from q4/ansi_v1 and q4/ansi_v2 to be under q4/ansi/keymaps instead of these 2 variants having their own keymaps folders.
      Basically going from this
       q4/
       ├─ iso/
       ├─ ansi_v1/
       │  ├─ keymaps/
       ├─ ansi_v2/
       │  ├─ keymaps/
    
    to this
    q4/
    ├─ iso/
    │  ├─ keymaps/
    ├─ ansi/
    │  ├─ v1/
    │  ├─ v2/
    │  ├─ keymaps/
    

Part 1 involves updating the following KC boards:

  • Q0
  • Q1v1
  • Q2
  • Q3
  • Q4

Types of Changes

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

Issues Fixed or Closed by This PR

Checklist

  • My code follows the code style of this project: C, Python
  • 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.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@github-actions github-actions bot added keymap via Adds via keymap and/or updates keyboard for via support labels Jun 5, 2023
@adophoxia adophoxia marked this pull request as ready for review June 5, 2023 03:58
@drashna drashna requested a review from a team June 11, 2023 06:48
adophoxia and others added 19 commits June 17, 2023 21:49
Apparently layouts with 2u keys were not correctly converted into the
`info.json` format (the old C layout macros used the arguments for such
keys multiple times to cover all possible 1u locations; this is not
supported in `info.json`, and the single matrix location for 2u keys was
chosen incorrectly in some cases).  Fix the layout definitions to match
the real PCB wiring.
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: jack <[email protected]>
Co-authored-by: adophoxia <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: jack <[email protected]>
* [refactor] friendly-format info.json

* [enhancement] remove key overlap

Fix a key overlap in the Configurator rendering between LCtrl and Fn2.

* [enhancement] replace store links with product links

Replace URLs that point to the vendor's shop with URLs to the vendor's
product listing.
* [enhancement] add matrix diagram

* [refactor] friendly-format info.json

* [enhancement] remove key overlaps
* fix non-default keymap compiling, initial matrix state, watchdog options

* fix: allow planck/rev7 to be used with ENCODER_ENABLE = no

* chore: update function name on all cases.

* remove old midi tone option

Co-authored-by: Ryan <[email protected]>

* fixes abhixec's planck keymap

* add audio enable condition to abhixec's planck keymap

* add audio enable condition to all muse includes

* Revert "add audio enable condition to all muse includes"

This reverts commit 9779e90.

* Revert "add audio enable condition to abhixec's planck keymap"

This reverts commit 24c742a.

* Revert "fixes abhixec's planck keymap"

This reverts commit 4bb085d.

---------

Co-authored-by: Peter.Falken <[email protected]>
Co-authored-by: Ryan <[email protected]>
* NovelKeys NK+: correct layout data

Add key sizes to the layout data.

* [refactor] rename LAYOUT to LAYOUT_65_xt_ansi_blocker_tsangan
Co-authored-by: adophoxia <[email protected]>
Co-authored-by: jack <[email protected]>
noroadsleft and others added 23 commits June 21, 2023 21:35
* [refactor] friendly-format info.json

* [enhancement] add matrix diagram

* [enhancement] remove key overlaps in layout data
* [style] friendly-format info.json

* [chore] correct layout data

Fix a poor Configurator/CLI rendering.
[chore]

Correct the layout data for the keyboard.

This commit fixes a misleading Configurator implementation.
qmk#21342)

* [style] sort JSON keys in layout objects

* [chore] correct layout data

* [refactor] rename LAYOUT_all_split to LAYOUT_ortho_5x4

* [refactor] rename LAYOUT_2u_plus_2u_enter_2u_zero to LAYOUT_numpad_5x4

* [enhancement] enable Community Layout support
* [chore] correct layout data

* [refactor] rename LAYOUT to LAYOUT_tkl_f13_ansi_tsangan

* [enhancement] enable Community Layout support
* [chore] correct layout data

* [docs] add layout/matrix diagram

* [refactor] rename LAYOUT to LAYOUT_all

* [enhancement] add LAYOUT_ansi_split_space_split_bs_rshift

* [enhancement] add LAYOUT_ansi_split_space

* [enhancement] add LAYOUT_ansi_split_bs_rshift

* [enhancement] add LAYOUT_ansi

* [enhancement] add LAYOUT_ansi_tsangan_split_bs_rshift

* [enhancement] add LAYOUT_ansi_tsangan

* [style] refactor keymaps

- use four-space indent
- convert tabs to spaces
- use QMK-native keycode aliases
* [chore] correct layout data

* [chore] rename LAYOUT to LAYOUT_all

* [docs] add layout/matrix diagram

* [enhancement] add LAYOUT_tkl_ansi_split_bs

* [enhancement] add LAYOUT_tkl_ansi

* [enhancement] add LAYOUT_tkl_ansi_tsangan_split_bs

* [enhancement] add LAYOUT_tkl_ansi_tsangan

* [enhancement] enable Community Layout support

* [chore] add reference keymaps
* [chore] correct layout data

* [chore] rename LAYOUT to LAYOUT_625u_space

* [style] friendly-format info.json

* [enhancement] add LAYOUT_7u_space
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 36 to 37.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](tj-actions/changed-files@v36...v37)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [style] friendly-format info.json

* [chore] correct layout data

* [docs] add layout/matrix diagram

* [refactor] rename LAYOUT to LAYOUT_65_ansi_blocker_tsangan_split_bs

* [enhancement] add LAYOUT_65_ansi_blocker_wkl_split_bs

* [chore] correct listed maintainer

Reference the maintainer's GitHub username.
* [docs] add layout/matrix diagram

* [refactor] rename LAYOUT_65_ansi_tsangan to LAYOUT_65_ansi
* [style] friendly-format info.json

- sort JSON keys in layouts object
  - remove instances of `w: 1`

* [chore] correct layout data

* [refactor] rename LAYOUT to LAYOUT_60_tsangan_hhkb

* [enhancement] add LAYOUT_60_ansi_tsangan_split_rshift

* [enhancement] enable Community Layout support

* [bugfix] write appropropriate keymaps

Neither the `default` nor `via` keymaps were written appropriately for
this keyboard.

This commit modifies both keymaps to be appropriate for
`60_tsangan_hhkb` layout.
* [style] refactor keymaps

- use four-space indent
- grid-align keycodes
- use QMK-native keycode aliases

* [style] friendly-format info.json

* [chore] remove key overlaps in layout data

* [chore] correct key sequence

* [chore] add key labels

Add `label` keys to the JSON layout data to disambiguate which keys each
object is meant to represent.

Based on the original key sizes and positions as submitted by the
maintainer.

* [docs] add layout/matrix diagram

* [refactor] rename LAYOUT to LAYOUT_all

* [enhancement] add LAYOUT_tkl_ansi_split_bs_rshift

* [enhancement] add LAYOUT_tkl_iso_split_bs_rshift

* [enhancement] enable Community Layout support
@adophoxia
Copy link
Contributor Author

Messed up merge with upstream QMK. Closing and retrying at a later date.

@adophoxia adophoxia closed this Jun 29, 2023
@adophoxia adophoxia deleted the kc-update-part-1 branch June 27, 2024 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI core documentation keyboard keymap via Adds via keymap and/or updates keyboard for via support
Projects
None yet
Development

Successfully merging this pull request may close these issues.