diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2017-01-15 01:13:15 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-01-15 01:13:15 -0500 |
| commit | 81b89f8b2b38b9cf74f2b5f0b90af9b1573baf2d (patch) | |
| tree | a1156b3f1ea8e39b1d93c0196720f4a6893ee5aa | |
| parent | 99d0b54e5ef179f745d92bbb2be945cbad84cb0e (diff) | |
| parent | 9d4cc2f3f1666fc110506c6a982c53d1df67548b (diff) | |
| download | qmk_firmware-81b89f8b2b38b9cf74f2b5f0b90af9b1573baf2d.tar.gz qmk_firmware-81b89f8b2b38b9cf74f2b5f0b90af9b1573baf2d.zip | |
Merge pull request #996 from milestogo/master
kinesis keyboard with subdirectories for different hardware - matches pull #911
37 files changed, 765 insertions, 303 deletions
diff --git a/keyboards/kinesis/Makefile b/keyboards/kinesis/Makefile index 4e2a6f00f..fbf05ca4a 100644 --- a/keyboards/kinesis/Makefile +++ b/keyboards/kinesis/Makefile | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | SUBPROJECT_DEFAULT = alvicstep | ||
| 2 | |||
| 1 | ifndef MAKEFILE_INCLUDED | 3 | ifndef MAKEFILE_INCLUDED |
| 2 | include ../../Makefile | 4 | include ../../Makefile |
| 3 | endif \ No newline at end of file | 5 | endif |
diff --git a/keyboards/kinesis/alvicstep/Makefile b/keyboards/kinesis/alvicstep/Makefile new file mode 100644 index 000000000..bd09e5885 --- /dev/null +++ b/keyboards/kinesis/alvicstep/Makefile | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | ifndef MAKEFILE_INCLUDED | ||
| 2 | include ../../../Makefile | ||
| 3 | endif | ||
diff --git a/keyboards/kinesis/alvicstep/alvicstep.c b/keyboards/kinesis/alvicstep/alvicstep.c new file mode 100644 index 000000000..fba9f5136 --- /dev/null +++ b/keyboards/kinesis/alvicstep/alvicstep.c | |||
| @@ -0,0 +1,105 @@ | |||
| 1 | #include "kinesis.h" | ||
| 2 | |||
| 3 | // begin section origin https://github.com/alvicstep/tmk_keyboard | ||
| 4 | |||
| 5 | void all_led_off(void) | ||
| 6 | { | ||
| 7 | PORTD = 0b11111111; | ||
| 8 | } | ||
| 9 | |||
| 10 | void all_led_on(void) | ||
| 11 | { | ||
| 12 | PORTD = 0b00000000; | ||
| 13 | } | ||
| 14 | void num_lock_led_on(void) | ||
| 15 | { | ||
| 16 | PORTD = 0b11101111; | ||
| 17 | } | ||
| 18 | |||
| 19 | void caps_lock_led_on(void) | ||
| 20 | { | ||
| 21 | PORTD = 0b01111111; | ||
| 22 | } | ||
| 23 | |||
| 24 | void scroll_lock_led_on(void) | ||
| 25 | { | ||
| 26 | PORTD = 0b11011111; | ||
| 27 | } | ||
| 28 | void keypad_led_on(void) | ||
| 29 | { | ||
| 30 | PORTD = 0b10111111; | ||
| 31 | } | ||
| 32 | void blink_all_leds(void) | ||
| 33 | { | ||
| 34 | all_led_on(); | ||
| 35 | _delay_ms(500); | ||
| 36 | |||
| 37 | all_led_off(); | ||
| 38 | _delay_ms(100); | ||
| 39 | |||
| 40 | caps_lock_led_on(); | ||
| 41 | _delay_ms(100); | ||
| 42 | |||
| 43 | num_lock_led_on(); | ||
| 44 | _delay_ms(100); | ||
| 45 | |||
| 46 | scroll_lock_led_on(); | ||
| 47 | _delay_ms(100); | ||
| 48 | |||
| 49 | keypad_led_on(); | ||
| 50 | _delay_ms(100); | ||
| 51 | |||
| 52 | //back | ||
| 53 | |||
| 54 | scroll_lock_led_on(); | ||
| 55 | _delay_ms(100); | ||
| 56 | |||
| 57 | num_lock_led_on(); | ||
| 58 | _delay_ms(100); | ||
| 59 | |||
| 60 | caps_lock_led_on(); | ||
| 61 | _delay_ms(100); | ||
| 62 | |||
| 63 | all_led_off(); | ||
| 64 | } | ||
| 65 | |||
| 66 | // End section origin https://github.com/alvicstep/tmk_keyboard | ||
| 67 | |||
| 68 | void matrix_init_kb(void) { | ||
| 69 | blink_all_leds(); | ||
| 70 | matrix_init_user(); | ||
| 71 | } | ||
| 72 | |||
| 73 | |||
| 74 | void matrix_scan_kb(void) { | ||
| 75 | // put your looping keyboard code here | ||
| 76 | // runs every cycle (a lot) | ||
| 77 | |||
| 78 | matrix_scan_user(); | ||
| 79 | } | ||
| 80 | |||
| 81 | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | ||
| 82 | // put your per-action keyboard code here | ||
| 83 | // runs for every action, just before processing by the firmware | ||
| 84 | |||
| 85 | return process_record_user(keycode, record); | ||
| 86 | } | ||
| 87 | |||
| 88 | void led_set_kb(uint8_t usb_led) { | ||
| 89 | // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here | ||
| 90 | |||
| 91 | //Copyright 2014 Warren Janssens <warren.janssens@gmail.com> | ||
| 92 | uint8_t leds = 0xF0; | ||
| 93 | if (usb_led & 1 << USB_LED_NUM_LOCK) | ||
| 94 | leds &= ~0x10; | ||
| 95 | if (usb_led & 1 << USB_LED_CAPS_LOCK) | ||
| 96 | leds &= ~0x80; | ||
| 97 | if (usb_led & 1 << USB_LED_SCROLL_LOCK) | ||
| 98 | leds &= ~0x20; | ||
| 99 | PORTD = (PORTD & 0x0F) | leds; | ||
| 100 | |||
| 101 | led_set_user(usb_led); | ||
| 102 | |||
| 103 | } | ||
| 104 | |||
| 105 | |||
diff --git a/keyboards/kinesis/alvicstep/alvicstep.h b/keyboards/kinesis/alvicstep/alvicstep.h new file mode 100644 index 000000000..f91a52314 --- /dev/null +++ b/keyboards/kinesis/alvicstep/alvicstep.h | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | #ifndef KINESIS_ALVICSTEP_H | ||
| 2 | #define KINESIS_ALVICSTEP_H | ||
| 3 | |||
| 4 | #include "../kinesis.h" | ||
| 5 | |||
| 6 | |||
| 7 | #define KEYMAP( \ | ||
| 8 | k02,k22,k12,k01,k21,k11,k00,k20,k10, \ | ||
| 9 | k80,k70,k60,k50,k40,k30, \ | ||
| 10 | k81,k71,k61,k51,k41,k31, \ | ||
| 11 | k82,k72,k62,k52,k42,k32, \ | ||
| 12 | k83,k73,k63,k53,k43,k33, \ | ||
| 13 | k74,k64,k54,k34, \ | ||
| 14 | k36,k35, \ | ||
| 15 | k55, \ | ||
| 16 | k56,k46,k75, \ | ||
| 17 | k03,k23,k13,k04,k24,k14,k05,k85,k84, \ | ||
| 18 | k94,kA4,kB4,kD4,kE4,kF4, \ | ||
| 19 | k95,kA5,kB5,kD5,kE5,kF5, \ | ||
| 20 | k96,kA6,kB6,kD6,kE6,kF6, \ | ||
| 21 | k97,kA7,kB7,kD7,kE7,kF7, \ | ||
| 22 | k93,kB3,kD3,kE3, \ | ||
| 23 | k47,k66, \ | ||
| 24 | k67, \ | ||
| 25 | k87,k76,k86 \ | ||
| 26 | ) { \ | ||
| 27 | { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO }, \ | ||
| 28 | { k10, k11, k12, k13, k14, KC_NO, KC_NO, KC_NO }, \ | ||
| 29 | { k20, k21, k22, k23, k24, KC_NO, KC_NO, KC_NO }, \ | ||
| 30 | { k30, k31, k32, k33, k34, k35, k36, KC_NO }, \ | ||
| 31 | { k40, k41, k42, k43, KC_NO, KC_NO, k46, k47 }, \ | ||
| 32 | { k50, k51, k52, k53, k54, k55, k56, KC_NO }, \ | ||
| 33 | { k60, k61, k62, k63, k64, KC_NO, k66, k67 }, \ | ||
| 34 | { k70, k71, k72, k73, k74, k75, k76, KC_NO }, \ | ||
| 35 | { k80, k81, k82, k83, k84, k85, k86, k87}, \ | ||
| 36 | { KC_NO, KC_NO ,KC_NO ,k93, k94, k95, k96, k97}, \ | ||
| 37 | { KC_NO, KC_NO ,KC_NO ,KC_NO, kA4, kA5, kA6, kA7}, \ | ||
| 38 | { KC_NO, KC_NO ,KC_NO ,kB3, kB4, kB5, kB6, kB7}, \ | ||
| 39 | { KC_NO, KC_NO ,KC_NO ,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, \ | ||
| 40 | { KC_NO, KC_NO ,KC_NO ,kD3, kD4, kD5, kD6, kD7}, \ | ||
| 41 | { KC_NO, KC_NO ,KC_NO ,kE3, kE4, kE5, kE6, kE7}, \ | ||
| 42 | { KC_NO, KC_NO ,KC_NO ,KC_NO, kF4, kF5, kF6, kF7} \ | ||
| 43 | } | ||
| 44 | |||
| 45 | |||
| 46 | /* Row pin configuration | ||
| 47 | PF0 A | ||
| 48 | PF1 B | ||
| 49 | PF2 C | ||
| 50 | PF3 G 0 = U4, 1 = U5 | ||
| 51 | |||
| 52 | |||
| 53 | r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 rA rB rC rD rE rF | ||
| 54 | PB0 c0| f6 f8 f7 5 4 3 2 1 =+ | ||
| 55 | PB1 c1| f3 f5 f4 t r e w q TAB | ||
| 56 | PB2 c2| ESC f2 f1 g f d s a CL | ||
| 57 | PB3 c3| f9 f11 f10 b v c x z LS UP DN [{ ]} | ||
| 58 | PB4 c4| f12 SL PS RT LT §± `~ 6 7 8 9 0 -_ | ||
| 59 | PB5 c5| PB PGM KPD y u i o p \ | ||
| 60 | PB6 c6| LC DL BS RC EN SP h j k l ;: '" | ||
| 61 | PB7 c7| RA PU PD n m ,< .> /? RS | ||
| 62 | */ | ||
| 63 | |||
| 64 | |||
| 65 | |||
| 66 | |||
| 67 | #endif | ||
diff --git a/keyboards/kinesis/alvicstep/config.h b/keyboards/kinesis/alvicstep/config.h new file mode 100644 index 000000000..88b7e2644 --- /dev/null +++ b/keyboards/kinesis/alvicstep/config.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | #ifndef ALVICSTEP_CONFIG_H | ||
| 2 | #define ALVICSTEP_CONFIG_H | ||
| 3 | |||
| 4 | #include "../config.h" | ||
| 5 | |||
| 6 | /* USB Device descriptor parameter */ | ||
| 7 | #define PRODUCT_ID 0x6060 | ||
| 8 | #define DEVICE_VER 0x0001 | ||
| 9 | |||
| 10 | /* key matrix size */ | ||
| 11 | #define MATRIX_ROWS 16 | ||
| 12 | #define MATRIX_COLS 8 | ||
| 13 | |||
| 14 | /* | ||
| 15 | * Keyboard Matrix Assignments | ||
| 16 | * | ||
| 17 | * Change this to how you wired your keyboard | ||
| 18 | * COLS: AVR pins used for columns, left to right | ||
| 19 | * ROWS: AVR pins used for rows, top to bottom | ||
| 20 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 21 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 22 | * | ||
| 23 | */ | ||
| 24 | //Passed through the port multipler, so 4 pins =16 | ||
| 25 | #define MATRIX_ROW_PINS { F0,F1, F2, F3 } | ||
| 26 | |||
| 27 | // May be upside down. | ||
| 28 | #define MATRIX_COL_PINS { B0,B1, B2, B3, B4, B5, B6, B7 } | ||
| 29 | #define UNUSED_PINS | ||
| 30 | |||
| 31 | /* COL2ROW or ROW2COL */ | ||
| 32 | #define DIODE_DIRECTION COL2ROW | ||
| 33 | |||
| 34 | |||
| 35 | #endif | ||
diff --git a/keyboards/kinesis/docs/kicad/kinesis-cache.lib b/keyboards/kinesis/alvicstep/docs/kicad/kinesis-cache.lib index f798d39d6..f798d39d6 100644 --- a/keyboards/kinesis/docs/kicad/kinesis-cache.lib +++ b/keyboards/kinesis/alvicstep/docs/kicad/kinesis-cache.lib | |||
diff --git a/keyboards/kinesis/docs/kicad/kinesis.pro b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.pro index 9f130b509..9f130b509 100644 --- a/keyboards/kinesis/docs/kicad/kinesis.pro +++ b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.pro | |||
diff --git a/keyboards/kinesis/docs/kicad/kinesis.sch b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.sch index f75335aa0..f75335aa0 100644 --- a/keyboards/kinesis/docs/kicad/kinesis.sch +++ b/keyboards/kinesis/alvicstep/docs/kicad/kinesis.sch | |||
diff --git a/keyboards/kinesis/docs/photos/P1050573.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg index 027ab9efb..027ab9efb 100644 --- a/keyboards/kinesis/docs/photos/P1050573.jpg +++ b/keyboards/kinesis/alvicstep/docs/photos/P1050573.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/docs/photos/P1050574.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg index d49c492b8..d49c492b8 100644 --- a/keyboards/kinesis/docs/photos/P1050574.jpg +++ b/keyboards/kinesis/alvicstep/docs/photos/P1050574.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/docs/photos/P1050575.jpg b/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg index 50cc9897c..50cc9897c 100644 --- a/keyboards/kinesis/docs/photos/P1050575.jpg +++ b/keyboards/kinesis/alvicstep/docs/photos/P1050575.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/docs/readme.txt b/keyboards/kinesis/alvicstep/docs/readme.txt index af33ac490..af33ac490 100644 --- a/keyboards/kinesis/docs/readme.txt +++ b/keyboards/kinesis/alvicstep/docs/readme.txt | |||
diff --git a/keyboards/kinesis/docs/schematic.png b/keyboards/kinesis/alvicstep/docs/schematic.png index fa9405a1f..fa9405a1f 100644 --- a/keyboards/kinesis/docs/schematic.png +++ b/keyboards/kinesis/alvicstep/docs/schematic.png | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/matrix.c b/keyboards/kinesis/alvicstep/matrix.c index cb0d5ad7d..cb0d5ad7d 100644 --- a/keyboards/kinesis/matrix.c +++ b/keyboards/kinesis/alvicstep/matrix.c | |||
diff --git a/keyboards/kinesis/alvicstep/readme.md b/keyboards/kinesis/alvicstep/readme.md new file mode 100644 index 000000000..974e42e50 --- /dev/null +++ b/keyboards/kinesis/alvicstep/readme.md | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | kinesis-advantage keyboard firmware | ||
| 2 | ====================== | ||
| 3 | |||
| 4 | This directory is called alvicstep because https://github.com/alvicstep did the heavy work and took the photos in the doc directory. | ||
| 5 | alvicstep did NOT do anything related to the QMK implementation, so don't bug him/her. | ||
| 6 | |||
| 7 | There are other ways of replacing the CPU in the kinesis, this one uses jumper wires from the Teensy to the original DIP socket | ||
| 8 | |||
| 9 | |||
| 10 | ## Kinesis specific information | ||
| 11 | This is a port of https://github.com/alvicstep/tmk_keyboard, | ||
| 12 | which is a fork of https://github.com/wjanssens/tmk_keyboard, | ||
| 13 | which is based on work from https://github.com/chrisandreae/keyboard-firmware | ||
| 14 | |||
| 15 | If you replace the kinesis CPU as described in the doc folder, then this code should allow you to use QMK. | ||
| 16 | I've tested with a Teensy 2++, remember to change the CPU if you use a 32u4 instead. | ||
| 17 | |||
| 18 | Not yet implemented: | ||
| 19 | - Kinesis EEProm reading or writing | ||
| 20 | - Audio - this should be simple if we remove hardcoded pins from audio.h and switch to E7 | ||
| 21 | |||
| 22 | |||
| 23 | |||
| 24 | ## Quantum MK Firmware | ||
| 25 | |||
| 26 | For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). | ||
| 27 | |||
| 28 | ## Building | ||
| 29 | |||
| 30 | Download or clone the whole firmware and navigate to the keyboards/kinesis-advantage folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. | ||
| 31 | |||
| 32 | Depending on which keymap you would like to use, you will have to compile slightly differently. | ||
| 33 | |||
| 34 | ### Default | ||
| 35 | |||
| 36 | To build with the default keymap, simply run `make`. | ||
| 37 | |||
| 38 | ### Other Keymaps | ||
| 39 | |||
| 40 | Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. | ||
| 41 | |||
| 42 | To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: | ||
| 43 | |||
| 44 | $ make keymap=[default|jack|<name>] | ||
| 45 | |||
| 46 | Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` | ||
diff --git a/keyboards/kinesis/alvicstep/rules.mk b/keyboards/kinesis/alvicstep/rules.mk new file mode 100644 index 000000000..fb421a34f --- /dev/null +++ b/keyboards/kinesis/alvicstep/rules.mk | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | ifndef QUANTUM_DIR | ||
| 2 | include ../../../Makefile | ||
| 3 | endif | ||
| 4 | |||
| 5 | # just silently stop, since we need to upload with teensy uploader | ||
| 6 | upload: build | ||
| 7 | |||
| 8 | |||
| 9 | |||
| 10 | |||
diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h index 8f1fdbdb6..7cb0532c6 100644 --- a/keyboards/kinesis/config.h +++ b/keyboards/kinesis/config.h | |||
| @@ -22,58 +22,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 22 | 22 | ||
| 23 | /* USB Device descriptor parameter */ | 23 | /* USB Device descriptor parameter */ |
| 24 | #define VENDOR_ID 0xFEED | 24 | #define VENDOR_ID 0xFEED |
| 25 | #define PRODUCT_ID 0x6060 | ||
| 26 | #define DEVICE_VER 0x0001 | ||
| 27 | #define MANUFACTURER You | 25 | #define MANUFACTURER You |
| 28 | #define PRODUCT kinesis-advantage | 26 | #define PRODUCT kinesis-advantage |
| 29 | #define DESCRIPTION A custom keyboard | 27 | #define DESCRIPTION A custom keyboard |
| 30 | 28 | ||
| 31 | // Mouse | 29 | // Mouse |
| 32 | #define MOUSEKEY_DELAY 20 | 30 | #define MOUSEKEY_DELAY 60 |
| 33 | #define MOUSEKEY_INTERVAL 20 | 31 | #define MOUSEKEY_INTERVAL 20 |
| 34 | #define MOUSEKEY_MAX_SPEED 4 | 32 | #define MOUSEKEY_MAX_SPEED 4 |
| 35 | #define MOUSEKEY_TIME_TO_MAX 20 | 33 | #define MOUSEKEY_TIME_TO_MAX 10 |
| 36 | #define MOUSEKEY_WHEEL_MAX_SPEED 1 | 34 | #define MOUSEKEY_WHEEL_MAX_SPEED 1 |
| 37 | #define MOUSEKEY_WHEEL_DELTA 1 | 35 | #define MOUSEKEY_WHEEL_DELTA 1 |
| 38 | #define MOUSEKEY_WHEEL_TIME_TO_MAX 1 | 36 | #define MOUSEKEY_WHEEL_TIME_TO_MAX 1 |
| 39 | 37 | ||
| 40 | /* key matrix size */ | ||
| 41 | #define MATRIX_ROWS 16 | ||
| 42 | #define MATRIX_COLS 8 | ||
| 43 | |||
| 44 | /* | ||
| 45 | * Keyboard Matrix Assignments | ||
| 46 | * | ||
| 47 | * Change this to how you wired your keyboard | ||
| 48 | * COLS: AVR pins used for columns, left to right | ||
| 49 | * ROWS: AVR pins used for rows, top to bottom | ||
| 50 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 51 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 52 | * | ||
| 53 | */ | ||
| 54 | //Passed through the port multipler, so 4 pins =16 | ||
| 55 | #define MATRIX_ROW_PINS { F0,F1, F2, F3 } | ||
| 56 | |||
| 57 | // May be upside down. | ||
| 58 | #define MATRIX_COL_PINS { B0,B1, B2, B3, B4, B5, B6, B7 } | ||
| 59 | #define UNUSED_PINS | ||
| 60 | |||
| 61 | /* COL2ROW or ROW2COL */ | ||
| 62 | #define DIODE_DIRECTION COL2ROW | ||
| 63 | |||
| 64 | // #define BACKLIGHT_PIN B7 | ||
| 65 | // #define BACKLIGHT_BREATHING | ||
| 66 | // #define BACKLIGHT_LEVELS 3 | ||
| 67 | |||
| 68 | |||
| 69 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | 38 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
| 70 | #define DEBOUNCING_DELAY 5 | 39 | #define DEBOUNCING_DELAY 5 |
| 71 | 40 | ||
| 72 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
| 73 | //#define MATRIX_HAS_GHOST | ||
| 74 | |||
| 75 | /* number of backlight levels */ | ||
| 76 | |||
| 77 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | 41 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
| 78 | #define LOCKING_SUPPORT_ENABLE | 42 | #define LOCKING_SUPPORT_ENABLE |
| 79 | /* Locking resynchronize hack */ | 43 | /* Locking resynchronize hack */ |
| @@ -171,4 +135,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 171 | //#define NO_ACTION_MACRO | 135 | //#define NO_ACTION_MACRO |
| 172 | //#define NO_ACTION_FUNCTION | 136 | //#define NO_ACTION_FUNCTION |
| 173 | 137 | ||
| 138 | |||
| 139 | |||
| 140 | #ifdef SUBPROJECT_alvicstep | ||
| 141 | #include "alvicstep/config.h" | ||
| 142 | #endif | ||
| 143 | #ifdef SUBPROJECT_stapelberg | ||
| 144 | #include "stapelberg/config.h" | ||
| 145 | #endif | ||
| 146 | |||
| 174 | #endif | 147 | #endif |
diff --git a/keyboards/kinesis/keymaps/default/keymap.c b/keyboards/kinesis/keymaps/default/keymap.c index 3bf80699c..01a66b5e5 100644 --- a/keyboards/kinesis/keymaps/default/keymap.c +++ b/keyboards/kinesis/keymaps/default/keymap.c | |||
| @@ -1,10 +1,6 @@ | |||
| 1 | #include "kinesis.h" | 1 | #include "kinesis.h" |
| 2 | #include "action_layer.h" | ||
| 3 | 2 | ||
| 4 | #define QWERTY 0 // Base qerty | 3 | #define QWERTY 0 // Base qwerty |
| 5 | #define SYMB 1// Symbol layer | ||
| 6 | |||
| 7 | // An almost entirely blank keymap. Test layers with the upper right hand key - 1 in normal mode, reset in layer 2. | ||
| 8 | 4 | ||
| 9 | 5 | ||
| 10 | /**************************************************************************************************** | 6 | /**************************************************************************************************** |
| @@ -33,7 +29,6 @@ | |||
| 33 | * `--------------------' `--------------------' | 29 | * `--------------------' `--------------------' |
| 34 | */ | 30 | */ |
| 35 | 31 | ||
| 36 | |||
| 37 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 32 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 38 | [QWERTY] = KEYMAP( | 33 | [QWERTY] = KEYMAP( |
| 39 | KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, | 34 | KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, |
| @@ -45,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 45 | KC_LCTL,KC_LALT, | 40 | KC_LCTL,KC_LALT, |
| 46 | KC_HOME, | 41 | KC_HOME, |
| 47 | KC_BSPC,KC_DEL ,KC_END , | 42 | KC_BSPC,KC_DEL ,KC_END , |
| 48 | KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SLCK ,KC_PAUS, KC_FN0, KC_1, | 43 | KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SLCK ,KC_PAUS, KC_FN0, KC_1, |
| 49 | KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, | 44 | KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, |
| 50 | KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, | 45 | KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, |
| 51 | KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, | 46 | KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, |
| @@ -54,32 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 54 | KC_RGUI,KC_RCTL, | 49 | KC_RGUI,KC_RCTL, |
| 55 | KC_PGUP, | 50 | KC_PGUP, |
| 56 | KC_PGDN,KC_ENTER ,KC_SPC | 51 | KC_PGDN,KC_ENTER ,KC_SPC |
| 57 | ), | ||
| 58 | [SYMB] = KEYMAP( | ||
| 59 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 60 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 61 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 62 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 63 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 64 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 65 | KC_TRNS, KC_TRNS, | ||
| 66 | KC_TRNS, | ||
| 67 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 68 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0, RESET, | ||
| 69 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 70 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 71 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 72 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 73 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 74 | KC_TRNS, KC_TRNS, | ||
| 75 | KC_TRNS, | ||
| 76 | KC_TRNS, KC_TRNS, KC_TRNS | ||
| 77 | ) | 52 | ) |
| 78 | }; | 53 | }; |
| 79 | 54 | ||
| 80 | const uint16_t PROGMEM fn_actions[] = { | ||
| 81 | [0] = ACTION_LAYER_TAP_TOGGLE(SYMB) , // FN1 - Momentary Layer 1 (Symbols) | ||
| 82 | 55 | ||
| 56 | const uint16_t PROGMEM fn_actions[] = { | ||
| 83 | 57 | ||
| 84 | }; | 58 | }; |
| 85 | 59 | ||
diff --git a/keyboards/kinesis/keymaps/programmer/Makefile b/keyboards/kinesis/keymaps/dvorak/Makefile index 9d3df5964..9d3df5964 100644 --- a/keyboards/kinesis/keymaps/programmer/Makefile +++ b/keyboards/kinesis/keymaps/dvorak/Makefile | |||
diff --git a/keyboards/kinesis/keymaps/programmer/config.h b/keyboards/kinesis/keymaps/dvorak/config.h index 8893d122e..8893d122e 100644 --- a/keyboards/kinesis/keymaps/programmer/config.h +++ b/keyboards/kinesis/keymaps/dvorak/config.h | |||
diff --git a/keyboards/kinesis/keymaps/dvorak/keymap.c b/keyboards/kinesis/keymaps/dvorak/keymap.c new file mode 100644 index 000000000..9008bc808 --- /dev/null +++ b/keyboards/kinesis/keymaps/dvorak/keymap.c | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | #include "kinesis.h" | ||
| 2 | |||
| 3 | #define _DVORAK 0 // Base Dvorak layer | ||
| 4 | #define _MEDIA 1 // Media layer | ||
| 5 | |||
| 6 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 7 | [_DVORAK] = KEYMAP( | ||
| 8 | // left hand | ||
| 9 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, | ||
| 10 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, | ||
| 11 | KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, | ||
| 12 | KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, | ||
| 13 | KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, | ||
| 14 | KC_ESC, KC_LBRC, KC_DOWN, KC_UP, | ||
| 15 | // left thumb | ||
| 16 | KC_LGUI, KC_LCTL, | ||
| 17 | KC_LALT, | ||
| 18 | KC_BSPC, KC_DEL, TG(_MEDIA), | ||
| 19 | // right hand | ||
| 20 | KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_FN0, KC_1, | ||
| 21 | KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, | ||
| 22 | KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, | ||
| 23 | KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, | ||
| 24 | KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, | ||
| 25 | KC_LEFT, KC_RIGHT, KC_RBRC, KC_BSLS, | ||
| 26 | // right thumb | ||
| 27 | KC_RCTL, KC_RGUI, | ||
| 28 | KC_RALT, | ||
| 29 | TG(_MEDIA), KC_ENT, KC_SPC | ||
| 30 | ), | ||
| 31 | |||
| 32 | [_MEDIA] = KEYMAP( | ||
| 33 | // left hand | ||
| 34 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 35 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 36 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 37 | KC_NO, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_NO, | ||
| 38 | KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, | ||
| 39 | KC_NO, KC_NO, KC_MS_D, KC_MS_U, | ||
| 40 | // left thumb | ||
| 41 | KC_NO, KC_NO, | ||
| 42 | KC_NO, | ||
| 43 | KC_NO, KC_NO, KC_TRNS, | ||
| 44 | // right hand | ||
| 45 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 46 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_POWER, | ||
| 47 | KC_NO, KC_VOLU, KC_MS_U, KC_VOLD, KC_NO, KC_NO, | ||
| 48 | KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, | ||
| 49 | KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, | ||
| 50 | KC_MS_L, KC_MS_R, KC_NO, KC_NO, | ||
| 51 | // right thumb | ||
| 52 | KC_NO, KC_NO, | ||
| 53 | KC_NO, | ||
| 54 | KC_TRNS, KC_ENT, KC_NO | ||
| 55 | ) | ||
| 56 | }; | ||
| 57 | |||
| 58 | |||
| 59 | const uint16_t PROGMEM fn_actions[] = { | ||
| 60 | |||
| 61 | }; | ||
| 62 | |||
| 63 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 64 | { | ||
| 65 | // MACRODOWN only works in this function | ||
| 66 | switch(id) { | ||
| 67 | case 0: | ||
| 68 | if (record->event.pressed) { | ||
| 69 | register_code(KC_RSFT); | ||
| 70 | } else { | ||
| 71 | unregister_code(KC_RSFT); | ||
| 72 | } | ||
| 73 | break; | ||
| 74 | } | ||
| 75 | return MACRO_NONE; | ||
| 76 | }; | ||
| 77 | |||
| 78 | |||
| 79 | void matrix_init_user(void) { | ||
| 80 | |||
| 81 | } | ||
| 82 | |||
| 83 | void matrix_scan_user(void) { | ||
| 84 | |||
| 85 | } | ||
| 86 | |||
| 87 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 88 | return true; | ||
| 89 | } | ||
| 90 | |||
| 91 | void led_set_user(uint8_t usb_led) { | ||
| 92 | |||
| 93 | } | ||
diff --git a/keyboards/kinesis/keymaps/milestogo/Makefile b/keyboards/kinesis/keymaps/milestogo/Makefile new file mode 100644 index 000000000..9d3df5964 --- /dev/null +++ b/keyboards/kinesis/keymaps/milestogo/Makefile | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | # Build Options | ||
| 2 | # change to "no" to disable the options, or define them in the Makefile in | ||
| 3 | # the appropriate keymap folder that will get included automatically | ||
| 4 | # | ||
| 5 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | ||
| 6 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
| 7 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 8 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 9 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
| 10 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 11 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 12 | MIDI_ENABLE = no # MIDI controls | ||
| 13 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 14 | UNICODE_ENABLE = no # Unicode | ||
| 15 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 16 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | ||
| 17 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 18 | |||
| 19 | ifndef QUANTUM_DIR | ||
| 20 | include ../../../../Makefile | ||
| 21 | endif | ||
diff --git a/keyboards/kinesis/keymaps/milestogo/config.h b/keyboards/kinesis/keymaps/milestogo/config.h new file mode 100644 index 000000000..8893d122e --- /dev/null +++ b/keyboards/kinesis/keymaps/milestogo/config.h | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | // place overrides here | ||
| 7 | |||
| 8 | #endif | ||
diff --git a/keyboards/kinesis/keymaps/programmer/keymap.c b/keyboards/kinesis/keymaps/milestogo/keymap.c index 83fb7bd5f..c2635eefe 100644 --- a/keyboards/kinesis/keymaps/programmer/keymap.c +++ b/keyboards/kinesis/keymaps/milestogo/keymap.c | |||
| @@ -2,10 +2,10 @@ | |||
| 2 | #include "action_layer.h" | 2 | #include "action_layer.h" |
| 3 | #include "mousekey.h" | 3 | #include "mousekey.h" |
| 4 | 4 | ||
| 5 | #define QWERTY 0 // Base qerty | 5 | #define _QWERTY 0 // Base qerty |
| 6 | #define SYMB 1// Symbol layer | 6 | #define _SYMB 1// Symbol layer |
| 7 | #define MOUSE 2// | 7 | #define _MOUSE 2// |
| 8 | 8 | #define _TRANS 3// | |
| 9 | 9 | ||
| 10 | 10 | ||
| 11 | 11 | ||
| @@ -20,27 +20,26 @@ enum { | |||
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | 22 | ||
| 23 | // Borrowing very heavily from | 23 | // Why so many gui keys, why not just map all the OS X stuff to buttons? Good question. |
| 24 | // https://github.com/alvicstep/tmk_keyboard | ||
| 25 | /**************************************************************************************************** | 24 | /**************************************************************************************************** |
| 26 | * | 25 | * |
| 27 | * Keymap: Default Layer in Qwerty | 26 | * Keymap: Default Layer in Qwerty |
| 28 | * | 27 | * |
| 29 | * ,-------------------------------------------------------------------------------------------------------------------. | 28 | * ,-------------------------------------------------------------------------------------------------------------------. |
| 30 | * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT | | 29 | * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT | |
| 31 | * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| | 30 | * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| |
| 32 | * | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | | 31 | * | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | |
| 33 | * |--------+------+------+------+------+------| +------+------+------+------+------+--------| | 32 | * |--------+------+------+------+------+------| +------+------+------+------+------+--------| |
| 34 | * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | | 33 | * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | |
| 35 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | 34 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| |
| 36 | * |MouseFN1| A | S | D | F | G | | H | J | K | L | ;: | '" | | 35 | * |MouseFN0| A | S | D | F | G | | H | J | K | L | ;: | '" | |
| 37 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | 36 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| |
| 38 | * | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | | 37 | * | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | |
| 39 | * `--------+------+------+------+------+------- `------+------+------+------+------+--------' | 38 | * `--------+------+------+------+------+------- `------+------+------+------+------+--------' |
| 40 | * | `~ | ESC |MOUSE1|MOUSE2| | [{ | ]} | ESC | GUI | | 39 | * | ~` | ESC |GUI/L |L1/RT | | L1/UP|GUI/DN| [{ | ]} | |
| 41 | * `---------------------------' `---------------------------' | 40 | * `---------------------------' `---------------------------' |
| 42 | * ,-------------. ,-------------. | 41 | * ,-------------. ,-------------. |
| 43 | * | Ctrl | Alt | | Gui | Ctrl | | 42 | * | CTRL | GUI | | ALT | GUI | |
| 44 | * ,------|------|------| |------+------+------. | 43 | * ,------|------|------| |------+------+------. |
| 45 | * | | | Home | | PgUp | | | | 44 | * | | | Home | | PgUp | | | |
| 46 | * | BkSp | Del |------| |------|Return| Space| | 45 | * | BkSp | Del |------| |------|Return| Space| |
| @@ -48,16 +47,15 @@ enum { | |||
| 48 | * `--------------------' `--------------------' | 47 | * `--------------------' `--------------------' |
| 49 | */ | 48 | */ |
| 50 | 49 | ||
| 51 | |||
| 52 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 50 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 53 | [QWERTY] = KEYMAP( | 51 | [_QWERTY] = KEYMAP( |
| 54 | KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, | 52 | KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, |
| 55 | KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , | 53 | KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , |
| 56 | KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , | 54 | KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , |
| 57 | KC_FN1 ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , | 55 | KC_FN0 ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , |
| 58 | KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , | 56 | KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , |
| 59 | KC_GRV ,KC_ESC, KC_BTN1,KC_BTN2, | 57 | KC_GRAVE, KC_ESC, KC_FN4, KC_FN5, |
| 60 | KC_LCTL,KC_LALT, | 58 | KC_LCTL,KC_LGUI, |
| 61 | KC_HOME, | 59 | KC_HOME, |
| 62 | KC_BSPC,KC_DEL ,KC_FN0 , | 60 | KC_BSPC,KC_DEL ,KC_FN0 , |
| 63 | KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1 ,KC_FN2, KC_NO, RESET, | 61 | KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1 ,KC_FN2, KC_NO, RESET, |
| @@ -65,18 +63,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 65 | KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, | 63 | KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, |
| 66 | KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, | 64 | KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, |
| 67 | KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, | 65 | KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, |
| 68 | KC_LBRC,KC_RBRC, KC_ESC, KC_RGUI, | 66 | KC_FN6, KC_FN7, KC_LBRC ,KC_RBRC, |
| 69 | KC_RGUI,KC_RCTL, | 67 | KC_RALT,KC_RGUI, |
| 70 | KC_PGUP, | 68 | KC_PGUP, |
| 71 | KC_PGDN,KC_ENTER ,KC_SPC | 69 | KC_PGDN,KC_ENTER ,KC_SPC |
| 72 | ), | 70 | ), |
| 73 | [SYMB] = KEYMAP( | 71 | |
| 72 | /* _SYMBol level | ||
| 73 | * | ||
| 74 | * ,-------------------------------------------------------------------------------------------------------------------. | ||
| 75 | * | | | | | | | | | | | | | | | | bOOT | | ||
| 76 | * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| | ||
| 77 | * | | | * | # | | | | | | | | | | | ||
| 78 | * |--------+------+------+------+------+------| +------+------+------+------+------+--------| | ||
| 79 | * | | / | [ | ] | | | | | | | | | | | ||
| 80 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | ||
| 81 | * | | | { | } | | | | | | | | | | | ||
| 82 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | ||
| 83 | * | | = | ( | ) | | | | | | | | | | | ||
| 84 | * `--------+------+------+------+------+------- `------+------+------+------+------+--------' | ||
| 85 | * | | |GUI/L |L1/RT | | L1/UP|GUI/DN| { | } | | ||
| 86 | * `---------------------------' `---------------------------' | ||
| 87 | * ,-------------. ,-------------. | ||
| 88 | * | CTRL | GUI | | ALT | GUI | | ||
| 89 | * ,------|------|------| |------+------+------. | ||
| 90 | * | | | Home | | PgUp | | | | ||
| 91 | * | BkSp | Del |------| |------|Mouse1|Mouse2| | ||
| 92 | * | | | End | | PgDn |LClick|Rclick| | ||
| 93 | * `--------------------' `--------------------' | ||
| 94 | */ | ||
| 95 | |||
| 96 | |||
| 97 | |||
| 98 | [_SYMB] = KEYMAP( | ||
| 74 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 99 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 75 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 100 | KC_TRNS, KC_TRNS, KC_ASTR, KC_HASH, KC_TRNS, KC_TRNS, |
| 76 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 101 | KC_TRNS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, |
| 77 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 102 | KC_TRNS, KC_TRNS, RSFT(KC_LBRC), RSFT(KC_RBRC), KC_TRNS, KC_TRNS, |
| 78 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 103 | KC_TRNS, KC_EQL, RSFT(KC_9), RSFT(KC_0), KC_TRNS, KC_TRNS, |
| 79 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 104 | KC_TRNS, KC_TRNS, KC_FN4, KC_FN5, |
| 80 | KC_TRNS, KC_TRNS, | 105 | KC_TRNS, KC_TRNS, |
| 81 | KC_TRNS, | 106 | KC_TRNS, |
| 82 | KC_TRNS, KC_TRNS, KC_TRNS, | 107 | KC_TRNS, KC_TRNS, KC_TRNS, |
| @@ -85,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 85 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 110 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 86 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 111 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 87 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 112 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 88 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 113 | KC_FN6, KC_FN7, KC_TRNS, KC_TRNS, |
| 89 | KC_TRNS, KC_TRNS, | 114 | KC_TRNS, KC_TRNS, |
| 90 | KC_TRNS, | 115 | KC_TRNS, |
| 91 | KC_TRNS, KC_TRNS, KC_TRNS | 116 | KC_TRNS, KC_TRNS, KC_TRNS |
| @@ -103,10 +128,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 103 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | 128 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| |
| 104 | * | | GuiZ | GUI X| GUI C| GUI_V|PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | | | 129 | * | | GuiZ | GUI X| GUI C| GUI_V|PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | | |
| 105 | * `--------+------+------+------+------+------- `------+------+------+------+------+--------' | 130 | * `--------+------+------+------+------+------- `------+------+------+------+------+--------' |
| 106 | * | `~ | ESC | < | > | | { | } | ESC | | | 131 | * | `~ | ESC | | | | | | { | } | |
| 107 | * `---------------------------' `---------------------------' | 132 | * `---------------------------' `---------------------------' |
| 108 | * ,-------------. ,-------------. | 133 | * ,-------------. ,-------------. |
| 109 | * | Ctrl | Alt | | Gui | Ctrl | | 134 | * | CTRL | GUI | | ALT | GUI | |
| 110 | * ,------|------|------| |------+------+------. | 135 | * ,------|------|------| |------+------+------. |
| 111 | * | | | Home | | PgUp | | | | 136 | * | | | Home | | PgUp | | | |
| 112 | * | BkSp | Del |------| |------|Mouse1|Mouse2| | 137 | * | BkSp | Del |------| |------|Mouse1|Mouse2| |
| @@ -115,13 +140,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 115 | */ | 140 | */ |
| 116 | 141 | ||
| 117 | 142 | ||
| 118 | [MOUSE] = KEYMAP( | 143 | [_MOUSE] = KEYMAP( |
| 119 | KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 144 | KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 120 | KC_TRNS, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC , | 145 | KC_TRNS, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC , |
| 121 | KC_TRNS, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP, | 146 | KC_TRNS, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP, |
| 122 | KC_FN1, LCTL(KC_A),KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E), | 147 | KC_FN1, LCTL(KC_A),KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E), |
| 123 | KC_TRNS, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V),KC_PGDN, | 148 | KC_TRNS, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V),KC_PGDN, |
| 124 | KC_TRNS, KC_TRNS, KC_LABK, KC_RABK, | 149 | KC_TRNS, KC_TRNS, KC_NO, KC_NO, |
| 125 | KC_TRNS, KC_TRNS, | 150 | KC_TRNS, KC_TRNS, |
| 126 | KC_TRNS, | 151 | KC_TRNS, |
| 127 | KC_TRNS, KC_TRNS, KC_TRNS, | 152 | KC_TRNS, KC_TRNS, KC_TRNS, |
| @@ -129,22 +154,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 129 | KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ACL2, | 154 | KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ACL2, |
| 130 | KC_WH_U, M(A_MUL), KC_MS_U, M(A_MUR), KC_NO, KC_ACL1, | 155 | KC_WH_U, M(A_MUL), KC_MS_U, M(A_MUR), KC_NO, KC_ACL1, |
| 131 | KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_ACL0, | 156 | KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_ACL0, |
| 132 | KC_WH_D, M(A_MDL), KC_MS_D, M(A_MDR), KC_TRNS, KC_TRNS, | 157 | KC_WH_D, M(A_MDL), KC_MS_D, M(A_MDR), RSFT(KC_LBRC), RSFT(KC_RBRC), |
| 133 | KC_LCBR, KC_RCBR, KC_ESC, KC_TRNS, | 158 | KC_LCBR, KC_RCBR, KC_NO, KC_NO, |
| 134 | KC_TRNS, KC_TRNS, | 159 | KC_TRNS, KC_TRNS, |
| 135 | KC_TRNS, | 160 | KC_TRNS, |
| 136 | KC_TRNS, KC_BTN1, KC_BTN2 | 161 | KC_TRNS, KC_BTN1, KC_BTN2 |
| 137 | ), | 162 | ), |
| 138 | 163 | ||
| 139 | 164 | ||
| 165 | |||
| 166 | /* EMPTY | ||
| 167 | * | ||
| 168 | * ,-------------------------------------------------------------------------------------------------------------------. | ||
| 169 | * | | | | | | | | | | | | | | | | bOOT | | ||
| 170 | * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| | ||
| 171 | * | | | | | | | | | | | | | | | ||
| 172 | * |--------+------+------+------+------+------| +------+------+------+------+------+--------| | ||
| 173 | * | | | | | | | | | | | | | | | ||
| 174 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | ||
| 175 | * | | | | | | | | | | | | | | | ||
| 176 | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| | ||
| 177 | * | | | | | | | | | | | | | | | ||
| 178 | * `--------+------+------+------+------+------- `------+------+------+------+------+--------' | ||
| 179 | * | | | | | | | | | | | ||
| 180 | * `---------------------------' `---------------------------' | ||
| 181 | * ,-------------. ,-------------. | ||
| 182 | * | Ctrl | Alt | | Gui | Ctrl | | ||
| 183 | * ,------|------|------| |------+------+------. | ||
| 184 | * | | | Home | | PgUp | | | | ||
| 185 | * | BkSp | Del |------| |------|Mouse1|Mouse2| | ||
| 186 | * | | | End | | PgDn |LClick|Rclick| | ||
| 187 | * `--------------------' `--------------------' | ||
| 188 | */ | ||
| 189 | |||
| 190 | |||
| 191 | |||
| 192 | [_TRANS] = KEYMAP( | ||
| 193 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 194 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 195 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 196 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 197 | KC_TRNS, KC_TRNS, KC_FN10, KC_FN11, KC_TRNS, KC_TRNS, | ||
| 198 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 199 | KC_TRNS, KC_TRNS, | ||
| 200 | KC_TRNS, | ||
| 201 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 202 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0, KC_2, | ||
| 203 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 204 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 205 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 206 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 207 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 208 | KC_TRNS, KC_TRNS, | ||
| 209 | KC_TRNS, | ||
| 210 | KC_TRNS, KC_TRNS, KC_TRNS | ||
| 211 | ), | ||
| 212 | |||
| 213 | |||
| 140 | }; | 214 | }; |
| 141 | 215 | ||
| 142 | const uint16_t PROGMEM fn_actions[] = { | ||
| 143 | [0] = ACTION_LAYER_TAP_TOGGLE(MOUSE) , // FN1 - Momentary Layer 1 (Symbols) | ||
| 144 | [1] = ACTION_LAYER_TOGGLE(MOUSE) , // FN1 - Momentary Layer 1 (Symbols) | ||
| 145 | [2] = ACTION_LAYER_TAP_TOGGLE(SYMB) , // FN1 - Momentary Layer 1 (Symbols) | ||
| 146 | 216 | ||
| 147 | 217 | ||
| 218 | const uint16_t PROGMEM fn_actions[] = { | ||
| 219 | [0] = ACTION_LAYER_TAP_TOGGLE(_MOUSE) , | ||
| 220 | [1] = ACTION_LAYER_TOGGLE(_MOUSE) , | ||
| 221 | [2] = ACTION_LAYER_TAP_TOGGLE(_SYMB) , | ||
| 222 | [5]= ACTION_LAYER_TAP_KEY(_SYMB,KC_RIGHT), | ||
| 223 | [4]= ACTION_MODS_TAP_KEY(MOD_LGUI,KC_LEFT), | ||
| 224 | [6]= ACTION_LAYER_TAP_KEY(_SYMB,KC_UP), | ||
| 225 | [7]= ACTION_MODS_TAP_KEY(MOD_LGUI,KC_DOWN), | ||
| 226 | |||
| 227 | |||
| 148 | }; | 228 | }; |
| 149 | 229 | ||
| 150 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | 230 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
| @@ -214,18 +294,23 @@ void matrix_init_user(void) { | |||
| 214 | } | 294 | } |
| 215 | 295 | ||
| 216 | void matrix_scan_user(void) { | 296 | void matrix_scan_user(void) { |
| 297 | |||
| 298 | #ifdef ALVICSTEP_CONFIG_H | ||
| 217 | int8_t layer = biton32(layer_state); | 299 | int8_t layer = biton32(layer_state); |
| 218 | 300 | ||
| 219 | switch (layer) { | 301 | switch (layer) { |
| 220 | case 1: | 302 | case 1: |
| 221 | all_led_off(); | ||
| 222 | break; | ||
| 223 | case 2: | ||
| 224 | if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) { | 303 | if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) { |
| 225 | all_led_off(); | 304 | all_led_off(); |
| 226 | caps_lock_led_on(); | 305 | caps_lock_led_on(); |
| 227 | } | 306 | } |
| 228 | break; | 307 | break; |
| 308 | |||
| 309 | case 2: | ||
| 310 | if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) { | ||
| 311 | all_led_off(); | ||
| 312 | scroll_lock_led_on(); | ||
| 313 | } | ||
| 229 | case 0: | 314 | case 0: |
| 230 | all_led_off(); | 315 | all_led_off(); |
| 231 | num_lock_led_on(); | 316 | num_lock_led_on(); |
| @@ -233,6 +318,7 @@ void matrix_scan_user(void) { | |||
| 233 | default: | 318 | default: |
| 234 | break; | 319 | break; |
| 235 | } | 320 | } |
| 321 | #endif | ||
| 236 | 322 | ||
| 237 | } | 323 | } |
| 238 | 324 | ||
diff --git a/keyboards/kinesis/keymaps/programmer/readme.md b/keyboards/kinesis/keymaps/milestogo/readme.md index 76356a687..76356a687 100644 --- a/keyboards/kinesis/keymaps/programmer/readme.md +++ b/keyboards/kinesis/keymaps/milestogo/readme.md | |||
diff --git a/keyboards/kinesis/kinesis.c b/keyboards/kinesis/kinesis.c index 1fee90e6f..7a6a1be54 100644 --- a/keyboards/kinesis/kinesis.c +++ b/keyboards/kinesis/kinesis.c | |||
| @@ -1,106 +1 @@ | |||
| 1 | #include "kinesis.h" | #include "kinesis.h" | |
| 2 | |||
| 3 | // begin section origin https://github.com/alvicstep/tmk_keyboard | ||
| 4 | |||
| 5 | |||
| 6 | void all_led_off(void) | ||
| 7 | { | ||
| 8 | PORTD = 0b11111111; | ||
| 9 | } | ||
| 10 | |||
| 11 | void all_led_on(void) | ||
| 12 | { | ||
| 13 | PORTD = 0b00000000; | ||
| 14 | } | ||
| 15 | void num_lock_led_on(void) | ||
| 16 | { | ||
| 17 | PORTD = 0b11101111; | ||
| 18 | } | ||
| 19 | |||
| 20 | void caps_lock_led_on(void) | ||
| 21 | { | ||
| 22 | PORTD = 0b01111111; | ||
| 23 | } | ||
| 24 | |||
| 25 | void scroll_lock_led_on(void) | ||
| 26 | { | ||
| 27 | PORTD = 0b11011111; | ||
| 28 | } | ||
| 29 | void keypad_led_on(void) | ||
| 30 | { | ||
| 31 | PORTD = 0b10111111; | ||
| 32 | } | ||
| 33 | void blink_all_leds(void) | ||
| 34 | { | ||
| 35 | all_led_on(); | ||
| 36 | _delay_ms(500); | ||
| 37 | |||
| 38 | all_led_off(); | ||
| 39 | _delay_ms(100); | ||
| 40 | |||
| 41 | caps_lock_led_on(); | ||
| 42 | _delay_ms(100); | ||
| 43 | |||
| 44 | num_lock_led_on(); | ||
| 45 | _delay_ms(100); | ||
| 46 | |||
| 47 | scroll_lock_led_on(); | ||
| 48 | _delay_ms(100); | ||
| 49 | |||
| 50 | keypad_led_on(); | ||
| 51 | _delay_ms(100); | ||
| 52 | |||
| 53 | //back | ||
| 54 | |||
| 55 | scroll_lock_led_on(); | ||
| 56 | _delay_ms(100); | ||
| 57 | |||
| 58 | num_lock_led_on(); | ||
| 59 | _delay_ms(100); | ||
| 60 | |||
| 61 | caps_lock_led_on(); | ||
| 62 | _delay_ms(100); | ||
| 63 | |||
| 64 | all_led_off(); | ||
| 65 | } | ||
| 66 | |||
| 67 | // End section origin https://github.com/alvicstep/tmk_keyboard | ||
| 68 | |||
| 69 | void matrix_init_kb(void) { | ||
| 70 | blink_all_leds(); | ||
| 71 | matrix_init_user(); | ||
| 72 | } | ||
| 73 | |||
| 74 | |||
| 75 | void matrix_scan_kb(void) { | ||
| 76 | // put your looping keyboard code here | ||
| 77 | // runs every cycle (a lot) | ||
| 78 | |||
| 79 | matrix_scan_user(); | ||
| 80 | } | ||
| 81 | |||
| 82 | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | ||
| 83 | // put your per-action keyboard code here | ||
| 84 | // runs for every action, just before processing by the firmware | ||
| 85 | |||
| 86 | return process_record_user(keycode, record); | ||
| 87 | } | ||
| 88 | |||
| 89 | void led_set_kb(uint8_t usb_led) { | ||
| 90 | // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here | ||
| 91 | |||
| 92 | //Copyright 2014 Warren Janssens <warren.janssens@gmail.com> | ||
| 93 | uint8_t leds = 0xF0; | ||
| 94 | if (usb_led & 1 << USB_LED_NUM_LOCK) | ||
| 95 | leds &= ~0x10; | ||
| 96 | if (usb_led & 1 << USB_LED_CAPS_LOCK) | ||
| 97 | leds &= ~0x80; | ||
| 98 | if (usb_led & 1 << USB_LED_SCROLL_LOCK) | ||
| 99 | leds &= ~0x20; | ||
| 100 | PORTD = (PORTD & 0x0F) | leds; | ||
| 101 | |||
| 102 | led_set_user(usb_led); | ||
| 103 | |||
| 104 | } | ||
| 105 | |||
| 106 | |||
diff --git a/keyboards/kinesis/kinesis.h b/keyboards/kinesis/kinesis.h index c04fbda15..66713731f 100644 --- a/keyboards/kinesis/kinesis.h +++ b/keyboards/kinesis/kinesis.h | |||
| @@ -1,67 +1,23 @@ | |||
| 1 | #ifndef KINESIS_H | 1 | #ifndef KINESIS_H |
| 2 | #define KINESIS_H | 2 | #define KINESIS_H |
| 3 | 3 | ||
| 4 | #include "quantum.h" | 4 | #ifdef SUBPROJECT_alvicstep |
| 5 | 5 | #include "alvicstep.h" | |
| 6 | 6 | #endif | |
| 7 | // The first section contains all of the arguements | 7 | #ifdef SUBPROJECT_stapelberg |
| 8 | // The second converts the arguments into a two-dimensional array | 8 | #include "stapelberg.h" |
| 9 | #endif | ||
| 9 | 10 | ||
| 10 | #define KEYMAP( \ | 11 | #include "quantum.h" |
| 11 | k02,k22,k12,k01,k21,k11,k00,k20,k10, \ | ||
| 12 | k80,k70,k60,k50,k40,k30, \ | ||
| 13 | k81,k71,k61,k51,k41,k31, \ | ||
| 14 | k82,k72,k62,k52,k42,k32, \ | ||
| 15 | k83,k73,k63,k53,k43,k33, \ | ||
| 16 | k74,k64,k54,k34, \ | ||
| 17 | k36,k35, \ | ||
| 18 | k55, \ | ||
| 19 | k56,k46,k75, \ | ||
| 20 | k03,k23,k13,k04,k24,k14,k05,k85,k84, \ | ||
| 21 | k94,kA4,kB4,kD4,kE4,kF4, \ | ||
| 22 | k95,kA5,kB5,kD5,kE5,kF5, \ | ||
| 23 | k96,kA6,kB6,kD6,kE6,kF6, \ | ||
| 24 | k97,kA7,kB7,kD7,kE7,kF7, \ | ||
| 25 | k93,kB3,kD3,kE3, \ | ||
| 26 | k47,k66, \ | ||
| 27 | k67, \ | ||
| 28 | k87,k76,k86 \ | ||
| 29 | ) { \ | ||
| 30 | { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO }, \ | ||
| 31 | { k10, k11, k12, k13, k14, KC_NO, KC_NO, KC_NO }, \ | ||
| 32 | { k20, k21, k22, k23, k24, KC_NO, KC_NO, KC_NO }, \ | ||
| 33 | { k30, k31, k32, k33, k34, k35, k36, KC_NO }, \ | ||
| 34 | { k40, k41, k42, k43, KC_NO, KC_NO, k46, k47 }, \ | ||
| 35 | { k50, k51, k52, k53, k54, k55, k56, KC_NO }, \ | ||
| 36 | { k60, k61, k62, k63, k64, KC_NO, k66, k67 }, \ | ||
| 37 | { k70, k71, k72, k73, k74, k75, k76, KC_NO }, \ | ||
| 38 | { k80, k81, k82, k83, KC_NO ,KC_NO, k86, k87}, \ | ||
| 39 | { KC_NO, KC_NO ,KC_NO ,k93, k94, k95, k96, k97}, \ | ||
| 40 | { KC_NO, KC_NO ,KC_NO ,KC_NO, kA4, kA5, kA6, kA7}, \ | ||
| 41 | { KC_NO, KC_NO ,KC_NO ,kB3, kB4, kB5, kB6, kB7}, \ | ||
| 42 | { KC_NO, KC_NO ,KC_NO ,KC_NO, KC_NO, KC_NO, k84, k85}, \ | ||
| 43 | { KC_NO, KC_NO ,KC_NO ,kD3, kD4, kD5, kD6, kD7}, \ | ||
| 44 | { KC_NO, KC_NO ,KC_NO ,kE3, kE4, kE5, kE6, kE7}, \ | ||
| 45 | { KC_NO, KC_NO ,KC_NO ,KC_NO, kF4, kF5, kF6, kF7} \ | ||
| 46 | } | ||
| 47 | 12 | ||
| 48 | 13 | ||
| 49 | /* 4y0 A 4y1 B 4y2 4y3 D 4y4 E 4y5 F 4y6 G 4y7 H 5y0 I 5y1 J 5y2 K 5y3 L 5y4 M 5y5 N 5y6 O 5y7 P */ | 14 | void all_led_off(void); |
| 15 | void all_led_on(void); | ||
| 16 | void num_lock_led_on(void); | ||
| 17 | void caps_lock_led_on(void); | ||
| 18 | void scroll_lock_led_on(void); | ||
| 19 | void keypad_led_on(void); | ||
| 50 | 20 | ||
| 51 | /* | ||
| 52 | 0 1 2 3 4 5 6 7 8 9 A B C D E F | ||
| 53 | A B C D E F G H I J K L M N O P | ||
| 54 | 4y0 4y1 4y2 4y3 4y4 4y5 4y6 4y7 5y0 5y1 5y2 5y3 5y4 5y5 5y6 5y7 | ||
| 55 | r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 | ||
| 56 | 0 PB0 21 c0 f6 f8 f7 5 4 3 2 1 =+ | ||
| 57 | 1 PB1 22 c1 f3 f5 f4 t r e w q TAB | ||
| 58 | 2 PB2 23 c2 ESC f2 f1 g f d s a CL | ||
| 59 | 3 PB3 24 c3 f9 f11 f10 b v c x z LS UP DN [{ ]} | ||
| 60 | 4 PB4 25 c4 f12 SL PS RT LT §± `~ 6 7 8 9 0 -_ | ||
| 61 | 5 PB5 26 c5 PB PGM KPD LA HM END y u i o p \ | ||
| 62 | 6 PB6 27 c6 LC DEL BS RC ENT SP h j k l ;: '" | ||
| 63 | 7 PB7 28 c7 RA PU PD n m ,< .> /? RS | ||
| 64 | */ | ||
| 65 | 21 | ||
| 66 | 22 | ||
| 67 | #endif | 23 | #endif |
diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md index 79c86581e..2813ee273 100644 --- a/keyboards/kinesis/readme.md +++ b/keyboards/kinesis/readme.md | |||
| @@ -1,42 +1,12 @@ | |||
| 1 | kinesis-advantage keyboard firmware | 1 | # Firmware for the Kinesis advantage keyboard |
| 2 | ====================== | ||
| 3 | 2 | ||
| 4 | ## Kinesis specific information | 3 | There are at least two different ways to replace the controller in this keyboard. |
| 5 | This is a port of https://github.com/alvicstep/tmk_keyboard, | ||
| 6 | which is a fork of https://github.com/wjanssens/tmk_keyboard, | ||
| 7 | which is based on work from https://github.com/chrisandreae/keyboard-firmware | ||
| 8 | 4 | ||
| 9 | If you replace the kinesis CPU as described in the doc folder, then this code should allow you to use QMK. | 5 | The Stapelberg folder contains the docs and configuration for using the custom controller created by Michael Stapelberg. |
| 10 | I've tested with a Teensy 2++, remember to change the CPU if you use a 32u4 instead. | ||
| 11 | 6 | ||
| 12 | Not yet implemented: | 7 | 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. |
| 13 | - Kinesis EEProm reading or writing | ||
| 14 | - Audio - this should be simple if we remove hardcoded pins from audio.h and switch to E7 | ||
| 15 | 8 | ||
| 9 | ## Keymaps | ||
| 10 | Both hardware solutions should work with the same keymaps | ||
| 16 | 11 | ||
| 17 | 12 | ||
| 18 | ## Quantum MK Firmware | ||
| 19 | |||
| 20 | For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). | ||
| 21 | |||
| 22 | ## Building | ||
| 23 | |||
| 24 | Download or clone the whole firmware and navigate to the keyboards/kinesis-advantage folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. | ||
| 25 | |||
| 26 | Depending on which keymap you would like to use, you will have to compile slightly differently. | ||
| 27 | |||
| 28 | ### Default | ||
| 29 | |||
| 30 | To build with the default keymap, simply run `make default`. | ||
| 31 | |||
| 32 | ### Other Keymaps | ||
| 33 | |||
| 34 | Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. | ||
| 35 | |||
| 36 | To build the firmware binary hex file with a keymap just do `make` with a keymap like this: | ||
| 37 | |||
| 38 | ``` | ||
| 39 | $ make [default|jack|<name>] | ||
| 40 | ``` | ||
| 41 | |||
| 42 | Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` | ||
diff --git a/keyboards/kinesis/stapelberg/Makefile b/keyboards/kinesis/stapelberg/Makefile new file mode 100644 index 000000000..bd09e5885 --- /dev/null +++ b/keyboards/kinesis/stapelberg/Makefile | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | ifndef MAKEFILE_INCLUDED | ||
| 2 | include ../../../Makefile | ||
| 3 | endif | ||
diff --git a/keyboards/kinesis/stapelberg/config.h b/keyboards/kinesis/stapelberg/config.h new file mode 100644 index 000000000..0677e0ade --- /dev/null +++ b/keyboards/kinesis/stapelberg/config.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #ifndef STAPELBERG_CONFIG_H | ||
| 2 | #define STAPELBERG_CONFIG_H | ||
| 3 | |||
| 4 | #include "../config.h" | ||
| 5 | |||
| 6 | /* USB Device descriptor parameter */ | ||
| 7 | #define PRODUCT_ID 0x6060 | ||
| 8 | #define DEVICE_VER 0x0002 | ||
| 9 | |||
| 10 | /* key matrix size */ | ||
| 11 | #define MATRIX_ROWS 15 | ||
| 12 | #define MATRIX_COLS 7 | ||
| 13 | |||
| 14 | /* | ||
| 15 | * Keyboard Matrix Assignments | ||
| 16 | * | ||
| 17 | * Change this to how you wired your keyboard | ||
| 18 | * COLS: AVR pins used for columns, left to right | ||
| 19 | * ROWS: AVR pins used for rows, top to bottom | ||
| 20 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 21 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 22 | * | ||
| 23 | */ | ||
| 24 | #define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, D7, C0, C1, C2, C3, C4, C5, C6 } | ||
| 25 | #define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6 } | ||
| 26 | #define UNUSED_PINS | ||
| 27 | |||
| 28 | /* COL2ROW or ROW2COL */ | ||
| 29 | #define DIODE_DIRECTION COL2ROW | ||
| 30 | |||
| 31 | |||
| 32 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 33 | #define DEBOUNCING_DELAY 5 | ||
| 34 | |||
| 35 | /* don't know if this should be defined at the board or top level. Assuming board | ||
| 36 | #define MOUSEKEY_DELAY 100 | ||
| 37 | #define MOUSEKEY_INTERVAL 20 | ||
| 38 | #define MOUSEKEY_MAX_SPEED 3 | ||
| 39 | #define MOUSEKEY_TIME_TO_MAX 10 | ||
| 40 | */ | ||
| 41 | |||
| 42 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 43 | |||
| 44 | /* key combination for magic key command */ | ||
| 45 | #define IS_COMMAND() ( \ | ||
| 46 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 47 | ) | ||
| 48 | |||
| 49 | |||
| 50 | #endif | ||
diff --git a/keyboards/kinesis/stapelberg/images/controller_board.jpg b/keyboards/kinesis/stapelberg/images/controller_board.jpg new file mode 100644 index 000000000..b18f76f7e --- /dev/null +++ b/keyboards/kinesis/stapelberg/images/controller_board.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/stapelberg/images/exterior_reset.jpg b/keyboards/kinesis/stapelberg/images/exterior_reset.jpg new file mode 100644 index 000000000..6edda8130 --- /dev/null +++ b/keyboards/kinesis/stapelberg/images/exterior_reset.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/stapelberg/images/teensy_detail.jpg b/keyboards/kinesis/stapelberg/images/teensy_detail.jpg new file mode 100644 index 000000000..12e6c1c8a --- /dev/null +++ b/keyboards/kinesis/stapelberg/images/teensy_detail.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/kinesis/stapelberg/readme.md b/keyboards/kinesis/stapelberg/readme.md new file mode 100644 index 000000000..b04a0bd49 --- /dev/null +++ b/keyboards/kinesis/stapelberg/readme.md | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | # kinesis_stapelberg keyboard firmware | ||
| 2 | |||
| 3 | This folder contains the firmware customization required to run QMK on the custom controller for the Kinesis Advantage created by Michael Stapelberg. | ||
| 4 | It differs from the `alvicstep keyboard in that the existing QMK Kinesis Advantage project uses the existing controller board provided by Kinesis. | ||
| 5 | |||
| 6 | The controller board hardware is described | ||
| 7 | [here](http://michael.stapelberg.de/Artikel/kinesis_custom_controller) | ||
| 8 | |||
| 9 | Mapping the pin assignments was done using the corresponding matrix description provided at this | ||
| 10 | [link](https://github.com/stapelberg/kinesis-firmware/blob/master/kb_kinesis/config.kspec) | ||
| 11 | |||
| 12 | This code makes no attempt to drive the four LEDs provided on the controller board. | ||
| 13 | |||
| 14 | |||
| 15 | ## Building the Hardware | ||
| 16 | |||
| 17 | If you want to perform this customization, these parts may be helpful. | ||
| 18 | |||
| 19 | | Function | Quantity | Vendor | Part Number | | ||
| 20 | | ------------------------------------------------------ | -------- | ------- | ------------ | | ||
| 21 | | 13 pin connector for function keys and finger keywells | 4 | Digi-Key | WM14526-ND | | ||
| 22 | | 10 pin headers for thumb clusters | 4 | Digi-Key | 609-3250-ND | | ||
| 23 | | 8 pin cable for thumb clusters | 2 | Digi-Key | SAM8928-ND | | ||
| 24 | | Teensy++ 2.0 | 1 | Digi-Key | 1528-1056-ND | | ||
| 25 | | 2 pin right angle header for reset | 1 | Digi-Key | 3M9467-ND | | ||
| 26 | | Reset cables | 2 | Sparkfun | PRT-09140 | | ||
| 27 | |||
| 28 | The board and connections are shown here | ||
| 29 |  | ||
| 30 | |||
| 31 | The Teensy mounting detail can be seen here. | ||
| 32 | I used a socket for prototyping. | ||
| 33 |  | ||
| 34 | |||
| 35 | |||
| 36 | Since the proper mounting of the Teensy board places the reset button in a tight space, I added a 2-pin header to the reset and ground pins on the edge of the board. | ||
| 37 | Shorting these two pins together will reset the board. | ||
| 38 | I also put female to male header jumper cables on these so they could be accessed outside the enclosure. | ||
| 39 | The exterior cables can be seen here. | ||
| 40 |  | ||
| 41 | |||
| 42 | |||
| 43 | ## Keymaps | ||
| 44 | |||
| 45 | ### Default | ||
| 46 | |||
| 47 | To build with the default keymap, run `make default` while in the | ||
| 48 | `kinesis_stapelberg` working directory. | ||
| 49 | |||
| 50 | ### Dvorak | ||
| 51 | |||
| 52 | This keymap contains a dvorak implementation as well as media and symbol layers. | ||
| 53 | |||
| 54 | Run `make dvorak` while in the `kinesis_stapelberg` working directory. | ||
| 55 | |||
diff --git a/keyboards/kinesis/stapelberg/rules.mk b/keyboards/kinesis/stapelberg/rules.mk new file mode 100644 index 000000000..fb421a34f --- /dev/null +++ b/keyboards/kinesis/stapelberg/rules.mk | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | ifndef QUANTUM_DIR | ||
| 2 | include ../../../Makefile | ||
| 3 | endif | ||
| 4 | |||
| 5 | # just silently stop, since we need to upload with teensy uploader | ||
| 6 | upload: build | ||
| 7 | |||
| 8 | |||
| 9 | |||
| 10 | |||
diff --git a/keyboards/kinesis/stapelberg/stapelberg.c b/keyboards/kinesis/stapelberg/stapelberg.c new file mode 100644 index 000000000..111db81fe --- /dev/null +++ b/keyboards/kinesis/stapelberg/stapelberg.c | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | #include "stapelberg.h" | ||
| 2 | |||
| 3 | void matrix_init_kb(void) { | ||
| 4 | // put your keyboard start-up code here | ||
| 5 | // runs once when the firmware starts up | ||
| 6 | |||
| 7 | matrix_init_user(); | ||
| 8 | } | ||
| 9 | |||
| 10 | void matrix_scan_kb(void) { | ||
| 11 | // put your looping keyboard code here | ||
| 12 | // runs every cycle (a lot) | ||
| 13 | |||
| 14 | matrix_scan_user(); | ||
| 15 | } | ||
| 16 | |||
| 17 | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | ||
| 18 | // put your per-action keyboard code here | ||
| 19 | // runs for every action, just before processing by the firmware | ||
| 20 | |||
| 21 | return process_record_user(keycode, record); | ||
| 22 | } | ||
| 23 | |||
| 24 | void led_set_kb(uint8_t usb_led) { | ||
| 25 | // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here | ||
| 26 | |||
| 27 | led_set_user(usb_led); | ||
| 28 | } | ||
diff --git a/keyboards/kinesis/stapelberg/stapelberg.h b/keyboards/kinesis/stapelberg/stapelberg.h new file mode 100644 index 000000000..c90fc3d52 --- /dev/null +++ b/keyboards/kinesis/stapelberg/stapelberg.h | |||
| @@ -0,0 +1,72 @@ | |||
| 1 | #ifndef KINESIS_STAPELBERG_H | ||
| 2 | #define KINESIS_STAPELBERG_H | ||
| 3 | |||
| 4 | #include "quantum.h" | ||
| 5 | |||
| 6 | // This a shortcut to help you visually see your layout. | ||
| 7 | // The first section contains all of the arguments as on the physical keyboard | ||
| 8 | // The second converts the arguments into the 2-D scanned array | ||
| 9 | |||
| 10 | #define KEYMAP( \ | ||
| 11 | kC0,kD0,kE0,kC1,kD1,kE1,kC2,kD2,kE2, \ | ||
| 12 | k00,k10,k20,k30,k40,k50, \ | ||
| 13 | k01,k11,k21,k31,k41,k51, \ | ||
| 14 | k02,k12,k22,k32,k42,k52, \ | ||
| 15 | k03,k13,k23,k33,k43,k53, \ | ||
| 16 | k14,k24,k34,k54, \ | ||
| 17 | k56,k55, \ | ||
| 18 | k35, \ | ||
| 19 | k36,k46,k25, \ | ||
| 20 | kC3,kD3,kE3,kC4,kD4,kE4,kC5,kE5,kD5, \ | ||
| 21 | k60,k70,k80,k90,kA0,kB0, \ | ||
| 22 | k61,k71,k81,k91,kA1,kB1, \ | ||
| 23 | k62,k72,k82,k92,kA2,kB2, \ | ||
| 24 | k63,k73,k83,k93,kA3,kB3, \ | ||
| 25 | k64,k84,k94,kA4, \ | ||
| 26 | k96,k85, \ | ||
| 27 | k86, \ | ||
| 28 | k66,k75,k65 \ | ||
| 29 | ) { \ | ||
| 30 | { k00, k01, k02, k03, KC_NO, KC_NO, KC_NO }, \ | ||
| 31 | { k10, k11, k12, k13, k14, KC_NO, KC_NO }, \ | ||
| 32 | { k20, k21, k22, k23, k24, k25, KC_NO }, \ | ||
| 33 | { k30, k31, k32, k33, k34, k35, k36 }, \ | ||
| 34 | { k40, k41, k42, k43, KC_NO, KC_NO, k46 }, \ | ||
| 35 | { k50, k51, k52, k53, k54, k55, k56 }, \ | ||
| 36 | { k60, k61, k62, k63, k64, k65, k66 }, \ | ||
| 37 | { k70, k71, k72, k73, KC_NO, k75, KC_NO }, \ | ||
| 38 | { k80, k81, k82, k83, k84, k85, k86 }, \ | ||
| 39 | { k90, k91, k92, k93, k94, KC_NO, k96 }, \ | ||
| 40 | { kA0, kA1, kA2, kA3, kA4, KC_NO, KC_NO }, \ | ||
| 41 | { kB0, kB1, kB2, kB3, KC_NO, KC_NO, KC_NO }, \ | ||
| 42 | { kC0, kC1, kC2, kC3, kC4, kC5, KC_NO }, \ | ||
| 43 | { kD0, kD1, kD2, kD3, kD4, kD5, KC_NO }, \ | ||
| 44 | { kE0, kE1, kE2, kE3, kE4, kE5, KC_NO } \ | ||
| 45 | } | ||
| 46 | |||
| 47 | /* | ||
| 48 | This is the Stapelberg matrix as published at | ||
| 49 | https://github.com/stapelberg/kinesis-firmware/blob/master/kb_kinesis/config.kspec | ||
| 50 | Along with the pins for each row and column | ||
| 51 | PB0 PB1 PB2 PB3 PB4 PB5 PB6 | ||
| 52 | kx0 kx1 kx2 kx3 kx4 kx5 kx6 | ||
| 53 | PD0 k0x Row: EQL TAB CAP LSH X2 -- -- | ||
| 54 | PD1 k1x Row: 1 Q A Z BQ -- -- | ||
| 55 | PD2 k2x Row: 2 W S X INS END -- | ||
| 56 | PD3 k3x Row: 3 E D C LFT HOM BAK | ||
| 57 | PD4 k4x Row: 4 R F V -- -- DEL | ||
| 58 | PD5 k5x Row: 5 T G B RT LAL LCT | ||
| 59 | PD6 k6x Row: 6 Y H N UP SPC PGD | ||
| 60 | PD7 k7x Row: 7 U J M -- RET -- | ||
| 61 | PB0 k8x Row: 8 I K COM DWN RCT PGU | ||
| 62 | PB1 k9x Row: 9 O L PER LBR -- RAL | ||
| 63 | PB2 kAx Row: 0 P SEM SLA RBR -- -- | ||
| 64 | PB3 kBx Row: MIN BSL APO RSH X1 -- -- | ||
| 65 | PB4 kCx Row: ESC F3 F6 F9 F12 PAU -- | ||
| 66 | PB5 kDx Row: F1 F4 F7 F10 PRT PRG -- | ||
| 67 | PB6 kEx Row: F2 F5 F8 F11 SLK KEY -- | ||
| 68 | */ | ||
| 69 | |||
| 70 | |||
| 71 | |||
| 72 | #endif | ||
