Kintwin controller for kinesis keyboard, split layout (#21614)
Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
		
							parent
							
								
									3da773dbdb
								
							
						
					
					
						commit
						6f3beae895
					
				| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include "alvicstep.h" | #include "alvicstep.h" | ||||||
| 
 | 
 | ||||||
| // begin section origin  https://github.com/alvicstep/tmk_keyboard 
 | // begin section origin  https://github.com/alvicstep/tmk_keyboard 
 | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include "quantum.h" | #include "quantum.h" | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| /* key matrix size */ | /* key matrix size */ | ||||||
|  | |||||||
| @ -6,6 +6,16 @@ | |||||||
|         "pid": "0x6060", |         "pid": "0x6060", | ||||||
|         "device_version": "0.0.1" |         "device_version": "0.0.1" | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "processor": "at90usb1286", |     "processor": "at90usb1286", | ||||||
|     "bootloader": "halfkay", |     "bootloader": "halfkay", | ||||||
|     "layouts": { |     "layouts": { | ||||||
|  | |||||||
							
								
								
									
										135
									
								
								keyboards/kinesis/keymaps/alvicstep/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								keyboards/kinesis/keymaps/alvicstep/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,135 @@ | |||||||
|  | // Copyright 2023 Alex Stepanov (@alvicstep)
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #include QMK_KEYBOARD_H | ||||||
|  | 
 | ||||||
|  | enum layer_names { | ||||||
|  |     _BASE,   // default layer
 | ||||||
|  |     _KEYPAD, // arrow keys, shifted symbols, HOME, END, PGUP, PGDN, FKeys, CTRL(TAB)
 | ||||||
|  |     _NUMPAD  // numpad keys
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /* ,------------------------------------------------------------------------------------------------------------------------.
 | ||||||
|  | * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 |                           | F9 | F10 | F11 | F12 |PSCR|SLCK|PAUS|KPAD|BOOT| | ||||||
|  | * |--------+------+------+------+-------+------+--------------------------------+------+------+------+------+------+--------| | ||||||
|  | * |   -_   |  1!  |  2@  |  3#  |  4$   |  5%  |                                |  6^  |  7&  |  8*  |  9(  |  0)  |  =+    | | ||||||
|  | * |--------+------+------+------+-------+------|                                +------+------+------+------+------+--------| | ||||||
|  | * | Tab    |   Q  |   W  |   E  |   R   |   T  |                                |   Y  |   U  |   I  |   O  |   P  | \|     | | ||||||
|  | * |--------+------+------+------+-------+------|                                |------+------+------+------+------+--------| | ||||||
|  | * | Del    |   A  |   S  |   D  |   F   |   G  |                                |   H  |   J  |   K  |   L  |  ;:  | '"     | | ||||||
|  | * |--------+------+------+------+-------+------|                                |------+------+------+------+------+--------| | ||||||
|  | * | Shift  |   Z  |   X  |   C  |   V   |   B  |                                |   N  |   M  |  ,.  |  .>  |  /?  |Sht/Ent | | ||||||
|  | * `--------+------+------+------+-------+-------                                `------+------+------+------+------+--------' | ||||||
|  | *          | `~   | Gui  | Esc  |MO(Num)|                                              | [{   |  ]}  |      |      | | ||||||
|  | *          `----------------------------'                                              `---------------------------' | ||||||
|  | *                                        ,---------------.         ,---------------. | ||||||
|  | *                                        |Alt+Tab|  Alt  |         |  Alt  |TO(Num)| | ||||||
|  | *                                 ,------|------ |-------|         |-------+-------+------. | ||||||
|  | *                                 |      |       | Shift |         | Shift |       |      | | ||||||
|  | *                                 | BkSp | KPAD  |-------|         |------ | KPAD  | Space| | ||||||
|  | *                                 |      |       | Ctrl  |         | Ctrl  |       |      | | ||||||
|  | *                                 `----------------------'         `----------------------' | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  | [_BASE] = LAYOUT( | ||||||
|  | KC_ESC,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8,                 KC_F9,KC_F10,KC_F11,KC_F12,KC_PSCR,KC_SCRL,KC_PAUS,TO(_KEYPAD),QK_BOOT, | ||||||
|  | KC_MINS,KC_1,KC_2,KC_3,KC_4,KC_5,                                       KC_6,KC_7,KC_8,KC_9,KC_0,KC_EQL, | ||||||
|  | KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,                                        KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS, | ||||||
|  | KC_DEL,KC_A,KC_S,KC_D,KC_F,KC_G,                                        KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT, | ||||||
|  | KC_LSFT,KC_Z,KC_X,KC_C,KC_V,KC_B,                                       KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,SC_SENT, | ||||||
|  | KC_GRV,KC_LGUI,KC_ESC,MO(_NUMPAD),                                      KC_LBRC,KC_RBRC,KC_NO,KC_NO, | ||||||
|  |                           LALT(KC_TAB),KC_LALT,                   KC_RALT,TO(_NUMPAD), | ||||||
|  |                           KC_LSFT,                                KC_RSFT, | ||||||
|  |                           KC_BSPC,MO(_KEYPAD),KC_LCTL,            KC_RCTL,MO(_KEYPAD),KC_SPC | ||||||
|  | ), | ||||||
|  | /* ,------------------------------------------------------------------------------------------------------------------------.
 | ||||||
|  | * |   |   |   |   |   |   |   |   |                                              |   |   |   |   |   |   |   | TO(BASE) |   | | ||||||
|  | * |--------+------+------+------+------+------+---------------------------------+------+------+------+------+------+--------| | ||||||
|  | * |   _    |   !  |  @   |  #   |  $   |  %   |                                 |  ^   |  &   |  *   |  (   |  )   |   +    | | ||||||
|  | * |--------+------+------+------+------+------|                                 |------+------+------+------+------+--------| | ||||||
|  | * |        |  F1  |  F2  |  F3  | F4   |  F5  |                                 |      | Home |  Up  | End  |      |   |    | | ||||||
|  | * |--------+------+------+------+------+------|                                 |------+------+------+------+------+--------| | ||||||
|  | * |        |  F6  |  F7  |  F8  | F9   |  F10 |                                 | Pgup | Lft  | Dwn  | Rgt  |  :   |   "    | | ||||||
|  | * |--------+------+------+------+------+------|                                 |------+------+------+------+------+--------| | ||||||
|  | * | CapsLk |      |      |      | F11  |  F12 |                                 | Pgdn |      |  <   |  >   |  ?   |        | | ||||||
|  | * `--------+------+------+------+------+------'                                 `------+------+------+------+------+--------' | ||||||
|  | *          |   ~  | INS  |      |      |                                               |  {   |  }   |      |      | | ||||||
|  | *          `---------------------------'                                               `---------------------------' | ||||||
|  | *                                        ,--------------.         ,--------------------. | ||||||
|  | *                                        |Ctl+Tab|      |         |      |      |      | | ||||||
|  | *                                 ,------|------ |------|         |------+------+------. | ||||||
|  | *                                 |      |       |Shift |         |Shift |      |      | | ||||||
|  | *                                 |      |       |------|         |------|      |      | | ||||||
|  | *                                 |      |       | Ctrl |         | Ctrl |      |      | | ||||||
|  | *                                 `-------------- ------'         `--------------------' | ||||||
|  | */ | ||||||
|  | [_KEYPAD] = LAYOUT( | ||||||
|  |  KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                 KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,TO(_BASE),KC_NO, | ||||||
|  |  KC_UNDS,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC,                          KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_PLUS, | ||||||
|  |  KC_NO,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,                                   KC_NO,KC_HOME,KC_UP,KC_END,KC_NO,KC_PIPE, | ||||||
|  |  KC_CAPS,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,                                KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_COLN,KC_DQUO, | ||||||
|  |  KC_NO,KC_NO,KC_NO,KC_NO,KC_F11,KC_F12,                                 KC_PGDN,KC_NO,KC_LT,KC_GT,KC_QUES,KC_NO, | ||||||
|  |  KC_TILD,KC_INS,KC_NO,KC_NO,                                            KC_LCBR,KC_RCBR,KC_NO,KC_NO, | ||||||
|  |                                 LCTL(KC_TAB),KC_NO,             KC_NO,KC_NO, | ||||||
|  |                                 KC_LSFT,                        KC_RSFT, | ||||||
|  |                                 KC_NO,KC_NO,KC_LCTL,            KC_RCTL,KC_NO,KC_NO | ||||||
|  | ), | ||||||
|  | /*,--------+------+------+------+------+------+                           +------+------+------+------+------+--------.
 | ||||||
|  | * |        |      |      |      |      |      |                           |      | Base |  =   |  /   |  *   |        | | ||||||
|  | * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------| | ||||||
|  | * |        |      |      |      |      |      |                           |      |  7   |  8   |  9   |  -   |        | | ||||||
|  | * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------| | ||||||
|  | * |  Del   |      |      |      |      |      |                           |      |  4   |  5   |  6   |  +   |        | | ||||||
|  | * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------| | ||||||
|  | * |  BkSp  |      |      |      |      |      |                           |      |  1   |  2   |  3   |Enter | Enter  | | ||||||
|  | * `--------+------+------+------+------+------'                           `------+------+------+------+------+--------' | ||||||
|  | *          |      |      |      |      |                                         |  .   |Enter |      |      | | ||||||
|  | *          `---------------------------'                                         `---------------------------' | ||||||
|  | *                                        ,-------------.         ,-------------. | ||||||
|  | *                                        |      |      |         |      | Base | | ||||||
|  | *                                 ,------|------|------|         |------+------+------. | ||||||
|  | *                                 |      |      |      |         |      |      |      | | ||||||
|  | *                                 | BkSp |      |------|         |------|      |  0   | | ||||||
|  | *                                 |      |      |      |         |      |      |      | | ||||||
|  | *                                 `--------------------'         `--------------------' | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | [_NUMPAD] = LAYOUT( | ||||||
|  |  KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                 KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, | ||||||
|  |  KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                   KC_NO,TO(_BASE),KC_EQL,KC_SLSH,KC_ASTR,KC_NO, | ||||||
|  |  KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                   KC_NO,KC_7,KC_8,KC_9,KC_MINS,KC_NO, | ||||||
|  |  KC_DEL,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                  KC_NO,KC_4,KC_5,KC_6,KC_PLUS,KC_NO, | ||||||
|  |  KC_BSPC,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,                                 KC_NO,KC_1,KC_2,KC_3,KC_ENT,KC_ENT, | ||||||
|  |  KC_NO,KC_NO,KC_NO,KC_NO,                                               KC_DOT,KC_ENT,KC_NO,KC_NO, | ||||||
|  |                                 KC_NO,KC_NO,                  KC_NO,TO(_BASE), | ||||||
|  |                                 KC_NO,                        KC_NO, | ||||||
|  |                                 KC_BSPC,KC_NO,KC_NO,          KC_NO,KC_NO,KC_0 | ||||||
|  | ) | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | layer_state_t layer_state_set_user(layer_state_t state) { | ||||||
|  |   //set LEDs which are triggered by a layer change
 | ||||||
|  |   #ifdef LED_COMPOSE_PIN | ||||||
|  |     writePin(LED_COMPOSE_PIN, !layer_state_cmp(state, _KEYPAD)); | ||||||
|  |   #endif | ||||||
|  | 
 | ||||||
|  |   #ifdef LED_NUM_LOCK_PIN | ||||||
|  |     writePin(LED_NUM_LOCK_PIN, !layer_state_cmp(state, _NUMPAD)); | ||||||
|  |   #endif | ||||||
|  | 
 | ||||||
|  |   return state; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | bool led_update_user(led_t led_state) { | ||||||
|  |   #ifdef LED_CAPS_LOCK_PIN | ||||||
|  |     writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); | ||||||
|  |   #endif | ||||||
|  | 
 | ||||||
|  |   #ifdef LED_SCROLL_LOCK_PIN | ||||||
|  |     writePin(LED_SCROLL_LOCK_PIN, !led_state.scroll_lock); | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  |   //disable default processing of LEDs
 | ||||||
|  |   return false; | ||||||
|  | } | ||||||
							
								
								
									
										105
									
								
								keyboards/kinesis/keymaps/alvicstep/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								keyboards/kinesis/keymaps/alvicstep/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,105 @@ | |||||||
|  | ## Custom Layout | ||||||
|  | Kinesis Contoured family of keyboards belong to a relatively small group of keyboards that utilize thumb clusters. The keycap profiles of thumb cluster keys make it easy to press multiple keys simultaneously by a thumb finger. Co-locating CTRL, SHIFT and KEYPAD modifiers in the thumb cluster gives truly unique capabilities to these keyboards. | ||||||
|  | 
 | ||||||
|  | ### "alvicstep" Layout | ||||||
|  | The **alvicstep** layout is optimized for software development on a Windows machine. It is a result of many years of daily usage. It is a great starting point for your own design. | ||||||
|  | 
 | ||||||
|  | #### Layout Features | ||||||
|  | - 3 layers: default layer, keypad layer, numpad layer | ||||||
|  | - keypad layer allows for 2 finger operation using **arrow** keys together with | ||||||
|  |     - **CTRL** and/or **SHIFT** modifiers OR | ||||||
|  |     - **HOME/END** keys OR | ||||||
|  |     - **PAGEUP/PAGEDOWN** keys.   | ||||||
|  | - two finger operations can be achieved by holding up to 3 modifier keys (KEYPAD/SHIFT/CTRL) with a thumb finger and using index/middle/ring finger by pressing keywell keys. For example, you can fully control caret position and text selection of:   | ||||||
|  |     - each letter | ||||||
|  |     - each word | ||||||
|  |     - from a current caret position to the beginning of the line | ||||||
|  |     - from a current caret position to the end of the line | ||||||
|  |     - multiple lines | ||||||
|  |     - multiple pages | ||||||
|  | - with little practice you will be able to string together different key combinations. For example, executing `KEYPAD + O` and then `KEYPAD + SHIFT + U` selects the whole line of text with barely any finger movement. The best part is that it works in any text editor! | ||||||
|  | - keypad layer allows accessing **F1-F12** and **ESC** keys by moving only a single finger away from the home row, making it very fast and convenient | ||||||
|  | - **KEYPAD** key can be used to access US ANSI Shifted Symbols instead of pressing a SHIFT key. This gives you two advantages: it makes KEYPAD key a "go to" key which is used in almost all operations unrelated to typing of letters. To understand the second advantage, compare pressing `SHIFT + 0` and `KEYPAD + 0` using the right hand | ||||||
|  | - **NUMPAD** "momentary" modifier key can be used to quickly switch to a numeric pad while typing alphanumeric strings. In a stock Kinesis firmware you would have to switch to KEYPAD layer and then press NUMLOCK key which makes it unusable for this task | ||||||
|  | - **NUMPAD** key in the right thumb cluster can be used to switch to a numeric pad for long numeric sequences | ||||||
|  | 
 | ||||||
|  | #### Layout Layers | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  |   | ||||||
|  |   | ||||||
|  | 
 | ||||||
|  | #### Notes | ||||||
|  | - MO(1) - switch to **KEYPAD** layer while key is being pressed | ||||||
|  | - MO(2) - switch to **NUMPAD** layer while key is being pressed | ||||||
|  | - TO(0) - switch to **BASE** layer  | ||||||
|  | - TO(2) - switch to **NUMPAD** layer  | ||||||
|  | - Rsft(Enter) - acts as an ENTER key when pressed and released. Acts as a SHIFT modifier in combination with other keys | ||||||
|  | - Bt - enter bootloader mode | ||||||
|  | - Alt(Tab) - toggle between last two active applications | ||||||
|  | - Ctrl(Tab) - toggle between last two active tabs | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Differences From Stock | ||||||
|  | - **{}[]** keys are moved to the left side of the keywell to be easily accessible | ||||||
|  | - **-** and **+** keys are switched | ||||||
|  | - **CAPS LOCK** key is moved to **KEYPAD** layer and is mapped to **DELETE** on **BASE** layer | ||||||
|  | 
 | ||||||
|  | ### Shortcuts | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | |Shortcut             | Control Caret                         | | ||||||
|  | |---------------------|---------------------------------------| | ||||||
|  | |`KEYPAD + J`         | move caret one character left         |  | ||||||
|  | |`KEYPAD + L`         | move caret one character right        |  | ||||||
|  | |`KEYPAD + I`         | move caret one line up                |  | ||||||
|  | |`KEYPAD + K`         | move caret one line down              |  | ||||||
|  | |`KEYPAD + CTRL + J`  | move caret one word to the left       |  | ||||||
|  | |`KEYPAD + CTRL + L`  | move caret one word to the right      |  | ||||||
|  | |`KEYPAD + U`         | move caret to the start of the line   |  | ||||||
|  | |`KEYPAD + O`         | move caret to the end of the line     |  | ||||||
|  | |`KEYPAD + H`         | move caret one page up                |  | ||||||
|  | |`KEYPAD + N`         | move caret one page down              |  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | |Shortcut             | Scroll Lock                           | | ||||||
|  | |---------------------|---------------------------------------| | ||||||
|  | |`KEYPAD + CTRL + I`  | scroll page up                        |  | ||||||
|  | |`KEYPAD + CTRL + K`  | scroll page down                      |  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | |Shortcut                     | Select Text                   | | ||||||
|  | |-----------------------------|-------------------------------| | ||||||
|  | |`KEYPAD + CTRL + SHIFT + J`  | select one word to the left   |  | ||||||
|  | |`KEYPAD + CTRL + SHIFT + L`  | select one word to the right  |  | ||||||
|  | |`KEYPAD + CTRL + SHIFT + I`  | select one line up            |  | ||||||
|  | |`KEYPAD + CTRL + SHIFT + K`  | select one line down          |  | ||||||
|  | |`KEYPAD + SHIFT + H`         | select one page up            |  | ||||||
|  | |`KEYPAD + SHIFT + N`         | select one page down          |  | ||||||
|  | |`KEYPAD + CTRL + SHIFT + U`  | select from beginning of the file up to the caret position   |  | ||||||
|  | |`KEYPAD + CTRL + SHIFT + O`  | select from caret position to the end of the file  |  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | |Shortcut             | US ANSI Shifted Symbols               | | ||||||
|  | |---------------------|---------------------------------------| | ||||||
|  | |`KEYPAD + -`         | _                                     |  | ||||||
|  | |`KEYPAD + 1`         | !                                     |  | ||||||
|  | |`KEYPAD + 2`         | @                                     |  | ||||||
|  | |`KEYPAD + 3`         | #                                     |  | ||||||
|  | |`KEYPAD + 4`         | $                                     |  | ||||||
|  | |`KEYPAD + 5`         | %                                     |  | ||||||
|  | |`KEYPAD + 6`         | ^                                     |  | ||||||
|  | |`KEYPAD + 7`         | &                                     |  | ||||||
|  | |`KEYPAD + 8`         | *                                     |  | ||||||
|  | |`KEYPAD + 9`         | (                                     |  | ||||||
|  | |`KEYPAD + 0`         | )                                     |  | ||||||
|  | |`KEYPAD + =`         | +                                     |  | ||||||
|  | |`KEYPAD + \`         | \|                                    |  | ||||||
|  | |`KEYPAD + '`         | "                                     |  | ||||||
|  | |`KEYPAD + ;`         | :                                     |  | ||||||
|  | |`KEYPAD + /`         | ?                                     |  | ||||||
|  | |`KEYPAD + [`         | {                                     |  | ||||||
|  | |`KEYPAD + ]`         | }                                     |  | ||||||
|  | |`KEYPAD + ,`         | <                                     |  | ||||||
|  | |`KEYPAD + .`         | >                                     |  | ||||||
|  | |`KEYPAD + BACKTICK`  | ~                                     |  | ||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  |   | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| 
 | 
 | ||||||
| #define QWERTY 0 // Base qwerty
 | #define QWERTY 0 // Base qwerty
 | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| 
 | 
 | ||||||
| #define _DVORAK 0 // Base Dvorak layer
 | #define _DVORAK 0 // Base Dvorak layer
 | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| 
 | 
 | ||||||
| #define DVORAK_MAC_MODE 0 // Base Dvorak in Kinesis's Mac Mode with (Cmd, Option, Ctrl, Cmd) thumbkeys
 | #define DVORAK_MAC_MODE 0 // Base Dvorak in Kinesis's Mac Mode with (Cmd, Option, Ctrl, Cmd) thumbkeys
 | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| 
 | 
 | ||||||
| extern keymap_config_t keymap_config; | extern keymap_config_t keymap_config; | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| 
 | 
 | ||||||
| extern keymap_config_t keymap_config; | extern keymap_config_t keymap_config; | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| #include "keymap_german.h" | #include "keymap_german.h" | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||||
| 
 | 
 | ||||||
| enum layer_names { | enum layer_names { | ||||||
|  | |||||||
| @ -7,6 +7,16 @@ | |||||||
|         "device_version": "0.0.2", |         "device_version": "0.0.2", | ||||||
|         "max_power": 100 |         "max_power": 100 | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "build": { |     "build": { | ||||||
|         "debounce_type": "sym_eager_pk" |         "debounce_type": "sym_eager_pk" | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -7,6 +7,16 @@ | |||||||
|         "device_version": "0.0.1", |         "device_version": "0.0.1", | ||||||
|         "max_power": 100 |         "max_power": 100 | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "build": { |     "build": { | ||||||
|         "debounce_type": "sym_eager_pk" |         "debounce_type": "sym_eager_pk" | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -7,6 +7,16 @@ | |||||||
|         "device_version": "0.0.1", |         "device_version": "0.0.1", | ||||||
|         "max_power": 100 |         "max_power": 100 | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "build": { |     "build": { | ||||||
|         "debounce_type": "sym_eager_pk" |         "debounce_type": "sym_eager_pk" | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -7,6 +7,16 @@ | |||||||
|         "device_version": "0.0.1", |         "device_version": "0.0.1", | ||||||
|         "max_power": 50 |         "max_power": 50 | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "build": { |     "build": { | ||||||
|         "debounce_type": "sym_eager_pk" |         "debounce_type": "sym_eager_pk" | ||||||
|     }, |     }, | ||||||
|  | |||||||
							
								
								
									
										146
									
								
								keyboards/kinesis/kintwin/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								keyboards/kinesis/kintwin/info.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,146 @@ | |||||||
|  | { | ||||||
|  |     "development_board": "blackpill_f401", | ||||||
|  |     "keyboard_name": "Kinesis", | ||||||
|  |     "url": "https://github.com/alvicstep/kintwin", | ||||||
|  |     "manufacturer": "https://github.com/alvicstep/kintwin", | ||||||
|  |     "maintainer": "Alex Stepanov", | ||||||
|  |     "usb": { | ||||||
|  |         "device_version": "0.0.1", | ||||||
|  |         "vid": "0x4B53", | ||||||
|  |         "pid": "0x0001", | ||||||
|  |         "shared_endpoint": { | ||||||
|  |             "keyboard": true    | ||||||
|  |         }  | ||||||
|  |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|  |     "matrix_pins": { | ||||||
|  |         "rows": ["A0", "A1", "A2", "A3", "A4", "A5", "A6"], | ||||||
|  |         "cols": ["A7", "B0", "B1", "B10", "B9", "B8", "B7", "B14", "B13", "B12", "C14", "C15", "B15", "B6", "B5"] | ||||||
|  |     }, | ||||||
|  |     "diode_direction": "ROW2COL", | ||||||
|  |     "indicators": { | ||||||
|  |         "caps_lock": "A15", | ||||||
|  |         "scroll_lock": "B3", | ||||||
|  |         "num_lock": "B4", | ||||||
|  |         "compose": "C13", | ||||||
|  |         "on_state": 0 | ||||||
|  |     },     | ||||||
|  |     "layouts": { | ||||||
|  |         "LAYOUT": { | ||||||
|  |             "layout": [ | ||||||
|  |                 {"matrix": [0, 12], "x": 0, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [0, 13], "x": 0.7, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [0, 14], "x": 1.39, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [1, 12], "x": 2.09, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [1, 13], "x": 2.78, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [1, 14], "x": 3.48, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [2, 12], "x": 4.17, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [2, 13], "x": 4.87, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [2, 14], "x": 5.56, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [3, 12], "x": 9.25, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [3, 13], "x": 9.95, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [3, 14], "x": 10.64, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [4, 12], "x": 11.34, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [4, 13], "x": 12.03, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [4, 14], "x": 12.73, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [5, 12], "x": 13.42, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [5, 14], "x": 14.12, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  |                 {"matrix": [5, 13], "x": 14.81, "y": 0, "w": 0.69, "h": 0.85}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [0, 0], "x": 0, "y": 1.25, "w": 1.25}, | ||||||
|  |                 {"matrix": [0, 1], "x": 1.25, "y": 1.25}, | ||||||
|  |                 {"matrix": [0, 2], "x": 2.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 3], "x": 3.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 4], "x": 4.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 5], "x": 5.25, "y": 1}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [0, 6], "x": 9.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 7], "x": 10.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 8], "x": 11.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 9], "x": 12.25, "y": 1}, | ||||||
|  |                 {"matrix": [0, 10], "x": 13.25, "y": 1.25}, | ||||||
|  |                 {"matrix": [0, 11], "x": 14.25, "y": 1.25, "w": 1.25}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [1, 0], "x": 0, "y": 2.25, "w": 1.25}, | ||||||
|  |                 {"matrix": [1, 1], "x": 1.25, "y": 2.25}, | ||||||
|  |                 {"matrix": [1, 2], "x": 2.25, "y": 2}, | ||||||
|  |                 {"matrix": [1, 3], "x": 3.25, "y": 2}, | ||||||
|  |                 {"matrix": [1, 4], "x": 4.25, "y": 2}, | ||||||
|  |                 {"matrix": [1, 5], "x": 5.25, "y": 2}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [1, 6], "x": 11.25, "y": 2.25}, | ||||||
|  |                 {"matrix": [1, 7], "x": 12.25, "y": 2.25}, | ||||||
|  |                 {"matrix": [1, 8], "x": 13.25, "y": 2.25}, | ||||||
|  |                 {"matrix": [1, 9], "x": 14.25, "y": 2.25}, | ||||||
|  |                 {"matrix": [1, 10], "x": 15.25, "y": 2.25}, | ||||||
|  |                 {"matrix": [1, 11], "x": 16.25, "y": 2.25, "w": 1.25}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [2, 0], "x": 0, "y": 3.25, "w": 1.25}, | ||||||
|  |                 {"matrix": [2, 1], "x": 1.25, "y": 3.25}, | ||||||
|  |                 {"matrix": [2, 2], "x": 2.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 3], "x": 3.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 4], "x": 4.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 5], "x": 5.25, "y": 3}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [2, 6], "x": 9.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 7], "x": 10.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 8], "x": 11.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 9], "x": 12.25, "y": 3}, | ||||||
|  |                 {"matrix": [2, 10], "x": 13.25, "y": 3.25}, | ||||||
|  |                 {"matrix": [2, 11], "x": 14.25, "y": 3.25, "w": 1.25}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [3, 0], "x": 0, "y": 4.25, "w": 1.25}, | ||||||
|  |                 {"matrix": [3, 1], "x": 1.25, "y": 4.25}, | ||||||
|  |                 {"matrix": [3, 2], "x": 2.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 3], "x": 3.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 4], "x": 4.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 5], "x": 5.25, "y": 4}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [3, 6], "x": 9.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 7], "x": 10.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 8], "x": 11.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 9], "x": 12.25, "y": 4}, | ||||||
|  |                 {"matrix": [3, 10], "x": 13.25, "y": 4.25}, | ||||||
|  |                 {"matrix": [3, 11], "x": 14.25, "y": 4.25, "w": 1.25}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [4, 1], "x": 1.25, "y": 5.25}, | ||||||
|  |                 {"matrix": [4, 2], "x": 2.25, "y": 5}, | ||||||
|  |                 {"matrix": [4, 3], "x": 3.25, "y": 5}, | ||||||
|  |                 {"matrix": [4, 5], "x": 4.25, "y": 5}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [4, 6], "x": 10.25, "y": 5}, | ||||||
|  |                 {"matrix": [4, 8], "x": 11.25, "y": 5}, | ||||||
|  |                 {"matrix": [4, 9], "x": 12.25, "y": 5}, | ||||||
|  |                 {"matrix": [4, 10], "x": 13.25, "y": 5.25}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [6, 5], "x": 5.25, "y": 6}, | ||||||
|  |                 {"matrix": [5, 5], "x": 6.25, "y": 6}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [6, 9], "x": 8.25, "y": 6}, | ||||||
|  |                 {"matrix": [5, 8], "x": 9.25, "y": 6}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [5, 3], "x": 6.25, "y": 7}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [6, 8], "x": 8.25, "y": 7}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [6, 3], "x": 4.25, "y": 7, "h": 2}, | ||||||
|  |                 {"matrix": [6, 4], "x": 5.25, "y": 7, "h": 2}, | ||||||
|  |                 {"matrix": [5, 2], "x": 6.25, "y": 8}, | ||||||
|  | 
 | ||||||
|  |                 {"matrix": [6, 6], "x": 8.25, "y": 8}, | ||||||
|  |                 {"matrix": [5, 7], "x": 9.25, "y": 7, "h": 2}, | ||||||
|  |                 {"matrix": [5, 6], "x": 10.25, "y": 7, "h": 2} | ||||||
|  |             ] | ||||||
|  |         }     | ||||||
|  |     }     | ||||||
|  | } | ||||||
							
								
								
									
										29
									
								
								keyboards/kinesis/kintwin/kintwin.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								keyboards/kinesis/kintwin/kintwin.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | |||||||
|  | // Copyright 2023 Alex Stepanov (@alvicstep)
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #include "quantum.h" | ||||||
|  | 
 | ||||||
|  | void matrix_init_kb(void) { | ||||||
|  | 
 | ||||||
|  |   uint8_t led_delay_ms = 80; | ||||||
|  | 
 | ||||||
|  |   /* LED pins setup */ | ||||||
|  |   setPinOutput(LED_CAPS_LOCK_PIN); | ||||||
|  |   writePinLow(LED_CAPS_LOCK_PIN); | ||||||
|  | 
 | ||||||
|  |   wait_ms(led_delay_ms); | ||||||
|  |   setPinOutput(LED_NUM_LOCK_PIN);    | ||||||
|  |   writePinLow(LED_NUM_LOCK_PIN); | ||||||
|  |   wait_ms(led_delay_ms); | ||||||
|  | 
 | ||||||
|  |   setPinOutput(LED_SCROLL_LOCK_PIN);    | ||||||
|  |   writePinLow(LED_SCROLL_LOCK_PIN); | ||||||
|  |   wait_ms(led_delay_ms); | ||||||
|  | 
 | ||||||
|  |   setPinOutput(LED_COMPOSE_PIN);    | ||||||
|  |   writePinLow(LED_COMPOSE_PIN); | ||||||
|  |   wait_ms(led_delay_ms); | ||||||
|  |   writePinHigh(LED_COMPOSE_PIN); | ||||||
|  | 
 | ||||||
|  | 	matrix_init_user(); | ||||||
|  | } | ||||||
							
								
								
									
										32
									
								
								keyboards/kinesis/kintwin/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								keyboards/kinesis/kintwin/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | |||||||
|  | # KinTwin | ||||||
|  | [KinTwin](https://github.com/alvicstep/kintwin) is a drop-in replacement of a controller and thumb cluster PCB boards for [Kinesis Contoured keyboards](https://deskthority.net/wiki/Kinesis_Contoured). The controller board is a fork of [KinBP](https://github.com/DmNosachev/KinBP).  | ||||||
|  | 
 | ||||||
|  | ### Keyboard | ||||||
|  |  | ||||||
|  | 
 | ||||||
|  | ### Controller | ||||||
|  |  | ||||||
|  | 
 | ||||||
|  | The main difference between KinTwin and KinT controllers is that the former utilizes **Blackpill STM32F401** development board and the latter utilizes **Teensy** development boards. | ||||||
|  | 
 | ||||||
|  | * Keyboard Maintainer: Alex Stepanov | ||||||
|  | * Hardware Supported: KinTwin PCB, WeAct Black Pill STM32F401 micro controller | ||||||
|  | * Hardware Availability: [Open Source (CC-BY-SA)](https://github.com/alvicstep/kintwin) | ||||||
|  | 
 | ||||||
|  | Make example for this keyboard (after setting up your build environment): | ||||||
|  | 
 | ||||||
|  |     make kinesis/kintwin:default | ||||||
|  | 
 | ||||||
|  | Flashing example for this keyboard: | ||||||
|  | 
 | ||||||
|  |     make kinesis/kintwin: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). | ||||||
|  | 
 | ||||||
|  | ## Bootloader | ||||||
|  | 
 | ||||||
|  | Enter the bootloader in 3 ways: | ||||||
|  | 
 | ||||||
|  | * **Bootmagic reset**: Hold down the top left key and plug in the keyboard. | ||||||
|  | * **Physical reset button**. Hold 'boot0' button on MCU board, press 'reset', then release 'boot0'. | ||||||
|  | * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available | ||||||
							
								
								
									
										1
									
								
								keyboards/kinesis/kintwin/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/kinesis/kintwin/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | # File intentionally blank
 | ||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| /* key matrix size */ | /* key matrix size */ | ||||||
|  | |||||||
| @ -6,6 +6,16 @@ | |||||||
|         "pid": "0x6060", |         "pid": "0x6060", | ||||||
|         "device_version": "0.0.3" |         "device_version": "0.0.3" | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": true, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "indicators": { |     "indicators": { | ||||||
|         "caps_lock": "E6", |         "caps_lock": "E6", | ||||||
|         "num_lock": "D4", |         "num_lock": "D4", | ||||||
|  | |||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #include "matrix.h" | #include "matrix.h" | ||||||
| 
 | 
 | ||||||
| #include "quantum.h" | #include "quantum.h" | ||||||
|  | |||||||
| @ -1,11 +1,7 @@ | |||||||
| # Build Options
 | # Build Options
 | ||||||
| #   change yes to no to disable
 | #   change yes to no to disable
 | ||||||
| #
 | #
 | ||||||
| BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite | 
 | ||||||
| MOUSEKEY_ENABLE = yes |  | ||||||
| EXTRAKEY_ENABLE = yes |  | ||||||
| COMMAND_ENABLE = yes |  | ||||||
| NKRO_ENABLE = yes           # Enable N-Key Rollover |  | ||||||
| SLEEP_LED_ENABLE = yes | SLEEP_LED_ENABLE = yes | ||||||
| CUSTOM_MATRIX = lite | CUSTOM_MATRIX = lite | ||||||
| SRC += matrix.c | SRC += matrix.c | ||||||
|  | |||||||
| @ -1,12 +1,15 @@ | |||||||
| # Firmware for the Kinesis Advantage/Contoured keyboard | # Firmware for the Kinesis Advantage/Contoured keyboard | ||||||
| 
 | 
 | ||||||
| There are at least two different ways to replace the controller in this keyboard. | There are at least three different ways to replace the controller in this keyboard. | ||||||
| 
 | 
 | ||||||
| The Stapelberg folder contains the docs and configuration for using the custom controller created by Michael Stapelberg. | 1. The **stapelberg** directory contains the docs and configuration for using Teensy based controller created by Michael Stapelberg. | ||||||
| 
 | 
 | ||||||
| The alvicstep folder contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from.  | 2. The **alvicstep** directory contains docs and configuration for directly wiring a Teensy2++ to the existing controller board. This follows the pinouts described in https://github.com/alvicstep/tmk_keyboard, which is where the name comes from.  | ||||||
|  | 
 | ||||||
|  | 3. The **kintwin** directory contains the docs and configuration for using BlackPill based controller. | ||||||
| 
 | 
 | ||||||
| ## Keymaps | ## Keymaps | ||||||
| Both hardware solutions should work with the same keymaps | All three hardware solutions should work with the same keymaps | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
|  | ## Switch Modifications | ||||||
|  | In addition to the drop-in replacements of the stock controller above, the directory **"keyboards\kin80"** contains the files to support 80 switch modification of the keyboard, compared to original 86 switches. Kin80 keymaps are not compatible with keymaps that are located inside of **kinesis** directory. | ||||||
| @ -1,13 +0,0 @@ | |||||||
| # Build Options
 |  | ||||||
| #   change yes to no to disable
 |  | ||||||
| #
 |  | ||||||
| BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite |  | ||||||
| MOUSEKEY_ENABLE = yes       # Mouse keys |  | ||||||
| EXTRAKEY_ENABLE = yes       # Audio control and System control |  | ||||||
| CONSOLE_ENABLE = no        # Console for debug |  | ||||||
| COMMAND_ENABLE = no |  | ||||||
| NKRO_ENABLE = no            # Enable N-Key Rollover |  | ||||||
| BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality |  | ||||||
| AUDIO_ENABLE = no           # Audio output |  | ||||||
| 
 |  | ||||||
| DEFAULT_FOLDER = kinesis/alvicstep |  | ||||||
| @ -1,3 +1,6 @@ | |||||||
|  | // Copyright 2023 QMK
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| /* don't know if this should be defined at the board or top level. Assuming board 
 | /* don't know if this should be defined at the board or top level. Assuming board 
 | ||||||
|  | |||||||
| @ -6,6 +6,16 @@ | |||||||
|         "pid": "0x6060", |         "pid": "0x6060", | ||||||
|         "device_version": "0.0.2" |         "device_version": "0.0.2" | ||||||
|     }, |     }, | ||||||
|  |     "features": { | ||||||
|  |         "bootmagic": true, | ||||||
|  |         "console": false, | ||||||
|  |         "command": false, | ||||||
|  |         "mousekey": true, | ||||||
|  |         "extrakey": true, | ||||||
|  |         "nkro": true, | ||||||
|  |         "audio": false, | ||||||
|  |         "backlight": false | ||||||
|  |     }, | ||||||
|     "matrix_pins": { |     "matrix_pins": { | ||||||
|         "cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6"], |         "cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6"], | ||||||
|         "rows": ["D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "C0", "C1", "C2", "C3", "C4", "C5", "C6"] |         "rows": ["D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "C0", "C1", "C2", "C3", "C4", "C5", "C6"] | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user