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

Custom user keymap for Think6.5 with LED range control #7603

Merged
merged 9 commits into from
Dec 18, 2019

Conversation

rys
Copy link
Contributor

@rys rys commented Dec 10, 2019

Adds an ISO layout to the solderable version of the Think6.5, and user cycling of the RGB ranges on the board which get saved and restored to user EEPROM so they persist when the board resets.

Description

The Think6.5 has a bunch of RGB LEDs grouped into three main ranges. This keymap allows the user to cycle through all combinations of those ranges, and toggle them on and off individually, saving and restoring the chosen state in user EEPROM.

I've also added an ISO layout to the solderable version of the PCB, which it supports.

If the general LED control idea is good I'd be happy to add it to the top level default maps for both Think6.5 PCB types and maintain it. I've no idea if the way I manage, cycle and toggle the LED state map for the ranges is a good idea or not. Please suggest a better way to do it if there is one!

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.
  • 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).

Copy link
Contributor

@yanfali yanfali left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You will need to update the info.json otherwise configurator will break.

@rys
Copy link
Contributor Author

rys commented Dec 10, 2019

You will need to update the info.json otherwise configurator will break.

Sorry about that, I'll add the new layout type as soon as I figure out how info.json works.

@yanfali
Copy link
Contributor

yanfali commented Dec 10, 2019

You will need to update the info.json otherwise configurator will break.

Sorry about that, I'll add the new layout type as soon as I figure out how info.json works.

@noroadsleft can help you out. Easiest thing is get a KLE of your new layout and pass it through qmk.fm/converter take that output and add it to the layouts in the info.json

@drashna drashna requested a review from a team December 11, 2019 19:38
@MudkipMao
Copy link
Contributor

Nice! @rys

@drashna drashna requested a review from noroadsleft December 12, 2019 19:46
Copy link
Member

@noroadsleft noroadsleft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The suggestions below move the KC_NUHS to the home row, which is more consistent with ISO layout macros throughout QMK. No change in behaviour.

After applying the suggested changes, please insert the following at Line 80 of keyboards/gray_studio/think65/solder/info.json:

        "LAYOUT_65_iso_badge": {
            "key_count": 66,
            "layout": [
                {"label":"K00", "x":0, "y":0},
                {"label":"K01", "x":1, "y":0},
                {"label":"K02", "x":2, "y":0},
                {"label":"K03", "x":3, "y":0},
                {"label":"K04", "x":4, "y":0},
                {"label":"K05", "x":5, "y":0},
                {"label":"K06", "x":6, "y":0},
                {"label":"K07", "x":7, "y":0},
                {"label":"K08", "x":8, "y":0},
                {"label":"K09", "x":9, "y":0},
                {"label":"K0A", "x":10, "y":0},
                {"label":"K0B", "x":11, "y":0},
                {"label":"K0C", "x":12, "y":0},
                {"label":"K0D", "x":13, "y":0, "w":2},
                {"label":"K0F", "x":15, "y":0},
                {"label":"K10", "x":0, "y":1, "w":1.5},
                {"label":"K12", "x":1.5, "y":1},
                {"label":"K13", "x":2.5, "y":1},
                {"label":"K14", "x":3.5, "y":1},
                {"label":"K15", "x":4.5, "y":1},
                {"label":"K16", "x":5.5, "y":1},
                {"label":"K17", "x":6.5, "y":1},
                {"label":"K18", "x":7.5, "y":1},
                {"label":"K19", "x":8.5, "y":1},
                {"label":"K1A", "x":9.5, "y":1},
                {"label":"K1B", "x":10.5, "y":1},
                {"label":"K1C", "x":11.5, "y":1},
                {"label":"K1D", "x":12.5, "y":1},
                {"label":"K1F", "x":15, "y":1},
                {"label":"K20", "x":0, "y":2, "w":1.75},
                {"label":"K22", "x":1.75, "y":2},
                {"label":"K23", "x":2.75, "y":2},
                {"label":"K24", "x":3.75, "y":2},
                {"label":"K25", "x":4.75, "y":2},
                {"label":"K26", "x":5.75, "y":2},
                {"label":"K27", "x":6.75, "y":2},
                {"label":"K28", "x":7.75, "y":2},
                {"label":"K29", "x":8.75, "y":2},
                {"label":"K2A", "x":9.75, "y":2},
                {"label":"K2B", "x":10.75, "y":2},
                {"label":"K2C", "x":11.75, "y":2},
                {"label":"K1E", "x":12.75, "y":2},
                {"label":"K2D", "x":13.75, "y":1, "w":1.25, "h":2},
                {"label":"K30", "x":0, "y":3, "w":1.25},
                {"label":"K31", "x":1.25, "y":3},
                {"label":"K32", "x":2.25, "y":3},
                {"label":"K33", "x":3.25, "y":3},
                {"label":"K34", "x":4.25, "y":3},
                {"label":"K35", "x":5.25, "y":3},
                {"label":"K36", "x":6.25, "y":3},
                {"label":"K37", "x":7.25, "y":3},
                {"label":"K38", "x":8.25, "y":3},
                {"label":"K39", "x":9.25, "y":3},
                {"label":"K3A", "x":10.25, "y":3},
                {"label":"K3B", "x":11.25, "y":3},
                {"label":"K3D", "x":12.25, "y":3, "w":1.75},
                {"label":"K3E", "x":14, "y":3},
                {"label":"K40", "x":0, "y":4, "w":1.25},
                {"label":"K41", "x":1.25, "y":4, "w":1.25},
                {"label":"K43", "x":2.5, "y":4, "w":1.25},
                {"label":"K46", "x":3.75, "y":4, "w":6.25},
                {"label":"K4A", "x":10, "y":4, "w":1.25},
                {"label":"K4B", "x":11.25, "y":4, "w":1.25},
                {"label":"K4D", "x":13, "y":4},
                {"label":"K4E", "x":14, "y":4},
                {"label":"K4F", "x":15, "y":4}
            ]
        },

keyboards/gray_studio/think65/solder/keymaps/rys/keymap.c Outdated Show resolved Hide resolved
keyboards/gray_studio/think65/solder/keymaps/rys/keymap.c Outdated Show resolved Hide resolved
keyboards/gray_studio/think65/solder/keymaps/rys/keymap.c Outdated Show resolved Hide resolved
keyboards/gray_studio/think65/solder/keymaps/rys/keymap.c Outdated Show resolved Hide resolved
keyboards/gray_studio/think65/solder/solder.h Outdated Show resolved Hide resolved
keyboards/gray_studio/think65/solder/solder.h Outdated Show resolved Hide resolved
@rys
Copy link
Contributor Author

rys commented Dec 14, 2019

Thanks @noroadsleft! I've applied those suggestions and the layout for info.json to my tree.

@rys rys requested a review from noroadsleft December 14, 2019 21:47
Copy link
Member

@noroadsleft noroadsleft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@noroadsleft noroadsleft requested a review from a team December 16, 2019 00:50
@drashna drashna merged commit b2405fc into qmk:master Dec 18, 2019
benjaminmikiten added a commit to benjaminmikiten/qmk_firmware that referenced this pull request Dec 18, 2019
* master: (99 commits)
  [Keymap] Added userspace for d4mation. Included their keymap for the Atreus62 (qmk#7483)
  [Keymap] Custom user keymap for Think6.5 with LED range control (qmk#7603)
  [Keymap] CRKBD Custom Keymap - KidBrazil (qmk#7630)
  [Keymap] Add pico 70 keys keymap (qmk#7654)
  Tidy up dztech default keymaps and info.json (qmk#7608)
  Heisenberg handwired keyboard added (qmk#7643)
  [Keyboard] Added Filco Majestouch TKL Pegasus Hoof ISO Layout (qmk#7647)
  Ported J80 to QMK (qmk#7488)
  [Keyboard] Magnavox Videowriter conversion with Pro Micro (qmk#7634)
  [Docs] add japanese translation (basic part) (qmk#7461)
  Tidy up dztech rules.mk
  Relocate RGB keycode processing (qmk#7508)
  Move kwerdenker's personal keymap from RGB (qmk#7645)
  Remove QMK_KEYBOARD_CONFIG_H from boards (qmk#7635)
  Disable usb on slave half to resolve random 'lockup' (qmk#7649)
  [Core] Optimize matrix processing (qmk#7621)
  [Keymap] boy_314's satisfaction75 layout (qmk#7638)
  [Keyboard] XD68 65% ATMega32U4 based (qmk#7395)
  [keyboard] Plain60 cleanups (qmk#7644)
  update default h88 keymap (qmk#7646)
  ...
Shinichi-Ohki added a commit to Shinichi-Ohki/qmk_firmware that referenced this pull request Dec 26, 2019
* 'master' of https://github.com/qmk/qmk_firmware: (226 commits)
  Make the keyboard beep when Audio is enabled and `\a` is encountered in a sendstring
  Turn off RGB Matrix LEDs when keyboard sleeps (qmk#7713)
  Add backwards compatibility for oled_write_raw_P on ARM
  Update toshi0383 keymap (qmk#7700)
  Completely remove i2c_transmit_receive function (qmk#7686)
  Readded lost pgm_read_word code to encoder array lookups (qmk#7577)
  Add central location for ChibiOS defines (qmk#7542)
  Add TADA68 keymap/rules/config for QMK bootloader (qmk#7679)
  [Docs] fix docs (qmk#7642)
  [Keyboard] Clueboard 60 fix col 11 12 mixup (qmk#7685)
  Missed these LTO blocks
  I corrected my name.
  [Keymap] Added userspace for d4mation. Included their keymap for the Atreus62 (qmk#7483)
  [Keymap] Custom user keymap for Think6.5 with LED range control (qmk#7603)
  [Keymap] CRKBD Custom Keymap - KidBrazil (qmk#7630)
  [Keymap] Add pico 70 keys keymap (qmk#7654)
  Improve docs "Edit Document" footer
  Tidy up dztech config.h
  Tidy up dztech default keymaps and info.json (qmk#7608)
  Heisenberg handwired keyboard added (qmk#7643)
  ...
akrob pushed a commit to akrob/qmk_firmware that referenced this pull request Dec 28, 2019
* upstream/master: (1080 commits)
  Update toshi0383 keymap (qmk#7700)
  Completely remove i2c_transmit_receive function (qmk#7686)
  Readded lost pgm_read_word code to encoder array lookups (qmk#7577)
  Add central location for ChibiOS defines (qmk#7542)
  Add TADA68 keymap/rules/config for QMK bootloader (qmk#7679)
  [Docs] fix docs (qmk#7642)
  [Keyboard] Clueboard 60 fix col 11 12 mixup (qmk#7685)
  Missed these LTO blocks
  I corrected my name.
  [Keymap] Added userspace for d4mation. Included their keymap for the Atreus62 (qmk#7483)
  [Keymap] Custom user keymap for Think6.5 with LED range control (qmk#7603)
  [Keymap] CRKBD Custom Keymap - KidBrazil (qmk#7630)
  [Keymap] Add pico 70 keys keymap (qmk#7654)
  Improve docs "Edit Document" footer
  Tidy up dztech config.h
  Tidy up dztech default keymaps and info.json (qmk#7608)
  Heisenberg handwired keyboard added (qmk#7643)
  [Keyboard] Added Filco Majestouch TKL Pegasus Hoof ISO Layout (qmk#7647)
  Ported J80 to QMK (qmk#7488)
  [Keyboard] Magnavox Videowriter conversion with Pro Micro (qmk#7634)
  ...
patrl pushed a commit to patrl/qmk_firmware that referenced this pull request Dec 29, 2019
…7603)

* ISO layout for the soldered Think6.5 PCB

* Think6.5 personal layout readme

* Add personal Think6.5 user map with LED group cycling

* Add default case to process_record_user

* Make the ASCII diagram match the layer properly

* Relocate KC_NUHS to the home row for consistency

* Add LAYOUT_65_iso_badge to info.json

* Wire up the badge LEDs as capslock LEDs

* Remove unused keymap variable
HokieGeek pushed a commit to HokieGeek/qmk_firmware that referenced this pull request Feb 21, 2020
…7603)

* ISO layout for the soldered Think6.5 PCB

* Think6.5 personal layout readme

* Add personal Think6.5 user map with LED group cycling

* Add default case to process_record_user

* Make the ASCII diagram match the layer properly

* Relocate KC_NUHS to the home row for consistency

* Add LAYOUT_65_iso_badge to info.json

* Wire up the badge LEDs as capslock LEDs

* Remove unused keymap variable
kylekuj pushed a commit to kylekuj/qmk_firmware that referenced this pull request Apr 21, 2020
…7603)

* ISO layout for the soldered Think6.5 PCB

* Think6.5 personal layout readme

* Add personal Think6.5 user map with LED group cycling

* Add default case to process_record_user

* Make the ASCII diagram match the layer properly

* Relocate KC_NUHS to the home row for consistency

* Add LAYOUT_65_iso_badge to info.json

* Wire up the badge LEDs as capslock LEDs

* Remove unused keymap variable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants