Compare commits

...

2001 Commits
0.6.61 ... 10

Author SHA1 Message Date
Drashna Jael're
573e0bfab1 Fix isses with toggling 2019-08-08 08:54:52 +09:00
Drashna Jael're
c8db6dfdd3 Update RGB Matrix configuration for Ergodox EZ 2019-08-08 08:54:52 +09:00
Drashna Jael're
4de36ce45b Update RGB Matrix configuration for Planck EZ
Use LED Flags for RGB matrix control instead

Cleanup
2019-08-08 08:54:52 +09:00
Drashna Jael're
5a30142914 Fix bugs introduced into Planck EZ code 2019-08-06 08:17:35 +09:00
Drashna Jael're
927969d6cb Enable LED Light level control for Ergodox EZ 2019-08-05 09:36:54 +09:00
Drashna Jael're
d2100ba45d Enable PWM support for Planck EZ Indicator LEDs 2019-08-05 09:36:26 +09:00
Florian Didron
4a5b36ec4c Fix/music mask (#123)
* chore: align mod tap and mouse keys timings with the ergodox ez

* fix: align planck ez default tapping toggle with ergodox

* fix: ignore all layer keys in music mode
2019-07-29 18:11:09 -07:00
Drashna Jael're
6d6506e6ee Optimize RGB Matrix rendering for Ergodox EZ 2019-07-27 11:26:33 +09:00
Drashna Jael're
81c563c692 Optimize RGB Matrix rendering for Planck EZ 2019-07-27 11:26:33 +09:00
Drashna Jaelre
8c164726e8 Remove dynamic_keymap check 2019-07-27 11:25:58 +09:00
Drashna Jaelre
1102bea973 Fix uGFX reference issue 2019-07-27 11:25:58 +09:00
Drashna Jaelre
4df874a1d9 Change additional layer structure code 2019-07-27 11:25:58 +09:00
Drashna Jaelre
e0eecc6834 Additional changes for Layer State typedef compatibility 2019-07-27 11:25:58 +09:00
Drashna Jaelre
04eb1226b9 Use Layer State Typedef in keymaps 2019-07-27 11:25:58 +09:00
Ryan Caltabiano
a393d4d43e Fix bit count calculation for iterating layers 2019-07-27 11:25:58 +09:00
Alex Ong
8253427f12 Typedef'ed layer_state_t to uint32_t (#3637)
* Typedef'ed layer_state_t to uint32_t.

This enables future work with layer_state_t to uint8_t for optimization purposes.

* Removed accidental xeal60 commit

* Revert to egyptian brackets, added sizeof(layer_state_t) so when layer_state_t is redefined it will automagically work.

* Add additional typedefs

* Add checks for setting layer state

* Update tmk_core/common/action_layer.h

Co-Authored-By: alex-ong <the.onga@gmail.com>

* Revert commit.
2019-07-27 11:25:58 +09:00
XScorpion2
aa482e2e4f Added mod carry over from press to release. (#5866)
Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-07-27 11:24:42 +09:00
XScorpion2
f5980a2478 Added check for event pressed to clear space cadet (#5839)
* Added check for pressed to clear space cadet

* Found some docs to update

* Update docs/quantum_keycodes.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Changes from PR
2019-07-27 11:24:42 +09:00
Drashna Jaelre
4cc72c55e5 Feature/update docker (#121)
* Update docker util script and travis to use new base container

* Update docker util script and travis to use new base container
2019-07-22 10:27:35 +09:00
Florian Didron
7e3af676e7 fix: align planck ez default tapping toggle with ergodox 2019-07-22 10:25:31 +09:00
Drashna Jaelre
3aced2b5c9 Remove the need to specify NUM_OF_ENCODERS for the Encoder feature (#6328)
* Remove the need to set NUM_OF_ENCODERS

Instead, calculate the size of the array, and use that instead

* Add hack for split common support

* Remove NUM_OF_ENCODERS from keyboard config

Can be reverted, if needed
2019-07-19 10:25:26 +09:00
Drashna Jaelre
ce1b51be8b Allow Combo feature to be enabled/disabled live (#6318)
* Add ability to enable/disable combos

* Update documentation for Combo feature

* Change keycodes for appeasement

* Simplify combo_toggle function

* Update names

* Update combo docs to use tables
2019-07-19 10:25:00 +09:00
Joel Challis
90853e60bb Align ARM i2c_readReg with AVR (#6314)
* Align arm i2c_readReg with avr

* Align arm i2c_readReg with avr - fix cannonkeys
2019-07-19 10:23:51 +09:00
Joel Challis
c08ddb41a6 Add ARM I2Cv1 support to i2c_master (#6262)
* Add ARM I2Cv1 support to i2c_master

* Add I2Cv1 docs
2019-07-19 10:23:51 +09:00
Drashna Jaelre
c7dcc83e5e Expand bootloader target to support most AVR boards (#6255)
* Update the :bootloader target to pass along correct hardware info

* Update make scripts to properly grab the settings (a big thanks to @yanfali)

* Remove LUFA debug warnings
2019-07-19 10:18:33 +09:00
Drashna Jaelre
e237feba30 Make Caps Lock delay more reasonable (#6199)
* Make Caps Lock delay more reasonable

* Update documentation

* Update docs/config_options.md

Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>

* Update docs/config_options.md

Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
2019-07-19 10:17:55 +09:00
Joel Challis
3acf64b708 Configure Vagrant to use qmk_base_container (#6194)
* Initial conversion of vagrant to use qmkfm/base_container

* Fix vagrant when using docker provider

* Workaround for VirtualBox VM restarts

* Generalise Vagrant docs slightly and add FAQ
2019-07-19 10:17:17 +09:00
fauxpark
4083565334 Store backlight breathing state in EEPROM (#6105)
* Store backlight breathing state in EEPROM

* Reduce backlight_config.level from 6 bits to 4 (max 15 "on" levels)

* Error out if BACKLIGHT_LEVELS is > 15

* Remove mention of default backlight pin in rules.mk template

* Remove pointless comment
2019-07-19 10:16:35 +09:00
XScorpion2
b279d2b94e Adding rgb matrix speed into eeprom storage. (#5965)
Zeroing out spd in eeconfig_init_quantum

Switched to block read & update

Update tmk_core/common/eeconfig.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>

Fixing init compile error

Update eeconfig.c

Dead / Missing API cleanup

alignment
2019-07-19 10:14:15 +09:00
Roman Volosatovs
656b2ee939 shell.nix: Downgrade gcc-arm-embedded (#5913)
Temporary fix for https://github.com/qmk/qmk_firmware/issues/5868
2019-07-19 10:13:21 +09:00
Drashna Jaelre
d8925d7ba7 Fix Preprocessor check for Leader Keys 2019-07-19 10:12:49 +09:00
Drashna Jaelre
9fb4d67877 Add out of bound check for Leader Key sequence array (#5840)
* Add out of bound check for Leader Key sequence array

* A shot at advanced C stuff for Leader Key optimization

* Revert most changes

* Change default back

* Include string.h if compiling for ARM

* Use sizeof instead of a number
2019-07-19 10:12:49 +09:00
fauxpark
a20730f634 Add sendstring LUTs for French keymap (#5830) 2019-07-19 10:11:24 +09:00
Drashna Jaelre
4562a637bf Skip unsupported firmware check message in silent mode (#5765) 2019-07-19 10:09:41 +09:00
fauxpark
e8de784425 Sendstring LUT improvements (#5727)
* Align sendstring LUTs to 9 characters wide

* Replace 0 with XXXXXXX

* Use decimal 128 for LUT size

* Align heading comments

* Add ASCII table comments

* Add missing AltGr LUTs and adjust keycode LUTs accordingly

* Use pragma once

* Correct a couple more keycodes

* Capitalise "BÉPO"

* Also clean up the default tables

* Tidy up Belgian and Norman LUTs
2019-07-19 10:08:53 +09:00
fauxpark
0b25414aec Remove lock LED example in quantum.c (#5636)
* Use GPIO helper defines in backlighting

* While I'm here, fix up the lock LED example too

* Remove the example altogether, it's already documented
2019-07-19 10:08:18 +09:00
Aapo Saaristo
3dd97c383b Add user-overridable callback for cancelling UCIS input (#5564)
* Add user-overridable callback for cancelling UCIS input

To clean up things from qk_ucis_start_user() for instance.

* restore lost newline to quantum/process_keycode/process_ucis.c

Co-Authored-By: shinmai <aapo.saaristo@gmail.com>
2019-07-19 10:07:51 +09:00
Takeshi ISHII
ffc273b14a add 'objs-size' target into tmk_core/avr.mk (#5490) 2019-07-19 10:06:48 +09:00
yiancar
7f75ee8cd6 Usbasploader bootloader option addition (#6304)
* Added USBasp bootloader option for USBasploader

* author comment

* ifdef fix :)

* Add usbasp target

* Update docs/flashing.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/flashing.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Update docs/flashing.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-07-19 10:06:08 +09:00
skullydazed
8ca6a89078 Fix compiling json files. (#6340) 2019-07-19 10:05:36 +09:00
skullydazed
7e080e7ecd QMK CLI and JSON keymap support (#6176)
* Script to generate keymap.c from JSON file.

* Support for keymap.json

* Add a warning about the keymap.c getting overwritten.

* Fix keymap generating

* Install the python deps

* Flesh out more of the python environment

* Remove defunct json2keymap

* Style everything with yapf

* Polish up python support

* Hide json keymap.c into the .build dir

* Polish up qmk-compile-json

* Make milc work with positional arguments

* Fix a couple small things

* Fix some errors and make the CLI more understandable

* Make the qmk wrapper more robust

* Add basic QMK Doctor

* Clean up docstrings and flesh them out as needed

* remove unused compile_firmware() function
2019-07-19 10:05:36 +09:00
zvecr
1879c6e734 Update docker util script and travis to use new base container 2019-07-19 10:05:10 +09:00
zvecr
c98d65fd03 Update docker util script and travis to use new base container 2019-07-19 10:05:10 +09:00
Florian Didron
ecf353a1d5 chore: align mod tap and mouse keys timings with the ergodox ez 2019-07-16 18:35:17 +09:00
Ryan Caltabiano
92d137cec9 Switching rgb_config_t to use HSV struct (qmk#5933) 2019-07-16 13:04:11 +09:00
XScorpion2
fd2246f972 Fixing effects to respect user sat and val levels (#6275) 2019-07-16 13:04:11 +09:00
fauxpark
16a8150de3 Display firmware size percentage (#6307) 2019-07-16 13:03:12 +09:00
Drashna Jaelre
dd148c595c Add GPL3 header to avr i2c files 2019-07-15 13:57:50 +09:00
fauxpark
642986a834 Add copyright year placeholders to new keyboard script (#6280)
* Add copyright year placeholders to new keyboard script

* More copyright header tweaks
2019-07-10 09:07:12 +09:00
skullydazed
ea40d07776 Fix chibios so the dfu-suffix is only applied once. (#6270) 2019-07-10 09:06:19 +09:00
Drashna Jaelre
3e7e8a3d9f Add makeful rules to .editorconfig
OMFG, why is it not set to tabs??
2019-07-10 09:05:31 +09:00
Kenny Hung
70ed220c19 Fix linux_install.sh script for OpenSuse v 15.1 (#6251) 2019-07-10 09:04:41 +09:00
Takeshi ISHII
517329696b fix unselect_rows() in quantum/matrix.c (#6243)
unselect_col() uses setPinInputHigh(), but unselect_cols() uses setPinInput().
This is not correct. unselect_cols() should also use setPinInputHigh().
2019-07-10 09:04:03 +09:00
fauxpark
341cf42d92 Remove additional copyrighted songs 2019-07-10 09:03:19 +09:00
Konstantin Đorđević
4675f2727b Fix parentheses in macros, and in general clean up quantum.h (#5021)
* Fix up GPIO macros

* Fix up send string macros

`string` arguments must not be parenthesized

* Fix up miscellaneous macros

* Make indentation uniform (4 spaces)

* Make #ifdef vs #if defined usage consistent

* Reorder standard includes

* Revert indentation changes as per review comments

* Revert #if defined(__AVR__) → #ifdef __AVR__ change

* Change 2 space indent to 4 spaces on a couple of lines

* Replace include guard with #pragma once
2019-07-10 09:01:14 +09:00
Drashna Jaelre
dba5ec7d92 Use QUANTUM_LIB_SRC for i2c_master.c inclusion (qmk#5617) 2019-07-10 09:00:07 +09:00
Michael Graf
d29148f289 Removed doubled lines 2019-07-10 08:41:09 +09:00
Florian Didron
d5aa21b024 Fix br abnt2 keymap compilation error 2019-06-24 22:53:21 +09:00
Danny Nguyen
b69a93d65e Fix compilation error when I2C and encoder is enabled for split code 2019-06-24 09:03:05 +09:00
noroadsleft
47909e2821 [Keyboard] Planck Layout Macro Refactor, Part II (#6156)
* Move layout macros to revision folders

* Update Planck EZ layout macros

Planck EZ only supports one layout (centered 2u spacebar). Deleted all the other macros.

* Flesh out QMK Configurator support

Give each Planck revision its own info.json file.

* Readme updates

- give each revision its own readme
- add the Planck EZ to the main Planck readme

* Fix layout macro for Planck EZ

Previous matrix didn't compile because the electrical matrix defined a k3b location, which was unused by the physical arguments.

Drashna was kind enough to confirm the Planck EZ's matrix for me.

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Pretend the Planck EZ supports ortho_4x12 layout

The hardware doesn't, but doing so prevents CI errors because the default keymap uses LAYOUT_planck_grid.

Going to pretend LAYOUT_ortho_4x12 is a valid layout for the Planck EZ.

* Update Planck EZ's URL in info.json

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-06-24 09:02:33 +09:00
noroadsleft
2f960abb51 [Keyboard] Planck: Layout Macro Refactor (#4402)
* Planck: layout macro refactor

Unified layout macro names across AVR and ARM boards.

Currently certain layout macros are specific to either AVR or ARM when used in the QMK Configurator. If an AVR-specific macro is used for a Planck rev. 6, or an ARM-specific macro on a rev. 5 or earlier, the user receives a compile error.

* Update keyboards/planck/planck.h per @drashna

Changed KC_LAYOUT_ortho_4x12 alias to LAYOUT_kc_ortho_4x12.

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Add KC_KEYMAP alias for LAYOUT_kc macro

per @drashna
Update keyboards/planck/planck.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Fix LAYOUT_planck_1x2uC macro for Planck rev6

Thanks to drashna for testing.

* Fix inline comment regarding revisions

* Add specific info.json file for Planck rev6
2019-06-24 09:02:33 +09:00
Drashna Jaelre
0ea9391236 Enable RGB Matrix Sleep functionality 2019-06-24 09:01:09 +09:00
Florian Didron
d49944f1a2 Fix swedish $ sign definition (#81) 2019-06-21 17:12:14 -07:00
Florian Didron
59055df0d4 Removes files that shouldn't have been commited 2019-06-20 11:51:14 +09:00
Florian Didron
071e51994b Swedish extra keymap refactor 2019-06-20 11:51:14 +09:00
Danny Nguyen
e2f2d8b22e Change from avr-gcc@7 to @8 for Mac 2019-06-20 09:07:11 +09:00
zvecr
03a8adc19b Copy avr teensy flash logic to arm (#6016) 2019-06-20 09:06:38 +09:00
Michael F. Lamb
1c9011fbd1 Add SH1106 OLED support (#5787)
* modify oled_driver to support SH1106

also:
- improve mechanism to specify which OLED IC we use
- comment calc_bounds()
- give OLED_COLUMN_OFFSET a default value
- inline comment re: OLED MEMORY_MODE and SH1106
- update docs/feature_oled_driver.h for SH1106 support and related changes
- docs: OLED: note we have tested SSD1306 on ARM boards (per @XScorpion2)
- define out MEMORY_MODE when using SH1106 OLED driver

* document that SSD1306 128x64 on AVR works

Per @XScorpion2: https://github.com/qmk/qmk_firmware/pull/5787#discussion_r291837842
2019-06-20 09:05:32 +09:00
XScorpion2
2aa3b88823 Fixing OLED Driver for 128x64 displays (#6085) 2019-06-20 09:05:05 +09:00
Erez Zukerman
a31212a389 Merge pull request #74 from zsa/planckez-disable-leds
Planck Ez disable leds
2019-06-07 22:41:12 +08:00
Florian Didron
f55c4ced28 Allows disabling the RGB Matrix on the Planck EZ 2019-06-07 14:23:56 +09:00
Florian Didron
1a3f69b02a Moves the changelog to the wiki
New location: https://github.com/zsa/qmk_firmware/wiki/Changelog
2019-06-06 10:57:21 +09:00
Drashna Jaelre
b2f15ce264 Fix debouncing issue for eager algos (#73) 2019-06-06 10:39:00 +09:00
Drashna Jaelre
dc13f5f518 Add additional pins for Teensy 3.x and LC (#72) 2019-06-06 10:37:35 +09:00
Drashna Jaelre
61d1932f7c Parameterise STM32 I2C pin modes and timing parameters. (#5671) (#71)
I2C timing parameters were seemingly set up for an STM32F303 target MCU, at a specific clock speed. This commit allows specifying the timing parameters via config.h, allowing other STM32 MCUs to be targeted, potentially at different clock frequencies.
Alternate function modes for the I2C pins are now also configurable, allowing for remapping to other pins.
2019-06-06 10:16:02 +09:00
Drashna Jaelre
1ba27782ef Fixes compile errors for massdrop keyboards (#70) 2019-06-06 10:14:35 +09:00
Drashna Jaelre
9b248baf43 Moving rgb typedefs into a single location (#5978) (#69)
Because someone named the define poorly

Using full relative path as handwired/promethium has a color.h file
2019-06-06 09:11:34 +09:00
zvecr
f781b36aaa upgrade gcc-arm-none-eabi from the default 5.4.1 to 6.3.1 due to ARM runtime issues 2019-06-06 09:00:20 +09:00
Drashna Jaelre
028d02d1f1 Smallish overhaul of Auto-Shift feature (#67)
* Fix edge case when using One Shot Layer with Auto Shift, and it not triggering the cleanup
* Remove junk code (no longer used)
* Replace `(un)register_code` calls with `tap_code` where appropriate
* Fixed up Switch check to be more readable (less verbose)
* Simplified modifier check (if it comes back non-zero, there are mods)
* Add additional function calls for autoshift settings
* Made all variables static, since there are function calls to get their status
* Fixed up documentation
2019-06-04 18:02:39 +09:00
Drashna Jaelre
524e2b9487 Fix up scripts for ZSA repo 2019-06-04 17:59:59 +09:00
zvecr
3a96a585e1 Initial attempt to fix docker creating files as root 2019-06-04 17:59:59 +09:00
zvecr
6005f6b6bb Use qmk docker image for travis CI builds 2019-06-04 17:59:59 +09:00
Drashna Jaelre
12e79b6972 Fixing matrix_scan so it properly returns changed status on Ergodox E 2019-06-04 17:59:33 +09:00
Drashna Jaelre
a9f88d121e Add belgian layout for sendstring (#6008) (#64)
* belgian layout had no sendstring definition

* backtick was not defined for belgian sendstring

* slash definition was wrong for belgian sendstring

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* use BE_ keys whenever we can

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* ^ can be sent as a normal key (not a dead key) with altgr+para
2019-06-04 17:58:58 +09:00
Drashna Jaelre
a92ab87f98 Fixing matrix_scan so it properly returns changed status (#63) 2019-06-04 17:57:15 +09:00
Drashna Jaelre
bb71ba4b00 Fix TO() and DF() calling layer_state_set_[kb,user] twice (#6003) (#62) 2019-06-04 09:47:59 +08:00
Drashna Jaelre
4cb92b05ed Fix up Debouncing in AVR Templates (#5964) (#59) 2019-06-04 09:37:16 +08:00
chax
f3c7a253ca Add Solus support to linux_install.sh script
Add Solus support to linux_install.sh script

added update-repo command before install command
2019-06-04 09:34:43 +08:00
Florian Didron
877b962dcc Merge pull request #61 from zsa/a5_luis_rocks
A5 luis rocks
2019-05-28 19:40:25 +09:00
Florian Didron
4b6c1b8c2c And fix the A5 Play note too ! 2019-05-28 19:35:51 +09:00
Florian Didron
f76e726edd Fix A5 after songs 2019-05-28 18:29:13 +09:00
Florian Didron
4bc1ac65ca Merge branch 'master' into a5_luis_rocks 2019-05-28 17:33:46 +09:00
Florian Didron
96147e03e8 Fixes the A5 HIGH consistently with weird noise output 2019-05-28 17:29:01 +09:00
Florian Didron
9e86204fd4 Merge pull request #60 from zsa/f/startup_song_timing
Fix startup song timing
2019-05-27 16:50:39 +09:00
Florian Didron
548848645a Fix startup song timing 2019-05-27 16:39:59 +09:00
Florian Didron
655a4e7cec Merge pull request #57 from zsa/audio_click_delay
Adds a configurable initial delay to the audio clicky feature (#4286)
2019-05-20 15:56:47 +09:00
Florian Didron
5b346419c7 Merge branch 'master' into audio_click_delay 2019-05-20 15:56:09 +09:00
Florian Didron
0315ef645b Merge pull request #55 from zsa/fix/caps_lock_tap_hold_functions
Make delay for Capslock in Hold-Tap functions configurable  (#5497)
2019-05-20 15:55:10 +09:00
Florian Didron
680c966e8e Merge branch 'master' into fix/caps_lock_tap_hold_functions 2019-05-20 15:54:53 +09:00
Florian Didron
20218bebf5 Merge pull request #53 from zsa/driver/3733_enhancement
ISSI 3733 Driver Enhancement
2019-05-20 15:54:11 +09:00
Florian Didron
85291ed7a3 Merge pull request #50 from zsa/fix/split_common_i2c_backlight
Fix issue with Split Common backlight disabling
2019-05-20 15:53:21 +09:00
Florian Didron
b58ea9ad0f Merge branch 'master' into fix/split_common_i2c_backlight 2019-05-20 15:53:11 +09:00
Florian Didron
09e6b94927 Merge pull request #48 from zsa/add_python
Make python a required build dependency (#5784)
2019-05-20 15:49:50 +09:00
Florian Didron
75eb509452 Merge branch 'master' into add_python 2019-05-20 15:49:33 +09:00
Florian Didron
0cce8cbab0 Merge pull request #47 from zsa/fix/mouse_keys
Re-fix Mousekey Movements (#5740)
2019-05-20 15:48:54 +09:00
Florian Didron
3ed039ed76 Merge branch 'master' into fix/mouse_keys 2019-05-20 15:48:36 +09:00
Florian Didron
24d05fee49 Merge pull request #46 from zsa/fix/oled_driver_for_splits
Fix issuse with OLED Driver and Split Keyboard code
2019-05-20 15:47:50 +09:00
Florian Didron
a90a78c265 Merge branch 'master' into fix/oled_driver_for_splits 2019-05-20 15:47:42 +09:00
Florian Didron
3662999df2 Merge pull request #54 from zsa/rgb_light_effect_range
RGBLight Set Range
2019-05-20 15:27:50 +09:00
Florian Didron
5cb5e04f13 Merge pull request #32 from zsa/per_key_matrix_effects_part_1
Update to RGB Matrix LED structure
2019-05-20 09:44:07 +09:00
Ryan Caltabiano
0554bced7c Reduce rgb matrix firmware size 2019-05-19 16:02:42 -07:00
Ryan Caltabiano
18e15a7077 Added custom center point to rgb matrix 2019-05-19 16:02:38 -07:00
XScorpion2
2e08096ba6 Spirals, Pinwheels, and Documentation....Oh My! RGB Matrix Effects (#5877)
* Spirals, Pinwheels, and Documentation....Oh My!

* Spiral effect band thickness adjustments

* Fixing animation spin directions
2019-05-19 16:02:26 -07:00
XScorpion2
5b69491bac Fixing hsv_to_rgb where s = 0 and v < 255 (#5915)
* Fixing hsv to rgb where s is 0 and v is < 255

* Update color.c
2019-05-19 16:02:17 -07:00
XScorpion2
05e01eb565 Single Color Band scrolling left to right effects (#5867) 2019-05-19 16:02:13 -07:00
Josh
fd7caea42e Adds a configurable initial delay to the audio clicky feature (#4286)
* Adding an AUDIO_CLICKY_DELAY_DURATION configurable value to the AUDIO_CLICKY feature.

* Tweaking my community keymap to work better with my rev 4 planck.
2019-05-17 15:56:49 -07:00
Drashna Jaelre
1e51f568dd Make delay for Capslock in Hold-Tap functions configurable (#5497)
* Increase delay for Hold-Tap register for CAPSLOCK

Because it seems that the 80ms delay wasn't too much

* Screw it, make the caps delay a define and make it configurable
2019-05-17 12:18:33 -07:00
yiancar
1724b515b5 NK65 Addition (#5865)
* Nk65 initial commit

* Minor fix for compatibility

* Make everything pretty

* Update keyboards/nk65/config.h

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/nk65/readme.md

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>

* Chmod Dummy

* Update getting_started_introduction.md

* Revert "Update getting_started_introduction.md"

This reverts commit daf446acf7ae4ae00488b389ce04f2cfca708d44.
2019-05-16 09:18:26 -07:00
Takeshi ISHII
cf1b36bf83 Add effect range to rgblight.c (#5856)
* add rgblight_set_effect_range()

* implement effect range

* Arrange the order of function list in rgblight.h .

* update docs/feature_rgblight.md

* fix RGBLIGHT_RAINBOW_SWIRL_RANGE default value

* add example code about Utility Functions

* add example code about direct operation functions

* When RGBLIGHT_SPLIT is defined, the following function has no meaning and is invalidated.

 * rgblight_setrgb_master(r, g, b)
 * rgblight_setrgb_slave(r, g, b)
 * rgblight_sethsv_master(h, s, v)
 * rgblight_sethsv_slave(h, s, v)

* add temporary test code for rgblight_set_effect_range

* fix rgblight_effect_knight() bug

* Test End. Revert "add temporary test code for rgblight_set_effect_range"

This reverts commit 5680cddd012d68b2db75a532862a7fef250f8973.
2019-05-16 09:16:13 -07:00
Erez Zukerman
689303e49f Merge pull request #52 from zsa/f/default-debounce
Restores Ergodox default Debounce value
2019-05-16 11:26:59 -04:00
Florian Didron
37d0686bd0 Restores Ergodox default Debounce value 2019-05-17 00:20:21 +09:00
Florian Didron
8ca41899d2 Merge pull request #49 from zsa/fix/planck_ez_a5_high
make a5 high when not in use
2019-05-15 09:51:01 +09:00
XScorpion2
95e4c8a461 Fix for Solid Reactive mode bug (#5846)
derp, forgot to remove the pragma once
2019-05-11 12:35:12 -07:00
Drashna Jaelre
c4f2f95db8 Enable additional animation modes for the Glow keyboards 2019-05-10 23:06:45 -07:00
XScorpion2
a8ed2608b5 RGB Matrix Effects: Cycle Out to In & Cycle Out to In Dual (#5812) 2019-05-10 23:02:43 -07:00
XScorpion2
665e719e31 Cleanup/rgb matrix (#5811)
* clean up rgb matrix extern usage

Moved rgb matrix boiler plate into macros

Rebased onto typing heatmap pr

* Fixing the reversed frame buffer access in digital rain

* Fixing digital rain & typing heatmap if keyreactive effects are not enabled

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* Adding parenthesizes to DRIVER_LED_TOTAL where necessary

* Updated docs

* added notes about parentheses
2019-05-10 23:02:43 -07:00
Rainer Clasen
5d9a4c4414 [Split] fix split_common i2c backlight disabling (#3886)
slave backlight was always on - as get_backlight_level() doesn't
indicate if the backlight is enabled or not.

also updated the corosponding code for serial transport to stop peeking
directly at 'internal' backlight_config structure.
2019-05-10 18:36:35 -07:00
XScorpion2
b4dab5b09b RGB Matrix Typing Heatmap (#5786)
* RGB Matrix Typing Heatmap Effect

* Fixing file name and effect init
2019-05-07 21:49:07 -07:00
XScorpion2
4d57a049b5 rgb_led struct conversion (aka: Per led (key) type rgb matrix effects - part 2) (#5783)
* Initial conversion of the rgb_led struct

* Converting last keyboard & updating effects to take advantage of the new structure

* New struct should not be const

* Updated docs

* Changing define ___ for no led to NO_LED

* Missed converting some keymap usages of the old struct layout
2019-05-07 21:48:47 -07:00
XScorpion2
6364fe4efb Updated rgb_led struct field modifier to flags (#5619)
Updated effects to test led flags
Updated massdrop to use new flags field for led toggle
2019-05-07 21:45:35 -07:00
Jack Humbert
51cc6f398d make a5 high when not in use 2019-05-07 09:48:43 -07:00
skullydazed
9ab77d760c Make python a required build dependency (#5784)
* Make python a required build dependency

* Add missing color

* fixup sabayon linux per @BlitzKraft
2019-05-06 23:43:56 -07:00
Drashna Jaelre
be58a68473 Re-fix Mousekey Movements (#5740)
* Re-fix Mousekey Movements

After the new movement model was instroduced, it broke diagonal momement, again.  Reapplying fix from #3147 to both old and new acceleration method.

* Make diagonal mouse report checks more readable

Co-Authored-By: drashna <drashna@live.com>
2019-05-06 23:35:36 -07:00
XScorpion2
4b5a0375d4 Fix issuse with OLED Driver and Split Keyboard code 2019-05-06 23:27:30 -07:00
Florian Didron
ff3e430970 Merge pull request #45 from zsa/feature/unicode_map_improvements
New keycode macro (XP) for shifted character pairs using UNICODEMAP +…
2019-05-06 10:35:55 +09:00
Florian Didron
270ab0d3fb Merge branch 'master' into feature/unicode_map_improvements 2019-05-06 10:35:24 +09:00
Florian Didron
43aae47b38 Merge pull request #44 from zsa/enable_lto_option
Add option to enable LTO easily  (#5674)
2019-05-06 10:32:42 +09:00
Florian Didron
c7d9b48cc9 Merge branch 'master' into enable_lto_option 2019-05-06 10:32:32 +09:00
Florian Didron
3c5dd583e1 Merge pull request #43 from zsa/fix/space_cadet
Space Cadet: Reducing unnecessary reported keypresses (#5781)
2019-05-06 10:29:48 +09:00
Florian Didron
3504bf30e1 Merge pull request #42 from zsa/feature/add_dfu_util_signature
Add DFU Suffix for ARM boards (#5763)
2019-05-06 10:04:59 +09:00
Florian Didron
7a136f7440 Merge pull request #41 from zsa/fix/lib_src_insert_point
Fix LIB_SRC insert position (#5731)
2019-05-06 10:03:10 +09:00
Florian Didron
8e9ac7d142 Merge pull request #40 from zsa/feature/rgblight_static_breathing_table
Use a fixed table if breathing center is not defined for RGB Light
2019-05-06 10:01:42 +09:00
Florian Didron
46ea7dfd51 Merge pull request #39 from zsa/fix/hue_to_rgb_tuning
Adjusted the linear led table and hsv_to_rgb to better handle 255 hue
2019-05-06 09:58:00 +09:00
Florian Didron
1f3fd52b6d Merge pull request #38 from zsa/fix/rgb_matrix_simple_reaction_tracking
Simple fix for selecting which tracked key press to work off of for s…
2019-05-06 09:57:16 +09:00
Florian Didron
e622e6d1bb Merge pull request #37 from zsa/feature/rgb_matrix_led_lookup
Implement kb function for rgb matrix to led lookup
2019-05-06 09:54:03 +09:00
Florian Didron
2a70dc8eea Merge pull request #36 from zsa/fix/ws2812_matrix_refs
Fixing incorrect usage of RGBLED_NUM in ws2812 driver when used with RGB Matrix (#5744)
2019-05-06 09:53:18 +09:00
Florian Didron
feb7c58f30 Merge pull request #35 from zsa/fix/rgblight_hue_range
Realign RGB Light HUE range
2019-05-06 09:52:39 +09:00
Konstantin Đorđević
4f2efc06ce New keycode macro (XP) for shifted character pairs using UNICODEMAP + bug fixes and improvements (#4803)
* Expose unicode_saved_mods

* Add UNICODEMAP shift pair functionality and XS keycode

* Add XS to keycode reference documentation

* Pick pair index based on both Shift and Caps Lock state

* Add XS to Unicode feature docs

* Clean up process_unicode* headers

* Extract unicode_map index calculation into function

* Pick pair index as XOR rather than OR of Shift and Caps states

* unicode_input_start() has to be called before the unicode_map index is calculated

* Replace unicodemap_input_error() with more generic unicode_input_cancel()

* Replace register+tap+unregister with tap_code16(LCTL(LSFT(KC_U)))

* UNICODE_OSX_KEY → UNICODE_KEY_OSX, UNICODE_WINC_KEY → UNICODE_KEY_WINC

* Make keycode range checks more robust

* Fix keycode range checks for different input modes

* Add UNICODE_KEY_LNX, update docs

* QK_UNICODEMAP_SHIFT → QK_UNICODEMAP_PAIR

* XS → XP, update docs

* Tweak Unicode docs

* Use recently added MOD_MASK_SHIFT and IS_HOST_LED_ON helpers

* Update Unicode table in docs/keycodes.md

* Update Unicode docs per review comments

* Replace references to Mac OS X with macOS in Unicode docs

* As of v0.9.0, WinCompose supports all possible code points

* Expand descriptions in XP docs

* Update keycode table and cycling docs

* Further expand cycling docs
2019-05-05 17:42:18 -07:00
Drashna Jaelre
8903b7913a Add option to enable LTO easily (#5674)
* Add option to enable LTO easily and disable features that cause compiling errors with LTO

* Add documentation about LTO option

* Add to show_options
2019-05-05 17:31:48 -07:00
XScorpion2
25aa7bcbdb Space Cadet: Reducing unnecessary reported keypresses (#5781)
* Reducing unnecessary reported keypresses and minor docs / variable name changes

* Apply suggestions from code review

Co-Authored-By: XScorpion2 <rcalt2vt@gmail.com>
2019-05-05 16:40:51 -07:00
Takeshi ISHII
19c6b7fe10 Fix LIB_SRC insert position (#5731)
The insertion point for `$(patsubst %.c,%.clib,$(LIB_SRC))` must be after all normal `SRC += ..` . I modified it to be so.

Because LIB_SRC and SRC are assumed to be used in pairs. Similarly, QUANTUM_LIB_SRC and QUANTUM_SRC are assumed to be used in pairs.
2019-05-03 08:38:46 -07:00
Drashna Jaelre
caef39bf2a Add DFU Suffix for ARM boards (#5763)
* Add DFU Suffix for ARM boards

* Blindly flash DFU SUFFIX ARGS for now

* Fix commented out check

* Fix DFU Suffix Argument check

Thank you jack!

* Update Travis CI Scripts to include dfu-util

So we can get dfu-suffix as well

* Manually add dfu-suffix package

* Use external repo for newer version of dfu-util

One that includes dfu-suffix

* Update .travis.yml

* Silence unnecessary output from dfu-suffix
2019-05-03 08:36:43 -07:00
Takeshi ISHII
4550e29f95 If RGBLIGHT_EFFECT_BREATHE_CENTER is undefined, use fixed breathe table instead of exp() and sin() (#5484)
* If RGBLIGHT_EFFECT_BREATHE_CENTER is undefined, use fixed breathe table instead of exp() and sin()

* Change rgblight breathing table size to be easily selectable.

add RGBLIGHT_BREATHE_TABLE_SIZE macro for customize breathing effect.
2019-05-02 09:12:28 -07:00
XScorpion2
22426a4b4a Adjusted the linear led table and hsv_to_rgb to better handle 255 hue (#5739)
* Adjusted the linear led table and hsv_to_rgb to better handle 255 hue

* small math adjustments to better handle specific uint8_t rounding and overflows
2019-05-01 19:08:52 -07:00
XScorpion2
2351739cd9 Simple fix for selecting which tracked key press to work off of for simple reactive effects (#5745) 2019-05-01 13:27:44 -07:00
XScorpion2
882b8df7af Implement kb function for rgb matrix to led lookup (#5738) 2019-05-01 08:57:17 -07:00
XScorpion2
fd776b06b3 Fixing incorrect usage of RGBLED_NUM in ws2812 driver when used with RGB Matrix (#5744) 2019-05-01 08:52:54 -07:00
XScorpion2
8a9e766bdc rgblight 255 hue (#5547) 2019-05-01 08:47:37 -07:00
Florian Didron
59d28fe288 Merge pull request #34 from zsa/fix/mouse_movement
Re-fix Mousekey Movements
2019-04-30 15:42:23 +09:00
Florian Didron
fd06a342ee Merge pull request #33 from zsa/feature/per_level_matrix_effects
RGB Matrix: Custom effects on a kb/user level
2019-04-30 15:42:06 +09:00
Drashna Jaelre
c382378a35 Re-fix Mousekey Movements 2019-04-29 23:15:08 -07:00
Florian Didron
882651dc06 Merge pull request #31 from zsa/fix/lib8tion_functions
Fix/lib8tion functions
2019-04-30 15:14:37 +09:00
Florian Didron
c3d6f89274 Merge pull request #30 from zsa/feature/space_cadet
Simple extended space cadet (#5277)
2019-04-30 15:12:53 +09:00
Florian Didron
f6743b86a9 Merge pull request #29 from zsa/fix/planck_ez_leds
[Keyboard] Fix red an green leds location (qmk#5698)
2019-04-30 15:11:58 +09:00
Florian Didron
edf5c533d6 Merge pull request #28 from zsa/fix/wake_on_chibos
Fix wakeup function on ChibiOS
2019-04-30 15:11:26 +09:00
Daniel Prilik
b6648f46a8 RGB Matrix: Custom effects on a kb/user level (#5338)
* Revamped custom effects approach

See docs for example usage

* push-up RGB Matrix default mode

Override default effect using RGB_MATRIX_STARTUP_MODE.
Useful on boards without EEPROM support
(*cough* Massdrop ALT/CTRL *cough*)

* update docs
2019-04-29 22:32:18 -07:00
XScorpion2
51b568a197 Removed forced in lining for lib8tion functions (#5670) 2019-04-29 22:24:52 -07:00
Alec Geatches
396c6adaa8 Change lib8tion library to be usable in user keymaps (#5598)
* Move lib8tion header-defined constant into implementation file, add to build

* Move b_m16_interleave initializtion to lib8tion.c, change build to include lib8tion.c in QUANTUM_LIB_SRC

* Remove left-over whitespace

* Move lib8tion include by RGB_MATRIX_ENABLE code in makefile

* Revert build changes and change lib8tion b_m16_interleave constant to static
2019-04-29 22:24:51 -07:00
XScorpion2
38c65e4928 Simple extended space cadet (#5277)
* Simplifying and Extending Space Cadet to work on Ctrl and Alt keys

* PR Review feedback

* Reverting back to keycodes
2019-04-29 22:11:57 -07:00
Florian Didron
9e8cd4f5ea [Keyboard] Fix red an green leds location (#5698) 2019-04-28 02:11:06 -07:00
Florian Didron
c941ef0f09 Merge pull request #27 from zsa/src_fix
Src fix
2019-04-26 11:16:03 +09:00
Florian Didron
eedffbdfc4 Merge branch 'master' into src_fix 2019-04-26 11:15:53 +09:00
Florian Didron
1a3d6cd98f Merge pull request #26 from zsa/rgb_updates
RGB Light Updates
2019-04-26 11:13:40 +09:00
Drashna Jaelre
cc1e4cde13 Fix wakeup function on ChibiOS
Somebody was a very, very bad boy, and did a poor job of copy-pasting
2019-04-25 18:59:31 -07:00
Drashna Jaelre
98a35272cf Add changelog 2019-04-24 15:25:43 -07:00
Takeshi ISHII
d663b42978 fix LIB_SRC and QUANTUM_LIB_SRC for ARM (#5623)
* fix LIB_SRC and QUANTUM_LIB_SRC for ARM(chibios)

* remove ARFLAGS

* tmk_core/arm_atsam.mk:AR: remove 'rcs'
2019-04-24 15:20:32 -07:00
Drashna Jaelre
ebca01b46b Add changelog 2019-04-24 15:18:44 -07:00
Rockman18
d1d0211bf1 [FIX] Misspelled RGB_YELLOW (#5692) 2019-04-24 15:17:55 -07:00
Erovia
190bc5bada Define RGB colors (#5300)
* Define RGB colors
Define RGB colors and pass them to the rgblight functions, instead of
defining multiple macros.
2019-04-24 15:17:21 -07:00
mtei
5a7085b642 add RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; to rgblight_update_dword() 2019-04-24 15:15:29 -07:00
mtei
2e76759f76 add RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; to eeconfig_update_rgblight_default() 2019-04-24 15:15:21 -07:00
Florian Didron
b71e3e80c6 Merge pull request #25 from zsa/fix/travis_check
Improve Travis CI Script
2019-04-24 09:19:42 +09:00
Drashna Jaelre
8eb37fa4f3 Add proper keymaps for glow and reactive glow 2019-04-23 08:34:37 -07:00
Drashna Jaelre
57bfdd8b50 Remove additional unneeded Planck files 2019-04-23 08:23:32 -07:00
Drashna Jaelre
1267504957 Compile all keymaps
Specifically, we want to make sure that the Ergodox EZ Glow keymap is compiled here
2019-04-23 08:22:32 -07:00
Florian Didron
9f37354851 Merge pull request #24 from zsa/fix/rgb_matrix_init
Fix RGB Matrix EEPROM initialization
2019-04-23 11:08:31 +09:00
Florian Didron
bd66bf5f8f Merge branch 'master' into fix/rgb_matrix_init 2019-04-23 11:08:16 +09:00
Florian Didron
f93b7b53b7 Merge pull request #23 from zsa/fix/avr_gcc_compiler
Fix AVR GCC 8.x compiler error
2019-04-23 11:06:56 +09:00
Florian Didron
2d95c30c28 Merge branch 'master' into fix/avr_gcc_compiler 2019-04-23 11:06:48 +09:00
Florian Didron
7ca465911d Merge pull request #22 from zsa/mouse_keys
Improvements to Mousekey's Constant speed mode
2019-04-23 08:46:25 +09:00
Florian Didron
d22fda3ca4 Merge branch 'master' into mouse_keys 2019-04-23 08:46:07 +09:00
Florian Didron
ff2838d2dd Merge pull request #21 from zsa/feature/more_reactive_modes
Adds three addition RGB Matrix Reactive modes
2019-04-23 08:45:08 +09:00
Florian Didron
86f437c81f Merge branch 'master' into feature/more_reactive_modes 2019-04-23 08:44:46 +09:00
Florian Didron
95462d0d65 Merge pull request #20 from zsa/feature/oled_driver
Adds support for OLED Driver
2019-04-23 08:44:02 +09:00
Florian Didron
c3a160bf72 Merge branch 'master' into feature/oled_driver 2019-04-23 08:43:47 +09:00
Florian Didron
70945f1146 Merge pull request #19 from zsa/feature/split_rgb
Adds the Split RGBLight support
2019-04-23 08:42:36 +09:00
Drashna Jaelre
9470a4b17d Add changelog 2019-04-22 10:16:43 -07:00
Drashna Jaelre
3dbbb83d59 Init RGB Matrix EEPROM
I'm not sure how to check if it's the same as RGBLIGHT's EEPROM, but if you don't init it, it **will not** work properly until it is initialized.
2019-04-22 10:16:09 -07:00
Drashna Jaelre
e0fe8edb2d Add changelog 2019-04-22 10:14:50 -07:00
Danny Nguyen
25c88b2bb4 Make sure NOBITS is set on reset_key
Patch from https://github.com/qmk/qmk_firmware/issues/3657#issuecomment-415147411

Long story short, in avr-gcc pre-8.2, reset_key was assigned to a memory area that was in a normal range, but when 8.2 came out, that memory got moved to an out of range area, causing errors like 0x800293 out of range. Apparently, this was fixed up in avr-gcc, but we haven't seen a release with the fix yet (we expected it in 8.3, but that didn't happen for some reason).

What this commit does is move the reset_key back to the original memory location it was in before.
2019-04-22 10:14:29 -07:00
Drashna Jaelre
9f180afb25 Add changelog 2019-04-22 10:12:18 -07:00
Markus Weimar
3fe282f1c1 Improve mouse keys docs and constant speed mode 2019-04-22 10:11:20 -07:00
Drashna Jaelre
5959e23fd0 Add changelog 2019-04-22 10:02:46 -07:00
M-AS
6cb88628e9 RGB Matrix Animations: Three/six new reactive effects (wide, cross, nexus) (#5602)
* added 3 new RGB_Matrix effects

* made cross effect behavior smoother

* removed dead code

* added effect descriptions
2019-04-22 10:00:54 -07:00
Drashna Jaelre
28cbf7c352 Add changelog 2019-04-22 09:58:01 -07:00
Ryan Caltabiano
95f8ac3424 OLED Driver Feature 2019-04-22 09:55:39 -07:00
Drashna Jaelre
4bbdd77e83 Add Changelog 2019-04-22 09:49:38 -07:00
Takeshi ISHII
cedda573be Change split_common to use RGBLIGHT_SPLIT (#5509)
* add I2C_slave_buffer_t to quantum/split_common/transport.c

Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results.

* add temporary pdhelix(Patched Helix) code

* temporary cherry-pick from #5020

add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h

* add post_config.h support to build_keyboard.mk

* add quantum/rgblight_post_config.h, quantum/split_common/post_config.h

Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk.

quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined.

quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C.

* Change split_common's transport.c I2C to use the synchronization feature of rgblight.c

* Change split_common's transport.c serial to use the synchronization feature of rgblight.c

* test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix

* Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix"

This reverts commit 80118a6bbd3d9fc4c7797fef0c34bc67aa73aa98.

[x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3)
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default

[x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default

[x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default

* Test End, Revert "temporary cherry-pick from #5020"

This reverts commit d35069f68bda0c50370442a5c7aae60c2f4ce5c0.

* Test End, Revert "add temporary pdhelix(Patched Helix) code"

This reverts commit aebddfc1a879796afae297ef0723a4fe73af3660.

* temporarily cherry-pick from #5020 to see if it passes the travis-ci test.

add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h

* Passed the travis-ci test. Revert "temporarily cherry-pick from #5020 to see if it passes the travis-ci test."

This reverts commit 647c0a9755eb6a05f76d09b2d59bce67b85a841f.

* update docs/config_options.md

* update split_common/transport.c, improves maintainability of serial transaction IDs.

No change in build result.

* temporary cherry-pick from #5020

* fix build fail keebio/iris/rev3:default

* fix build fail lets_split_eh/eh:default

* Revert "temporary cherry-pick from #5020"

This reverts commit be48ca1b4515366a097af8dd1cd7b28b7ee09947.

* temporary cherry-pick from #5020 (0.6.336)

* Revert "temporary cherry-pick from #5020 (0.6.336)"

This reverts commit 978d26a8b3cf0acc485838a7d76d6128b77c630c.

* temporary cherry-pick from #5020 (0.6.336)
2019-04-22 09:48:10 -07:00
Takeshi ISHII
f661d86d97 Add function to support split-keyboard in rgblight.[ch]. (#5020)
* add temporary file that is rgblight.c call graph

* add rgblight_update_hook()

* update rgblight-call-graph.dot (temporary file)

* add more hook point

* add TODO comment

* temporary Revert "add TODO comment"

This reverts commit df6165aac9b3a31d1d3e31ce52aadc134b84eac2.

* temporary Revert "add more hook point"

This reverts commit 64592b06f3bcdaac47c59f922018a273bef76776.

* temporary Revert "add rgblight_update_hook()"

This reverts commit 432b74c912ed4333e6633e20a1bcda10c6a10eaf.

* add rgblight_update_hook()

* add more hook point

* add TODO comment

* implement rgblight_update_hook()

* remove rgblight_update_hook(), add RGBLIGHT_SPLIT_SET_CHANGE_XXXX

rgblight_update_hook() is too large.
change to simple flag setting.

* shrink rgblight_config_t

* implement rgblight_update_sync()

Note: The animation synchronization process has not been implemented yet.

* update quantum/rgblight-call-graph.dot (temporary file)

* rmove quantum/rgblight-call-graph.dot (temporary file)

* update rgblight.c

* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .

* fix build break rgblight_update_sync() when all animation off

* fix quantum/rgblight.c:rgblight_disable_XX() add RGBLIGHT_SPLIT_SET_CHANGE_MODE

* quantum/rgblight.c change code order: move rgblight_update_sync()

* add mode_base_table[] to quantum/rgblight.c

* quantum/rgblight.c use mode_base_table[] and rgblight_status.base_mode

* quantum/rgblkght.c animation timer integration

* quantum/rgblkght.c add animation sync for split keyboard

* fix mode_base_table[] and snake effect

* fix build break keyboards/mxss.

keyboards/mxss's local rgblight.c need old version rgblight.h

* rgblight.c: fix animation sync

* quantum/rgblight.c: fix snake effect sync

* quantum/rgblight.c: animation sync interverl 30 sec

* quantum/rgblight.c: fix rgblight_effect_rainbow_swirl() and rgblight_effect_knight()

* quantum/rgblight.c: add macro RGBLIGHT_SPLIT_ANIMATION

* cherry-pick from 'rgblight_modes.h sample implementation'

* fix RGBLIGHT_SPLIT_ANIMATION check position

* Update temporary code in Helix keyboard 'five_rows' keymap to test rgblight.c

* Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled.

* Changed to rgblight_sethsv_eeprom_helper() for easier reading.

* add fail-safe code to quantum/rgblight.c:rgblight_task(),rgblight_timer_enable()

* remove temporary code in Helix keyboard 'five_rows' keymap

* quantum/rgblight.c: add split-keyboard master side sync functions

add functions:
  uint8_t rgblight_get_change_flags(void);
  void rgblight_clear_change_flags(void);
  void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo);

change function:
  void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom);

* Change rgblight_update_sync() to use write_to_eeprom.

* remove TODO comment from quantum/rgblight.h

* Revert "fix build break keyboards/mxss."

This reverts commit 90b9a1aa7d8af226751500e49e3ea0214cc4e024.
(Separated this change into the newly opened PR #5461.)

* Revert "Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled."

This reverts commit b61004e63e82cf5334cee4def4ba10cffa88885f.

* update quantum/rgblight.c: Code size reduction when not using RGBLIGHT_SPLIT.

* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .

* add temporary pdhelix(Patched Helix) code

* Add temporary code to split_common/transport.c to test rgblight.c.

* Finish testing rgblight.c with helix keyboard.

Revert "Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c ."

This reverts commit 0bf81a4723a977adc0cb09b4272ee5c9b4f2bbbb.

* Finish testing rgblight.c with quantum/split_common code.

Revert "Add temporary code to split_common/transport.c to test rgblight.c."

This reverts commit 71db3e24eef40d4c455fb9fd1664e4487c9d927a.

* remove temporary pdhelix(Patched Helix) code

This reverts commit 5287e51a394741bcb6028c7cfc0dd0c984645f76.

* Added description of RGBLIGHT_SPLIT macro to docs/feature_rgblight.md.

* add RGBLIGHT_SPLIT_SET_CHANGE_HSVS to rgblight_init()

* Changed to restart animation only when changing mode.

When changing hue, sat and val, the animation is not restarted and continues.
2019-04-22 09:47:36 -07:00
Florian Didron
0a04a0e419 Merge pull request #18 from ErgoDox-EZ/fix/rgb_matrix_toggle
Only increment Enable status for RGB Matrix if it supports it
2019-04-21 06:28:25 +09:00
Drashna Jaelre
0886c7ce57 Update rgb_matrix.c 2019-04-20 09:28:44 -07:00
Drashna Jaelre
60204faed0 Only increment Enable status for RGB Matrix if it supports it 2019-04-20 09:20:26 -07:00
Florian Didron
0612c9968b Merge pull request #17 from ErgoDox-EZ/fix/eager_pr_bug
Fix the Eager Per Row debouncing bug
2019-04-19 08:16:24 +09:00
Florian Didron
c8cbf4733a Merge branch 'master' into fix/eager_pr_bug 2019-04-19 08:03:50 +09:00
Florian Didron
021df9d028 Merge pull request #16 from ErgoDox-EZ/f/change-ergodox-debounce
Change ErgodoxEZ default debounce
2019-04-19 08:03:07 +09:00
Drashna Jaelre
9c17531c19 Add changelog for eager PR fix 2019-04-18 15:48:58 -07:00
Alex Ong
bcb37d5f57 [core] Fix for eager_pr #5643
Added extra transfer_matrix_values() call whenever counters don't need updating
2019-04-18 15:48:00 -07:00
Florian Didron
69ab70c97c Merge branch 'master' into f/change-ergodox-debounce 2019-04-18 11:09:57 +09:00
Florian Didron
f5e47ed1e5 Merge pull request #15 from ErgoDox-EZ/fix/changelog-formatting
Fixes the changelog formatting.
2019-04-18 11:09:20 +09:00
Florian Didron
52044905a4 Update changelog.md 2019-04-18 11:08:57 +09:00
Florian Didron
c752284c7c Set default debounce to 5 2019-04-18 11:03:58 +09:00
Florian Didron
ad02b62dd2 Fixes the changelog formatting. 2019-04-18 10:21:16 +09:00
Florian Didron
25a9a2f91c Merge pull request #14 from ErgoDox-EZ/remove_music
Remove all potentially copyrighted sounds from the repo
2019-04-18 10:05:13 +09:00
Florian Didron
b51f1e0971 Merge pull request #13 from ErgoDox-EZ/feature/ws2812_matrix
Features/ws2812 matrix driver (#5418)
2019-04-18 10:04:32 +09:00
Florian Didron
51a682bb9c Merge branch 'master' into feature/ws2812_matrix 2019-04-18 10:03:45 +09:00
Florian Didron
09d1ff9a32 Merge pull request #12 from ErgoDox-EZ/fix/configurator_change
Fix Ergodox EZ keyboard dimensions in info.json
2019-04-18 09:59:52 +09:00
Florian Didron
5f65ba63e7 Merge branch 'master' into fix/configurator_change 2019-04-18 09:59:43 +09:00
Florian Didron
362eaec0a3 Merge pull request #11 from ErgoDox-EZ/fix/combo_logic
Fixes logic for Combo Feature
2019-04-18 09:58:13 +09:00
Florian Didron
12c0611189 Merge branch 'master' into fix/combo_logic 2019-04-18 09:57:19 +09:00
Florian Didron
54a7f66aee Merge pull request #10 from ErgoDox-EZ/fix/eager_debouncing
Eager pk/pr optimization
2019-04-18 09:46:44 +09:00
Drashna Jaelre
eed7c15c2f Remove any potentially copyrighted soungs/sounds from the repo 2019-04-17 13:36:14 -07:00
Drashna Jaelre
7b3545c3d8 Update changelog.md 2019-04-16 18:21:13 -07:00
Alex Ong
4c2444a4e2 Eager pk/pr optimization (#5621)
* Optimizations to eager_pk

* eager_pr also uses changed boolean now.
2019-04-16 18:19:25 -07:00
Drashna Jaelre
a5ded39656 Update changelog.md 2019-04-16 18:18:57 -07:00
Drashna Jaelre
e26b21baf4 Update changelog.md 2019-04-16 18:18:15 -07:00
Drashna Jaelre
7f3d1b627c Update changelog.md 2019-04-16 18:16:26 -07:00
XScorpion2
e3fce19c55 Features/ws2812 matrix driver (#5418)
* WS2812 driver implementation for RGB Matrix

* Added driver configuration docs
2019-04-16 18:11:33 -07:00
noroadsleft
417d80d421 Fix Ergodox EZ keyboard dimensions in info.json 2019-04-16 18:05:44 -07:00
Bob
637c276070 fix combo enabling logic (#5610) 2019-04-16 18:04:58 -07:00
Florian Didron
590a07bf94 Merge pull request #9 from ErgoDox-EZ/simplify_travis
Streamline Travis CI scripting
2019-04-16 18:58:54 +09:00
Florian Didron
743fda2658 Merge pull request #8 from ErgoDox-EZ/readme_update
Readme Update
2019-04-16 18:56:34 +09:00
Florian Didron
7b19fcc9e9 Merge pull request #7 from ErgoDox-EZ/alt_gr_send_string
Alt gr send string
2019-04-16 18:52:44 +09:00
Florian Didron
72537dd8e9 Merge branch 'master' into alt_gr_send_string 2019-04-16 18:45:44 +09:00
Florian Didron
7a5cbcac9f Merge pull request #5 from ErgoDox-EZ/ble_naming
Remove keyboard description from Adafruit BLE device name
2019-04-16 18:42:16 +09:00
Florian Didron
bb91bc4309 Merge pull request #4 from ErgoDox-EZ/updates_zsa
Port DIRECT_PINS from split_common/matrix.c to matrix.c (qmk#5091)
2019-04-16 18:41:12 +09:00
Erez Zukerman
1fa1feec59 Update readme.md
Co-Authored-By: drashna <drashna@live.com>
2019-04-15 17:26:03 -07:00
Erez Zukerman
8b5c5b5699 Update readme.md
Co-Authored-By: drashna <drashna@live.com>
2019-04-15 17:25:24 -07:00
Erez Zukerman
cd1a59c614 Update readme.md
Co-Authored-By: drashna <drashna@live.com>
2019-04-15 17:25:01 -07:00
Drashna Jaelre
e2f96b9d53 Streamline Travis CI scripting
We don't need anything fancy, just a few tests, and that's it. All of the QMK Firmware stuff is excessive for what we need.
2019-04-12 17:19:50 -07:00
Drashna Jaelre
33178f1261 update readme 2019-04-12 15:11:44 -07:00
Drashna Jaelre
36f667f09e Add changelog 2019-04-12 14:55:50 -07:00
Drashna Jaelre
6e57437c42 Add AltGr/RALT support to Send String qmk#4046) 2019-04-12 14:54:40 -07:00
Drashna Jaelre
317735239f Create/update changelog.md 2019-04-12 14:39:54 -07:00
fauxpark
4506931676 Remove keyboard description from Adafruit BLE device name 2019-04-12 11:00:56 -07:00
zvecr
60ffa59a77 Port DIRECT_PINS from split_common/matrix.c to matrix.c (#5091)
* Port DIRECT_PINS from split_common/matrix.c to matrix.c

* Reorder matrix.c to remove foward declaration and match split_common/matrix.c

* Refactor nano to use DIRECT_PINS

* Reorder matrix.c to remove foward declaration and match split_common/matrix.c

* Add DIRECT_PINS documentation

* Reorder matrix.c to remove foward declaration and match split_common/matrix.c - fix logic from inherited from split_common

* Add DIRECT_PINS documentation - review comments
2019-04-12 10:56:50 -07:00
Florian Didron
ea4581cef1 Merge pull request #2 from drashna/ez_update_rgb
Update Ergodox EZ Repo with RGB Overhaul (Proper)
2019-04-10 18:39:47 +02:00
Alex Ong
4a98f1e7a0 ergodox_ez: fixed bug where debounce() was called without calculating changed (#5589) 2019-04-09 09:50:10 -07:00
Jack Humbert
f2332d2bcb Adds the Planck EZ, 3737 RGB, fixes out-of-tune notes (#5532)
* RGB Matrix overhaul
Breakout of animations to separate files
Integration of optimized int based math lib
Overhaul of rgb_matrix.c and animations for performance

* Updating effect function api for future extensions

* Combined the keypresses || keyreleases define checks into a single define so I stop forgetting it where necessary

* Moving define RGB_MATRIX_KEYREACTIVE_ENABLED earlier in the include chain

* Adds the Planck EZ, 3737 RGB, fixes out-of-tune notes

* fix bug in quantum/rgb_matrix_drivers.c

Co-Authored-By: jackhumbert <jack.humb@gmail.com>

* update command setting to the correct default

* correct rgb config

* remove commented-out lines

* update docs for the 3737

* Update docs/feature_rgb_matrix.md

Co-Authored-By: jackhumbert <jack.humb@gmail.com>
2019-04-09 09:50:09 -07:00
Bob
dc9736a806 Switch process_combo to using global register and timer (#2561)
Since combos keep local state about what keys have been previously pressed, when combos are layered, multiple keypresses will register for any key with multiple combos assigned to it. In order to fix this, I switched process_combo to use a global keycode / keyrecord register and timer. When a keypress is consumed by a combo, it gets stored in the register and the timer is updated; when the next keypress takes too long or a key is pressed that isn't part of any combo, the buffer is emitted and the timer reset. This has a few side effects. For instance, I couldn't _not_ fix combo keys printing out of order while also fixing this bug, so combo keys print in order correctly when a combo fails. since combos no longer have local timers, the logic around when combos time out has changed. now that there is a single timer pressing any combo key (including one in a different combo) will reset the timer for all combos, making combo entry a little more lenient. Since combos no longer have local keycode / keyrecord state, there is an edge case where incomplete combo keys can be consumed. if you have a combo for a+s = tab and a combo for b+n = space, if you press a+b+n, only a space will be emitted. This is because when b+n completes successfully, it drops the register.
2019-04-09 09:49:50 -07:00
Wilba6582
a98777199e Added SS_TAP_CODE, SS_DOWN_CODE, SS_UP_CODE 2019-04-09 09:49:25 -07:00
Wilba6582
7661468719 Fixed tap/down/up handling in dynamic keymap macros 2019-04-09 09:49:25 -07:00
Lenbok
45207b079b Fix bugs that cause compile failures when enabling only some animations. 2019-04-09 09:49:24 -07:00
Drashna Jaelre
431766476b Custom Tapping Term per key (#5009)
* Add customizable tapping terms

* Add Documentation

* Fix function

* Fixes

* It's not a pointer

* Add debugging output

* Update documentation to be at least vaguely accurate

* Use `get_tapping_term(tapping_key.event)` instead

`e` doesn't include column and row information, properly. It registers as 255, regardless of the actual keypress.

However `tapping_key.event` actually gives the correct column and row information.  It appears be the correct structure to use. 

In fact, it looks like the issue is that `e` is actually the "TICK" structure, as defined in keyboard.h

* Use variable tapping term value rather than define

* Silly drashna - tapping_key.event, not event

* add get_event_keycode() function

* Fix typo

Co-Authored-By: drashna <drashna@live.com>

* Remove post_process_record_quantum since it's the wrong PR

* Update quantum/quantum.c

Co-Authored-By: drashna <drashna@live.com>

* Better handle ifdef statement for permissive hold

Since we can't be sure that tapping term is actually 500

* Update quantum.c comments based on feedback

* Clean up get_tapping_term function

Clean up function so that users don't need to call the event function, and instead only check the keycode

* Add ability to run functionality on and off

* Make ifdef's more compact
2019-04-09 09:49:24 -07:00
Daniel Prilik
5f8fdefe3a RGB Matrix support for Massdrop CTRL/ALT (#5328)
* port Massdrop CTRL/ALT to use RGB Matrix

Co-authored-by: Matt Schneeberger <helluvamatt@gmail.com>

* Massdrop lighting support working

This commit is to get the Massdrop lighting code working again through use of the compilation define USE_MASSDROP_CONFIGURATOR added to a keymap's rules.mk.
Added keymaps for both CTRL and ALT named default_md and mac_md. These should be used if the Massdrop style lighting is desired.

* Updating config based on testing results with patrickmt & compile errors

* Updates for PR5328

For CTRL and ALT:
Moved location of new RGB Matrix macros from config_led.h to config.h.
Added RGB_MATRIX_LED_FLUSH_LIMIT (time between flushes) to config.h for correct LED driver update timing.
Re-added missing breathing code for when Massdrop configurator mode is defined.

* remove prilik keymap form PR
2019-04-09 09:48:42 -07:00
XScorpion2
6acfceaeb4 Added encoder support to split common code (#5477)
* Added slave encoder support to split common

* Fixing handwired/xealous/rev1 compile error

* Removed unnecessary ifdef
2019-04-09 09:47:46 -07:00
Alex Ong
5747449ca5 Eager Per Row Debouncing added (added to Ergodox) (#5498)
* Implemented Eager Per Row debouncing algorithm.

Good for when fingers can only press one row at a time (e.g. when keyboard is wired so that "rows" are vertical)

* Added documentation for eager_pr

* Ported ergodox_ez to eager_pr debouncing.

* Removed check for changes in matrix_scan.

* Added further clarification in docs.

* Accidental merge with ergodox_ez

* Small cleanup in eager_pr

* Forgot to debounce_init - this would probably cause seg-faults.
2019-04-09 09:47:45 -07:00
XScorpion2
fd770232d9 RGB Matrix Overhaul (#5372)
* RGB Matrix overhaul
Breakout of animations to separate files
Integration of optimized int based math lib
Overhaul of rgb_matrix.c and animations for performance

* Updating effect function api for future extensions

* Combined the keypresses || keyreleases define checks into a single define so I stop forgetting it where necessary

* Moving define RGB_MATRIX_KEYREACTIVE_ENABLED earlier in the include chain
2019-04-09 09:46:45 -07:00
DDRnJn
c846f82fa7 Added some new songs (#5525)
Added Fantasie Impromptu and Nocturne Op. 9 No. 1 in B flat minor by Chopin
Added Isabella's Lullaby from The Promised Neverland
Added Renai Circulation and Platinum Disco from Monogatari
Added Terra's theme from Final Fantasy 6
2019-04-09 09:45:47 -07:00
Mikhail Goncharov
399b992b01 Update build instructions and Dockerfile to download submodules 2019-04-09 09:44:55 -07:00
Florian Didron
ffd18ce409 Merge pull request #3 from ErgoDox-EZ/repo_prune
Repo Pruning and cleanup
2019-04-09 18:28:01 +02:00
Drashna Jaelre
25609b09ae Remove vscode folder 2019-04-09 09:26:32 -07:00
Drashna Jaelre
51a7fb1f1e Remove documentation folder 2019-04-09 09:26:11 -07:00
Drashna Jaelre
7c9d1d58ee Remove non-default keymaps 2019-04-09 09:01:04 -07:00
Drashna Jaelre
b6850bc043 remove all keyboards but ergodox and planck 2019-04-09 08:58:11 -07:00
Drashna Jaelre
19ed62114a Remove layouts 2019-04-09 08:57:34 -07:00
Drashna Jaelre
6baec0fffd Remove Userspace folders 2019-04-09 08:57:19 -07:00
Drashna Jaelre
23a52e40b3 update gitignore to exclude everything we don't need 2019-04-09 08:56:51 -07:00
jotix
3f9d20032a [Keyboard] Update jot50 readme.md (#5510) 2019-03-29 11:21:19 -07:00
Jeremy Bernhardt
8fa9f67256 [Keyboard] ErgoTaco Support (#5504)
* ErgoTaco support

* Update keyboards/ergotaco/ergotaco.h

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/ergotaco/keymaps/default/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/ergotaco/keymaps/default/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/ergotaco/readme.md

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/ergotaco/readme.md

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/ergotaco/rules.mk

Co-Authored-By: germ <jeremythegeek@gmail.com>

* juggling rules.mk

* Update keyboards/ergotaco/rules.mk

Co-Authored-By: germ <jeremythegeek@gmail.com>

* updating IS_COMMAND

* learning2english


Meme-tastic --Drashna
2019-03-29 10:39:28 -07:00
Brian Choromanski
3f4d706c98 Fixing dead links (#5503)
* Fixed typo of 'confid.h' to 'config.h'

* Fixed broken links in docs

* Fixed a lot of dead links

* Removed all dead links that I could not find a replacement for

* Placed knops links back in

* Fixed plank keymaps so that they will compile for planck light

* Https doesn't work on knops.io

* tv44:budi now compiles

* s60_x:amnesia0287 now compiles

* Fixed allocation of key_combos so that narze keymap for planck can compile correctly

* Disabled rgb on ergodone and infinity

* Enabled tap dance so it compiles

* Added return statement so it compiles

* If compiling on light disable extra functionality

* Properly redefined variable so it compiles

* Remove remaining dead links
2019-03-29 06:20:25 -07:00
tomholford
4fa7c9f1d0 [Keymap] addition: macro for "screenshot region to clipboard" in macOS (#5505)
* Create custom Planck Light keycap

See README for details

* Link to WhatPulse in README

* More remapping, and add RGB LED effects

* Remove dead code, address PR feedback from @drashna

* Add macro for “screenshot region to clipboard” hotkey for macOS

Also remove unused layer / key logic

* Remove extraneous comment

* Incorporate PR feedback from @drashna.

Update README with new mapping.
2019-03-28 15:31:39 -07:00
MechMerlin
6f6ab261e6 [Keyboard] revert back to the old custom i2c code for bmc (#5501) 2019-03-28 12:52:57 -07:00
stanrc85
2352afb383 [Keymap] Add custom macro to launch RDP (#5502)
* Add keycodes for new macros to keymaps

* add macros for commonly used shortcuts

* FIx macro code and add comments

* Replaced with build in QMK keycodes

* Removed macros that duplicated QMK keycodes
2019-03-28 11:46:34 -07:00
Drashna Jaelre
188a1e66ff Update KBD67 readme so that it mentions the KBD65 PCB (#5143)
* The code in this directory supports the KBD65

* Update readme.md

* Update readme.md

* Clear up the confusion between the kbd67/kbd65 naming.

* Update keyboards/kbdfans/kbd67/readme.md

Co-Authored-By: Hackerpilot <briancschott@gmail.com>
2019-03-27 22:13:29 -07:00
MechMerlin
04684a94ef [Keyboard] E6V2 Bootmapper Client QMK port (#5495)
* initial commit of e6v2 bmc files

* update readme with bmc template and reset key location

* fix up the switch matrix

* add usbconfig.h file

* add i2c files

* cleanup config.h

* cleanup rules.mk and remove non atmega32a architecture code

* add an appropriate keymap for testing

* update readme with warning not to flash this hex file onto atmega32u4 e6v2

* get rgb lights working

* add QMK Configurator support for 60_ansi layout

* add hhkb support layout

* add additional layouts such as tsangan and all and included QMK Configurator support for them

* add bootmagic lite, and have it be set to Esc or the key located at k50

* update readme

* fixup spacing for LAYOUT_all electrical matrix

* add some pragma once magic

* use i2c_master instead of custom i2c.c

* remove the custom i2c.c

* restore a more valid default keymap

* add eep_rst to keymap
2019-03-27 22:12:17 -07:00
kwerdenker
67ca9e0c85 [Keymap] Add kwer keymap and RGB mod description to cypher (#5479)
* Add kwer keymap and RGB mod description to cypher

* Add custom led_set_user to keymap

* Remove unneccessary include path from keyboards/westfoxtrot/cypher/keymaps/kwer/keymap.c

Co-Authored-By: kwerdenker <sebastian.spindler@gmail.com>
2019-03-27 10:39:23 -07:00
dsanchezseco
c98380e0dd [Keymap] added user keymap (#5499) 2019-03-27 10:15:40 -07:00
Takeshi ISHII
b9f6ff05d0 build size-check enhancement (#5485)
* build size-check enhancement

Changed to display a warning when the free size of compilation result is less than 512 bytes.

* update message.mk

* add SIZE_MARGIN variable, change default margin 512 to 1024

for Example.
```
$ make SIZE_MARGIN=2048 crkbd:all
$ make crkbd:all ## mergin is 1024
```

* Update message.mk

change message to ‘approaching the maximum’

Co-Authored-By: mtei <2170248+mtei@users.noreply.github.com>
2019-03-27 08:51:56 -07:00
Danny
6f124b7909 [Keyboard] Add Collide39 keyboard (#5486)
* Add Collide39 keyboard

* Remove unneeded lines
2019-03-27 08:50:28 -07:00
Rob Rogers
2519de92b5 [Docs] Add udev rule for Input Club bootloaders (#5494)
* Add udev rule for Input Club bootloaders

* match style with file name above udev rule
2019-03-27 08:42:03 -07:00
martinmksiu
795c2c27b9 [Keymap] adding keymaps (#3583)
* add key map

* QWERTY with 40% layers

* updated line 21

updated line 21 from "#include "xd75.h" to "#include QMK_KEYBOARD_H" as requested

* upload contra folders

* Update .directory

* Update config.h

* Update config.h

* Update keymap.c

* Update config.h

* Update rules.mk

* Update keyboards/contra/keymaps/martin_bac/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keyboards/xd75/keymaps/martin_cennum/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Delete .directory

* upload

* Delete rules.mk

* Update keyboards/contra/keymaps/msiu/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keyboards/katana60/keymaps/msiu/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keyboards/katana60/keymaps/msiu/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keyboards/katana60/keymaps/msiu/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keyboards/katana60/keymaps/msiu/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Delete nano.save

* Delete rules.mk

* Update keymap.c

* Update keymap.c

* Update config.h

* Update keyboards/lets_split_eh/keymaps/msiu/keymap.c

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keyboards/lets_split_eh/keymaps/msiu/keymap.c

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keymap.c

* Update keyboards/planck/keymaps/msiu/config.h

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Apply suggestions from code review

Co-Authored-By: martinmksiu <martinmksiu@gmail.com>

* Update keymap.c

* Update readme.md

* Update keymap.c
2019-03-26 20:22:56 -07:00
Jon Arintok
346cbd8816 Add 3 speed mousekey movement option (#2246)
This allows for constant, non-accelerated mouse movement, while retaining the original functionality. Configurable by a define.
2019-03-26 19:34:33 -07:00
Fabien Culpo
509668ca7c [Keymap] add redox/rev1:fculpo keymap (#5491) 2019-03-26 18:41:37 -07:00
Danny
d8371b3380 [Keymap] Update iris default (#5489)
* Update Iris default to include KC_GRV on base layer and match Configurator default

* Update default config
2019-03-26 18:40:01 -07:00
zvecr
9ef21d2e1c Refactor staryu to current standards and enable support for backlight keycodes (#5487) 2019-03-26 18:39:09 -07:00
Ryan Caltabiano
a0270b55e1 Fixing Ergodox_EZ rgb_led initialization 2019-03-26 16:34:02 -07:00
DDRnJn
b90df560f8 Added songs from Nier and Nier Automata
Added song of the ancients and kaine salvation fron Nier
Added Amusement park, Copied city, Vague Hope cold rain and weight of the world from Nier Automata
2019-03-24 17:13:07 -07:00
fauxpark
3510d8dc8d Document an annoyance with Grave Escape and macOS Terminal (#5483) 2019-03-24 17:11:26 -07:00
Max
f1d921bee6 Bugfix for recently integrated cypher keyboard (#5481)
* fixed issue with LED indicators
corrected error in info.json

* fixed issue with led indictors
2019-03-24 14:00:48 -07:00
Takeshi ISHII
bfc16765f4 add keyboards/mxss/rgblight.h from e661f1559:quantum/rgblight.h (#5461)
This PR is cherry-pick from 90b9a1aa7d8a in PR #5020.

@MxBlu copied quantum/rgblight.c to keyboards/mxss/rgblight.c on July 8, 2018. At that time, I think it would be better to copy quantum/rgblight.h at the same time.
Because if someone makes a change to `quantum/rgblight.[ch]` that is incompatible with the past, it may cause problems with the compilation of keyboards/mxss.
(Like when I changed the prototype of the `rgblight_effect_XXX()` functions of rgblight.c in PR #5020.)
2019-03-23 22:23:50 -07:00
Rob Hilgefort
74e05f3451 [Keymap] Planck Keymap :: rjhiglefort (#5059)
* copy default over as starting point

* Getting rid of dvorak and colemak for now, added a couple changes to the
keymap

* removed refs to bad layers, formatting comments

* First version of my ergodox ported layout!

* Symbols layer, media layer, updated comments

* Hyper as a single key

* Fix stuck hyper key when switching layers

* Tweak some annoying things about the layout.

- move raise left and promote alt
- remove swap keys on the last layer
- reorganize media keys so they're easier to reach and more intuitive
- fix some comment template things

* Add readme for rjhilgefort planck layout

* readme tweak

* PR feedback changes
2019-03-23 17:22:40 -07:00
Danny
f077204fae Add support for RGB LEDs wired directly to each half's controller (#5392)
* Add support for wiring RGB LEDs for both halves directly to their respective controllers

RGB LEDs for each half don't need to be chained together across the TRRS cable with this

* Add split RGB LED support for serial

* Update config/rules for bakingpy layout

* Un-nest ifdefs for hand detection

* Read RGB config state from memory instead of EEPROM for serial updates

* Reuse existing LED pointer instead of creating new one
2019-03-23 17:20:14 -07:00
Max
23086808a7 [Keyboard] added cypher keyboard support (#5466)
* added the cypher qmk configuration

* Update keyboards/westfoxtrot/cypher/cypher.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/cypher.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/cypher.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/cypher.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/info.json

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/info.json

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/keymaps/default-iso/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/keymaps/default-iso/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/keymaps/default-iso/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/readme.md

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cypher/readme.md

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* made modifications as per requests

* removed endif from cypher.h
2019-03-23 11:13:59 -07:00
tomholford
3529384c12 [Keymap] Add custom Planck Light keymap (#5464)
* Create custom Planck Light keycap

See README for details

* Link to WhatPulse in README

* More remapping, and add RGB LED effects

* Remove dead code, address PR feedback from drashna
2019-03-22 21:26:32 -07:00
stanrc85
3a7816843c [Keymap] New tap dance code added to userspace and keymaps (#5468)
* Adding new tap dance key

* Adding new tap dance code

* add code for copy/paste to tap dance

* testing tap dance enums

* New tap dance keycodes

* Fix enums
2019-03-22 20:50:56 -07:00
wanleg
1dda671e4a ISP Flashing Guide - atmega32a info (#4993)
* update isp flashing page

* update isp flashing page
2019-03-22 18:26:21 -07:00
moonfall
f8d5b9f204 [Keymap] iris: moonfall: Initial checking of layout. (#5462)
Layout is similar to Kinesis/Ergodox.
2019-03-21 20:14:40 -07:00
noroadsleft
dfe02441bb handwired/magicforce61 Refactor (#5459)
* handwired/magicforce61: refactor

Renamed layout macro KEYMAP to LAYOUT.

Keymap now uses #include QMK_KEYBOARD_H.

Refactored the default keymap to use non-auto-prepended keycodes per QMK standard.

Deleted deprecated action_get_macro block (was unused).

* handwired/magicforce61: Configurator support

* handwired/magicforce61: readme cleanup

Restructured the readme to be more similar to current QMK template.

* handwired/magicforce61: replace missing image in readme

Replaced the missing wiring image (error 404) with a table.

* handwired/magicforce61: rename readme to lowercase

* Convert config.h to #pragma once include guard
2019-03-21 06:06:27 -07:00
KOBAYASHI Daisuke
6e4edbd157 Keymap: Add Koba's keymap for KBD67. (#5460) 2019-03-21 06:05:50 -07:00
noroadsleft
7e37daab6e Update keyboards/kbdfans/kbd67/readme.md
Co-Authored-By: Hackerpilot <briancschott@gmail.com>
2019-03-20 17:09:00 -07:00
Takeshi ISHII
f7fd7f67bd rgblight.c: add remap feature (#5243)
* rgblight.c: add RGBLIGHT_LED_MAP support

* add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP

* Test end. Revert "add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP"

This reverts commit e7488d6f7338460b533d7d19a09deccb011000bf.

* update docs/feature_rgblight.md

* led_map[] move to PROGMEM
2019-03-20 16:55:24 -07:00
Felipe Coury
d5fd8c4f1c Uses K(row)(col) standard for TGR Alice matrix (#5457) 2019-03-20 15:48:44 -07:00
noroadsleft
0786f227d8 [Keyboard] Refactor MF68 default keymap to use LAYOUT_68_ansi macro (#5455) 2019-03-20 13:26:50 -07:00
MechMerlin
995b31a565 [Keyboard] HB85 Refactor/Layout Addition (#5451)
* introduce stt layout with K(row)(col)

* set bootmagic to lite

* Rename the original LAYOUT to LAYOUT_all
Introduce the STT layout

In additional the whole matrix was changed to support the K(row)(col) notation.

* rename LAYOUT to LAYOUT_all

* add QMK Configurator support

* stt keymap based on mrpetrov's default configuration on the hb85 he lent me

* update readme

* introduce basic and aop layouts along with QMK Configurator support for them

* add a new line

* add EEP_RST to layer 1 as it is needed to get rgb underglow to work

* add documentation on how to reset the eeprom on the board

* put contributors names where appropriate
2019-03-20 10:39:57 -07:00
jotix
066465fa6f [Keymap] jotix layouts adjustments (#5453) 2019-03-20 10:38:39 -07:00
James Churchill
cd696ed3d1 Fix i2c splits with >8 columns (#5454) 2019-03-20 07:43:36 -07:00
fauxpark
ab29481391 Fix link to Caterina bootloader hex files (#5452) 2019-03-20 07:43:20 -07:00
Jason Won
6eb5a25a6a [Keyboard] add quantum matrix calls to zen matrix calls (#5450) 2019-03-19 19:51:08 -07:00
jotix
8b859872da [Keymap] Jotix (#5448)
* jotix layout adjustments

* jotix layout readme
2019-03-19 19:46:54 -07:00
stanrc85
6e7eff47b3 [Keymap] Keymap and readme updates (#5449)
* Remove tap dance code from keymap.c

* Add tap dance code to userspace files

* Readme updates

* Update keymap images
2019-03-19 19:45:33 -07:00
Boy_314
4b4eba997f [Keymap] Boy_314's Halfnhalf layout update (#5441)
* added Boy_.314's layout for halfnhalf keyboard

* reset rules.mk to default

* update keymap with qwerty layout, and enable tap dancing

* fixed formatting in layout visualization

* added rules.mk to custom layout

* added mod tap for ctrl/capslock

* fixed typo in config.h, remove excess in rules.mk, revert half_n_half rules.mk

* added Boy_.314's layout for halfnhalf keyboard

* reset rules.mk to default

* update keymap with qwerty layout, and enable tap dancing

* fixed typo in config.h, remove excess in rules.mk, revert half_n_half rules.mk

* added macros to raise layer

* fixed mismatched layout/comments

* fixed layout switching
2019-03-19 14:34:18 -07:00
Konstantin Đorđević
6a4884e3bd [Keyboard] Remove unnecessary IS_COMMAND definitions from a couple of boards (#5269)
* Remove unnecessary IS_COMMAND definition from clueboard/66_hotswap/gen1

* Remove old-style IS_COMMAND definition comment from dozen0

* Use get_mods() instead of keyboard_report->mods in georgi
2019-03-19 14:33:44 -07:00
Drashna Jaelre
0072fdd799 Cleanup Default Keymaps (#5442)
* Cleanup Default Keymaps to conform to QMK Firmware standards

* Minor fixes

* Revert some changes
2019-03-19 12:57:40 -07:00
Drashna Jaelre
29bfd634e1 Fix dk60 compiler issue on newer compiler versions (#5444) 2019-03-19 07:37:22 -07:00
Rob Rogers
afdc67184d correct typo in eeprom split target for dfu (#5445) 2019-03-18 23:25:34 -07:00
Drashna Jaelre
161d469f2c [Docs] Recursively clone qmk_firmware repo (#5378)
* Recursively clone qmk_firmware repo

Specifically, so that it grabs the submodules, since ARM keyboards are becoming more common, and we are seeing more issues about chibiOS not being downloaded (in the error log, rather than by question)

* Wrap in shell
2019-03-18 14:22:33 -07:00
Drashna Jaelre
c534a4c775 [Docs] Smallish overhaul of the docs (#5281)
* Fix up Common functions doc

* Add to extra commands to flashing doc

* Rearrange and touch up Macros

* Expand Newbs Flashing guide

* Update process_record documentation

* Add git to best practices name in sidebar

* Expand FAQ for build/flashing

* Add deprecated info to functions

* Update docs/feature_macros.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/feature_macros.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/flashing.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/flashing.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/keymap.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/newbs_flashing.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/newbs_flashing.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/custom_quantum_functions.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/faq_build.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/feature_macros.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/keymap.md

Co-Authored-By: drashna <drashna@live.com>

* Fix up Common functions doc

* Make pre-init example accurate

* Update docs/custom_quantum_functions.md

Co-Authored-By: drashna <drashna@live.com>

* Zadig Driver catchall

* Spelling Depriciated

* Completely remove fn_actions section
2019-03-18 14:22:02 -07:00
Drashna Jaelre
28e182bc8a [Keyboard] Reduce compile size of the Lily58 Keyboard (#5412) 2019-03-18 14:21:10 -07:00
Drashna Jaelre
4f0dc945c3 [Docs] Add music_map to audio documentation (#5419)
* [Docs] Add music_map to audio documentation

* Add link to planck as example
2019-03-18 14:20:30 -07:00
Luciano Malavasi
618718e042 [Keymap] PyroL's TMO50 layout update (#5435)
* keymap + alpha

* some fixes

* keymap + alpha

* some fixes

* drashna changes

* linked main Alpha repo in keyboards/alpha readme

* missed a spot

* there's another function called FUNC lol

* keymap + alpha

* some fixes

* keymap + alpha

* drashna changes

* Fixed include

* Revert "Fixed include"

This reverts commit ea92f261f86d8433eab313cde498adca1682a006.

* messed up my git, fixed include

* starting work on TMO50 layout

* Update keyboards/tmo50/keymaps/default/keymap.c

Co-Authored-By: PyrooL <lm11887@gmail.com>

* Updated PyroL's TMO50 keymap

* Added task manager/Ctrl Alt Del that i stole from the eco keymap

* Clean up task manager and ctrl alt del macros

Co-Authored-By: PyrooL <lm11887@gmail.com>
2019-03-18 11:54:59 -07:00
Riley Weber
d63f954b25 [Keymap] Add vim-style keymap for lets split (#5399)
* initial commit

* initial commit

* fixed indents

* spelling, capitalization, and order.

* added dota mode keymap, removed old comments

* fixed default keymap always having tilde, instead of grave accent and tilde. Improved dota keymap.

* lower does not change backspace to delete anymore

* corrected pgup/pgdown

* changed period on lower from numpad dot to regular dot

* added colemak and dvorak

* made colemak/dvorak border keys consistent with querty

* updated to match current practices, added custom metakeys for dvorak and colemak

* added disclaimer about audio

* renamed to lowercase

* replaced include guards with #pragma once

Co-Authored-By: rileyweber13 <rileyw13@protonmail.com>

* removed unncessary include

Co-Authored-By: rileyweber13 <rileyw13@protonmail.com>

* removed defines included in core

Co-Authored-By: rileyweber13 <rileyw13@protonmail.com>

* replace defines with an enum, switched from custom function to set_single_persistent_default_layer

* removed ifndef/include/endif left over from previous build system

* removed unnecessary ifdef block

* updated soungs to work with set_single_persistent_default_layer
2019-03-18 11:51:24 -07:00
Andrew Kannan
99a8628383 [Keyboard] CannonKeys Instant60 Keyboard (#5433)
* Instant 60

* Instant60 changes again

* turn off LSE and features

* Working RGB underglow 🎉

* Add missing files

* Update keymap to have reset

* Backlighting on

* Backlight code for instant60

* Move 072 files to common folder and use it in Instant60

* Updates

* Update keyboards/cannonkeys/instant60/rules.mk

Co-Authored-By: awkannan <andrew.kannan@klaviyo.com>
2019-03-18 11:12:09 -07:00
lucwastiaux
3a2eb68e9e [Keymap] add android studio keyboard shortcuts to dvorak 42 key atreus / ergodox layouts (#5423)
* add SCREEN_NAV layer for copy/pasting within screen

* working readreg/paste macros

* working read reg / paste macros

* write log and tran patterns, and expand

* add ls -la shortcut, add tab on combined layer

* put delete word on the right pinky key on shell_nav layer

* add TAB on the right side, add reset key

* added Cloud9 macros

* add cloud9 shortcuts to atreus layout

* added BROWSER_CONTROL layer

* finalized browser control layer

* adding comment

* add browser control layer to atreus

* add flashing command line

* remove the tab on combined layer

* remove the tomouse

* remove mouse layer, change log/tran expand patterns, cleanups

* add dumptlog macro

* add "delete to home" shortcut

* fix conflict

* remove unneeded mouse layer

* add meh shortcuts on the browser_control layer

* add/modify some macros

* explain the various layers

* putty paste is right mouse button

* add android studio shortcuts

* allow switching between base and alternate base layouts

* replace cloud9 shortcuts with android studio

* more android studio shortcuts

* add two meh shortcuts on keynav layer

* additional android studio shortcut

* added defines for android studio
2019-03-18 11:10:18 -07:00
FiNeXdesign
473dedb309 [Keymap] Updated layout after some months of testing. (#5427)
* Updated layout after some months of testing.

The current setup looks quite better than the initial one. It's not
perfect but it allows me to work quite well.

The only big problem is the Alt modifiers on the home row which
sometimes break the typing if keys are pressed too fast. I'm also not
satisfied by the TAB key position on the thumb cluster.

Main improvements since previous push:
- Shift layouts on both halves
- Moved around symbols
- Improved number/fn keys
- Reorganized thumbs

* Used enum as suggested by @drashna :-)
2019-03-18 11:09:37 -07:00
Adam Newbold
83937573d1 [Keyboard] Corrected layout for top row keys (#5429)
* Corrected column count and adjusted layouts to include missing key

The original version reflected 14 columns and omitted KC_GRV, the 15th key on the top row. This revision adds support for the 15h key, and also updates the default (Tsangan) layout to include the HHKB layer keys.

* Reverted config.h to version in master branch

* Moved K413 to the correct location

* Added info.json

* Update keyboards/1upkeyboards/1up60hte/1up60hte.h

Co-Authored-By: newbold <adam@neatnik.net>

* Update keyboards/1upkeyboards/1up60hte/info.json

Co-Authored-By: newbold <adam@neatnik.net>

* Update keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c

Co-Authored-By: newbold <adam@neatnik.net>

* Update keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c

Co-Authored-By: newbold <adam@neatnik.net>

* Update keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c

Co-Authored-By: newbold <adam@neatnik.net>

* Update keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c

Co-Authored-By: newbold <adam@neatnik.net>
2019-03-18 11:06:31 -07:00
jotix
bd61b5b0ed [Keyboard] Add Jot50 handwired board (#5431) 2019-03-18 10:56:12 -07:00
jotix
68d4f78b25 [Keyboard] layout fixed in jotanck.h (#5432) 2019-03-18 10:53:47 -07:00
holtenc
a6c9e53510 [Keyboard] correct indicator light states (#5434)
function of indicator lights was inverted. these changes correct that.
2019-03-18 10:42:26 -07:00
layne001365
3e7a2c49a6 [Keyboard] Fix matrix positions for HotDox (#5437)
* Add HotDox

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/keymaps/default/keymap.c

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* * Update

  - keyboards/hotdox/config.h
  - keyboards/hotdox/hotdox.h
  - keyboards/hotdox/info.json
  - keyboards/hotdox/left.h
  - keyboards/hotdox/left.c
  - keyboards/hotdox/rules.mk

* Replace EPRM with EPRM

  - keyboards/hotdox/keymaps/default/keymap.c
  - keyboards/hotdox/keymaps/eozaki/keymap.c
  - keyboards/hotdox/keymaps/kloki/keymap.c

* Remove keymaps readme.md
* Remove twimaster.h/ twimaster.c

* * Update
  - remove FORCE_NKRO from keyboards/hotdox/config.h
  - keyboards/hotdox/hotdox.c
  - keyboards/hotdox/hotdox.h
  - keyboards/hotdox/keymaps/default/keymap.c
  - keyboards/hotdox/left.c
  - keyboards/hotdox/readme.md
  - keyboards/hotdox/rules.mk

* Update keyboards/hotdox/keymaps/default/keymap.c

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/keymaps/default/keymap.c

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/hotdox.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* [Keymaps] reverse the K5C<->K5A, L53<->L51, R55<->R53 position.
2019-03-18 10:33:57 -07:00
Alexander Kagno
d7b381128e [Keymap] Arkag Userspace Update (#5438)
* fresh commit for a new fork for PR to upstream/master

* gaming mode added, lighting changes for other modes

* rules.mk fixed...

* fixed collision issue with aesthetic and shifty modes

* fixed collision issue with aesthetic and shifty modes

* troubleshooting game mode failing

* moved game tapdance key to default layer, fixed issue
2019-03-18 10:31:09 -07:00
M-AS
221ac2eabb New RGB Matrix effect: Single color reactive (#5330)
* Adds new RGB Matrix effect: rgb_matrix_config'd reactive LEDs

* [Docs] Adds disable for new effect

* [Docs] Added new effect to list of effects
2019-03-17 10:38:51 -07:00
zvecr
d8df01ca5e Align docker and vagrant base images (#4905)
* Align docker and vagrant base images - update box to debian 9.6

* Align docker and vagrant base images - lock docker image to debian 9

* Align docker and vagrant base images - update vagrant docker to debian 9
2019-03-17 10:36:59 -07:00
cubimon
f9f0a31904 Unicode fix for new wincompose version (#5082)
* unicode fix for new wincompose version

* move wincompose case to linux

* Change unicode input end to enter
2019-03-17 10:35:14 -07:00
Samuel Jahnke
c74b11a959 [Keymap] Improvements to Samuel's literate keymap (#5428)
* added my own keymap

* changed thing

* updated keymap Samuel

* updated laypout for better one handed use

* updated stuff I want

* happy with my lagout

* formatting

* Added new literate config

* made everything nice

* cleaned

* fixed spelling and two small bugs in macros

* Made press and lift function for modifiers

* made taps occur on press instead of release

* added oneshot keys and chars cant be negative!

* removed debug message

* Added command and qwerty layers

* fixed bug with oneshot layer

* same bug, different key
2019-03-17 10:22:35 -07:00
DDRnJn
fcc9b4b8e7 Added 4 new songs to song_list.h
Added Liebesleid by Kriesler (or Rachmaninoff), Michishirube from Violet Evergarden, Melodies of Life from Final Fantasy 9 and Eyes on Me from Final Fantasy 8
2019-03-17 10:17:12 -07:00
jotix
5047503230 [Keymap] Jotix (#5424)
* ortho_4x12 jotix2 layout

* ortho_4x12 jotix2 layout
2019-03-17 10:16:08 -07:00
Nik Richers
c62f6b0825 [Keymap] Add a tweaked Redox keymap (#5422)
* Add nrichers keymap

* Additional keymap tweaks, add readme info

* Improve descriptions for changes from default keymap

* Add image of keymap, update .gitignore to

* Add image link

Adds an image of the modified keymap.

* Improve legibility of keymap changes with colour coding

* Tinker with color codes in Markdown

* Experiment with colour codes

* Tinker more with colour codes

* Figured out the easiest way to include colour coding

* Undo earlier .gitignore change
2019-03-17 10:13:45 -07:00
noroadsleft
e30c993d75 [Keyboard] XD75 refactor (#5420)
* Refactor layout macro names

Update the names of the layout macros to reflect QMK's desired usage.

- KEYMAP renamed to LAYOUT
  - colinta keymap updated accordingly
- KC_KEYMAP renamed to LAYOUT_kc
  - mtdjr keymap updated accordingly

* Update xd75.h to use #pragma once include guard

* Update keymaps to use QMK_KEYBOARD_H

* Refactor default keymap

- updated to use layout macro
- remove deprecated action_get_macro function
- add functions from QMK keymap.c template
  - process_record_user
  - matrix_init_user
  - matrix_scan_user
  - led_set_user

* Update supporting files

- updated config.h files to use #pragma once include guard
- remove errant QUANTUM_DIR code block

* Rename readme files to fully lowercase filenames

* Restructure keyboard readme

Updated the readme to better align with the current QMK template.

* Bugfixes to supporting files
2019-03-17 10:04:50 -07:00
Drashna Jaelre
e9ace14878 [Docs] Add VSCode guide to docs (#5124)
* Add VSCode guide to docs

* Fix settings menu enumeration

* Update docs/other_vscode.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/other_vscode.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/other_vscode.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/other_vscode.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/other_vscode.md

Co-Authored-By: drashna <drashna@live.com>
2019-03-15 14:34:58 -07:00
Danny
22e499efdb [Keyboard] Add handwired split tester (#5413)
* Add handwired split tester

* Update keyboards/handwired/splittest/readme.md

Co-Authored-By: nooges <nooges@users.noreply.github.com>

* Update keyboards/handwired/splittest/readme.md

Co-Authored-By: nooges <nooges@users.noreply.github.com>
2019-03-15 14:28:38 -07:00
Danny
3c257c1c6e Add avrdude split EE_HANDS flash commands (#5414)
* Add EEPROM avrdude flashing commands for setting handedness

* Update docs with info on flashing EEPROM handedness files with commands
2019-03-15 14:05:50 -07:00
Len Trigg
9c4424ae2c rgblight split transfer non-eeprom config (#5396)
* Make rgblight_update_dword not update eeprom (we already have
eeconfig_update_rgblight for that).

Make split i2c keyboards transfer active rgblight config rather than
eeprom saved version of rgblight config, enabling runtime changes
that aren't persisted to eeprom.

* prev_level and prev_rgb only store successfully transmitted values
2019-03-15 13:46:49 -07:00
GreenShadowMaker
fabdb3c4e8 [Keymap] Keymap for Idobo (#5402)
* greenshadowmaker keymap for idobo xd75 massdrop

* remove uneeded config.h

* corrected format to match convention instead of xd75 where I accidentally started from
2019-03-15 11:01:50 -07:00
Drashna Jaelre
493fbb3dc1 [Keymap] Update to drashna keymaps: Conform to QMK Standards Edition (#5377)
* Use correct functions for dip switch code

* Some planck cleanup

* Hopefully fix RGB Sleeping with RGB Matrix

* Add rgbmatrix extern

* Add numpad 5x6 layout

* RGB Tweaks

* Add RGB startup animation

* Minor RGB Fixes

* Turn off RBG on planck

* Enable separate storage of EEPROM

* Update Macro pad

* Add BJohnson Keymap and minor darshna tweaks

* Clean up rgb and other code for new numpad

* Remove clicky hachy thing

* Update my code to use built in MOD_MASK defines

* Fix up modifier calls

* Tweak to KC_MAKE

* Tweak to KC_MAKE

* Add Semi-colon to numpad

* Preprocess out rgb matrix stuff if not enabled

* Formatting of KC_MAKE

* Add stuff for matrix and light rgb coexistance

* Fix bad spelling

* Change where layer indication shows based on rgblight status

* Force set mods in KC_MAKE

* Optimize CRKBD
2019-03-15 08:57:44 -07:00
zvecr
e0a03bfa6c Fix return value of i2c_readReg and i2c_receive (#5410) 2019-03-15 08:55:07 -07:00
GreenShadowMaker
b85e2eef9a [Keymap] Greenshadowmaker keymap for ergodash (#5403)
* My Inital Keymap, adjusted for not removing outer keys, and using large inner key

* First working version of keymap

* RGB investigate

* Updated Keymap, added keyboard-layout-editor.com json file

* minor fix

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/config.h

Ah!  Thanks fort the clarification, it was a blind copy/paste

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/config.h

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/config.h

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/config.h

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/rules.mk

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/keymap.c

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/keymap.c

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/keymap.c

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* Update keyboards/ergodash/rev2/keymaps/greenshadowmaker/keymap.c

Co-Authored-By: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com>

* removed persistent_default_layer_set and the QWERTY section as suggested
2019-03-14 23:13:24 -07:00
Boy_314
41584c3384 [Keymap] Added Boy_314's layout for half n half keyboard (#5373)
* added Boy_.314's layout for halfnhalf keyboard

* reset rules.mk to default

* update keymap with qwerty layout, and enable tap dancing

* fixed formatting in layout visualization

* added rules.mk to custom layout

* added mod tap for ctrl/capslock

* fixed typo in config.h, remove excess in rules.mk, revert half_n_half rules.mk
2019-03-14 21:09:35 -07:00
zvecr
205ffc277c Align use of atmega32a program script (#5259)
* Remove duplicate 'program' files and refactor to use atmega32a_program.py

* Update readme references from 'program' to 'atmega32a_program.py'
2019-03-14 15:55:08 -07:00
ginjake
c025d813ba [Keyboard] new keyboard lovelive9 (#5266)
* new keyboard lovelive9

* Update keyboards/lovelive9/config.h

thank you

Co-Authored-By: ginjake <hsginjake123@gmail.com>

* Apply suggestions from code review

Co-Authored-By: ginjake <hsginjake123@gmail.com>

* fix review

* fix readme

* move handwired

* Update keyboards/handwired/lovelive9/keymaps/default/keymap.c

thanks

Co-Authored-By: ginjake <hsginjake123@gmail.com>

* Apply suggestions from code review

commit suggestion

Co-Authored-By: ginjake <hsginjake123@gmail.com>

* fix spell miss

* fix review

* fix col and row

* fix layout define
2019-03-14 15:54:16 -07:00
zvecr
577e99f195 [Keyboard] Inital port of xd96 (#5401)
* Initial import of xd96 based on xd84 code

* Configure xd96 port expander mapping

* Fix xd96 led count

* Fix xd96 port expander reading

* Fix xd96 port expander reading

* Fix xd96 LAYOUT matrix mapping

* Add additional links for xd96 Hardware Availability

* Correct Configurator config

Co-Authored-By: zvecr <git@zvecr.com>

* Readme review comments

Co-Authored-By: zvecr <git@zvecr.com>
2019-03-14 14:22:50 -07:00
Brendan Wrafter
c02c7b7517 Fix ascii art (#5407) 2019-03-14 14:18:11 -07:00
Jeremy Bernhardt
980a41e904 [Keyboard] Georgi Support (#5384)
* Working on chording

* Working on chording

* Got layouts in order

* Initial Georgi support

* forgot to add keymaps

* Updated readme

* Update keyboards/georgi/keymaps/template/readme.md

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/georgi.h

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/keymaps/default/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/keymaps/default/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/rules.mk

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/rules.mk

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/matrix.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/georgi.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/georgi.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/rules.mk

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/keymaps/default/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/keymaps/template/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/matrix.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Disabled features, updated info

* Update keyboards/georgi/config.h

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/georgi/config.h

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Fixed info.json
2019-03-14 13:59:34 -07:00
Alexander Kagno
2558372b3f fresh commit for a new fork for PR to upstream/master (#5406) 2019-03-14 12:04:59 -07:00
walkerstop
c3b4f65c64 Added info.json for mt980 keyboard and fixes to walker keymap (#5391)
* Added info.json and minor fixes to walker keymap

* Fix url

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/info.json

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Fix user calling keymap functions

* cancel oneshot layer on KC_TRNS

* Fix to oneshot layer handling

* Fix oneshot handling of reset

* Move bootmagic key to Esc where it normally resides

* Remove deprecated function

* Treat shift-numlock as shift-insert in Walker layer
2019-03-14 08:21:41 -07:00
Erovia
f9c5b80aed Add support for THE60 (#5385) 2019-03-13 16:26:25 -07:00
Michael Dye
30db1b18e5 Added 1up60rgb keymap: mdyevimnav (#5386)
Added keymap for 60% board 1up60rgb. The map provides VIM-style navigation on a
second layer (L1) with HOME, PGDN, PGUP, and END keys on that same layer one
row below the home row. The layout is used by https://github.com/michaeldye.
2019-03-13 16:23:49 -07:00
Drashna Jaelre
4a908288f1 Fix i2c calls for HotDox keyboard (#5387) 2019-03-13 14:08:21 -07:00
Michael F. Lamb
f34244a871 Sleep until USB port becomes writable before running avrdude (#5393)
* sleep until usb port becomes writable before running avrdude

* only wait for a writable USB port when not on MSYS

using MINGW or MSYS: sleep for one second, as before.

otherwise: wait for the port to become writable.

* typo

* typo
2019-03-13 14:00:09 -07:00
Christian Westerlund
5a12b054ae [Keymap] Some more improvements to keymap, currency symbols.. (#5395)
acute accent and pipe character also
2019-03-13 11:54:34 -07:00
Jarred Steenvoorden
7e306f9c98 [Keymap] Add atreus, ergotravel and org60 keymaps (#5381)
* Add atreus, ergotravel and org60 keymaps

* Cleanup my keymap config files
2019-03-13 11:22:06 -07:00
Iason Dimitrakopoulos
2902035dcc archetype keymap for jj50 (#5397)
* archetype keymap for jj50 keyboard

* archetype keymap for jj50 keyboard

* PR fixes proposed by mechmerlin
2019-03-13 08:06:09 -07:00
walkerstop
73c4c9f9e8 Wheat Field Peripherals mt980 (FC980M Layout) PCB Support (#5374)
* mt980 keyboard support

* Update manufacturer name

* Correct indicator LEDs, add walker keymap

* Added readme.md

* Update keyboards/mt980/mt980.c

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Treat number pad + and enter as pgup and pgdn when number lock is off

* Update keyboards/mt980/mt980.c

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/mt980.c

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/readme.md

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/readme.md

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/readme.md

Co-Authored-By: walkerstop <walkerstop@gmail.com>

* Update keyboards/mt980/rules.mk

Co-Authored-By: walkerstop <walkerstop@gmail.com>
2019-03-12 15:23:09 -07:00
yiancar
131b647a96 Minor readme fix (#5389) 2019-03-12 15:15:32 -07:00
Takuya Urakawa
2f3dbb1253 Add new keyboard Plaid and ATMEGA328p support (#5379)
* add plaid

* Change usb vid/pid to free id from vusb
Trivial fix for vusb core

* update readme

* update info.json default keymap

* fix typo

* Replace copyright
2019-03-12 11:48:17 -07:00
James Churchill
37932c293c Next set of split_common changes (#4974)
* Update split_common to use standard i2c drivers

* Eliminate RGB_DIRTY/BACKLIT_DIRTY

* Fix avr i2c_master error handling

* Fix i2c_slave addressing

* Remove unneeded timeout on i2c_stop()

* Fix RGB I2C transfers

* Remove incorrect comment
2019-03-12 10:23:28 -07:00
Naoki Katahira
25bb059e4e [Keyboard] Lily58 Add info.json file (#5354)
* Add info.json file

* fix info.json

* fix2 info.json

* Update keyboards/lily58/rev1/info.json

Co-Authored-By: kata0510 <kata0510.com@gmail.com>

* Update2 keyboards/lily58/rev1/info.json

Co-Authored-By: kata0510 <kata0510.com@gmail.com>
2019-03-12 10:20:07 -07:00
zvecr
9e49f19a1a KPrepublic bm16a port (#5383)
* Initial bm16a port

* Initial bm16a port - fix readme formatting
2019-03-12 07:38:05 -07:00
moyi4681
fe642a84fc Fix speed issues with RGB Matrix in the DZ60RGB (#5380)
* Fix speed issues with RGB Matrix in the DZ60RGB

* keep boards in sync
2019-03-12 07:25:39 -07:00
Callum Oakley
395a7793d1 Keymap update (#5382)
* home and end on fn layer (for forward and back with left hand)

* space movement shortcuts

* mouse layer
2019-03-12 07:21:51 -07:00
Andrew Kannan
e046872a80 [Keyboard] Satisfaction75 Protoype/Rev1 split, and new VIA features (#5303)
* Add satisfaction75 revision 1

* Update manufacturer

* Add tester layout and update rev1 comments

* Add ifdef guards for OLED for tester

* Add oled disabling rules

* Update to save backlight settings and setup for VIA custom config

* Add new VIA values to satisfaction75

* Safety guard in clock set mode

* Fix mistaken doc edit

* Address PR comments

* bring the default back to pass travis CI

* Address further PR comments
2019-03-11 20:47:50 -07:00
jotix
fd43259cbd [Keyboard] Update rules.mk (#5370)
MOUSEKEY_ENABLED = yes
by default
2019-03-11 16:53:25 -07:00
zvecr
99654c6e4f [Keyboard] Fix diode and split keyboard configuration for 40percentclub/half_n_half (#5371) 2019-03-11 16:52:04 -07:00
Christian Westerlund
8ff4b4dba4 [Keymap] Small improvements to this keymap (#5343)
* Small fixes, added tilde, print screen and switched alt keys

* Comments

* ..

* Removed fn_actions block
2019-03-11 14:02:31 -07:00
DDRnJn
fe89aef774 Add 3 new songs and add new note type (#5351)
* Added 3 new songs and added new note type to musical_notes.h

Added Megalovania from Undertale, Kataware Doki from Kimi no Na Wa and La Campanella by Lizst to song_list.h
Added the breve (double whole note) and dotted breve note types to musical_notes.h. I included this because the default tempo is quite high, so I thought a note with higher
duration was needed

* Fixed indentation for new notes in musical_notes.h

Changed tabs to spaces in indentation
2019-03-11 13:53:22 -07:00
FateEverywhere
e88a75904b [Keyboard] Add Stand Aside keyboard (#5360)
* 412_64 move to handwired

412_64 and its second printing, Mark Zero Stand Aside, are now obsolesced by new hardware. As only two units exist in the wild not owned by me, I'm moving the definition to handwired.

* Mark 3 Stand Aside ready for production.

Uploading firmware, compiled and tested, for Mark 3 Stand Aside. The hardware's ready, now the software is too.

* Whoops.

Should've branched before pushing Stand Aside. Sorry 'bout that.

* Revert "Whoops."

This reverts commit d222046cfe6183ed0c42286ec9ebb5034a5d1009.

* Revert "Mark 3 Stand Aside ready for production."

This reverts commit c790899af7a6d92855aebe6a96003f1fe9be66b3.

* Mark 3 Stand Aside ready.

Initial commit for Mark 3 Stand Aside, ready for production.

* Update keyboards/standaside/rules.mk

noroadsleft suggested removal of a line, 'LAYOUTS = ortho_4x16'. I agree.

Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>

* Cleanup for pull request.

Making changes requested by Drashna, as they're all good, and I know way less about the standards than they do.

* Initial cleanup completion.

Missed a few lines in standaside.c, they're cleaned up now.
2019-03-11 13:49:23 -07:00
yiancar
863d54d2fc [Keyboard] Mechboards Micropad (#5368) 2019-03-11 13:46:55 -07:00
layne001365
2a2f41c6de [Keyboard] Add HotDox keyboard (#5365)
* Add HotDox

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/keymaps/default/keymap.c

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* * Update

  - keyboards/hotdox/config.h
  - keyboards/hotdox/hotdox.h
  - keyboards/hotdox/info.json
  - keyboards/hotdox/left.h
  - keyboards/hotdox/left.c
  - keyboards/hotdox/rules.mk

* Replace EPRM with EPRM

  - keyboards/hotdox/keymaps/default/keymap.c
  - keyboards/hotdox/keymaps/eozaki/keymap.c
  - keyboards/hotdox/keymaps/kloki/keymap.c

* Remove keymaps readme.md
* Remove twimaster.h/ twimaster.c

* * Update
  - remove FORCE_NKRO from keyboards/hotdox/config.h
  - keyboards/hotdox/hotdox.c
  - keyboards/hotdox/hotdox.h
  - keyboards/hotdox/keymaps/default/keymap.c
  - keyboards/hotdox/left.c
  - keyboards/hotdox/readme.md
  - keyboards/hotdox/rules.mk

* Update keyboards/hotdox/keymaps/default/keymap.c

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/keymaps/default/keymap.c

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/hotdox.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/rules.mk

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>

* Update keyboards/hotdox/config.h

Co-Authored-By: layne001365 <layne.guan@gmail.com>
2019-03-11 12:41:16 -07:00
trinity1561
bf1e51ec22 [Keyboard] Update info.json to include macro layout (#5364)
* Update info.json

Adding layout for the macro version.

* Update info.json

Changed the macro layout to match exactly like the non-macro version (split backspace and bottow row match)
2019-03-11 11:35:59 -07:00
Jarred Steenvoorden
d2311afb66 Add crkbd keymap (#5366) 2019-03-11 07:15:08 -07:00
zk-phi
5e093ad224 [Keyboard] Add keyboard hifumi (#5341)
* Add keyboard hifumi

* Update keyboards/hifumi/Readme.md

Co-Authored-By: zk-phi <zk-phi@users.noreply.github.com>

* Update keyboards/hifumi/Readme.md

Co-Authored-By: zk-phi <zk-phi@users.noreply.github.com>

* Update keyboards/hifumi/Readme.md

Co-Authored-By: zk-phi <zk-phi@users.noreply.github.com>

* Update keyboards/hifumi/keymaps/default/keymap.c

Co-Authored-By: zk-phi <zk-phi@users.noreply.github.com>

* Update keyboards/hifumi/keymaps/test/keymap.c

Co-Authored-By: zk-phi <zk-phi@users.noreply.github.com>

* Update keyboards/hifumi/Readme.md

Co-Authored-By: zk-phi <zk-phi@users.noreply.github.com>

* Add DIODE_DIRECTION

* Rename readme.md
2019-03-10 21:49:08 -07:00
noroadsleft
0f67232035 QMK Configurator bugfix for KBDfans KBD19x (#5362)
Configurator was assigning keys in the wrong order around the arrow keys and numpad.

Rebuilt the layout contents from scratch.
2019-03-10 20:21:59 -07:00
Eric
61accb8794 [Keymap] Underglow support for Launchpad (#5340)
* added my launchpad

* updated keymap with legends and fixed layout errors

* Added default keymap with added layer for RGB controls and included the necessary config code

* fixed layer orders

* removed my personal keymap to clean PR

* missed an underscore

* updated readme

* removed more unnecessary code

* moved RGB code to its own config phone

* moved underglow info to its own readme

* removed redundant code from default_rgb config.h file, included QMK KEYBOARD H in place of initial defines in keymap.c

* reverted launchpad config

* removing the = because I can't figure out why its there

* Revert "removing the = because I can't figure out why its there"

This reverts commit e3b5e6d568e7225635844ba617aaef4f77727ce6.

* reverted rev1/config.h

* reverted all files I should not have touched

* removing redundant code in rules.mk

* readibility improvements to keymap
2019-03-10 20:11:45 -07:00
Joel Yauk
eb48e5ebdb [Keyboard] Add ISO backslash key position to facew matrix and keymap files (#5190)
* Add ISO backslash key position to matrix and keymap files

* Use KC_NO instead of KC_BSLS for unused position in custom keymap

* Add new key position to json layout file used by online configurator
2019-03-10 20:09:56 -07:00
ai03
9bea41c9b2 [Keyboard] Add Orbit keyboard (#5306)
* Get things working except indicators

* Attempt to get things working

* hmm

* Compiles but doesn't run

* Make data transfer work

* Get all indicators working

* Remove old transport

* Prepare for pullreq

* Revert keymap from testing to production

* Final error checking for pull request

* Remove autogenerated is_command from config.h

* Rewrite pin toggles using qmk functions
2019-03-10 19:57:36 -07:00
the-frey
ad12acd3c0 Add personal keymap for crkbd (#5208)
* Add a crkbd layout with nkro on by default, and an emacs-friendly layout for clojure

* Added readme and image

* Add changes as requested on PR
2019-03-10 10:17:43 -07:00
moyi4681
c8ad13d0f9 fix dz60rgb config.qmk.fm non-combile (#5356)
* Update config.h

* Update config.h

* Update config.h

* Delete config.h

* Update config.h

* Update config.h

* Update config.h

* Delete config.h
2019-03-10 10:15:53 -07:00
FateEverywhere
2b1b5fed2a 412_64 move to handwired (#5359)
* 412_64 move to handwired

412_64 and its second printing, Mark Zero Stand Aside, are now obsolesced by new hardware. As only two units exist in the wild not owned by me, I'm moving the definition to handwired.

* Mark 3 Stand Aside ready for production.

Uploading firmware, compiled and tested, for Mark 3 Stand Aside. The hardware's ready, now the software is too.

* Whoops.

Should've branched before pushing Stand Aside. Sorry 'bout that.

* Revert "Whoops."

This reverts commit d222046cfe6183ed0c42286ec9ebb5034a5d1009.

* Revert "Mark 3 Stand Aside ready for production."

This reverts commit c790899af7a6d92855aebe6a96003f1fe9be66b3.
2019-03-10 10:04:10 -07:00
Jarred Steenvoorden
ff95c60e46 Keymap / userspace update (#5358)
* Update userspace with common config.h

* Add my dz60, satan and xd75 keyboard keymaps

* Fixing executable bits changed during last upstream merge

* Cleanup unnecessary files and defines

* Remove unnecessary defines from userspace config

* Add underglow controls to dz60 function layer

* Fixing merge conflicts

* Fixing exectable bits changed during merge

* Userspace update
2019-03-10 10:00:55 -07:00
epaew
9d915ed051 Update edvorak keymap simplify (#5350)
* Update edvorakjp layouts

* swap master hand

* update tapping_term
2019-03-09 08:22:21 -08:00
Vyolle
cd9e15036e Swapped Gui keys and Shift Keys. I think it's more ergonomic in this configuration. (#5347) 2019-03-08 14:37:40 -08:00
enkore
fef206f661 getting_started_build_tools: dfu-{util,programmer} now available from arch repo
See https://www.archlinux.org/packages/extra/x86_64/dfu-programmer/
2019-03-08 10:18:21 -08:00
Blaž Hrastnik
7b768be784 Shallow clone submodules. (#5279)
There's no need to fetch the entire submodule history if we only need the latest revision. Speeds up the download a fair bit.
2019-03-08 07:58:40 -08:00
Drashna Jaelre
3d446c6050 [Docs] Update the KC_MAKE example in Userspace docs (#5337)
This includes a much more feature rich version of the code, as well as updating for changes that have occurred in QMK Firmware
2019-03-08 07:56:08 -08:00
linyaofred
fc87d9b0d5 fix wrong key order in qmk configurator. (#5342) 2019-03-08 07:50:46 -08:00
MechMerlin
98b68bec53 [Keyboard] New Keyboard: MK60 (#5327)
* intial commit

* fix up some of the cookie cutter code

* define pins used and size of switch matrix

* enable lighting settings and bootmagic lite

* create the appropriate LAYOUT macro

* remove a comma for compilation errors

* provide a suitable keymap

* disable console and command due to firmware being too large

* add Caps Lock LED support

* Add QMK Configurator support

* fix markdown rendering

* fix mechmerlin to mechkeys
2019-03-07 17:58:49 -08:00
stanrc85
4a597e031f [Keymap] Smarter KC_MAKE code and removed duplicate MOD_MASK entries (#5331)
* Change to predefined MOD_MASK codes

* Remove duplicate predefined codes

* Better reset keybaord logic

* Cleaned up code as requested
2019-03-07 17:13:02 -08:00
MechMerlin
81fae5c306 Add in mekanist's keymap. Thanks to MatthewRobo for assisting in creating some of his features (#5335) 2019-03-07 17:06:04 -08:00
Dusty Pomerleau
234c117613 Keymap update: Use register_code16() and its variants in lieu of separate mod registration (#5333)
* use `register_code16` and relatives for tapdance code

* rename tapdance keys to more closely mirror the `KC` names in QMK

* additional naming change to match QMK style
2019-03-07 17:03:29 -08:00
Dusty Pomerleau
6d4f6f3f49 [Docs] Add Tap Dance example to the docs (#5326)
* add a tapdance example for creating advanced mod-tap and layer-tap keys

* add optional curly braces to match QMK conventions

* change example to use `register_code16()` and tapdance keycodes more closely matching QMK variants
2019-03-07 12:30:02 -08:00
Felipe Coury
ba11a1c807 [Keyboard] Adds Gray Studio HB85 Initial Support (#5311)
* Gray Studio HB85 Initial Support

* Fixed README image

* Updated README

* Disabled Bootmagic and Console for HB85

* Fixed Numpad 4 matrix place

* Fixes board crashing with RGB enabled

* Moved HB85 files to gray_studio folder

* Uses old i2c library since this version makes RGB underglow work

* Improved default keymap with underglow control layer

* Removes obsolete program and uses generic script instead

As per zvecr feedback

* Uses GPIO Functions to initialise and set RGB underglow PINS
2019-03-06 12:49:16 -08:00
stanrc85
33e9f1c75a [Keymap] Add KC_MAKE keycode to my userspace and keymaps (#5324)
* Add keycode for KC_MAKE

* Add KC_MAKE keycode

* Add stanrc85.c file with KC_MAKE

* Remove unused include

* Improved KC_MAKE stolen from Drashna

* Define mod mask for new KC_MAKE code

* RESET board to flash after compiling

* Remove send_string

* RESET fixed in KC_MAKE
2019-03-06 12:20:51 -08:00
noroadsleft
be8257f0a7 [Keyboard] handwired/trackpoint: refactor and readme cleanup (#5325)
* handwired/trackpoint: refactor

- layout macro KEYMAP renamed to LAYOUT
- keymap now uses #include QMK_KEYBOARD_H

* handwired/trackpoint: readme cleanup

- fix wiring layout image URL
- update readme structure

* handwired/trackpoint: rename readme to lowercase

* handwired/trackpoint: update header files to use #pragma once
2019-03-06 11:51:41 -08:00
jotix
da2eedc0c2 [Keyboard] re-arrange the pinout for backlight support (#5321) 2019-03-05 15:59:11 -08:00
Dusty Pomerleau
3aa4d55bee [Keymap] update: simplify tapdance code for Minidox/keymaps/dustypomerleau (#5315)
* add dusty keymap

* change keymap folder to match my github username

* initial keymap completed in comments only

* layout without NAV completed in comments only

* disable Command to prevent interference with Space Cadet keys

* switch _ and \ in the symbol layer

* Layers complete through _NAV

* add thumb keys to _NAV

* complete _NUM

* all layouts complete; still needs `process_user_record()`

* completed first draft of keymap; still needs config.h to match

* corrected keycodes for Mac macro-volume keys

* fix Mac mute keycode

* add missing Mac keycodes for previous and next track

* placeholder for qwerty layout, not yet completed;

remove unnecessary breaks;

add todos

* eliminate Preonic branch before switching to Minidox branch:

• delete dustypomerleau Preonic keymap folder

• complete keymap.c (QWERTY layer, vanilla numbers layer)

TODO:
• add preferences to config.h
• complete the README

* edit commented keymap diagrams for clarity in dual function keys

* define initial config.h and add rules.mk for mouse key support

* fix redundant line after implementation of tap_code()

* fixed key_timer declaration, added README and rules

* formatting of keymap

* add CTPC to config

* cycle thumb keys to favor center position

* modify config.h for temporary Pro Micro compatibility

* remove superfluous call to use serial; homebrewed mod tap keys are still broken with OSL

* merge _SYS and _MEDIA on new Z_SYS key

* ALT_OP example of new MT macro complete

* initial narze-inspired MT fixes in PRU

* add (currently superfluous) custom keycode for the _SYS layer

* rudimentary `OSL` symbol macros that immediately register the mod and fail to reset the oneshot layer, but do output the proper keys—fix both of these things

* remove permissive hold to improve tapping performance

* remove calls to `clear_oneshot_layer_state()`, as they have no effect inside `process_record_user()`. Tapdance appears to be the way forward.

* final commit before tapdance code; correct layout in comments

* initial tapdance code for shifted mod taps

* add numeric and ergo NUM layers and pinky shifts for keycuts

* add TD() wrappers to tapdance codes and clean up commented layout guides

* add faux return to cur_dance to allow compilation - TODO: research what the default clause should be in cur_dance

* update commented schematics for better readability

* add backspace and delete to lockable layers, Z_SYS -> SYS_Z for consistency, fix schematic errors

* add `DOUBLE_SINGLE_TAP` to tapdance cases to allow doubling of the single tap character without waiting tapping term

* remove reduced oneshot tapping toggles

* update README

* newline tweak :)

* Update keyboards/minidox/keymaps/dustypomerleau/keymap.c

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* remove `PREVENT_STUCK_MODIFIERS`, as this is default behavior

* enable extrakey in rules to enable media keys

* enable extrakeys for media key compatibility on macOS

* add dash and slash to _NUM layers

* change to universal volume keycodes

* revert micro volume adjustments to macOS-specific codes due to lack of functionality (macro volume adjustments are still universal)

* fix image of _SYS layer in comments

* more diagram fixes in comments

* fix typo

* simplify tapdance code

* match _NUM_N to _NUM_E

* move slash to allow better use of comma in number layers

* match layer and keycode enums to the docs

* correct qwerty numlock to match numeric numlock layer
2019-03-05 15:46:05 -08:00
Drashna Jaelre
edef1f9396 Update personal userspace and keymaps + improve custom functionality (#5289)
* Change how desktop commands work

* Add DST_MOD_MASK as a config option

* DST_RMV → DST_REM

* Add melody96:konstantin keymap

* Update custom SEND_STRING

* Move feature flags from userspace into keyboard rules

* Use "Vo-", "Vo+" instead of "VoD", "VoU" in keymap comments

* Add RGB controls and numpad Unicode to Melody96 keymap

* Add RGB_SET keycode to Melody96 and RGB files to userspace

* Generate UNICODE and UNICODEMAP constants using macros

* Avoid collisions with X_* send string constants

* Use two spaces before inline comments

* Add _keymap versions of other custom Quantum functions

Not added: eeconfig_update_keymap, eeconfig_read_keymap

* Switch to UNICODEMAP in keyboard rules

* Make toggle_numpad a nested function in process_record_user

* Set Melody96 underglow color to Godspeed blue on EEPROM reset

* Remove most _keymap and _user definitions in userspace

Some keyboards misuse _user functions by defining them in the base files
instead of the corresponding _kb functions (especially led_set_user and
matrix_init_user). Until this is fixed (#5148), I've removed definitions
in my userspace that could cause linking collisions.

* Update GODSPEED_BLUE values and RGB mode keys

* Add GODSPEED_YELLOW color

* Set preferred intervals for rgblight effects

* Update tap dance function names

* Replace td_lshift_fn with generic td_mod_layer, add TD_RCTL_FN

Move TD_FN_RCTL after TD_RCTL_FN

* Replace td_fn_rctrl with generic td_layer_mod

* Add blank lines, prefer explicit initialization

* ACTION_TAP_DANCE_DOUBLE_MODS → ACTION_TAP_DANCE_DOUBLE_MOD

* Update Godspeed colors

* Add media controls to Melody96 keymap

* Add SysRq, Break combos and other keys to Melody96 keymap
2019-03-05 15:07:13 -08:00
vxid
2e8e465423 [Keymap] Add vxid planck layout (#5271) 2019-03-05 15:05:32 -08:00
Marco Monaco
73d8593352 increase size of note counter variable to avoid overflow 2019-03-05 15:03:24 -08:00
Christopher Browne
dbfbe0d7f0 Adopted LAYOUT, added some keys (#5320)
* Add HOME/END keys as upper/lower on arrow-up/down

* Reduce .hex file size by turning off unneeded options

* Put digit keypad onto left hand upon RAISE; this will sometimes be preferable to double-hits of right hand

* Latest super latest version merge

* cbbrowne keymap for XD75re

* starting notes on XD75re keymap plans

* First draft of bottom row of QWERTY

* Switch my special bottom line over to QCENT

* Dunno

* Filling in wanted keys, bit by bit...

* Add copyright, extra macro

* Clean up comments, remove some experimental code I didn't like

* TODO plans for xd75re

* clean up keyboard layout

* QCENT2 is my new experiment for the main keyboard...

* Add a few more main layer keys, and modify LOWER to shift things outwards to conform with main layer

* Clean up RAISE layer to conform with main layer, remove QCENT layer as QCENT2 is the new thing

* More xd75 changes, now that I actually have it in hand

* shift keymap around, as original attempt was a bit too aggressive in keeping to the edges

* more revs to XD75

* Dropping parts of the centre keypad in favor of Keys I Really Need

* Improve documentation to conform with how builds are done now

* Improve documentation to conform with how builds are done now

* Add cbbrowne rules file as alternative to having the rules in Makefile

* Makefile not needed anymore for individual keymap

* Some revs to my keymapping

* Add {}

* Add PGUP/PGDN

* Shifted some middle-range keys around

* Needed Tilde, Backquote, and to shift RESET onto FUNCTION layer

* Wanted ~

* cbbrowne hasn't anything to do with hadron keymaps

* trim unneeded bits

* I prefer OrgMode for my notes

* Have a right-alt

* Layer keys make LED colors change

* Add sample user rules for cbbrowne

* Add source of xd75 rules

* Individualized xd75 rules

* Adopt LAYOUT to genericize the layout as an ortholinear 5x15 keyboard
2019-03-05 12:22:51 -08:00
Mitchel van Eijgen
8c2a23dee1 Add more "decent" text editors (#5308)
I'm a web designer and know there are several "decent" code editors out there, but I would figure not everyone into keyboards is, so I found Sublime text a bit of a hard sell for someone who just need to manipulate some text files. VS Code or Atom would b a much better suit for them instead of dropping $80 on a "decent" text editor.
2019-03-05 07:31:54 -08:00
Eduardo Lourenço Pinto Neto
69d6298f6b Add DZ60 Tsangan Layout + Fn layer (#5319)
* Fix Mac mute keycode

* Add DZ60 Tsangan layout with Fn layer

* Add new line at end of the file
2019-03-05 07:28:35 -08:00
lf
4c62c7bd6e [Docs] Fix function signature (layer_state_set_*) (#5313)
`void uint32_t` is not a return type.
2019-03-04 22:08:09 -08:00
noroadsleft
a8a9a2066e Correct keyboard and layout dimensions for 40percent.club Foobar (#5310) 2019-03-04 20:19:05 -08:00
noroadsleft
a903893883 Dactyl Manuform 5x6, 5x7, and 6x6: QMK Configurator fixes and partial code clean-up (#5307)
* Tidy up 5x6.h

- replaced tabs with spaces (QMK convention)
- aligned layout macro visually

* Fix Configurator support for Dactyl Manuform 5x6

- layout macro had the wrong name in info.json

* Tidy up 5x7.h

- replaced tabs with spaces (QMK convention)
- aligned layout macro visually

* Fix Configurator support for Dactyl Manuform 5x7

- corrected keyboard height
- layout macro had the wrong name in info.json

* Tidy up 6x6.h

- replaced tabs with spaces (QMK convention)
- aligned layout macro visually

* Fix Configurator support for Dactyl Manuform 6x6

- layout macro had the wrong name in info.json
2019-03-04 10:09:37 -08:00
yiancar
3e8ee96b2c Fixed default to dissable VIA (#5309)
This should have gone into previous PR but I am dumb
2019-03-04 08:34:08 -08:00
James Churchill
c7c4937eef Clean up debounce a bit (#5255) 2019-03-04 07:44:46 -08:00
zvecr
cdfcbfc92d Fix aanzee Configurator config file (#5286) 2019-03-04 06:29:29 -08:00
yiancar
7bfe0879bf Separate keymaps to VIA enabled/dissabled. (#5302)
* Separate keymaps to VIA enabled/dissabled.

- Default rules.mk has been changed to disable via.
- VIA keymaps have been added for default keymaps.

* Update naming
2019-03-04 06:28:33 -08:00
stanrc85
043ef40b92 [Keymap] Add RGB config and controls to userspace (#5299)
* Add INSERT and EEP_RST to HS60 keymap

* Add INSERT to keymap

* Layer based RGB colors

* Move RGB code to layer_rgb.c

* New file with layer based RGB colors

* Use RGB code if RGBLIGHT is enabled

* Set RGB options in config.h

* Remove rgb enable from init user
2019-03-03 15:31:12 -08:00
Drashna Jaelre
3305df8e79 Add LED Matrix to Features list for easy reference (#5280) 2019-03-03 15:29:29 -08:00
leico
a2a2ba0eec [Keymap] layout/community/ortho4x12/symbolic update (#5274)
* change readme.md

* diy LayerTap function

* fixed forgot update_tri_layer
correspound permissive hold

* update README

* change No_event of general shift

* update symbolic layout

* merge symbolic_general_shift to symbolic layout

* update README.md

* following code style

* delete excess codes, change codes that don't follows the code style
2019-03-03 10:49:27 -08:00
Ray Cielencki
9b0a548687 [Keyboard] matrix_init_user shouldn't call itself (#5298) 2019-03-03 10:38:12 -08:00
omkbd
be497126e8 [Keymap] Update keymap.c (#5290) 2019-03-03 10:36:40 -08:00
yttyx
3380694740 Update Atreus layout to match the Niu layout. Fix Niu comment typo. (#5297) 2019-03-03 10:34:41 -08:00
KOBAYASHI Daisuke
f9f04ff2a4 [Keymap] Fix comment in the KBD67 default keymap. (#5296) 2019-03-03 10:33:52 -08:00
takashiski
98b87e6357 [Keyboard] update Hecomi/alpha's info.json (#5295)
* remove offset

* update layout(I missed)

* formatted
2019-03-03 10:33:19 -08:00
Adam Newbold
b5d85ddc90 [Keyboard] Adding Numeric Keypad //e converter (#5294)
* Adding Numeric Keypad //e to conversions

* Update keyboards/converter/numeric_keypad_IIe/config.h

//e -> IIe

Co-Authored-By: newbold <adam@neatnik.net>

* Update keyboards/converter/numeric_keypad_IIe/config.h

//e -> IIe and wrapped description in quotes for comma inclusion

Co-Authored-By: newbold <adam@neatnik.net>

* Updating info.json for Configurator

* Corrected legend

* Update keyboards/converter/numeric_keypad_IIe/info.json

Corrected layout

Co-Authored-By: newbold <adam@neatnik.net>
2019-03-03 10:29:27 -08:00
Ray Cielencki
6aba3ce9d2 [Keyboard] Add support for matrix_scan_user to usb-usb converter (#5291)
* [Keyboard] Add support for matrix_scan_user to usb-usb converter

* update to matrix_scan_quantum

* also add init calls
2019-03-03 10:25:08 -08:00
noroadsleft
79e0964d21 handwired/terminus_mini: refactor, Configurator support, and readme cleanup (#5292)
* handwired/terminus_mini: refactor

- white space changes in terminus_mini.h (alignment)
- keymap now uses #include QMK_KEYBOARD_H
- refactored TMK macros into QMK process_record_user
- refactored TMK layer functions into QMK keycodes
- removed redundant keycode definitions

* handwired/terminus_mini: Configurator support

* handwired/terminus_mini: readme cleanup

- completed keyboard description
- removed Hardware Availability line (it was blank)
- updated Docs links
2019-03-02 17:08:42 -08:00
Konstantin Đorđević
be1d5c6609 Add SysRq, Break combos and other keys to Melody96 keymap 2019-03-02 16:04:37 +01:00
Konstantin Đorđević
51182a4f03 Add media controls to Melody96 keymap 2019-03-02 15:16:01 +01:00
Konstantin Đorđević
f9c070e1a4 Update Godspeed colors 2019-03-02 15:16:00 +01:00
Konstantin Đorđević
9baee84b36 ACTION_TAP_DANCE_DOUBLE_MODS → ACTION_TAP_DANCE_DOUBLE_MOD 2019-03-02 15:16:00 +01:00
Konstantin Đorđević
6a088f7ff6 Add blank lines, prefer explicit initialization 2019-03-02 15:15:59 +01:00
Konstantin Đorđević
14908f86fb Replace td_fn_rctrl with generic td_layer_mod 2019-03-02 15:15:59 +01:00
Konstantin Đorđević
b05a4b1a4b Replace td_lshift_fn with generic td_mod_layer, add TD_RCTL_FN
Move TD_FN_RCTL after TD_RCTL_FN
2019-03-02 15:15:59 +01:00
Konstantin Đorđević
1b3b9414b7 Update tap dance function names 2019-03-02 15:15:58 +01:00
Konstantin Đorđević
45dddfa6c2 Set preferred intervals for rgblight effects 2019-03-02 15:15:58 +01:00
Konstantin Đorđević
fbe2eba472 Add GODSPEED_YELLOW color 2019-03-02 15:15:58 +01:00
Konstantin Đorđević
de2e03650b Update GODSPEED_BLUE values and RGB mode keys 2019-03-02 15:15:58 +01:00
Konstantin Đorđević
8e0dfdfb53 Set Melody96 underglow color to Godspeed blue on EEPROM reset 2019-03-02 15:15:57 +01:00
Konstantin Đorđević
f09a237a07 Remove most _keymap and _user definitions in userspace
Some keyboards misuse _user functions by defining them in the base files
instead of the corresponding _kb functions (especially led_set_user and
matrix_init_user). Until this is fixed (#5148), I've removed definitions
in my userspace that could cause linking collisions.
2019-03-02 15:15:57 +01:00
Konstantin Đorđević
784e2af062 Make toggle_numpad a nested function in process_record_user 2019-03-02 15:15:57 +01:00
Konstantin Đorđević
be65a0cc79 Add _keymap versions of other custom Quantum functions
Not added: eeconfig_update_keymap, eeconfig_read_keymap
2019-03-02 15:15:56 +01:00
Konstantin Đorđević
bd43df53bd Use two spaces before inline comments 2019-03-02 15:15:56 +01:00
Konstantin Đorđević
5a41c06cd7 Switch to UNICODEMAP in keyboard rules 2019-03-02 15:15:56 +01:00
Konstantin Đorđević
7b11d740ea Avoid collisions with X_* send string constants 2019-03-02 15:15:55 +01:00
Konstantin Đorđević
ddb0f39ebf Generate UNICODE and UNICODEMAP constants using macros 2019-03-02 15:15:55 +01:00
Konstantin Đorđević
2f07627a5d Add RGB_SET keycode to Melody96 and RGB files to userspace 2019-03-02 15:15:55 +01:00
Konstantin Đorđević
d163b22dfb Add RGB controls and numpad Unicode to Melody96 keymap 2019-03-02 15:15:54 +01:00
Konstantin Đorđević
ea23035c53 Use "Vo-", "Vo+" instead of "VoD", "VoU" in keymap comments 2019-03-02 15:15:54 +01:00
Konstantin Đorđević
ef189da243 Move feature flags from userspace into keyboard rules 2019-03-02 15:15:53 +01:00
Konstantin Đorđević
db1ace5426 Add melody96:konstantin keymap 2019-03-02 15:15:53 +01:00
Konstantin Đorđević
012c5ef9bd Update custom SEND_STRING 2019-03-02 15:15:53 +01:00
Konstantin Đorđević
f2543c3b9b DST_RMV → DST_REM 2019-03-02 15:15:52 +01:00
Konstantin Đorđević
6695c874fb Add DST_MOD_MASK as a config option 2019-03-02 15:15:52 +01:00
Konstantin Đorđević
6f386ca6ae Change how desktop commands work 2019-03-02 15:15:51 +01:00
holtenc
6e48ea082d [Keyboard] Initial commit for Prime_E w/ VIA config support (#5285)
* Initial Prime_E commit

* Via support for Prime_EXL

* Backlight testing

* update libs

* Clean up and addition of VIA compatibility.

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/primekb/prime_e/keymaps/default/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/primekb/prime_e/keymaps/default/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/primekb/prime_e/keymaps/default/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/handwired/prime_exl/keymaps/via/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* Update keyboards/primekb/prime_e/keymaps/default/keymap.c

Co-Authored-By: holtenc <holtenc@gmail.com>

* removed IS_COMMAND from config.h. updated GPIO commands

* clean up libs
2019-03-01 21:14:24 -08:00
moyi4681
681db534f3 [Keyboard] add dz60rgb ansi and hhkb support; add dz40rgb (#5231)
* add dz60rgb keyboard

* add info.json

* Update config.h

* Update rules.mk

* Update dz60rgb.h

* Update dz60rgb.c

* Update keymap.c

* Update dz60rgb.h

* Create readme.md

* Update readme.md

* Update keymap.c

* Update dz60rgb.h

* Update info.json

* Update info.json

* Update dz60rgb.c

add dz60rgb ansi, iso and hhkb support

* Update dz60rgb.h

add dz60rgb ansi, iso and hhkb support

* Add files via upload

* Add files via upload

* Delete config.h

* Delete keymap.c

* add ansi,iso and hhkb layout

* add dz60rgb ansi,iso and hhkb layout

* Update keyboards/dztech/dz40rgb/dz40rgb.c

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz60rgb/keymaps/hhkb/config.h

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz60rgb/keymaps/hhkb_iso/config.h

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz60rgb/keymaps/iso/config.h

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz40rgb/rules.mk

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz60rgb/keymaps/ansi/config.h

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz60rgb/keymaps/default/config.h

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update keyboards/dztech/dz40rgb/keymaps/default/config.h

Co-Authored-By: moyi4681 <moyi4681@users.noreply.github.com>

* Update dz40rgb.c
2019-03-01 19:40:08 -08:00
zvecr
d8ccabeeef [Keyboard] Convert mf68_ble to keymap (#5287)
* Initial refactor of handwired bluetooth mod to keymap

* Initial refactor of handwired bluetooth mod to keymap - strip out unnecessary duplicate config, update readme

* Initial refactor of handwired bluetooth mod to keymap - reduce firmware size

* Initial refactor of handwired bluetooth mod to keymap - update readme image
2019-03-01 19:33:05 -08:00
stanrc85
d5f01ad2f9 [Keymap] Added INSERT to my keymaps (#5284)
* Add INSERT and EEP_RST to HS60 keymap

* Add INSERT to keymap
2019-03-01 11:09:49 -08:00
Andy
f4a2e58182 HS60 v2: Instructions how to reset and flash (#5241)
* HS60 v2: Instructions how to reset and flash

* HS60v2 README using place holder for keymap
2019-03-01 09:12:20 -08:00
unausgeschlafen
7abf507cb6 [Keymap] unausgeschlafen quefrency keymap (#5273)
* unausgeschlafen quefrency keymap

* added build & flash instructions

* review by drashna
2019-03-01 08:45:42 -08:00
MechMerlin
5c491da0e7 [Keymap] Fix rgblight_enable ifdefs (#5283) 2019-03-01 08:33:29 -08:00
Dan
41d8be7e75 [Keymap] DCompact Layout Updates pt. 3 (#5209)
* Fix whitespace and Markdown errors

* Add DCompact layout implementation for Levinson keyboard

* Rename README.md to readme.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Update keyboards/keebio/levinson/keymaps/dcompact/keymap.c

Co-Authored-By: loksonarius <loksonarius@users.noreply.github.com>

* Update keyboards/keebio/levinson/keymaps/dcompact/keymap.c

Co-Authored-By: loksonarius <loksonarius@users.noreply.github.com>
2019-03-01 08:28:46 -08:00
yynmt
a1de199aa9 [Keyboard] Add Dozen0 (#5272)
* Add Dozen0 macropad

* Fix readme image

* Add info.json

* Fix keymap f12

* Fix copyright and replace include guards

* remove IS_COMMAND at config.h
2019-02-28 20:12:56 -08:00
Dusty Pomerleau
f6a0ee85fd [Keymap] update: add extrakey support for macOS media keys (#5263)
* add dusty keymap

* change keymap folder to match my github username

* initial keymap completed in comments only

* layout without NAV completed in comments only

* disable Command to prevent interference with Space Cadet keys

* switch _ and \ in the symbol layer

* Layers complete through _NAV

* add thumb keys to _NAV

* complete _NUM

* all layouts complete; still needs `process_user_record()`

* completed first draft of keymap; still needs config.h to match

* corrected keycodes for Mac macro-volume keys

* fix Mac mute keycode

* add missing Mac keycodes for previous and next track

* placeholder for qwerty layout, not yet completed;

remove unnecessary breaks;

add todos

* eliminate Preonic branch before switching to Minidox branch:

• delete dustypomerleau Preonic keymap folder

• complete keymap.c (QWERTY layer, vanilla numbers layer)

TODO:
• add preferences to config.h
• complete the README

* edit commented keymap diagrams for clarity in dual function keys

* define initial config.h and add rules.mk for mouse key support

* fix redundant line after implementation of tap_code()

* fixed key_timer declaration, added README and rules

* formatting of keymap

* add CTPC to config

* cycle thumb keys to favor center position

* modify config.h for temporary Pro Micro compatibility

* remove superfluous call to use serial; homebrewed mod tap keys are still broken with OSL

* merge _SYS and _MEDIA on new Z_SYS key

* ALT_OP example of new MT macro complete

* initial narze-inspired MT fixes in PRU

* add (currently superfluous) custom keycode for the _SYS layer

* rudimentary `OSL` symbol macros that immediately register the mod and fail to reset the oneshot layer, but do output the proper keys—fix both of these things

* remove permissive hold to improve tapping performance

* remove calls to `clear_oneshot_layer_state()`, as they have no effect inside `process_record_user()`. Tapdance appears to be the way forward.

* final commit before tapdance code; correct layout in comments

* initial tapdance code for shifted mod taps

* add numeric and ergo NUM layers and pinky shifts for keycuts

* add TD() wrappers to tapdance codes and clean up commented layout guides

* add faux return to cur_dance to allow compilation - TODO: research what the default clause should be in cur_dance

* update commented schematics for better readability

* add backspace and delete to lockable layers, Z_SYS -> SYS_Z for consistency, fix schematic errors

* add `DOUBLE_SINGLE_TAP` to tapdance cases to allow doubling of the single tap character without waiting tapping term

* remove reduced oneshot tapping toggles

* update README

* newline tweak :)

* Update keyboards/minidox/keymaps/dustypomerleau/keymap.c

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* remove `PREVENT_STUCK_MODIFIERS`, as this is default behavior

* enable extrakey in rules to enable media keys

* enable extrakeys for media key compatibility on macOS

* add dash and slash to _NUM layers

* change to universal volume keycodes

* revert micro volume adjustments to macOS-specific codes due to lack of functionality (macro volume adjustments are still universal)
2019-02-28 15:27:34 -08:00
Luciano Malavasi
beb292e7f0 [Keymap] My TMO50 layout (#5116)
* keymap + alpha

* some fixes

* keymap + alpha

* some fixes

* drashna changes

* linked main Alpha repo in keyboards/alpha readme

* missed a spot

* there's another function called FUNC lol

* keymap + alpha

* some fixes

* keymap + alpha

* drashna changes

* Fixed include

* Revert "Fixed include"

This reverts commit ea92f261f86d8433eab313cde498adca1682a006.

* messed up my git, fixed include

* starting work on TMO50 layout

* Update keyboards/tmo50/keymaps/default/keymap.c

Co-Authored-By: PyrooL <lm11887@gmail.com>
2019-02-28 13:02:16 -08:00
avatak
8dd1dab7cb Added two songs to song_list.h (FF Prelude and To Boldly Go) (#5252)
Adds FF_Prelude (from most Final Fantasy games) and TO_BOLDLY_GO (a melody from the main themes of Star Trek TNG and the original series)
2019-02-28 12:35:42 -08:00
Tobias Schulte
7470317d95 [Keymap] use steno mode from base (#5220) 2019-02-28 12:33:02 -08:00
Graham P Heath
9b82a9295f [Docs] Add note about using Unicode Hex Input (#5248)
* Add note about using Unicode Hex Input

* Update docs

* remove extra return, oops
2019-02-28 12:15:38 -08:00
fauxpark
220551ed5f [Keyboard] GH60 Satan improvements (#5264)
* GH60 Satan improvements

* Link no worky

* Accidentally a h

* Use MOD_MASK_SHIFT from core

* Remove nonexistent layouts from here
2019-02-28 12:06:26 -08:00
stanrc85
32b63d676f [Keymap] Cleaning up my config and userspace files (#5265)
* Removed since options are in userspace

* Removed RGB option that was breaking one of my builds

* Remove unused options

* Removed options present in userspace, add board specific options here

* Removed code also present in userspace

* Turns out those lines were needed, added them back

* Testing changes

* Added code to ensure board read as ANSI instead of default ISO for HS60

* Setting \ key to "MOD" instead of "ALPHA" for lighting
2019-02-28 12:02:22 -08:00
MechMerlin
a872faa53e [Keymap] Userspace Keymap Updates (#5215)
* enable velocikey for my userspace and explicitly for my 75% layout

* add guards to only turn on RGB stuff if the RGB pin is actually defined

* update 60_ansi keymap

* update the 60_ansi_split_bs_rshift keymap

* update 66_ansi keymap

* update docs

* Update layouts/community/60_ansi/mechmerlin-ansi/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update layouts/community/66_ansi/mechmerlin/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update layouts/community/60_ansi/mechmerlin-ansi/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update layouts/community/60_ansi/mechmerlin-ansi/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* remove my attempt to find a good way to detect this

* move audio clicky into user space and do feature setting per keyboard

* fixup 66_ansi keymap

* update changelog

* update readme
2019-02-28 11:37:34 -08:00
Juno Nguyen
3ac3bb9b5e [Keymap] Added personal keymaps for Planck, Preonic, Vitamins Included by Juno (#5169)
* Added personal keymaps for Planck, Preonic, Vitamins Included by Juno

* Removing redundancies as suggested

* More removals that were missed out in the previous commits

* Updated Preonic to use new layout

* More redundancies missed out

* Updated more optimal code for FN layer LED indicator.

* Further codes clean up.
2019-02-28 11:12:32 -08:00
Christoffer Holmberg
95d2a11c44 Update Nyquist layout (#5270)
* Add Home,End,Insert,Del to Arrow layer

* Add Back & Forward to Arrow layer

* fix typo
2019-02-28 06:11:52 -08:00
zvecr
a120a000d4 Add Configurator support and readme for boardwalk (#5261)
* Add configurator support and readme for boardwalk

* Readme review comments
2019-02-27 07:20:45 -08:00
zvecr
a0c36ed253 [Keyboard] Add configurator support for 40percentclub/half_n_half (#5260) 2019-02-26 13:49:05 -08:00
Jeri Mason
dcf4877fac Bucktooth 2.0 key layout for Preonic (#5258)
Updated layout slightly for better compatibility with sculpted
(row-specific) profile keysets.

Fix build error on rev 3 toolchain; click waits don't seem to be
necessary anymore.
2019-02-26 13:17:28 -08:00
mcmadhatter
659e5d6316 [Keymap] Hs60 win osx dual (#5249)
* Added a dual windows/osx layout

Default layer is normal ISO for windows. Second layout is Windows ISO layout but for OSX, but with the keys corrected so you will get the correct shifted and alt'd keys on OSX (keyboard keys match OSX keys without having to change your keyboard type in system preferences).  Layer three is configuration and other functions, and layer four is where the shifting magic happens.  Also tab and caps lock have been swapped around.

* made sure bootmagic is in a seperate rules.mk

made sure bootmagic is in a seperate rules.mk

* commiting the keymap rules.mk

commiting the keymap rules.mk
2019-02-26 13:05:18 -08:00
Mikkel Jeppesen
168b0cf64d Added a numpad keymap for the vitamins included keyboard (#5247)
* Fixed pin for RGB

* Added numpad keymap for vitamins included

* Implemented changes
2019-02-26 13:04:28 -08:00
stanrc85
bcaf66bd32 [Keymap] Converted stanrc85 community layout to userspace (#5244)
* Convert community layout to userspace for future use

* Big readme update

* Move layer toggle to CAPS

* Readme updates

* Deleted since unused

* Removed call to unused .c file
2019-02-26 13:01:46 -08:00
jotix
11bdf28001 LAYOUT_ortho_4x4 (#5257) 2019-02-26 08:12:56 -08:00
fauxpark
0d936b2fe6 Ask for your name when generating a new keyboard (#5214)
* Ask for your name when generating a new keyboard

* Update docs

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-02-26 07:59:34 -08:00
Stick
7ba2bc765b [Keymap] nstickney's layout for iris (#5045) 2019-02-25 22:26:39 -08:00
VM
80ddb34415 [Keymap] adding my Levinson keymap (#5177)
* [keymap] adding my Levinson keymap

pretty self explanatory, added the readme, just in case

tested it just now, seems to work fine for my needs

* Update keymap.c

removing the deprecated persistent layer function as Drashna kindly reminded me

* Apply suggestions from code review

incorporated the suggestions, and thanks again for taking care of me with my silly changes :)

Co-Authored-By: OMGVee <mateescu.victor@gmail.com>

* Fix up audio calls
2019-02-25 21:30:26 -08:00
stanrc85
7a89b39aad [Keymap] HS60 v2 keymap updates (#5250)
* Add backlight controls

* Add backlight controls and remove RGB underglow

* Make HS60 board specific changes to readme

* Remove BL_TOGG as it isn't use on this board
2019-02-25 18:16:20 -08:00
Nick Christus
5838c458d7 [Keyboard] Added Boardwalk keyboard (#5195)
* initial commit

* removed key for fn layer

* added missing row, misc cleanup

* added nchristus keymap, more misc cleanup

* Updating ergo60.h, rules

* Adding McAllaster keymap

* added a bunch of keymaps

* added LED code

* added userspace

* ls vitamins keymap

* added Boardwalk keyboard

* boardwalk: removed unrelated files

* boardwalk: undoing tkc1800 change

* boardwalk: undoing tkc1800 change

* nchristus keymap cleanup

* boardwalk: updates per PR feedback

* boardwalk: updated bootloader

* boardwalk: additional updates from PR review
2019-02-25 17:24:11 -08:00
yttyx
f019cd12a5 [Keymap] Balance Twelve-based layout for Niu Mini (#5228)
* Balance Twelve-based layout for Niu Mini.

* niu - Changes following review.

* niu - Changes following review.
2019-02-25 17:09:42 -08:00
zvecr
36fce12d08 [Keyboard] Initial refactor of maxipad to conform to current standards (#5233) 2019-02-25 17:07:58 -08:00
noroadsleft
303859ea28 handwired/magicforce68: refactor, Configurator support, and readme cleanup (#5234)
* handwired/magicforce68: refactor

- layout macro KEYMAP renamed to LAYOUT
- keymap now uses #include QMK_KEYBOARD_H
- keymap now uses non-auto-prepended keycodes per QMK standard.
- deleted deprecated and unused action_get_macro block from default
keymap.

* handwired/magicforce68: Configurator support

* handwired/magicforce68: readme cleanup

- updated to current QMK template
- rename file to lowercase
- fix make commands
- Add Docs links
2019-02-25 17:05:22 -08:00
Andy
65db404260 [Keymap] HS60 v2 ISO layout andys8 (#5235) 2019-02-25 17:04:15 -08:00
MechMerlin
d7e3d718d0 Some minor refactoring of boards in 1upkeyboards directory (#5236)
* use #pragma once

* get rid of code for unused indicators

* pragma once and other small fixes for consistency

* use #pragma once

* pragma once and other small fixes for consistency

* add a short blurb to the readme

* turn on compiler optimization flags

* remove the compiler optimization

* remove compiler optimization for super16
2019-02-25 17:03:36 -08:00
Danny Nguyen
da5e904306 Fix pinout for Quefrency left half w/macros 2019-02-25 17:00:26 -08:00
MechMerlin
7276cc24d0 [Keyboard] KBDFans Minor Fixes (#5238)
* pragma once and turn on bootmagic lite

* pragma once changes and turning on bootmagic lite

* switch to using pragma once

* switch to using #pragma once

* switch to using #pramga once
2019-02-25 16:59:40 -08:00
takashiski
2c1963d583 [Keyboard] Hecomi conf (#5246)
* add info.json

* update readme

* remove info.json from no rule.mk folder
2019-02-25 16:51:09 -08:00
stanrc85
c4451f4505 Corrected HS60 v2 keyboard name in info.json (#5242)
* Corrected keyboard name in info.json

* Updated maintainer to yiancar
2019-02-25 08:02:40 -08:00
Adam Price
79acf1e660 atreus default keymap pagedown didn't match comment instructions (#5245) 2019-02-25 08:01:50 -08:00
Hackerpilot
c1cb95d953 Clear up the confusion between the kbd67/kbd65 naming. 2019-02-24 20:00:26 -08:00
Brian Schott
d093678458 Update readme.md 2019-02-24 19:49:48 -08:00
Brian Schott
2fe21c67c5 Update readme.md 2019-02-24 19:49:48 -08:00
Brian Schott
1c2b3143d0 The code in this directory supports the KBD65 2019-02-24 19:49:48 -08:00
Konstantin Đorđević
d5dcf54e23 Fix indentation in quantum_keycodes.h (#5221) 2019-02-24 15:21:09 -08:00
stanrc85
c8de0f78bf [Keymap] Initial upload of stanrc85 HS60 v2 layout and config (#5217) 2019-02-24 15:14:55 -08:00
Fred Silberberg
6f30a6b407 [Keymap] Added a key to handle copy/paste in and out of a terminal (#5205) 2019-02-24 14:57:16 -08:00
Tobias Schulte
a69e4406d4 Fix Tx Bolt ghosting second character on key press (#5229)
* convert tabs to spaces

* fix #4578: don't call gemini protocol code when in bolt mode

Add missing break; statements in switch. The missing break resulted in
a fall through and an additional processing of the gemini code.
2019-02-23 19:32:48 -08:00
skullydazed
0f62383be5 Clueboard 66% Hotswap Support (#5204)
* Initial Clueboard 66% arm support

* Fix LAYOUT_66_ansi

* wip

* Bring this branch up to date with led_matrix

* Get Clueboard 66% hotswap working with led_matrix

* stm32 cleanup

* Fix compiling for clueboard 66% hotswap prototype

* Reduce the size of the prototype firmware
2019-02-23 17:25:25 -08:00
SpacebarRacecar
539a6fc825 removed old keymaps (#5227) 2019-02-23 17:22:55 -08:00
KOBAYASHI Daisuke
58d035dccc Keymap: Update Koba's keymap for Ergo42. (#5223) 2019-02-23 17:22:20 -08:00
Campbell Barton
791cdd6e31 Update readme.md (#5230)
Correct comment.
2019-02-23 17:21:01 -08:00
mechmerlin
db26d0fbd8 edit the readme to mention the NYM96 since it's the same PCB and is currently on sale at Massdrop 2019-02-22 17:05:32 -08:00
jotix
24a8bc3fd0 Jotix keymaps (#5203)
* jotix 4x12 keymap

* readme corrections

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x4 keymap

* jotix ortho 4x4 keymap

* jotix keymaps
2019-02-22 08:47:42 -08:00
TerryMathews
50139d9c59 Candybar: remove mousekeys as default (#5210)
Binaries compiled at config.qmk.fm are oversized for the MCU. Adjusting
default options to compensate.
2019-02-22 08:46:05 -08:00
jotix
c3cf9c0cef Jotpad16 (#5212)
* jotix 4x12 keymap

* readme corrections

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* jotix ortho 4x12 keymap

* add jotpad keyboard

* add jotpad keyboard

* backlight pin for arduino pro micro

* readme correction

* readme correction

* jotpad16

* Update keyboards/handwired/jotpad16/jotpad16.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/handwired/jotpad16/keymaps/default/keymap.c

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/handwired/jotpad16/readme.md

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>
2019-02-22 08:08:25 -08:00
Takeshi ISHII
e3621c162c fix rgblight_effect_breathing interval time (#5213) 2019-02-22 08:07:31 -08:00
noroadsleft
384fef72d3 Replace instances of KEYMAP with LAYOUT
Many instances in the QMK Docs referenced KEYMAP macros, which is outdated terminology.

Replaced most instances of KEYMAP with LAYOUT, to reflect the desired usage.
2019-02-21 23:19:26 -08:00
SpacebarRacecar
8a2346eda1 [Keymap] Added preonic and mechmini 2 keymaps (#5202)
* added mechmini2 keymap

* added preonic keymap

* changed readme

* correction to mechmini 2 readme

* changes to preonic keymap
2019-02-21 09:39:04 -08:00
noroadsleft
9c73a4a5c6 Grammar cleanup of Flashing Your Keyboard Newbs Guide (#5201)
Fixed references to a "built" (sic) command, and an incorrect word.
2019-02-21 09:24:59 -08:00
jotix
0c607f8bf7 [Keyboard] add jotanck keyboard (#5192)
* add jotanck keyboard

* Update keyboards/jotanck/config.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/jotanck/config.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/jotanck/config.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/jotanck/config.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/jotanck/jotanck.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/jotanck/jotanck.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* Update keyboards/jotanck/jotanck.h

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* requested changes

* Update keyboards/handwired/jotanck/readme.md

Co-Authored-By: jotix <47826561+jotix@users.noreply.github.com>

* add backlight support

* add default keymap image to readme

* add default keymap image to readme
2019-02-21 09:08:28 -08:00
Chris Lewis
c1c5922aae Velocikey: Match RGB animation speed to typing speed (#3754)
* Draft commit of typing speed RGB control

* More information in the readme

* Support all RGB animation modes (Fixes #1)

* Added support for all RGB light modes to use typing speed

Except christmas lights because that is seizure-inducing at high speeds!

* Introduced a value range specific to each RGB mode

Because some modes are a little too much when running at full speed!

* Update readme.md

* Update readme.md

* Re-arrange typing_speed definitions (Fixes #5) (#6)

* Re-arrange variable definitions to avoid including quantum.h from rgblight.c

* Fix a compilation error when trying to run make test:all

* Tweaks to the typing speed decay rate

* Renamed to momentum; moved implementation into dedicated files

* Groundwork for toggling momentum on/off (currently always on)

* Add EEPROM toggle for momentum-matching

* Moved momentum out of RGBLIGHT_ENABLE toggles so it's more generic

* Move momentum decay task out of rgblight_task()

* Fix missing momentum.h in lufa.c

* Experimental LED support (untested)

* Draft commit of typing speed RGB control

* More information in the readme

* Support all RGB animation modes (Fixes #1)

* Added support for all RGB light modes to use typing speed

Except christmas lights because that is seizure-inducing at high speeds!

* Introduced a value range specific to each RGB mode

Because some modes are a little too much when running at full speed!

* Update readme.md

* Update readme.md

* Re-arrange typing_speed definitions (Fixes #5) (#6)

* Re-arrange variable definitions to avoid including quantum.h from rgblight.c

* Fix a compilation error when trying to run make test:all

* Tweaks to the typing speed decay rate

* Renamed to momentum; moved implementation into dedicated files

* Groundwork for toggling momentum on/off (currently always on)

* Add EEPROM toggle for momentum-matching

* Moved momentum out of RGBLIGHT_ENABLE toggles so it's more generic

* Move momentum decay task out of rgblight_task()

* Fix missing momentum.h in lufa.c

* Added documentation

* Renamed feature to velocikey

* Reverted readme to original state

* Correct the readme title

* Updated feature name in the docs

* Update EECONFIG name

* Add compile-time toggles for velocikey

* Update feature documentation

* Revert "Merge branch 'led-support' into master"

This reverts commit e123ff5febf61639b9a9020748e1c2e2313460ff, reversing
changes made to df111a55b9d4929182e16108b1c0ead15b16df97.

* Move velocikey EECONFIG definition to depend on VELOCIKEY_ENABLE

* Rename decay_task function to decelerate

* Apply suggestions from code review

Co-Authored-By: chrislewisdev <chris@chrislewisdev.com>

* Re-order eeconfig definitions

* Apply coding conventions

* Apply #ifdef check in lufa.c

* Refactored interval time checks into one functionc

* Small rename

* Fix unused function error for layouts not using all rgb effects

* Only update EEPROM if Velocikey is enabled

* Incorporate code review feedback

* Small adjustment to top-end decay rate

* Add Velocikey documentation to table of contents

* Bring tetris:default keymap size down by disabling audio
2019-02-21 07:22:46 -08:00
Johannes Jansson
9f1d781fcb Updated hand wiring docs (#5198)
* renamed KEYMAP to LAYOUT in hand wiring docs

* added two additional guides for hand wiring
2019-02-20 17:27:27 -08:00
Chris Lewis
de0fb39403 Reduce tetris firmware size by disabling default audio (#5197) 2019-02-20 14:46:30 -08:00
Hannes Hornwall
657b44cb7c Make escape work after changing the backlight settings on the HS60 V2 (#5193) 2019-02-20 12:48:46 -08:00
noroadsleft
eb7a821c5b Markdown cleanup on Config Options doc
Descriptions for B5_AUDIO, B6_AUDIO, and B7_AUDIO under Hardware Options were partially italicized when parsed by Docsify, though rendered as intended by GitHub.
2019-02-20 12:06:15 -08:00
tw1t611
b6e1e6aeeb [Keymap] Add kinesis layout. (#5183)
* Add kinesis layout.

* Remove unneeded code.
2019-02-20 08:33:53 -08:00
MechMerlin
67495ae24a [Keyboard] Alf X1.1 QMK Support (#5189)
* initial commit

* get rid of vanilla cookie cutter code  and replace with  more correct info

* edit config file for pins and switch matrix size

* turn on bootmagic lite, and backlight/rgb settings

* copy pasta switch matrix from noroads tool

* create an appropriate keymap (copy pasta)

* disable some features to decrease firmware file size

* add qmk configurator support

* add in support for caps lock, scroll lock, and num lock leds
2019-02-19 20:57:15 -08:00
Ben
8ae83b490e [Docs] Fix typo in RGB Matrix Driver configuration (#5182)
* Fix #3797 firmware not compiling

If DRIVER_COUNT 1 firmware will not compile.

* Fix typo
2019-02-19 20:49:22 -08:00
mechmerlin
ffb75b720f move sixshooter into bpiphany directory and edit readme 2019-02-19 20:48:35 -08:00
mechmerlin
33f1259f89 get doro67 led working 2019-02-19 18:48:30 -08:00
zvecr
9a64c6b82e [Keyboard] XD84 fixes for caps lock led, backlight and firmware size (#5178)
* Enable backlight

* Enable Link Time Optimization

* Enable caps lock led
2019-02-18 16:48:52 -08:00
Takeshi ISHII
030faf951c Fix quantum/split_common/matrix.c: select_col()/select_row() (#5174)
* add temporary pdhelix(Patched Helix) code

* add test code into  quantum/split_common/matrix.c

* add test code into keyboards/handwired/pdhelix/

* Revert "add test code into keyboards/handwired/pdhelix/"

This reverts commit 9ed98f0797ddd962c99756689fc4ecb4cd067d3d.

* Revert "add test code into  quantum/split_common/matrix.c"

This reverts commit 1876d3ed69f6c213153a9f6476192be839f16c1f.

* Revert "add temporary pdhelix(Patched Helix) code"

This reverts commit 41ac92b814e3f894eaf85bc3e5bb945895342fa8.

* fix quantum/split_common/matrix.c: select_col()/select_row()
2019-02-18 13:55:20 -08:00
Drashna Jaelre
100697ebab Stop all notes on startup, if there is no song and audio is disabled to prevent continouse tone (#5173) 2019-02-18 12:32:38 -08:00
Jumail Mundekkat
149015e799 Fixed grep issue in bootloader build target (#3848)
* Changed use of '\s' in grep to '[ \t]' for portability

* Pushed DFU Keyboard.h into a shell script

* Fixed execution permissions on make_dfu_header,sh
2019-02-18 10:00:33 -08:00
upinthecloudz
0cee0764fd Fix Espectro Mac keymap and add new layout option (#4923)
* Fix Espectro Mac keymap and add new layout option

* Fix keymap

* Fix keymap
2019-02-18 09:59:08 -08:00
Drashna Jaelre
feee01192e Fix Audio Clicky by adding missing punctuation (#5171) 2019-02-18 09:53:38 -08:00
zvecr
1a6a2a7b75 Relocate usb_detach to utils (#5121)
* Relocate usb_detach to utils

* Relocate usb_detach to utils - fix up files after move
2019-02-18 09:03:44 -08:00
fauxpark
545f95c8f4 Migrate ACTION_LAYER_TAP_TOGGLEs to TT() 2019-02-18 08:52:51 -08:00
Yan-Fa Li
efef54032b [Docs] Add section about EEPROM on ARM (#5070)
* [Docs] Add section about EEPROM on ARM

* Add Preonic firmware

* Update docs/faq_build.md

add hyperlink

Co-Authored-By: yanfali <yanfali@gmail.com>
2019-02-18 08:50:22 -08:00
zvecr
fc06986989 Remove CUSTOM_MATRIX option from diode direction (#5090)
* Remove CUSTOM_MATRIX refs from DIODE_DIRECTION

* Remove '#define DIODE_DIRECTION CUSTOM_MATRIX'

* Remove CUSTOM_MATRIX refs from DIODE_DIRECTION documentation
2019-02-18 08:49:51 -08:00
zwnk
7639edb0ae [Keyboard] handwired dactyl with 2 pro micros added (#5113)
* handwired dactyl with 2 pro micros added

* dactyl_promicro README updated

* dactyl_promicro default layout fixed

* requested changes

* dactyl_promicro README updated

* qmk toolbox link fixed

* layout reflects phys. keys positions
2019-02-18 08:49:11 -08:00
Rys Sommefeldt
0e68b6c1a9 Add UK variant of the SEND_STRING() LUTs 2019-02-18 08:47:31 -08:00
Drashna Jaelre
3d4aabf251 Update Helix 'led_test' keymap (#5168)
Change to use keyboard_post_init_user() hook (#3113)
2019-02-18 08:36:41 -08:00
MechMerlin
66a86bc50c [Keymap] update keymap and readme for my 75% layout (#5166) 2019-02-18 08:36:12 -08:00
MechMerlin
f0edc993b7 [Keyboard] Winkeyless Directory (#5163)
* introduce wkl directory and readme

* move bface into winkeyless directory and edit readme for new make instructions

* move bmini into the winkeyless directory and edit readme

* move bmini ex into winkeyless directory

* edit readme some more

* add newbs guide to readmes

* fix path to bface

* temporarily turn off community layout support until we refactor this taking out all the custom ps2avrgb stuff
2019-02-18 08:35:34 -08:00
zvecr
593d08d6ae [Keyboard] Add LAYOUT_75_iso community layout support (#5161)
* Add LAYOUT_75_iso community layout support

* Add LAYOUT_75_iso community layout support - review comments
2019-02-18 08:33:10 -08:00
mtei
2cd2078b9d Update Helix 'led_test' keymap
Change to use keyboard_post_init_user() hook (#3113)
2019-02-18 19:01:37 +09:00
Konstantin Đorđević
5cb713148d Change Command keycode defaults to match corresponding Bootmagic codes (#5078)
* Change Command keycode defaults to match corresponding Bootmagic codes

* Make alternate magic key keycodes consistent

* Reflect changes from previous commit in tmk_core/common/command.c

* Remove unnecessary MAGIC_KEY_* definitions from keymaps compatible with these changes

* Swap E and BSPACE for MAGIC_KEY_EEPROM

* Add MAGIC_KEY_EEPROM_CLEAR instead of MAGIC_KEY_EEPROM_ALT

* Remove BOOTMAGIC_ENABLE checks around EECONFIG stuff

* Update Command descriptions
2019-02-17 22:23:32 -08:00
Konstantin Đorđević
4e2369693f Move RGBLIGHT_LIMIT_VAL definition from rgblight.c to rgblight.h (#5167) 2019-02-17 19:05:12 -08:00
zvecr
657d055934 Inital port of xd84 (#5164)
* Inital port of xd84

* Inital port of xd84 - review comments
2019-02-17 17:47:01 -08:00
Olivia Briggs
278a6c74f3 Add Olivia's TMO50 layout 2019-02-17 11:33:10 -08:00
James Churchill
dc5933aff7 Add clang-format section to contributing.md 2019-02-17 08:59:19 -08:00
James Churchill
ae9439a3f9 Add .clang-format file 2019-02-17 08:59:19 -08:00
rfvizarra
4eb7248401 [Keymap] rfvizarra's custom PK60 layout (#5156)
* rfvizarra's custom PK60 layout

* Update keyboards/playkbtw/pk60/keymaps/rfvizarra/keymap.c

Co-Authored-By: rfvizarra <rfvizarra@gmail.com>

* Update keyboards/playkbtw/pk60/keymaps/rfvizarra/readme.md

Co-Authored-By: rfvizarra <rfvizarra@gmail.com>
2019-02-17 08:44:27 -08:00
QMK Bot
7cbfd8d4a1 convert to unix line-endings [skip ci] 2019-02-17 15:42:49 +00:00
fauxpark
3b2a484a5b Remove redundant KC_TRNS and KC_NO fillers in remaining keymaps (#5154) 2019-02-17 07:38:46 -08:00
Thomas Spurden
8911870b45 Add isolike iris layout (#5157)
Keeps it simple and most keys in a similar position (at least relative
to other keys) to a standard ISO layout.
2019-02-17 07:36:50 -08:00
takashiski
feabafd1f4 define new keyboard "Hecomi" (#5147)
* update pinout for matrix

* first commit

* include split_common.h

* change split_common.h to split_util.h

* update config.h

* update keymap & config

* update

* remove K70, add K77

* fixed test keymap

* add Layer

* define to HHKB pro 2 based keymap

* change authoer name

* define LAYOUT and LAYOUT_KC

* replace from LAYOUT_KC to LAYOUT

* change name hecomi_alpha to hecomi/alpha

* fixed hecomi_alpha to hecomi/alpha

* remove unnecessary files

* update readme

* add DEFAULT_FOLDER

* remove hecomi_alpha because change name to hecomi

* remove bad LAYOUT macro

* remove IS_COMMAND macro

* remove unnecessary RGB options

* Update keyboards/hecomi/hecomi.h

Co-Authored-By: takashiski <takashiskibb@gmail.com>

* Update keyboards/hecomi/hecomi.h

Co-Authored-By: takashiski <takashiskibb@gmail.com>

* Update keyboards/hecomi/alpha/rules.mk

Co-Authored-By: takashiski <takashiskibb@gmail.com>

* Update keyboards/hecomi/alpha/rules.mk

Co-Authored-By: takashiski <takashiskibb@gmail.com>

* Update keyboards/hecomi/hecomi.h

Co-Authored-By: takashiski <takashiskibb@gmail.com>

* remove endif

* update rule.mk with suggestions
2019-02-16 21:44:08 -08:00
QMK Bot
39b5958ae8 convert to unix line-endings [skip ci] 2019-02-17 05:38:26 +00:00
fauxpark
e2d3c92199 Remove redundant KC_TRNS and KC_NO fillers in default keymaps (#5152) 2019-02-16 21:36:02 -08:00
zvecr
338ca3569a Add docs on using keyboard_post_init_user to enable debug modes 2019-02-16 21:20:18 -08:00
ishtob
2cee371bf1 Haptic feedback generalized - DRV2605 and solenoids (#4939)
* initial work to add eeprom to haptic feedback and decouple the feedback process from keyboards

* Haptic feedback enhancements: on/off toggle working, feedback order working
todo:
-work on modes switching
-get modes switching to save to eeprom

* haptic enhancement - eeprom and modes added

* Added set and get functions for haptic feedback

* initial implementation of solenoids under haptic feedback

* changed eeprom to 32 bits to reserve blocks for future features

* start documentation of haptic feedback

* change keycode per comment from reviewers

* typo fixes

* added eeprom for solenoid configs

* added solenoid and docs

* Add/fix default parameters configs, improve docs

* more doc cleanup

* add in solenoid buzz toggle, clean up doc

* some fixes for error in compiling solenoid

* fix a chibios specific i2c read function and added one for AVR controllers in DRV2605L.c

* fixes for avr side issues

* update keymap

* fix keymap compile error

* fix bugs found during solenoid testing

* set pin that is not powered during bootloader

* added warning about certain pins on the MCU may trip solenoid during DFU/bootloader
2019-02-16 18:39:30 -08:00
Rodrigo Feijao
a7a647b7f6 Add support to XD60 Rev3 (#4938)
* Add preliminary support to XD60 Rev3 PCB (Supports the 12 underglow LEDs, but split spacebar still not wired/implemented).

* * xd60_rev3 folder removed
* xd60 rev2 and rev3 added
* ifndef replaced with pragma once at rev3 config.h

* Readme updated

* new updated statement at keyboards/xd60/readme.md

Co-Authored-By: rodrigofeijao <hello@rodrigofeijao.com>

* Update keyboards/xd60/readme.md

Co-Authored-By: rodrigofeijao <hello@rodrigofeijao.com>

* Update keyboards/xd60/readme.md

Co-Authored-By: rodrigofeijao <hello@rodrigofeijao.com>

* Update keyboards/xd60/readme.md

Co-Authored-By: rodrigofeijao <hello@rodrigofeijao.com>

* Update keyboards/xd60/readme.md

Co-Authored-By: rodrigofeijao <hello@rodrigofeijao.com>

* * XXXXX removed and replaced with 7X
* removed unecessary declarations

* Update keyboards/xd60/keymaps/styr/keymap.c

Co-Authored-By: rodrigofeijao <hello@rodrigofeijao.com>

* action_layer.h include removed

* * action_get_macro removed
* IS_COMMAND() removed
* BOOTLOADER defined
2019-02-16 18:34:07 -08:00
Drashna Jaelre
16226274c9 Add numpad_5x6 layout support for Prime M keyboard (#5149)
* Add numpad_5x6 layout support for Prime M keyboard

* fix default layout
2019-02-16 18:30:14 -08:00
Drashna Jaelre
cbb7e91851 Update Drashna user space code to support keyboard_init functions (#5138)
* Update code to support keyboard_init functions

* Get Minor tweaks
2019-02-16 18:28:04 -08:00
VM
c8577a9a73 [omgvee:keymap] minor changes and fw size optimizations (#5150)
- flags for the linker
 - added INSERT key as I kinda use it for work fairly often
 - turned on more things in rules.mk since I recovered space via linker
flags and whatnot
2019-02-16 18:21:01 -08:00
Øyvind Wilhelmsen
f2d597d1d3 Planck Keymap for oeywil (#5145)
* adding my keymap

* fixed includes

* removed comments

* removed keymap_config_t
2019-02-16 08:11:56 -08:00
fauxpark
bbd4b5eb88 Remove redundant KC_TRNS and KC_NO fillers in layouts (#5142) 2019-02-16 08:11:15 -08:00
Rys Sommefeldt
3309e91e0b [Keymap] Add new layout for wilba_text WT8-A (#5141) 2019-02-15 16:59:03 -08:00
fauxpark
e04e55c872 Remove redundant KC_TRNS and KC_NO fillers in userspace (#5140) 2019-02-15 16:18:13 -08:00
Rys Sommefeldt
83de3dff01 [keymap] Add new keymap for TADA68 (#5120)
* Add new layout for TADA68

* Remove unnecessary KC_TRNS defines from tada68/mattgemmell and tada68/rys
2019-02-15 14:40:56 -08:00
Mikkel Jeppesen
6f50c7eba1 Added APA102 support (#4940)
* Fixed pin for RGB

* Re-did apa102 stuff

* changed to use pincontrol functions

* Removed a newline?

* Changed to comply with project style
2019-02-15 11:32:31 -08:00
Daniel H Klein
2ba54690e6 Fix height in info.json for Unigo66 (#5137)
* UniGo66 keyboard added

* UniGo66 keyboard added

* case correction of unigo66 files

* create sirius folder

* Update keyboards/sirius/unigo66/rules.mk

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/default/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* debugging

* correct keymap to layout

* readme

* remove common config

* suggested changes to config.h

* default keymap cleanup

* bug fixes

* fixed height in info.json
2019-02-15 11:25:02 -08:00
Jayesh Vora
222380c636 Fix documentation about one shot tap toggle
Based on conversation with Drashna on Discord, we know that if ONE_SHOT_TAP_TOGGLE is 5, then tapping a one shot mod key 5 times holds the one shot key permanently, but to come out of this, you need to press the same key only once.
2019-02-15 09:02:06 -08:00
Eduardo Lourenço Pinto Neto
9b3f397ab2 Update README.md (#5135)
Update to new structure
2019-02-15 08:58:38 -08:00
Eduardo Lourenço Pinto Neto
ecdf14bb62 Update keymap.c (#5136)
Fix minor bug on toggle layer code from Mac to Windows layer.
2019-02-15 08:23:44 -08:00
Erovia
642f6cf14f Add support for using ranges for RGB (#4981)
* Add support for using ranges for RGB

This patch adds support for controlling continuous ranges of RGB LEDs.
Helper functions for split boards are also available.

* RGB Range: Use hardware-platform agnostic wait
2019-02-15 06:52:04 -08:00
Yan-Fa Li
f3bdd436a3 Update KC_GESC documentation (#5053)
* Update KC_GESC documentation

 - document caveats on OSX and expected behavior with KC_GESC and GUI
 - clarify documentation slightly
 - give examples of expected output in actual use

* Update OSX -> macOS

* Captilization

* remove simply
2019-02-15 06:50:28 -08:00
Samuel Jahnke
d04485e32c Add samuel's literate keymap file for planck (#4998)
* added my own keymap

* changed thing

* updated keymap Samuel

* updated laypout for better one handed use

* updated stuff I want

* happy with my lagout

* formatting

* Added new literate config

* made everything nice

* cleaned

* fixed spelling and two small bugs in macros

* Made press and lift function for modifiers
2019-02-15 06:49:02 -08:00
zvecr
f61c99fdda Remove duplication of ssh keys and fix usage on PR builds (#5013) 2019-02-15 06:47:47 -08:00
Konstantin Đorđević
cd369b7107 docker_build.sh: Run container in interactive mode (#5088)
* docker_build.sh: Run container in interactive mode

* Add message about QMK Toolbox

* Update Docker docs
2019-02-15 06:46:42 -08:00
Drashna Jaelre
cc146e32dc Improve RGB Light code (#4326)
* Improve RGB Light code

* Add is_rgblight_initialized as an externed value in rgblight.h

* Use remander of hue
2019-02-15 06:37:44 -08:00
Shihpin Tseng
68fad7b777 Enable custom chibios sub-platform 2019-02-14 21:06:26 -08:00
fauxpark
7c2bee8b88 Swap KBD75 caps lock LED pin levels (#5132) 2019-02-14 21:01:40 -08:00
Ben
1e1b55fbdf Improve Encoder documentation (#5130) 2019-02-14 21:00:57 -08:00
Konstantin Đorđević
d7754a19b9 Remove problematic unicode_map stub definition in process_unicodemap.c (#5110)
* Remove problematic unicode_map stub definition in process_unicodemap.c

* Add unicode_map declaration to process_unicodemap.h

* Disable UNICODEMAP on converter boards that don't use it
2019-02-14 20:55:31 -08:00
fauxpark
3a3de84e40 Tweak issue templates (capitalisation mostly) (#5133)
* Tweak issue templates (capitalisation mostly)

* Consistent headings
2019-02-14 20:44:27 -08:00
Drashna Jaelre
c22f3ba3a2 Debounce refactor / API (#3720)
* Added xeal60 via clone of lets split

* Delete removed other keymaps

* Basic keymap (no FN). Compiles.

* Removed NP_STAR and NP_SLSH.

* Removed "debounce_algo = manual" in all keyboards with CUSTOM_MATRIX = yes.

* Changed order of rules in TMK. Documented feature.

* Fixed missing whitespace in debounce documentation

Table wasn't working due to missing newline.

* Added bold in a few areas.

* DO NOT USE - Removed debounce from TMK.

* Remove accidental xeal60 commit

* DO NOT USE - debounce successfully compiled.

* DO NOT USE Revert back to original API to support split_keyboards.

* Working eager_pk

* Whitespace cleanup.

* Restored debounce.h since there wasnt any real change.

* Moved debouncing_time variable  to inside #if debounce

* Removed check for custom_matrix. We can safely include the debounce file for compilation when custom_matrix is used.

* Removed #include "matrix.h" from debounce.h

* Bug fix - was using MATRIX_ROWS instead of num_rows

* Fixed compilation error with debounce_sym_g

* Renamed DEBOUNCE_ALGO to DEBOUNCE_TYPE

* Malloc array in debounce_eager_pk, since split keyboards only use MATRIX_ROWS/2.

* Fix compile error in debounce_eager_pk

* Stricter, leaner DEBOUNCE_TYPE section in common_features.mk. Cleanup debounce_type.mk
2019-02-14 20:36:20 -08:00
Drashna Jaelre
cc5c6b449a Add kb and user level keyboard initialization functions (#3113)
* Add suspend functions

* Disable RGB code if it's disabled

* Add keyboard_init functions

* Change where references so it will compile

* Wrong command chained in wake up kb function

* Fix non-feature file changes

* Add documentation

* Re-add matrix init docs

* add rgblight code to example

* Remove suspend code

* Clean up docs

* Fix docs

* Fix suspend code

* more doc fixes

* change function to startup_* rather than keyboard_init_

* fix spelling error

* fix up docs to finish removing keyboard_init

* Use Pre and Post init functions

* Update Documenation

* Remove changes to my keymap and userspace code

* Cleanup

* Revert changes to extra files

* Forgot a semicolon

* Make sure all protocols call keyboard_setup

* Cleanup functions

* Unset startup_user

* Remove changes from division keyboard

* Readd startup_user function

* Remove all to startup_user

* Update docs/custom_quantum_functions.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/custom_quantum_functions.md

Co-Authored-By: drashna <drashna@live.com>

* Add suggestion line

* Rebase fixes

* Update documentation to be more useful/accurate

* Cleanup of documentation

* Fix spacing inconsistency

* Revert unexpected change to keymap
2019-02-14 20:18:54 -08:00
zvecr
40e67a3074 Add a mechanism for force building a particular community layout (#5027)
* Add a mechanism for force building a particular community layout

* Add docs for FORCE_LAYOUT argument

* Update output name when FORCE_LAYOUT is enabled
2019-02-14 20:14:26 -08:00
Drashna Jaelre
85022f8bb5 Fix ARM Audio issues and its EEPROM persistence (#4936)
* Don't click if turning audio off

On ARM, playing the click when turning off audio causes the audio get stuck and continually play the tone

* Fix Audio EEPROM support for ARM

* Update touched files to conform to QMK Coding Conventions

* Add better check for ARM EEPROM support
2019-02-14 20:12:37 -08:00
fauxpark
9e4ac6cf29 Migrate fn_actions for default keymaps (#4935)
* Migrate fn_actions for default keymaps

* Rename the Grave/Escape Shift masks

* No need for shift_esc_shift_mask

* Change breaks to return false

* Right align pointers

* Add default case

* Separate cases with empty lines
2019-02-14 20:07:13 -08:00
Takeshi ISHII
d5bc7fc157 Add makefile target 'show_build_options' and 'show_all_features' (#5048)
* Add makefile target 'show_build_options' and 'show_all_features'

Example:
```
$ make  planck:default:show_all_features
QMK Firmware 0.6.266
Making planck/rev5 with keymap default and target show_all_features

 PLATFORM = AVR
 FIRMWARE_FORMAT = hex

Build Options:
  BOOTMAGIC_ENABLE = no
  MOUSEKEY_ENABLE = no
  EXTRAKEY_ENABLE = yes
  CONSOLE_ENABLE = yes
  COMMAND_ENABLE = no
  SLEEP_LED_ENABLE = no
  NKRO_ENABLE = yes
  BACKLIGHT_ENABLE = no
  RGBLIGHT_ENABLE = no
  MIDI_ENABLE = no
  UNICODE_ENABLE = no
  BLUETOOTH_ENABLE = no
  AUDIO_ENABLE = yes
  FAUXCLICKY_ENABLE =
  HD44780_ENABLE =

Other Features:
  API_SYSEX_ENABLE = no
  RGB_MATRIX_ENABLE = no
```

* remove duplicate 'SPLIT_KEYBOARD'

* add .PHONY, change 'echo' -> '@echo'

* update show_options.mk: useing variable BUILD_OPTION_NAMES, HARDWARE_OPTION_NAMES and OTHER_OPTION_NAMES

* update show_options.mk: add KEYBOARD,KEYMAP

* update show_options.mk: add sorting

* update show_options.mk: add show_full_features, add $(origin XXX)

* update show_options.mk: Macro names was collected from keyboards/.

* update show_options.mk: add some Macro Names
2019-02-14 17:52:58 -08:00
Drashna Jaelre
a08be85780 Add pin initializiation for KBD75 (#5129)
So that the LED indicator actually works
2019-02-14 13:28:14 -08:00
Danilo Vulicevic
1e6797b4e7 [Keymap] Add my personal userspace and update my keymaps (#5128)
* Add billypython userspace and dz60 keymap

* Disable Bootmagic in dz60:billypython keymap

* Update whitefox:billypython keymap with userspace changes

Also remove numpad layer
2019-02-14 12:09:27 -08:00
noroadsleft
ce465c084b Updates to noroadsleft keymap for KC60 (#5127)
* NUBS_Z: initial version

Create a keycode that is normally Z, but KC_NUBS when tapped while Alt is being held.

This removes the possibility of using an Alt+Z shortcut.

* NUBS_Z: modification

Modify NUBS_Z macro to only use alternate operation if Right Alt is being held, rather than responding to either Alt key.

Also add QMK version keycode to System layer, Equals key.

* Remove unneeded breaks from process_record_user

* Macro refactoring

- removed G_RST and G_C10R macros
- updated G_BRCH macro
  - outputs `master` if used while Shift is held down; or my git alias for the current branch otherwise
- updated G_FTCH macro
  - outputs `git pull upstream ` if used with Shift; `git fetch upstream ` otherwise
- swapped `modifiers` variable for `get_mods()` function directly for checking modifier state
- swapped keymap-level modifier mask macros for QMK-core mod mask macros (thanks vomindoraan #4337)
- renamed MODS_RALT_MASK to MOD_MASK_RALT (more consistent with the above change)

* Update readme files
2019-02-14 07:07:32 -08:00
Drashna Jaelre
54f18ce0f7 [Keymap] Update to Drashna keymaps and Userspace (#5122)
* Proper rules include

* Minor tweaks

* Minor tweaks

* Add Desitny 2 Swapped layout support

* Add keycode to keylogger

* Convert my viterbi keymaps

* Fix Orthodox keyboard

* Add more default layers

* Make default layer keycodes more optimized

* Update gitlab CI yaml file

* Rev6 Cleanup

* Fix KC_MAKE macro

* Update GitLab CI yaml file

* More GitLab CI changes

* One final GitLab CI change

* Optimize KC_MAKE

* Reformatting of config

* Feature creeeeeeep

* Planck Rev6 updates
2019-02-13 21:11:56 -08:00
stanrc85
9841c64de9 Fix ESC on Default ANSI layer (#5125) 2019-02-13 21:08:22 -08:00
MechMerlin
6471273149 [Keyboard] KBD19x Bootmagic Enable (lite) and other fixes (#5126)
* set bootmagic from no to lite and put in a note in the readme

* use pragma once

* discovered a compile error when testing with default keymap. The inlined led functions need to be externed in the .c file

* might as well turn on mouse keys as well
2019-02-13 19:49:04 -08:00
Frederick Hirsch
31b75c75fd [Keymap] Add fsck keymaps for eco, planck and preonic (#5106)
* Add the fsck keymaps for eco, planck and preonic

* Review changes for fsck layout
2019-02-13 17:51:16 -08:00
Daniel H Klein
8cd6cfcb77 [Keyboard] Unigo66 beta pcb added, bug fixes for flashing (#5108)
* UniGo66 keyboard added

* UniGo66 keyboard added

* case correction of unigo66 files

* create sirius folder

* Update keyboards/sirius/unigo66/rules.mk

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/default/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* debugging

* correct keymap to layout

* readme

* remove common config

* suggested changes to config.h

* default keymap cleanup

* bug fixes

* beta user pcb added, flashing fixed

* syntax fix

* updated info.json

* fix spelling

* fix readme
2019-02-13 11:03:10 -08:00
buhearns
918a52da61 [Keymap] Adding buhearns keymap (#5105)
* [Keymap] Adding buhearns keymap

* Removing deprecated function

with fauxpark's help

* Update readme.md

* Switching to UNICODE_ENABLE

with drashna's help

* Update rules.mk

* Update config.h

* Update config.h

Tidying up

* Update keymap.c

Tidying up

* Update readme.md

Tidying up

* Update rules.mk

Tidying up

* Removing GESC and adding TILD
2019-02-13 09:16:04 -08:00
MechMerlin
9a05c5d787 [Keyboard] New Keyboard: Doro67 Regular PCB (#5115)
* initial commit with edits to vanilla code

* Add QMK Configurator support

* add an appropriately generated keymap

* pins, matrices, and features added in

* moved it all to a regular directory. It's called regular as that's what it's called in the group buy. In the future we will have other directories for the other PCBs that are delivered to customers.

* forgot caps lock led support

* Update keyboards/doro67/regular/keymaps/default/config.h

Use the NAME

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update keyboards/doro67/regular/readme.md

Be more explicit

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>
2019-02-13 08:59:38 -08:00
Andrew Kannan
6b4549da8c Add Satisfaction75 to QMK, Enable EEPROM on stm32f072 (#5094)
* Add stm32f072 base ck4x4 to handwired

* add prints

* Save these tries

* Save changes again

* Working hadron oled

* OLEd working but ws2812b still iffy:

* save another try

* Encoder feature + OLED

* RTC code

* Implement clock setting mode

* Whitespace

* Encoder hooked up to working LED PWM code

* Add missing files

* eeprom changes

* Save changes

* Move i2c master

* Move satisfaction75 under cannonkeys

* Set proper default folder

* Revert some core changes

* Undo paved iris changes

* Reorganize code for maintainability and prep for new features

* Add starting code for clock OLED mode

* Clock set mode finished

* Add custom encoder modes

* Actually add VIA keymap

* Gate to only 072

* fix gate for only 072

* Update header guards and includes

* Update i2c selection strategy

* Update board.c to handle software reset to DFU
2019-02-13 08:03:26 -08:00
Drashna Jaelre
824aa06c3c Fix travis_compiled_push.sh script issue (#5114)
* Fix travis_compiled_push.sh script issue

* fix typo

* properly fix push script
2019-02-12 21:01:58 -08:00
Wilba
9cb4c5c092 [Keyboard] Added aeboards/aegis (#5099)
* Added aeboards/aegis

* PR changes
2019-02-12 17:05:34 -08:00
zvecr
6fcc6538c7 [Keyboard] Refactor jj4x4 to enable ortho_4x4 LAYOUT (#5112)
* Correct configurator info.json

* Refactor to support ortho_4x4

* Refactor to support ortho_4x4 - remove commented out code
2019-02-12 17:04:47 -08:00
Danny
b2ee290c9f [Keyboard] Move Keebio boards to own folder (#5109)
* Move boards into keebio folder

* Rename keymap

* Update BDN9 files

* Update BFO-9000 files

* Update Chocopad files

* Update Dilly files

* Update Fourier files, collapse rev1 into main

* Update Iris files

* Update Laplace files

* Update Levinson files, fix buswerks keymap

* Update Nyquist files

* Fix keymap issues

* Update Quefrency files

* Update Rorschach files

* Update TF68 files

* Update Viterbi files

* Update Viterbi files

* Update Wavelet files

* Reformat default layout

* Fix up default folder for Iris

* Remove already defined aliases
2019-02-12 16:57:24 -08:00
kwerdenker
994852712d [Keymap] Plain60 rgb (#5104)
* Fix compile error if not used with VIA

* Add keymap with support for RGB

* Integrate changes from PR code review
2019-02-12 16:48:05 -08:00
Dusty Pomerleau
15297bcfce [Keymap] Add Minidox keymap by dustypomerleau (#5101)
* add dusty keymap

* change keymap folder to match my github username

* initial keymap completed in comments only

* layout without NAV completed in comments only

* disable Command to prevent interference with Space Cadet keys

* switch _ and \ in the symbol layer

* Layers complete through _NAV

* add thumb keys to _NAV

* complete _NUM

* all layouts complete; still needs `process_user_record()`

* completed first draft of keymap; still needs config.h to match

* corrected keycodes for Mac macro-volume keys

* fix Mac mute keycode

* add missing Mac keycodes for previous and next track

* placeholder for qwerty layout, not yet completed;

remove unnecessary breaks;

add todos

* eliminate Preonic branch before switching to Minidox branch:

• delete dustypomerleau Preonic keymap folder

• complete keymap.c (QWERTY layer, vanilla numbers layer)

TODO:
• add preferences to config.h
• complete the README

* edit commented keymap diagrams for clarity in dual function keys

* define initial config.h and add rules.mk for mouse key support

* fix redundant line after implementation of tap_code()

* fixed key_timer declaration, added README and rules

* formatting of keymap

* add CTPC to config

* cycle thumb keys to favor center position

* modify config.h for temporary Pro Micro compatibility

* remove superfluous call to use serial; homebrewed mod tap keys are still broken with OSL

* merge _SYS and _MEDIA on new Z_SYS key

* ALT_OP example of new MT macro complete

* initial narze-inspired MT fixes in PRU

* add (currently superfluous) custom keycode for the _SYS layer

* rudimentary `OSL` symbol macros that immediately register the mod and fail to reset the oneshot layer, but do output the proper keys—fix both of these things

* remove permissive hold to improve tapping performance

* remove calls to `clear_oneshot_layer_state()`, as they have no effect inside `process_record_user()`. Tapdance appears to be the way forward.

* final commit before tapdance code; correct layout in comments

* initial tapdance code for shifted mod taps

* add numeric and ergo NUM layers and pinky shifts for keycuts

* add TD() wrappers to tapdance codes and clean up commented layout guides

* add faux return to cur_dance to allow compilation - TODO: research what the default clause should be in cur_dance

* update commented schematics for better readability

* add backspace and delete to lockable layers, Z_SYS -> SYS_Z for consistency, fix schematic errors

* add `DOUBLE_SINGLE_TAP` to tapdance cases to allow doubling of the single tap character without waiting tapping term

* remove reduced oneshot tapping toggles

* update README

* newline tweak :)

* Update keyboards/minidox/keymaps/dustypomerleau/keymap.c

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* Update keyboards/minidox/keymaps/dustypomerleau/config.h

Co-Authored-By: dustypomerleau <dustypomerleau@users.noreply.github.com>

* remove `PREVENT_STUCK_MODIFIERS`, as this is default behavior
2019-02-12 16:46:40 -08:00
Drashna Jaelre
d3f7910e68 Remove AUTOGEN and fix Travis Compiled Push scripts (#5077)
* Grab HEX and BIN files from autogen

And push them to qmk.fm/compiled

* Make autogen copy extension agnostic

This way, when travis cl scrpit looks for hex files, it will actually grab bin files, and not hex files for ARM boards

* Handle the AUTOGEN in :bin target to properly handle edge cases

Both the TADA68 and ATSAM boards generate the hex file and then convert it to a bin file. The changes I made does not handle this well, at all.  This removes the hex and replaces it with a bin, if a bin is normally generated.

* Revert hex target to original copy command

* Check hex and bin separately in compile push script

Since I don't know how to script this, well

* Simplify push to compiled folder

* Further simplify compiled push script

* Move AUTOGEN parsing to a more sane location to prevent tech debt

Thanks to skully!

* Remove AUTOGEN completely, as it's not needed

This has the benefit of making everything super simple, since we can pull every hex and bin from the root of the qmk_firmware folder, and move that to th compiled folder.  This also removes old and unneeded code, and removes some tech debt that has been accrued, without adding more, in theory.
2019-02-12 16:46:04 -08:00
Wilba
c5e10b7203 Added WT75-A, refactor wilba.tech PCBs (#5100)
* Added WT75-A, added "via" keymaps to wilba.tech

* Missed file last commit
2019-02-12 12:59:56 -08:00
MechMerlin
516f516062 [Keyboard] Space65: RGB Animations on by default (#5097) 2019-02-11 18:29:57 -08:00
Mike Bell
0b3b80afc1 Add digital layout for KBD75 (#5095)
* Initial commit of digital kbd75 layout

* Add readme

* Update readme

* Update readme with suggestions
2019-02-11 06:29:11 -08:00
skullY
c5221fa1cb fix the led_matrix.h naming conflict 2019-02-10 15:37:12 -08:00
skullY
5fc2421811 Put back an accidentally stripped copyright 2019-02-10 15:37:12 -08:00
skullY
1a680c1d6a cleanup 2019-02-10 15:37:12 -08:00
skullY
84879f28a3 fix compiling for backlight without led matrix 2019-02-10 15:37:12 -08:00
skullY
c080a3e7c4 cleanup 2019-02-10 15:37:12 -08:00
skullY
32116f1a45 Move the 1 second delay to led_matrix_init 2019-02-10 15:37:12 -08:00
skullY
24df54b807 Add documentation for led matrix 2019-02-10 15:37:12 -08:00
skullY
cc738e32dd Force backlight on when led matrix is enabled 2019-02-10 15:37:12 -08:00
skullY
6b74dd6de5 led_matrix works now 2019-02-10 15:37:12 -08:00
skullY
bf2670601d compiles, but long delay on startup and problems 2019-02-10 15:37:12 -08:00
skullY
159191a874 revert accidental rgb_matrix.h changes 2019-02-10 15:37:12 -08:00
skullY
fd698c43d7 The beginning of a simple led matrix driver for is31fl3731 2019-02-10 15:37:12 -08:00
mikethetiger
aeafcc9fd3 [Keymap] Added my THE50 Keymap (#5093)
* adding my planck keymap

* adding my planck keymap

* added my espectro keymap

* the50 keymap
2019-02-10 12:52:03 -08:00
GreenShadowMaker
65d3afc915 [Keyboard] Update ergodash readme.md (#5092)
Clarification of Keys to Keymap note added
2019-02-10 12:50:55 -08:00
TerryMathews
6ba39689d3 [Keyboard] Initial support for TKC M0LLY (#5087)
* Initial support for TKC M0LLY

* Remove depreciated Magic Keys define

* Update keyboards/m0lly/README.md

Co-Authored-By: TerryMathews <terry@terrymathews.net>

* Update keyboards/m0lly/README.md

Co-Authored-By: TerryMathews <terry@terrymathews.net>

* Update keyboards/m0lly/info.json

Co-Authored-By: TerryMathews <terry@terrymathews.net>

* Update keyboards/m0lly/info.json

Co-Authored-By: TerryMathews <terry@terrymathews.net>

* Update keyboards/m0lly/m0lly.h

Co-Authored-By: TerryMathews <terry@terrymathews.net>

* Suggested review changes
2019-02-10 12:44:39 -08:00
takashiski
6848002601 [Keyboard] Namecard rev2 (#5080)
* add revision

* change to row2col

* remove old config.h

* remove rule.mk from namecard2x4/
2019-02-10 12:40:31 -08:00
Joshua Bragge
e251850cd8 added missing ; on example (#5089) 2019-02-09 09:18:08 -08:00
Braydon Bubnick
932d96ad56 [Keyboard] 1up60hte Readme update (#5075)
* Tweaks to default 1up60hte layout + support for HHKB style layout

* Added changes to layouts

* Fix config.h

* Fixed errant KC_NO in layout

* Added readme to keyboard... Will update with images/store link when avail.

* Update to use LAYOUT_60_hhkb default layout

* md formatting fix

* Update keyboards/1upkeyboards/1up60hte/readme.md

Co-Authored-By: bubnick <bubnick@users.noreply.github.com>

* Update keyboards/1upkeyboards/1up60hte/readme.md

Co-Authored-By: bubnick <bubnick@users.noreply.github.com>

* Added layout to rules.mk, fixed layout to be compatble with community HHKB keymaps

* Added image, updated store page to readme
2019-02-08 15:37:23 -08:00
Danny
f4f75acbd6 [Keyboard] Update default keymap, change RGB LEDs to 4 for Rev. 1.1 (#5086) 2019-02-08 15:35:49 -08:00
Danny
aea45c5483 [Keymap] Add HHKB JP keymap for bakingpy (#5084) 2019-02-08 15:34:44 -08:00
Danny
6fa0c48563 Convert Viterbi to use split_common, add rev2 (#5085)
* Convert Viterbi to use split_common, add rev2

* Update keyboards/viterbi/rev2/config.h

Co-Authored-By: nooges <nooges@users.noreply.github.com>

* Update keyboards/viterbi/rev2/config.h

Co-Authored-By: nooges <nooges@users.noreply.github.com>
2019-02-08 15:33:27 -08:00
skullY
bcb1815420 Add label to the info.json reference 2019-02-08 15:13:20 -08:00
skullY
83f74dd94c fix the case for some elements 2019-02-08 15:13:20 -08:00
noroadsleft
c6183ab4fc Update docs/reference_info_json.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
skullY
aeee735f35 Clarify LAYOUT vs LAYOUT_all 2019-02-08 15:13:20 -08:00
skullY
330e2e6af5 Address comments in #4832. Move info.json reference to its own file. 2019-02-08 15:13:20 -08:00
Konstantin Đorđević
24b7d058e2 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
a45b625b62 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
a5f1581316 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
5fdb398e0a Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
bd9be8af4a Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
59bf9127f2 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
b577b3b461 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
a47860e7e3 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
096b480e3d Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
9f2f9b5333 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
Konstantin Đorđević
7e44618325 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
fauxpark
81a5e4d718 Update docs/hardware_keyboard_guidelines.md
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
2019-02-08 15:13:20 -08:00
skullY
154e1d99c3 tweak the keyboard guidelines 2019-02-08 15:13:20 -08:00
skullY
c3e0ef4d8a Update the keyboard guidelines 2019-02-08 15:13:20 -08:00
Danny
941f8678a4 Add support for Quefrency left half with 2x5 macro section (#5051) 2019-02-08 13:20:38 -08:00
Edmund Miller
be3a59d0ff [Keymap] Add Emiller Personal planck layout (#4249)
* Add emiller

* Add Num Layer

* Update QWERTY

* Update Raise and Lower

* Add right shift to match ergodox

* Update keyboards/planck/keymaps/emiller/config.h

Co-Authored-By: Emiller88 <edmund.a.miller@gmail.com>

* Update keyboards/planck/keymaps/emiller/config.h

Co-Authored-By: Emiller88 <edmund.a.miller@gmail.com>

* Update keyboards/planck/keymaps/emiller/config.h

Co-Authored-By: Emiller88 <edmund.a.miller@gmail.com>

* Update keyboards/planck/keymaps/emiller/keymap.c

Co-Authored-By: Emiller88 <edmund.a.miller@gmail.com>

* Update keyboards/planck/keymaps/emiller/keymap.c

Co-Authored-By: Emiller88 <edmund.a.miller@gmail.com>

* Update keyboards/planck/keymaps/emiller/config.h

Co-Authored-By: Emiller88 <edmund.a.miller@gmail.com>

* Add revisions

Co-authored-by: drashna <drashna@live.com>
2019-02-07 15:32:39 -08:00
Pierre Constantineau
6be078445c Merge ErgoTravel default keymap to match Group Buy orders (#5071) 2019-02-07 15:30:40 -08:00
Daniel H Klein
76da6ec061 [Keyboard] Unigo66 fixes and improvements (#5060)
* UniGo66 keyboard added

* UniGo66 keyboard added

* case correction of unigo66 files

* create sirius folder

* Update keyboards/sirius/unigo66/rules.mk

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/default/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* debugging

* correct keymap to layout

* readme

* remove common config

* suggested changes to config.h

* updates and fixes
2019-02-07 15:24:34 -08:00
Brice Figureau
6affec582b Regroup all Exclusive keyboard in one directory
To reduce clutter in the `keyboards/` directory, this patch moves all
keyboards definitions for Exclusive boards to its own subdirectory.
2019-02-07 15:22:55 -08:00
Erez Zukerman
c789577675 Adds a period to the docs.
Yes, really. Revolutionary, I know!
2019-02-07 13:30:17 -08:00
Yan-Fa Li
3a513fc3a3 [Docs] Bootmagic Lite Caveat (#5069)
Document that using bootmagic lite resets the eeprom every time.
2019-02-06 16:43:47 -08:00
stanrc85
f1c7718463 [Keymap] stanrc85 Keymap updates (#5066)
* Rename aliases to better reflect keycodes used

* Update readme to reflect changes in keymap

* Disabled more unused options to reduce memory usage

* Remove backlight keycodes and move RGB keycodes

* Update to reflect changes in keymap

* Disable backlight option

* Spacing
2019-02-06 14:58:00 -08:00
Robin Hallabro-Kokko
4397b17ca0 faq_build.md: Add section about serial devices on Linux 2019-02-06 14:56:40 -08:00
Chuck Lauer Vose
a3104a7110 [Keyboard] Initial commit of Laptreus Keyboard (#4967)
* Add userspace files for vosechu

* Code review corrections

* Few more code review corrections

* Initial add of Laptreus code

* Initial add of Laptreus code

* Adding last punctuation to default

* Add some debug suggestions to the debug readme

* Fixes for PR feedback

* Fixing capitalization of readme files

* update auto detect connection logic
2019-02-06 14:41:17 -08:00
Drashna Jaelre
35f6919673 Fix Bootmgic Mod Handling for LM keycodes (#4740) 2019-02-06 12:43:25 -08:00
MechMerlin
afa4763ef5 [Keyboard] Update the Scarlet Bandana (#5058)
* remove unneeded file

* make an appropriate readme

* amend the LAYOUT macro to adhere to new QMK standards and create an appropriate keymap

* add QMK Configurator support

* a bunch of changes lol

* delete unneeded routines

* update date to modern times

* remove a useless prototype

* add in drashna's suggestions on PR
2019-02-06 12:41:14 -08:00
adiron
80e733798a Fixed default Preonic keymap's encoder hadnling (#5067)
The function had the wrong name & arguments. This commit fixes this.
This in turn should also close issue #4997
2019-02-06 11:35:45 -08:00
Konstantin Đorđević
f1be0236b6 Remove unnecessary IS_COMMAND definitions from recently added keyboards (#5065) 2019-02-06 11:28:47 -08:00
Jeremy Bernhardt
045400ab28 Update gergo.h
Did a big brane move and mixed those up. Been using this keyboard for weeks and never noticed.
2019-02-05 22:16:41 -08:00
Rys Sommefeldt
9986c3d0b7 Add another secure string emitter to the keymap (#5057)
* Add another secure string emitter to the keymap

* Delete BACKLIGHT_ENABLE since it's default

Co-Authored-By: rys <rys@pixeltards.com>
2019-02-05 15:58:01 -08:00
Cole Markham
0affcc8bc3 Add Scarlet Bandana Version IV mark.2 (#3397)
* Add scarlet bandana

* updates for scarlet bandana
2019-02-05 14:56:17 -08:00
Anthony
5c7a31eae2 Improvements to Space Cadet Shift (#3856)
* Improvement of Space Cadet Shift by preventing to automatically apply a modifier on the key and allow to override the default modifier. Closes qmk/qmk_firmware#3815

* Improve the use of the DISABLE_SPACE_CADET_MODIFIER flag to avoid unregistering KC_LSFT when equals to LSPO_MOD

* change #if to if statement
2019-02-05 10:36:26 -08:00
Thomas Baart
47051f506f Add One Shot Key callbacks (#4697)
* Added callbacks to one shot modifier changes

* Altered signature of callback functions

* Reordered the callback methods, shortened brief documentation

* Added One Shot Modifier callback documentation

* First attempt at unit tests

* Revert "First attempt at unit tests"

This reverts commit 5ec21a782202c0d74cf21cb852bd319f0c8b4842.

* Simplified oneshot function implementations

* Made clear_oneshot_locked_mods to be conform action_util.h, adhering to the (void) signature

* Made used datatypes for oneshot mods consistently unsigned integers

* Corrected callback to call clear callback when clear_oneshot_locked_mods is invoked

* Simplified oneshot equals statements

* Corrected return type and signature of get and set oneshot locked mods

* Consolidated one shot callbacks, added initial layer callback version

* Fixed non-updating one shot layer variable after timeout or other clear, added code comments

* Added better one shot key docs
2019-02-05 10:19:56 -08:00
sprayed
7df9e584fa [Keyboard] Add support for jj4x4 numpad/macropad by Kprepublic (#5016)
* added keyboard jj4x4, a shorter version of the jj40

* removed useless file

* edited jj4x4 readme.md

* optimized array size in jj4x4 config.h, removed reference to jj40 layouts from rules.mk

* removed custom matrix for this ps2avrgb board, refactored column and row pins
2019-02-05 10:01:35 -08:00
Carlos
d4e1e712f6 dd Honeycomb macropad (#5000)
* Add Honeycome macropad

* Replace pragma, update info

* Update code based on review
2019-02-05 09:59:10 -08:00
fauxpark
612dc232d7 Add distclean target instead 2019-02-05 09:49:24 -08:00
fauxpark
6172273c86 These targets should be .PHONY 2019-02-05 09:49:24 -08:00
fauxpark
cb1aeb4254 make clean should remove .bin and .hex too 2019-02-05 09:49:24 -08:00
MechMerlin
b973258123 [Keyboard] TMO50 Off By 1 Column Bug (#5055)
* fix a bug in which the physical matrix did not match the physical layout. Top row was missing 1 key and bottom row had 1 extra key

* amend keymap to account for the new physical matrix

* 6.25u space bar is actually supported, so add a new layout that supports this

* fix keymap readme to no longer need the cautionary warning
2019-02-05 09:38:32 -08:00
Biacco42
b89cab87ce Add "meishi" keyboard (#5054)
* Add meishi keyboard project

* Update readme

* Fix copyrights

* Fix copyright year

* Replace include guard with pragma once

* Replace KEYMAP with LAYOUT
2019-02-05 08:20:47 -08:00
Nicholas Shaff
9b232a7f88 Keyboards: Move the other Sentraq keyboards into the sentraq vendor directory (#5052)
* Moving sentraq keyboards to sentraq subdirectory.

* Updating readme markdown to correct make commands.

* Updating s60_x references to point to the new vendor subdirectory.

* Fixed stripped spaces in markdown.

* Updated help information in s60_x readme and linked to additional documentation.
2019-02-05 06:36:49 -08:00
Brice Figureau
3352677820 Make QMK Configurator work with e7-v1 (#5007)
* Make QMK Configurator work with e7-v1

This adds the missing info.json file for the e7-v1 keyboard which I
forgot to add to the original PR.
This allows to see the correct layout in QMK Configurator.

* Fix the ISO layout

The ISO layout has one extra key (hash/tilde) on row 3 right before
the enter key.

The e7-v1 PCB has this key wired at the same switch as the ANSI
backslash (since this switch is not used in ISO).
2019-02-04 15:31:59 -08:00
Josh Forisha
ab579650b6 Fix XD87 ANSI layout values (#5031)
The tkl_ansi layout had an incorrect value for the grave/tilde key, and
number row keys were misnumbered. This fix removes the typo and adds the
missing K1C key.
2019-02-04 15:29:44 -08:00
Konstantin Đorđević
e4ff07aff0 Fix mixed tabs/spaces and typos in keyboards/converter makefiles (#5041)
* Fix mixed tabs and spaces in adb_usb and m0110_usb makefiles

* Fix typos in converter build options

* Tweak ordering and spacing in converter makefiles
2019-02-04 15:10:11 -08:00
MechMerlin
80d427a203 [Keyboard] New Macropad: 1upkeyboards super16 (#5039)
* initial commit

* Do a nice write up for readme

* establish switch matrix and physical layout

* Put in the pins that are used

* QMK configurator support and keymap

* set bootloader to caterina because pro micro boohoo

* add ortho_4x4 support for user spaces

* got the columns reversed lol
2019-02-04 15:08:37 -08:00
Flugschwein
e9c3e04146 Fix QWERTZ <> QWERTY issue in sendstring_german.h
Small mistake that caused sendstring commands to exchange y with z.
2019-02-04 15:07:16 -08:00
Braydon Bubnick
e14df8678d 1up60hte hhkb layout support (#5050)
* Tweaks to default 1up60hte layout + support for HHKB style layout

* Added changes to layouts

* Fix config.h

* Fixed errant KC_NO in layout

* Added readme to keyboard... Will update with images/store link when avail.

* Update to use LAYOUT_60_hhkb default layout

* md formatting fix

* Update keyboards/1upkeyboards/1up60hte/readme.md

Co-Authored-By: bubnick <bubnick@users.noreply.github.com>

* Update keyboards/1upkeyboards/1up60hte/readme.md

Co-Authored-By: bubnick <bubnick@users.noreply.github.com>

* Added layout to rules.mk, fixed layout to be compatble with community HHKB keymaps
2019-02-04 14:57:45 -08:00
Emīls Delle
ff893bf17c Tmo50 indicators (#5044)
* Create ISO HHKB keymapping for GH60

* Add media controls to Fn layer

* Use M(x) instead of F(x), add Copyright text

* Add README for additional information about TMO50 features/quirks

* Add indicator LED code

* Move indicator code to tmo50.c
2019-02-04 14:12:23 -08:00
MechMerlin
b49dbf9b19 [Keyboard] Create KBDFans directory (#5025)
* move over kbd19x into the kbdfans directory

* move over kbd4x into the kbdfans directory

* move kbd66 into the kbdfans directory

* move the kbd6x into the kbdfans directory

* move kbd8x into the kbdfans directory

* move kbd75 into the kbdfans directory

* move kbd67 into kbdfans directory

* add a fairly sparse readme for kbdfans directory

* update make instructions for keyboards and add the Complete Newbs Guide to readmes that was missing it

* get kbd75 compiling again

* remove repetitive #defines of KC_NO and KC_TRNS when QMK_KEYBOARD_H is already included in KBD75

* add links to kbdfans readme

* fix some readme formatting

* there is no reason to have two different keymaps with such a small difference, condensing to one

* turning on backlights by default

* enable backlight by default for kbd66

* noticed that the kbd75 had caps lock led code in every keymap. Moved it out to the keyboard.c so everyone can partake.

* Update keyboards/kbdfans/kbd66/readme.md

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* update readme link ordering
2019-02-04 10:29:04 -08:00
Nicholas Shaff
d26e73756f Fixed the key_count attribute name and numpad_5x4 layout in the info.json. (#5049) 2019-02-04 06:15:32 -08:00
Nicholas Shaff
b6fbcd9d62 New Keyboard: Sentraq Number Pad RGB DIY Kit (#5047)
* Added QMK Config for Sentraq Number Pad keyboard.

* Sentraq Number Pad documentation cleanup.

* mend

* Added json for configurator.

* Small documentation tweaks.

* Updated the layouts to use the default layouts that match.

* Uncommended user level functions in keymap, left custom keycode/macro code commented but documented why.

* Switched to #pragma once from #ifndef structure in header file.

* Moved Sentraq number pad to sentraq creator directory.

* Renamed sentraq_number_pad to number_pad now that it's nested in the sentraq directory.

* Updated references inside the files for the keyboard rename and nesting.
2019-02-03 19:40:42 -08:00
GreenShadowMaker
c4ce613bff ergodash Keyboard readme documentation (#5046)
* Update readme.md

Added reminder/example on how to install

* Update readme.md

Added note about rev2 and PCB versions

* Update readme.md

format
2019-02-03 16:59:39 -08:00
Peter Roe
e9c9c3a4fa [Keyboard] ADB converter lock LED fix (#5035)
* Enabled ADB lock LEDs

* Updated converter/adb_usb/README.md

Fixed a typo in the readme title. Added the lock LED fix to the changelog.
2019-02-02 12:43:58 -08:00
stanrc85
4e2007b855 [Keymap] Added , to fix errors (#5034)
* Added , to fix errors

* Added aliases to clean up keymaps

* Additional formatting changes
2019-02-02 12:21:32 -08:00
stanrc85
34a11d7bac Stanrc85 layout update/cleanup (#5029)
* Remove unused options

* COMMAND disabled since it is unused

* COMMAND shortcut removed

* Fix some spacing for better readability.
2019-02-01 18:49:37 -08:00
Fang
fd9967dd8e Add hand-swap config to Gergo layout (#5033) 2019-02-01 18:48:40 -08:00
Mazin Power
0bbf655d14 [Keymap] Adds Preonic keymap for muzfuz. Small Planck addition. (#5019)
* Adds keymaps for muzfuz

* Remove unused keys from adjust layer

* Bring in line with current QMK standards.

* Adds Preonic and adjusted Planck keymaps

* Make changes per review request
2019-02-01 12:44:57 -08:00
fauxpark
d8e9a0f7a3 Change return type of layer_switch_get_layer() to uint8_t (#5011)
* Change return type of layer_switch_get_layer() to uint8_t

* Keep loop index signed so we don't wrap around
2019-01-31 16:40:12 -08:00
MechMerlin
8c5c1fd7fe Space65 Updates (#5008)
* update reset sequence info

* fix my rgb underglow led number flub

* add a more sensible keymap

* add caps lock led support

* remove unused #define

* swap the spacebar sizes around to match the space65

* use vomindoraan's suggestion in PR to use IS_LED_ON
2019-01-31 16:37:13 -08:00
Braydon Bubnick
aa6cc28d43 [Keyboard] Add 1upkeyboards 1up80hte (Tsangan style PCB) (#4988)
* Support for 1upkeyboards Tsangan style PCB

* Suggested changes to config.h, keymap.c, rules.mk, 1up60hte.h, 1up60hte.c

* Update keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c

Fix for misnamed const

Co-Authored-By: bubnick <bubnick@users.noreply.github.com>
2019-01-31 16:31:22 -08:00
moyi4681
4d88c716b4 Update info.json (#5015) 2019-01-31 11:36:59 -08:00
Felipe Coury
e2411b0d4c Fixed TGR Alice pinout and number of LEDs (#5018) 2019-01-31 07:42:12 -08:00
Fredric Silberberg
87cbb1c552 Generalized nyquist layout for 5x12 boards. Removed duplicate readme.md that was cased the same and caused issues. 2019-01-30 23:13:50 -08:00
zvecr
9f63cd0d1d Remove duplicate make invocations 2019-01-30 21:42:23 -05:00
zvecr
4082d880bc Fix file size check for parallel make (#5012) 2019-01-30 18:20:13 -08:00
Boy_314
8f6285d3b3 [Keyboard] 40percent.club's Half 'n' half keyboard port (#5005)
* fixed arrow keys and left control

* added right shift

* latest version

* reverted arrow keys

* edited readme

* added osu layer

* updated osu layout

* updated osu layout

* added full arrow keys to osu layout

* in case i mess up creating macros

* added the best meme key in the world

* added plover steno layer

* updated boy314 layout

* removed unused layers

* added boy314 xd75 layout, inspired by preonic layout

* added boy314 xd75 layout, inspired by preonic layout

* version 2 of boy314's xd75 layout

* added readme notes

* updated readme for boy314 xd75 layout

* qwerty support, brackets on bottom row, caps lock underglow

* fixed readme/

* small changes to allow merging

* minor changes to format

* fixed up default readme

* added numpad and tweaked bottom row

* updated xd75 and preonic rev3 keymaps

* added initial half n half files

* fixed .h file

* updated names

* fixed layout in halfnhalf.h

* fixed manu name, changed bootloader in rules.mk

* removed redundancies in preonic and xd75 layouts

* readme updated
2019-01-30 18:14:27 -08:00
Tuan Anh Tran
6debadb101 update canoe/readme (#5014)
fix command, pyusb is installed with pip, not brew. remove extra ` in command
2019-01-30 18:12:43 -08:00
Rockman18
c2080d3b0a [Keyboard][S65-X] BACKLIGHT_CAPS_LOCK (#4770)
Replace buggy Caps Lock indicator implementation with new
BACKLIGHT_CAPS_LOCK_INDICATOR feature.
2019-01-30 15:42:30 -08:00
Othi
1d49f76f15 space65-5001 init, small corrections to the total number of leds (#5006) 2019-01-30 13:01:18 -08:00
moyi4681
19c504662e [Keyboard] add dz60rgb keyboard (#4992)
* add dz60rgb keyboard

* add info.json

* Update config.h

* Update rules.mk

* Update dz60rgb.h

* Update dz60rgb.c

* Update keymap.c

* Update dz60rgb.h

* Create readme.md

* Update readme.md

* Update keymap.c

* Update dz60rgb.h

* Update info.json
2019-01-30 12:18:35 -08:00
wanleg
58f3ce5254 [Keyboard] Jj40 doc (#4914)
* Update README.md

* Update README.md

* Update README.md

* Update README.md
2019-01-30 11:03:04 -08:00
Mattia Dal Ben
6a63b67cde [Keyboard] Redox Wireless configurator bugfix (#4961)
* Fixed wrong build instruction

* Updated info.json file
2019-01-30 11:02:05 -08:00
Max
71164eee6a added aanzee pcb support (#4962)
* added aanzee pcb support

* Update keyboards/westfoxtrot/aanzee/config.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/config.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/config.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/config.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/aanzee.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/aanzee.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/aanzee.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/aanzee.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/config.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/aanzee.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/config.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/aanzee.h

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* refactored keymaps

* fixed typo
2019-01-30 10:51:32 -08:00
Spaceman
d7ebdfb490 Sweet16 Keymap by Spaceman added (#5003)
* Create keymap.c

* Update keymap.c

* Changed a few things

* Update keymap.c

* fixed something i broke
2019-01-30 09:10:31 -08:00
MechMerlin
4c155559d5 [Keyboard] Gray Studio Directory (#5002)
* move cod67 into the gray_studio directory

* modify readmes
2019-01-30 09:09:27 -08:00
Konstantin Đorđević
fb49a882b1 Fix link and name spelling in Space65's readme (#5004) 2019-01-30 09:08:30 -08:00
Logan Bussell
d192fd00cd [Keymap] Updates to ortho_4x12/buswerks keymap (#4996)
* Added buswerks keymap

* cleaned up comments on buswerks keymap

* Added buswerks keymap readme.md

* Fixed spelling in buswerks readme.md

* Removed unnecessary includes, changed process_record_user to now use set_single_persistent_default_layer(), removed deprecated functions, and moved the audio ifdef block to config.h

* Changed buswerks ortho_4x12 layout to accommodate 'MIT' layout

* Updated README.md to reflect layout changes

* update buswerks keymap

* add buswerks tragicforce68 keymap

* add rotary encoder support

* update readme

* fix image link in readme

* fix KC_NO shorthand
2019-01-30 08:56:25 -08:00
MechMerlin
3d338f2555 [Keyboard] Gray Studio Space 65 Support (#5001)
* initial commit

* get rid of vanilla code, and fix formatting

* write up a nice looking readme

* add in pins and enable features

* define keymap and switch/physical matrix

* add QMK Configurator support

* switch to bootmagic lite to decrease file size
2019-01-29 21:23:03 -08:00
Andrew Kannan
7186d1581a Moving cannonkeys boards to one place, eeprom fix (#4999)
* Move boards to cannonkeys and share resources

* Share common files between cannonkey boards

* Fix ortho60 keymap

* update LED numbers

* Add RGB keys to Ortho60 and Ortho48

* Add Backlight control to default layout Ortho60 and 48

* Remove unnecessary ws2812.c SRC from rules.mk
2019-01-29 20:04:20 -08:00
QMK Bot
74fcfd5335 convert to unix line-endings [skip ci] 2019-01-29 23:31:46 +00:00
Geoff Lane
d0a7e96d1e S60x Make Default standard layout and have separate Mac OS one (#4964)
* Make Default standard layout

Move Mac OS layout to a separate layout. Basically Mac has the Alt and GUI keys swapped

* Fix typos

* Use Bootmagic keys instead of separate MacOS keymap
2019-01-29 15:28:37 -08:00
Daniel H Klein
f0e0a67ea5 [Keyboard] Bug Fix To Unigo66 (#4995)
* UniGo66 keyboard added

* UniGo66 keyboard added

* case correction of unigo66 files

* create sirius folder

* Update keyboards/sirius/unigo66/rules.mk

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/default/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* debugging

* correct keymap to layout

* readme

* remove common config

* suggested changes to config.h

* default keymap cleanup

* bug fixes
2019-01-29 09:52:20 -08:00
MechMerlin
efe360464d Contribute the MechMerlin QMK Configurator docs (#4986)
* first pass at configurator docs

* edit existing docs to make reference to QMK Configurator

* contribute my own newb guide to QMK officially from https://github.com/mechmerlin/qmk_setup/blob/master/qmk_configurator.md

* Update docs/newbs_building_firmware_configurator.md

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update docs/newbs_building_firmware_configurator.md

Big red box!

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update docs/newbs_building_firmware_configurator.md

Big red box

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update docs/newbs_building_firmware_configurator.md

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update docs/newbs_building_firmware_configurator.md

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update docs/newbs_building_firmware_configurator.md

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update docs/newbs_building_firmware_configurator.md

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>
2019-01-28 17:31:33 -08:00
Konstantin Đorđević
c30155343f Remove #define IS_COMMAND line in keyboards/handwired/xealousbrown/config.h 2019-01-28 17:18:26 -08:00
patrickmt
60ae309ced arm_atsam ADC0 factory calibration correction
Factory calibration data was not being loaded properly for ADC0, which affects the accuracy of 5V readings.
2019-01-28 17:16:33 -08:00
Emīls Delle
9e784841c0 [Keyboard] Additional info about TMO50 (#4980)
* Create ISO HHKB keymapping for GH60

* Add media controls to Fn layer

* Use M(x) instead of F(x), add Copyright text

* Add README for additional information about TMO50 features/quirks
2019-01-28 17:10:43 -08:00
noroadsleft
02180c87f2 handwired/space_oddity: refactor, Configurator support and readme cleanup (#4977)
* handwired/space_oddity: refactor

- config.h: updated to use #pragma once include guard
- rules.mk: replace `?=` with `=`
- space_oddity.h:
  - updated to use #pragma once include guard
  - layout macro KEYMAP renamed to LAYOUT
- default keymap:
  - updated to use #include QMK_KEYBOARD_H
  - replace references to Planck keycodes
  - replace fn_actions-powered layer switch keycode
  - rebuild keymap block comments
  - keymap layers now use short-form keycodes
  - refactor action_get_macro keycodes into process_record_user

* handwired/space_oddity: Configurator support

* handwired/space_oddity: readme cleanup

- update readme to better conform with QMK template
- fixed the make command.
2019-01-28 17:09:58 -08:00
Brice Figureau
03d9e3fe79 [Keyboard] E7-V1 keyboard support (#4965)
* Add the e7-v1 keyboard

The e7-v1 is a 75% keyboard made by Exclusive based on an Atmega32u4
pub with RGB lights on top and backlighting.

This PR add supports for the regular ANSI layout and ANSI split
backspace layout. No ISO yet :(

* My e7-v1 keymap

Difference from base layout:
 * split backspace
 * Home & End on last keys of row 0 instead of Insert/Del
 * Fn is on the End key when hold
 * supports both a windows/linux keymap and osx keymap
 * layer change is reflected in the rgb leds of the logo
2019-01-28 17:05:43 -08:00
Rockman18
df251d7a13 Backlight - New option : BACKLIGHT_CAPS_LOCK (#4769)
* [BACKLIGHT_CAPS_LOCK_INDICATOR] Use backlight toggling as Caps Lock LED

I've implemented this feature because S65-X doesn't have LED indicators
and the existing led_set_kb(usb_led) function try to use backlight as
indicator but that creates an inconsistency with backlight_config state.

- define `BACKLIGHT_CAPS_LOCK_INDICATOR` to enable Caps Lock indicator
  using backlight (for keyboards without dedicated LED)

- Don't turn off LED indicators when suspend because backlight is
  already turned off. Else led_set(0) will turn back on backlight.

- Documentation has been updated

* [BACKLIGHT_CAPS_LOCK_INDICATOR] Turn off all LED indicators except Caps Lock if BACKLIGHT_CAPS_LOCK_INDICATOR

* [BACKLIGHT_CAPS_LOCK] Rename BACKLIGHT_CAPS_LOCK_INDICATOR

* [BACKLIGHT_CAPS_LOCK] Use new IS_LED_ON method
2019-01-28 16:57:56 -08:00
Andrew Kannan
0f507f0169 Practice60 RGB and PWM Backlight (#4929)
* Update Practice60 to enable RGB via SPI DMA and use PWM backlight breathing

* Correct stm32f103c8t6 flash size in eeprom definition

* Remove unused files and improve ifdef checks

* Update quantum/rgblight.c

Co-Authored-By: awkannan <andrew.kannan@klaviyo.com>

* Update quantum/rgblight.c

Co-Authored-By: awkannan <andrew.kannan@klaviyo.com>

* EEPROM implementation fix and updated p60 code

* Update define

* Remove dead code

* Update keymap to remove test key

* Update keymap again
2019-01-28 16:40:02 -08:00
noroadsleft
d9120412d3 Fix layouts for S7 Elephant in info.json (#4989)
The following layouts were being rendered with 6.75u Spacebars instead of 7u:

- LAYOUT_ansi_blocker_7u
- LAYOUT_ansi_blocker_7u_small_lshift
- LAYOUT_ansi_blocker_7u_small_bspc
- LAYOUT_ansi_blocker_7u_small_lshift_small_bspc
- LAYOUT_iso_blocker_7u

This commit corrects this issue.

Flagged by yanfali on QMK Discord.
2019-01-28 15:24:34 -08:00
mtei
12a2572295 Prevent wasteful writing to eeprom. 2019-01-28 14:57:41 -08:00
ai03
5672dc8030 Add Lunar Keyboard (#4976)
* Generate project

* Adjust files

* Get things working

* Update readme

* Add VIA configurator compatibility

* Grammar

* Update keymap

* Split lunar info default and VIA keymaps

* Copyrights

* VIA tuneup

* A few missed copyrights

* Remove unnecessary junk

* Remove unnecessary bits, fix readme
2019-01-28 12:34:42 -08:00
noroadsleft
693e1afa59 BDN9 Configurator support (#4978) 2019-01-28 08:28:47 -08:00
noroadsleft
ad6a7e9cec Alice: refactor and Configurator bugfix (#4979)
- layout macro and keymap layers refactored to more closely resemble physical keyboard layout
- added layout mockup to alice.h
- correct info.json data (was missing a key)
2019-01-28 06:40:13 -08:00
Drashna Jaelre
af04936e1f Add default layout for e6_rgb (#4973) 2019-01-27 21:05:26 -08:00
f00_B34rd
e0e8097162 [Keyboard] Add Southpole keyboard (#4946)
* Added southpole keyboard

added southpole keyboard folder and files including keymaps folder. Keymaps have errors and will not compile yet

* Add files via upload

added manufacturer and product name and description

* Update config.h

* Add files via upload

changed formating added layer

* cleaned up files, fixed foobeard keymap, and added maker info

* fixed keymap files

* Update keyboards/southpole/keymaps/foobeard/keymap.c

Co-Authored-By: ericduns <ericduns@gmail.com>

* Update keyboards/southpole/keymaps/default/keymap.c

Co-Authored-By: ericduns <ericduns@gmail.com>

* made changes fixing outdated lines and added readme.md

* made requested changes for pr to all files

* removed vs code and added new line to southpole.h
2019-01-27 18:05:11 -08:00
VM
5eba88809e [Keymap] some mods to my (omgvee) Helidox keymap (#4972)
* moved some stuff around on my iris layout, but don't expect a lot of changes in the future

* good working setup

* [keymap] some mods to my (omgvee) Helidox keymap
2019-01-27 17:46:06 -08:00
Maxr1998
795f743c04 [Keymap] Support FX keys on Maxr1998's Contra
Using update_tri_layer() and more manual layer switching,
also rename some layers & keycodes
2019-01-27 17:44:54 -08:00
CodingDog
17d3750f13 [Keymap] updated zlant default keymap with diagram (#4954)
* updated zlant keymap with diagram

* made edites to last post

* noticed slight error in default keymap due to my own mistake. fixed to be the same as default

* fixed spacing in second base layer second row from left
2019-01-27 17:35:23 -08:00
VM
0ea336c03d [Keymap] small update to my (omgvee) IRIS keymap (#4969)
* moved some stuff around on my iris layout, but don't expect a lot of changes in the future

* good working setup
2019-01-27 17:34:41 -08:00
Alex Ong
0d76319370 [Keyboard] Added xealousbrown keyboard (#4945)
* Added xealousbrown keyboard.

* Changed to pragma once in config.h

* Update keyboards/handwired/xealousbrown/rules.mk

Added bootloader.

Co-Authored-By: alex-ong <the.onga@gmail.com>

* Update keyboards/handwired/xealousbrown/config.h

Commented out IS_COMMAND() since it is already default value.

Co-Authored-By: alex-ong <the.onga@gmail.com>
2019-01-27 17:05:34 -08:00
yulei
996ada1ba2 [Keyboard] add rgb pcb for e6 keyboard (#4928)
* add e6_rgb

* update according to the reviewer

* fixed readme.md

* rename 60_split_bs_shift to 60_ansi_split_bs_shift
2019-01-27 16:57:50 -08:00
Konstantin Đorđević
6ba0b818e9 [Keymap] Update personal userspace and keymaps (#4963)
* Remove duplicated or unnecessary definitions in config.h and rules.mk

* Use IS_HOST_LED_ON() macro

* Add mouse acceleration to kbd6x:konstantin keymap

* Clear and restore mods when sending macros

* Make SEND_STRING_CLEAN a config option

* Add NO_ACTION_ONESHOT to userspace config
2019-01-27 08:46:54 -08:00
stanrc85
5c1d4baec4 [Keymap] Layout added for stanrc85 (#4944)
* Add files via upload

* Changed _____ to _______ as requested to meet QMK standards.

* Added readme.md

* Removed "PERMISSIVE_HOLD" as it is no longer used.

* Additional code changes made per request

* Added # to first line and removed redundant line.

* Modified Copyright information

* Added space after # for proper formatting

* Formatting changes and additional details
2019-01-27 08:45:30 -08:00
James Churchill
6d2071ad6e Fix 1<col instead of 1<<col typo in matrix_is_on() 2019-01-27 08:37:26 -08:00
Konstantin Đorđević
4d9b11af14 Fix Command feature: use get_mods() instead of keyboard_report->mods (#4955)
* Remove unnecessary IS_COMMAND definition in clueboard/66/rev4

* Replace keyboard_report->mods with get_mods() in IS_COMMAND definitions

* Update docs to use get_mods() instead of keyboard_report->mods

* Replace keyboard_report->mods with get_mods() in tmk_core/protocol/usb_hid/test

For some reason, this occurrence used KB_LSHIFT and KB_RSHIFT, which don't exist

* Replace keyboard_report->mods with get_mods() in Massdrop keyboards (as per @patrickmt)
2019-01-27 00:28:40 -08:00
Max Rumpf
53d86b2c57 [Keymap] Small improvements to Maxr1998's Contra keymap (#4952)
Add backslash, disable Super key in "Gaming" mode
2019-01-27 00:23:58 -08:00
MechMerlin
287f6766b6 [Keymap] Minor updates to my dz60 keymap (#4943) 2019-01-27 00:15:32 -08:00
Daniel H Klein
9ae800fab3 [Keyboard] UniGo66 keyboard added (#4913)
* UniGo66 keyboard added

* UniGo66 keyboard added

* case correction of unigo66 files

* create sirius folder

* Update keyboards/sirius/unigo66/rules.mk

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/default/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h

Co-Authored-By: danielhklein <danielklein@utexas.edu>

* debugging

* correct keymap to layout

* readme

* remove common config

* suggested changes to config.h

* default keymap cleanup
2019-01-27 00:12:05 -08:00
Drashna Jaelre
5d26ebcbaa [Keymap] Move Iris via support to Via keymap (#4893)
* Move Iris via support to Via keymap

And move it out of the main keyboard files

* Actually add via keymap folder

Because using git when you're tired is apparently a very bad idea, and you do stupid things like not running git add

* Clean up config.h file for iris via keymap
2019-01-27 00:09:03 -08:00
Drashna Jaelre
b05c0e46c6 Adds a default value for IS_COMMAND for COMMAND feature (#4301)
* Add default value for IS_COMMAND for COMMAND feature

* Cleanup and consistency

* Update Templates to reflect change

* Fix IS_COMMAND in template

* Fix IS_COMMAND define

* Use consistent IS_COMMAND block in templates

* Remove unnecessary `#undef IS_COMMAND` directives

* Fix compile issue on orthodox

* Reomve IS_COMMAND option for newer boards

* Remove all existing definitions of IS_COMMAND if they use default LSHIFT and RSHIFT setting

* Remove a couple of additional IS_COMMAND defines

* Remove remaining redundant IS_COMMAND definitions

* Remove #undef IS_COMMAND from orthodox:drashna and whitefox:konstantin

* Remove multiple empty lines in modified config.h files

* Update additional boards

* Reomve IS_COMMAND from newer boards

* Update Alice keyboard

* Remove IS_COMMAND from additional boards

Jan 24th edition
2019-01-26 15:49:45 -08:00
alex-ong
7d8c629939 Stricter, leaner DEBOUNCE_TYPE section in common_features.mk. Cleanup debounce_type.mk 2019-01-27 07:23:15 +11:00
seebs
478538e0d9 [Keyboard] drop unused i2c files (#4948)
The Ergodox EZ used to use twimaster.c/i2cmaster.h, but now uses
a standard centralized AVR i2c driver. Drop the now-unused files.
2019-01-26 11:17:16 -08:00
Danny
438386401f [Keymap] Add Maxim keymap for Fourier (#4534)
* Add maxim keymap

* Add QMK DFU configuration to Fourier

* Update config.h

* Update keymap.c

* Update config.h
2019-01-26 08:58:02 -08:00
Jack Humbert
8da9d3330e use built-in arm stuff 2019-01-26 11:36:35 -05:00
Chuck Lauer Vose
0772b4932c [Keymap] Add userspace files for vosechu (#4912)
* Add userspace files for vosechu

* Code review corrections

* Few more code review corrections
2019-01-26 07:55:42 -08:00
alex-ong
562c0d702a Fix compile error in debounce_eager_pk 2019-01-27 00:10:14 +11:00
alex-ong
503e02db79 Merge branch 'debounce_refactor' of https://github.com/alex-ong/qmk_firmware into debounce_refactor 2019-01-26 23:21:27 +11:00
alex-ong
10cc423515 Malloc array in debounce_eager_pk, since split keyboards only use MATRIX_ROWS/2. 2019-01-26 23:18:24 +11:00
Alex Ong
d30d5eeb27 Renamed DEBOUNCE_ALGO to DEBOUNCE_TYPE 2019-01-26 23:01:07 +11:00
Alex Ong
039dde3a51 Fixed compilation error with debounce_sym_g 2019-01-26 22:57:39 +11:00
Alex Ong
7cb8d3c7a7 Bug fix - was using MATRIX_ROWS instead of num_rows 2019-01-26 22:45:25 +11:00
Alex Ong
b5b119544a Removed #include "matrix.h" from debounce.h 2019-01-26 22:44:33 +11:00
alex-ong
cce8dfab39 Removed check for custom_matrix. We can safely include the debounce file for compilation when custom_matrix is used. 2019-01-26 20:37:47 +11:00
alex-ong
14ed96aa06 Moved debouncing_time variable to inside #if debounce 2019-01-26 18:26:49 +11:00
alex-ong
5b7fc758d7 Restored debounce.h since there wasnt any real change. 2019-01-26 17:46:27 +11:00
alex-ong
574fc6444b Whitespace cleanup. 2019-01-26 17:38:52 +11:00
alex-ong
4d8733591f Working eager_pk 2019-01-26 17:29:02 +11:00
alex-ong
123608fb31 DO NOT USE Revert back to original API to support split_keyboards. 2019-01-26 17:10:27 +11:00
alex-ong
d0b691df0e DO NOT USE - debounce successfully compiled. 2019-01-26 17:03:46 +11:00
alex-ong
3949ab322d Remove accidental xeal60 commit 2019-01-26 16:59:02 +11:00
alex-ong
39ca330f10 DO NOT USE - Removed debounce from TMK. 2019-01-26 16:56:01 +11:00
Alex Ong
c9ba618654 DO NOT USE Merge branch 'master' into debounce_refactor
Merged, however now there are two debounce.h and debounce.c to mess around with and coalesce.
# Conflicts:
#	quantum/matrix.c
2019-01-26 12:13:19 +11:00
Drashna Jaelre
7aba1fd176 Fix RGBLIGHT_SLEEP function (#4865)
* Only re-enable RGBLIGHT if it was on when going to sleep

* Reformat file to follow QMK Standards

* Fix check, since this is a loop, whoops

Much thanks to @Rockman18 for catching this and posting the additional code!
2019-01-25 17:11:49 -08:00
Drashna Jaelre
569ed9db9d Revert Commit 1d3b9eea94 (#4942)
Was not supposed to merge 4763 yet

This reverts commit 1d3b9eea94.
2019-01-25 17:11:19 -08:00
Alex Ong
d977daa8dc Merge branch 'master' of https://github.com/qmk/qmk_firmware 2019-01-26 11:36:28 +11:00
Drashna Jaelre
0306e487e2 Circular animation (#4796)
* Add ability to animate arm_atsam led matrix from the center of a circle

* Make arm_atsam led matrix circular animation circular rather than obloid

* Fix indentation in tmk_core led_matrix.c
2019-01-25 16:04:21 -08:00
walkerstop
1d3b9eea94 [Keyboard] Support for Wheat Field Peripherals blocked 65% PCB (#4763)
* Basic Fanoe support (no LED yet)

* Enable RGB lights

* Backlighting support

* Change to reflect Wheat Field brand of Fanoe PCB

* Hot swap variant

* Fix review comment issues

* Fix review issues

* Corrected rules.mk

* Change naming to avoid using possibly copyrighted names

* Added info.json

* Corrected manufacturer name in info.json

* Keymap updates

* Add layout for use with ws2812b and such

* Fixes based on code review
2019-01-25 15:57:15 -08:00
mtei
2e8b32b9b5 move #include "rgb.h" from quantum.h to quantum.c
I think `quantum.h` should contain only API declarations that `quantum.c` provides externally. `rgb.h` contains function weak definitions. This should not be in `quantum.h`.
2019-01-25 13:38:12 -08:00
fauxpark
79b58937f4 Add C(), A() and G() to match already existing S() (#4673) 2019-01-25 13:12:48 -08:00
Konstantin Đorđević
2f009d7461 Add MOD_MASK_* macros to core code (#4337)
* Add MOD_MASK_* macros to core code

* MOD_MASK_ALL → MOD_MASK_CSAG
2019-01-25 13:02:38 -08:00
Olivier Poitrey
e611433cb5 rs: code friendly keymap for preonic, iris and my preonic clone (#4303)
I worked on those keymap to simplify the use of 60% keyboards for
coders. Instead of trying to mimic planck, this keymap remove
raise/lower layer complexity and keep some important sign keys for coder
in the upper right side pretty much the same way as they are on a full
keyboard.

A karabiner configuration is also provided to mimic most of the keymap
features on the macbook internal keyboard for when you are forced to use
it.
2019-01-25 12:57:10 -08:00
Drashna Jaelre
3542e573c8 Fix process_combo which assign -1 to uint16_t (#3697) 2019-01-25 12:11:38 -08:00
Shihpin Tseng
b416113616 Fix oneshot_time wrong type (#3696)
* Fix oneshot_time wrong type

* Fix oneshot_time_layer wrong type
2019-01-25 12:09:53 -08:00
MakotoKurauchi
3c0c432836 Fix problem that MAGIC_SWAP_ALT_GUI will not be effective when OSM(mod) is used 2019-01-25 12:05:17 -08:00
Dave Brown
b4ae07cbb1 Adding documentation for the LM layer modifier. (#3617)
* Adding documentation for the LM layer modifier.

This will hopefully clear up some of the confusion around adding this layer modifier.  I struggled with this a bit as well at first.

* Removing duplicate table.

* Changed section title to `Changing Layers`

* Retain name
2019-01-25 12:00:04 -08:00
lambda_sakura
8e47f64888 Add support for RETRO_TAPPING to LT(layer, kc) 2019-01-25 11:27:14 -08:00
zunger-humu
0ba9620d65 [Keymap] New kbd67/hotswap keymap for writing both code and math (#4933)
* Custom keymap.

* Fix magic layer, enable Unicode.

* Update README.

* Make Unicode config change keymap-local.

* Move magic to AltGr, simplifying layout.

* Changes per Drashna.

* Fix magic+esc = backtick!

* Change reset implementation per Drashna's suggestion.

* Add a few more symbols so long as the commit is open - √ℜℂℤ⊙ℚℕ and the like.

* Typo fix.

* Slight simplification, drop an extra variable.
2019-01-25 09:46:49 -08:00
skullY
4d8eefc694 Add support for Clueboard 66% rev4 2019-01-24 16:54:01 -08:00
Balz Guenat
5dcb1114d7 Fix a typo in link to the Pro Micro ISP firmware 2019-01-24 16:13:18 -08:00
zvecr
af3956d8ba [Keyboard] Remove hadron ver0 as it is no longer required (#4921) 2019-01-24 11:12:50 -08:00
fauxpark
b5feae07c2 Remove unused fn_actions[] and action_function() in default keymaps (#4829) 2019-01-24 07:38:44 -08:00
MechMerlin
5d1ea88bf7 [Keyboard] KBD67: enable bootmagic lite by default (#4931)
* enable bootmagic lite by default

* add a second layer with a reset key
2019-01-23 21:06:55 -08:00
shovelpaw
ba70ab1748 [Keymap] Adding keymap for Nyquist (#4918)
* Added busby222 config

* Fixed bug with leftover colemak and dvorak layouts

* Fixing dumb mistake

* Minor tweaks to layout. Need to use at work tomorrow to make more adjustments

* Added mouse controls for raised layer

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update config.h

Added mouse specific settings for smoother mouse movement (default is sort of hard to use)

* config.h cleanup

* Lowering max mouse speed (personal preference)

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update config.h

* Update rules.mk

* Added MIDI layer

* Switched the Adjust layer to an MO call

* Update keymap.c

* Fixing bugs related to midi layer

* Changed "Caps Lock" ctrl to RCTRL for use in VirtualBox

* Added shovelpaw keyamp

* Removed deprecated QUANTUM_DIR code block

* Switched midi layer to be only active when held

* Addressing requested changes

* Removed unnecessary include statement
2019-01-23 21:05:21 -08:00
MechMerlin
465559e166 Optimize/Update the new_project script (#4920)
* use pragma once in our templates

* template.h is present in both avr/ps2avrgb options so we moved it to base. In addition we now use pragma once
2019-01-23 21:04:04 -08:00
zvecr
cf596a0371 Remove lfkeyboards parent rules.mk as its only required for mini1800 2019-01-23 18:28:56 -08:00
Danny
87ab49e403 [Keyboard] Add BDN9 (#4919) 2019-01-23 17:58:04 -08:00
MechMerlin
fafb33d9dd [Keyboard] Add KBD67 Hotswap Support (#4916)
* initial commit

* move the original kbd67 stuff into its own directory, rev1

* get rid of vanilla cookie cutter code

* put in the switch matrix pins, backlight pin, and rgb underglow pin. Number of underglow LEDs is questionable.

* switch matrix created for hotswap

* create a basic keymap for testing

* make info.json for QMK Configurator support

* rename kbd67 due to compile error

* kbd67 generic readme file

* fix make instructions for the new rev1

* comment out unneeded rgb light #defines

* Update keyboards/kbd67/readme.md

Add an extra space for proper markdown rendering

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update keyboards/kbd67/hotswap/hotswap.h

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update keyboards/kbd67/hotswap/keymaps/default/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* use pragma once

* proper format of MechMerlin
2019-01-23 17:37:24 -08:00
skullY
f940b6c5fa Fixup the clueboard 66 info.json 2019-01-23 17:19:41 -08:00
skullydazed
d1f735b6d2 Clueboard refresh (#4902)
* Cluecard: refactor

- renamed layout macro KEYMAP to LAYOUT
- reformatted layout macro to more closely resemble physical device layout
- keymaps now use #include QMK_KEYBOARD_H
- config.h files updated to use #pragma once method
- deleted outdated QUANTUM_DIR code blocks from rules.mk files
- white space changes on rules.mk files (alignment/readability)

* Cluecard: Configurator support

* Cluecard: readme update

- added image
- updated Docs links

* Clueboard 66% HotSwap: corrected matrix and Configurator data

- removed k31 and k84 from LAYOUT
  - both appear to be unsupported for this PCB according to images on clueboard.co
  - updated block comment mock-ups to match changes
- rebuilt info.json file
- delete removed keys from default keymap.c

* Clueboard 66% HotSwap: readme update

- fix make example
- updated Docs links

* Clueboard 66% HotSwap: 66_ansi keymap update

Updated to use #include QMK_KEYBOARD_H

* Clueboard 60% refactor

- renamed layout macro KEYMAP to LAYOUT_all
- renamed layout macro KEYMAP_AEK to LAYOUT_aek
- removed redundant KC_TRNS definitions from keymaps
- all keymaps now use #include QMK_KEYBOARD_H

* Clueboard 17%: refactor

* Clueboard 17%: Configurator support

* Clueboard 17%: update Docs links in readme

* Cleanup the 2x1800 files

* Update Clueboard 60% to standard matrix

* Update the clueboard default keymaps

* Refresh and update clueboard 17

* Add the 66% hotswap to Clueboard's readme

* Clarify the 66% hotswap's readme

* change the image to imgur

* Update the clueboard 66 to follow modern standards

* update clueboard 66_hotswap to follow modern practices

* Move the logo to imgur

* update clueboard/card to follow modern practices

* remove clueboard/66 as a valid make target

* Address comments in #4902

* fix user keymaps after the changes
2019-01-23 09:25:32 -08:00
noroadsleft
9667c10477 Give the keymap folder the proper name
It was named default_60_iso for some reason. *shrug*
2019-01-22 22:59:48 -08:00
noroadsleft
2dd031d4f0 Fix layouts/default/66_iso keymap
Keymap had a comma after the last keycode.

Aligned for readability.
2019-01-22 22:59:48 -08:00
Nikolaus Wittenstein
6b1009b7a8 [Keyboard] Add DataHand keyboard support (#4847) 2019-01-22 15:17:41 -08:00
Rys Sommefeldt
2a33d2c424 [Keymap] Add a compile-time provided macro and assign to _FL (#4908)
* Update make command with correct variant

* Add a custom keycode for a compile-time defined macro and add to _FL
2019-01-22 12:39:53 -08:00
Felipe Coury
5be7d09b36 Added info.json for TGR Alice 2019-01-22 12:36:51 -08:00
fauxpark
ae79b60e6b Always read two bytes from the endpoint if we have two bytes to read
When this if statement is false, it will cause the report ID to be read as the LED state.
We already know there are two bytes in the endpoint, which is a reasonably good indicator that it contains a report ID, so we should always read both.
2019-01-22 09:30:01 -08:00
James Churchill
8cf7265f8f Rename i2c_slave functions so it can coexist with i2c_master (#4875)
Also merges tx/rx buffers, as only one is necessary.
2019-01-22 08:57:13 -08:00
Rys Sommefeldt
127ec5f1e3 Fix for ISO layout in tada68:rys (#4906) 2019-01-21 14:52:39 -08:00
Felipe Coury
2cc674c24d [Keyboard] Added TGR Alice keyboard support (#4896)
* Added TGR Alice keyboard support

This keyboard uses ps2avrGB firmware, so I used the same matrix
Bootmapper Client was using and was able to flash it appropriately.

* Refactor alice to use QMK core

* Fixed markdown line breaks on TGR Alice readme
2019-01-21 11:44:41 -08:00
noroadsleft
4822ad6be1 handwired/retro_refit: refactor, Configurator support and readme update (#4899)
* handwired/retro_refit: refactor

- retro_refit.h
  - updated to use #pragma once include guard
  - refactored layout macro to not auto-prepend KC_ to keycodes
  - renamed to LAYOUT (from KEYMAP)
  - aligned for readability
- default keymap.c
  - now uses #include QMK_KEYBOARD_H
  - removed unused fn_actions and action_get_macro blocks

* handwired/retro_refit: Configurator support

* handwired/retro_refit: readme update

Updated readme to format of current QMK template.
2019-01-21 11:22:21 -08:00
zvecr
37b042a594 Initial fixes for vagrant (#4900) 2019-01-21 10:24:43 -08:00
Konstantin Đorđević
0f8431a57f Tidy up IS_{,HOST_}LED_{ON,OFF} macros (#4894)
* Tidy up IS_{,HOST_}LED_{ON,OFF} macros

* Tweak LED control docs
2019-01-20 20:16:36 -08:00
Emīls Delle
58993d3cde [Keyboard] Tmo50 initial commit (#4891)
* Create ISO HHKB keymapping for GH60

* Add media controls to Fn layer

* Use M(x) instead of F(x), add Copyright text

* Create initial firmware for TMO50

* Correct year and author

* Fix repos README

* Remove unnecessary code

* Change include guard in tmo50.h
2019-01-20 20:15:46 -08:00
MechMerlin
b0d308eea1 Update Templates (stop living in the past, its 2019) (#4897) 2019-01-20 18:41:57 -08:00
noroadsleft
17fbfcb898 Plain60 Configurator support and cleanup (#4888)
* Plain60: remove redundant include guard from plain60.h

Superseded by #pragma once.

* Plain60: add Docs links to readme file

* Plain60: Configurator support
2019-01-20 18:19:10 -08:00
Jason Thigpen
a0d5e270eb Add crd's do60 (#4889) 2019-01-20 11:01:44 -08:00
Wilba
6393135afa Added VIA Configurator support to Snagpad (#4890) 2019-01-20 11:01:12 -08:00
Daniel Schäfer
8df044b868 schaeferdev layout for hhkb implementing movement layer (VIM style + Mouse) (#4883)
* new hhkb keymap implementing movement layer + comfort features

* Apply suggestions from code review

Co-Authored-By: schaefer-dev <schaefer.dev@gmail.com>

* removed deprecated function action_get_macro and mousewheel configs that are no longer used
2019-01-19 17:34:29 -08:00
noroadsleft
c6fd44cf26 handwired/reddot refactor, Configurator support and readme update (#4886)
* handwired/reddot: refactor

- reddot.h
  - updated to use #pragma once include guard
  - renamed layout macro KEYMAP to LAYOUT
  - refactored arguments to more closely resemble physical layout
  - aligned for readability
- keymaps/default/keymap.c
  - now uses #include QMK_KEYBOARD_H
  - updated include path for keymap_french.h
  - refactored to use short keycodes
  - aligned for readability

* handwired/reddot: Configurator support

* handwired/reddot: readme update

- update readme to current QMK template
- add KLE permalink to my best guess at the layout
2019-01-19 16:53:41 -08:00
Maarten Dekkers
09ee7da6de Add Plain60 support (#4887)
* Add Plain60 support

* Delete info.json

* Remove definition of KC_TRNS in keymap

* Add spaces for proper markdown to readme.md
2019-01-19 14:29:15 -08:00
Stefan Peterson
9d2b10d077 [Keyboard] Enable RGB Underglow for Idobo Boards (#4885)
* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk
2019-01-19 11:30:11 -08:00
MechMerlin
215375f37c [Keyboard] DC60 layout_all not really layout_all (#4884)
* add k3c and change layout to LAYOUT_all

* fix up info.json for the new layout

* forgot to add k3c into the physical layout matrix

* fix keymaps
2019-01-19 10:54:25 -08:00
TerryMathews
59c846975d [Keyboard] TKC Candybar: Correct info.json (#4882)
Inadvertently left a key position out of info.json, keeping it from
rendering properly.
2019-01-19 09:04:46 -08:00
TerryMathews
ebec12fbe8 [Keyboard] Initial support for TKC Candybar (#4881)
* Initial support for TKC Candybar

* Correct FN layer issue

Both shift keys were overloaded. Moved Caps Lock to FN + C.

* Update keyboard description in config.h.

* Info.json

* Update project information

* Update keyboards/candybar/readme.md

Co-Authored-By: TerryMathews <terry@terrymathews.net>
2019-01-18 22:19:14 -08:00
noroadsleft
c4680a6460 handwired/qc60: refactor, Configurator update, and readme update (#4878)
* handwired/qc60: refactor and Configurator update

- correct layout macro name (LAYOUT_ANSI_DEFAULT to LAYOUT_ansi_default)
- add layout data for remaining layout macros
- correct ISO layout macros (neither had a split left Shift)
- refactor LAYOUT_iso_alt (place KC_NUHS key on home row; consistent with LAYOUT_iso_default)
- proto.h refactored to use #pragma once include guard

* handwired/qc60: keymap refactor

- delete redundant KC_TRNS and KC_NO aliases

* handwired/qc60: readme update

- update header (made consistent with QMK template)
- update Docs links (Newbs Guide; grammar)
2019-01-18 21:43:24 -08:00
noroadsleft
76afdd097a [Keyboard] handwired/ortho60 Configurator update, readme update, and rules tidy (#4877)
* handwired/ortho60: Configurator update

- correct labels for Up and Right keys
- add layout data for LAYOUT_1x2uC

* handwired/ortho60: readme update

- update readme file to use QMK template

* handwired/ortho60: deleted DEFAULT_FOLDER rule

Not needed as the keyboard currently has no revisions.
2019-01-18 10:46:16 -08:00
Drashna Jaelre
52f1206712 Fix Encoder documentation (#4861) 2019-01-18 07:33:43 -08:00
noroadsleft
12406c646f TKC1800 refactor and Configurator visual fixes (#4870)
* TKC1800: refactor

- tkc1800.h
  - updated to use #pragma once
  - visual alignment
- update config.h files to use #pragma once
- update all keymaps to use #include QMK_KEYBOARD_H
- delete redundant mod mask, KC_TRNS, and KC_NO definitions
- reformat keymap layers for readability
- add block comment for Function layer in default keymap
- delete commented action_get_macro code blocks (deprecated function)
- update files to better conform with QMK coding conventions
- update smt keymap to use set_single_persistent_default_layer (instead of persistent_default_layer_set)
- replace instances of `?=` with `=` in rules.mk

* TKC1800: Configurator visual fixes

- correct key sizes and positioning
- reformat file so each physical key object has its own line for readability
- update and add `label` keys for readability

* TKC1800: readme update

- fix image gallery link
- update Hardware Supported and Hardware Availability lines
- update make example (add :default suffix)
- update QMK Docs links (Newbs Guide; grammar)

* Add missing semicolons to smt keymap
2019-01-18 07:32:21 -08:00
Takeshi ISHII
e2f7c3d5a5 Fixed the build break of helix/rev1:OLED_sample caused by PR #4462. (#4874) 2019-01-18 07:31:35 -08:00
Kenny Hung
fa583e9c60 Add cursor keys to top layer (#4876) 2019-01-18 07:30:41 -08:00
WillyPillow
81c1bad7c0 [Keyboard] Fix bootloader size for v60_type_r (#4873) 2019-01-17 22:46:11 -08:00
Junya Ogura
1d0bc5b7ba Flip definitions of macOS brightness alias
Before:
KC_BRMU - Brightness Down
KC_BRMD - Brightness Up

After:
KC_BRMU - Brightness Up
KC_BRMD - Brightness Down
2019-01-17 22:24:20 -08:00
noroadsleft
3c26f07f5a Grammatical fixes for GPIO Control doc (#4869)
* Grammatical fixes for GPIO Control doc

I found the Advanced Settings section to be poorly written.

* Commit suggestions from fauxpark

* Change first instance of "microcontroller" to match suggestion
2019-01-17 22:13:09 -08:00
noroadsleft
0ebec1e411 handwired/ortho5x13: layout macro refactor
Discovered the LAYOUT_compact macro didn't compile in QMK Configurator. Realized the reason for that was that it automatically prepends `KC_` to every keycode received.

Renamed the macro to LAYOUT_kc so Configurator will ignore it.

Also changed the file to use the #pragma once include guard because I was in here anyway.
2019-01-17 22:10:54 -08:00
fauxpark
ba05f9667b Add new brightness aliases to keycodes_basic.md 2019-01-17 18:35:45 -08:00
MechMerlin
ade6f8e71a [Keyboard] update VENDOR_ID, PRODUCT_ID, and DEVICE_VER for Duck boards (#4612)
* change VENDOR_ID, PRODUCT_ID, and DEVICE_VER as step one in getting VIA support

* fix v1 product id

* VIA doesn't use the version, so we need to encode it into PRODUCT_ID
2019-01-17 18:19:09 -08:00
Jordi Pakey-Rodriguez
db8d68acdc Add Planck rev1 and rev2, clean up rev3-5 config.h 2019-01-17 18:16:33 -08:00
Mislav Čakarić
cd819a7f7e Allows Terminal to use ModTap/LayerTap keys (#4586)
* fixes #4583

* #4583 - terminal also handles layer tap now
2019-01-17 17:51:04 -08:00
DidierLoiseau
94ba2e5a9f Defined IS_(HOST_)LED_ON/OFF() and improved LED documentation (#4853)
* Defined IS_(HOST_)LED_ON/OFF() and improved LED documentation

* Update docs/custom_quantum_functions.md

Co-Authored-By: DidierLoiseau <didierloiseau+github@gmail.com>

* Update docs/custom_quantum_functions.md

Co-Authored-By: DidierLoiseau <didierloiseau+github@gmail.com>

* Integrated @drashna and @fauxpark's PR comments

- changed all plurals of "LED" to "LEDs" in the file
- rewording of the note about host_keyboard_leds() vs. led_set_user()

* Update docs/custom_quantum_functions.md

Co-Authored-By: DidierLoiseau <didierloiseau+github@gmail.com>
2019-01-17 17:28:33 -08:00
Jeremy Bernhardt
77399bfe51 MacOS Brightness Alias (#4836)
* Added aliases for OSX brightness

* Updated docs for alises

* Moved aliases, added docs to Brightness section

* Update docs/keycodes.md

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update docs/keycodes.md

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keycode.h

* Update keycode.h

* Update keycodes.md

* Update docs/keycodes.md

Co-Authored-By: germ <jeremythegeek@gmail.com>
2019-01-17 17:23:01 -08:00
Valen Cheung
d53432393b [Keymap] added custom led effect keymap.c (#4856) 2019-01-17 16:57:31 -08:00
James Churchill
28929ad017 Simplify split_common Code significantly (#4772)
* Eliminate separate slave loop

Both master and slave run the standard keyboard_task main loop now.

* Refactor i2c/serial specific code

Simplify some of the preprocessor mess by using common function names.

* Fix missing #endif

* Move direct pin mapping support from miniaxe to split_common

For boards with more pins than sense--sorry, switches.

* Reordering and reformatting only

* Don't run matrix_scan_quantum on slave side

* Clean up the offset/slaveOffset calculations

* Cut undebounced matrix size in half

* Refactor debouncing

* Minor fixups

* Split split_common transport and debounce code into their own files

Can now be replaced with custom versions per keyboard using
CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes

* Refactor debounce for non-split keyboards too

* Update handwired/xealous to build using new split_common

* Fix debounce breaking basic test

* Dodgy method to allow a split kb to only include one of i2c/serial

SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only
that driver code in the binary.

SPLIT_TRANSPORT = custom (or anything else) will include neither, the
keyboard must supply it's own code

if SPLIT_TRANSPORT is not defined then the original behaviour (include
both avr i2c and serial code) is maintained.

This could be better but it would require explicitly updating all the
existing split keyboards.

* Enable LTO to get lets_split/sockets under the line

* Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE

* Remove avr-specific sei() from split matrix_setup

Not needed now that slave doesn't have a separate main loop.
Both sides (on avr) call sei() in lufa's main() after exiting
keyboard_setup().

* Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT.

* Add comments and fix formatting.
2019-01-17 10:08:14 -08:00
Drashna Jaelre
5fcca9a226 Add documentation and fix formating (#4860) 2019-01-17 09:04:35 -08:00
bendk
f97894d8db [Keymap] Adding bdk keymap for ergobox_ez (#4850)
* Adding bdk keymap

* Updating keymap after review from drashna
2019-01-16 23:16:18 -08:00
noroadsleft
e48cb34de6 40percent.club Luddite: Configurator update (#4859)
- corrected value for keyboard_name
- reformatted file
2019-01-16 12:15:21 -08:00
Nikolaus Wittenstein
2fd86f4252 Add some function comments in action_layer.c (#4858) 2019-01-16 10:57:48 -08:00
noroadsleft
6630e4bb41 Crawlpad refactor (#4854)
* Crawlpad: delete kbfirmware JSON file

* Crawlpad: refactor

- config.h and crawlpad.h updated to use #pragma once method
- layout macro renamed from KEYMAP to LAYOUT_ortho_4x4
- default keymap now uses #include QMK_KEYBOARD_H
- deleted deprecated action_get_macro function
- cleanup rules.mk file
- add LAYOUTS = ortho_4x4 to rules.mk

* Crawlpad: Configurator support

* Crawlpad: readme update

- update image link to direct link
- fully update Docs link line
- delete reference to deleted kbfirmware JSON file
2019-01-16 09:08:12 -08:00
Branden Byers
57fbf072f1 [Keyboard] Add cKeys Handwire 101 Keyboard (#4848)
* Update general README

* Add handwire_101

* Update keyboards/ckeys/handwire_101/keymaps/default/keymap.c

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Use Pragma once

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/config.h

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/config.h

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/handwire_101.h

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/handwire_101.h

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/keymaps/default/keymap.c

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/keymaps/default/keymap.c

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/keymaps/default/keymap.c

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Update keyboards/ckeys/handwire_101/keymaps/default/keymap.c

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Change KEYMAP to LAYOUT and remove endif

* Apply suggestions from code review

Co-Authored-By: brandenbyers <branden@brandenbyers.com>

* Move layers to enum and remove KC_TRNS
2019-01-15 14:06:35 -08:00
Danny
c768ffeb33 [Keyboard] Iris via support, Rev 3 updates (#4849)
* Add encoder support

* Add VIA support to Iris Rev. 3

* Update pinout and disable mouse keys to free up space

* Rollout VIA support to all Iris revisions

* Update default keymap

* Update vendor ID
2019-01-15 14:04:56 -08:00
Tomek Wójcik
2dcce4c351 [Keyboard] Add bthlabs/geekpad (#4840)
* Hello, GeekPad!

* Fixed formatting in `README.md`.
2019-01-15 07:49:34 -08:00
Aaron Wood
bc63da4fbf [Keymap] Added resfury keymap (#4827)
Colemak base with Qwerty/Dvorak support
2019-01-15 07:45:49 -08:00
Jeremy Bernhardt
5287b94e6f Pointed LM Docs at expected keycodes (#4835)
* Pointed LM Docs at expected keycodes

* Update docs/feature_advanced_keycodes.md

Co-Authored-By: germ <jeremythegeek@gmail.com>
2019-01-14 09:10:57 -08:00
Konstantin Đorđević
9105bf2434 Add personal userspace, update keymaps (#4845)
* Add kbd6x:konstantin keymap

* Prevent tap dance from sending LShift as a weak mod in KBD6X

* Move config.h and rules.mk definitions into userspace

* Add UC_WIN to UNICODE_SELECTED_MODES

* Temporarily use Bootmagic until Command is fixed

* Move common behavior from keyboards into userspace

* Update kbd6x:konstantin keymap and userspace

* Make a RCTRL layer in kbd6x:konstantin

* Make KC_ESC turn off layers

* KC_ESC turns L_FN off only if it was locked on

* Add missing record->event.pressed checks

* Move numpad toggling logic into function

* Disable Bootmagic, enable KEYBOARD_SHARED_EP with Command
2019-01-14 09:09:47 -08:00
Erovia
ee96b7a89d [Keyboard] Add support for THE50 (#4844)
* Add support for THE50

A 50% custom keyboard designed and produced by LazyDesigners

* THE50 code-improvement

Implement the changes suggested by noroadsleft.
2019-01-14 00:49:00 -08:00
mtei
929065b1a9 Change handling of CUSTOM_MATRIX in common_features.mk slightly. 2019-01-13 11:04:40 -08:00
Jeremy Bernhardt
c8cbee5d71 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
Christoffer Holmberg
9bd4b932d0 [Keymap] Nyquist layout adapted from eorgodox_ez:skug (#4830)
* Nyquist layout adapted from my eorgodox layout

* Some layout tuning & cleanup

* Removed deprecated defines

* Added pgup + pgdown
2019-01-13 09:02:57 -08:00
Mazin Power
a9982e3b6b [Keymap] Adds keymaps for muzfuz DZ60, Planck, Clueboard66 (#4825)
* Adds keymaps for muzfuz

* Remove unused keys from adjust layer

* Bring in line with current QMK standards.
2019-01-13 09:01:20 -08:00
Jeremy Bernhardt
246c3e4ef4 Changed rest note (#4837)
* Changed rest term

* Update quantum/audio/musical_notes.h

Co-Authored-By: germ <jeremythegeek@gmail.com>
2019-01-13 08:50:23 -08:00
tw1t611
caf0c8e164 [Keymap] Add tw1t611 german keyboard layout for minidox. (#4679)
Apply core functions.

Change layout.
2019-01-12 21:40:12 -08:00
Jason Pepas
9ef46494b2 [Keyboard] hexon38 and Dual-role key implementation (#4709)
* initial dual-role key implementation for hexon38

* PR feedback, adding README

* Moving to handwired subdir

* Additional PR feedback
2019-01-12 21:30:19 -08:00
VM
baaa138e90 [Keymap] my keymap for the crkbd and update my iris keymap readme (#4788)
* adding my keymap primarily to iris

* adding my crkbd keymap and update my iris keymap readme with an extra pic

* incorporting @drashna's suggestions
2019-01-12 21:09:04 -08:00
SpacebarRacecar
4cde82ef57 [Keymap] Update to personal keymaps and userspace (#4831)
* changed ortho keymaps and userspace

* changed prime_o keymap

* changed userspace

* optimized keymaps and userspace

* removed permissive hold as it doesn't seem to do anything

* defined TAPPING_TERM in userspace config.h
2019-01-12 09:32:50 -08:00
noroadsleft
87b277c21a [Keyboard] Fix layout macro name for Gergo info.json (#4828)
Layout macro name in info.json was named LAYOUT instead of LAYOUT_GERGO as it is in gergo.h.
2019-01-12 00:06:41 -08:00
fauxpark
3ea7c2a434 Remove empty action_function() 2019-01-11 18:32:43 -08:00
fauxpark
67adc29aa3 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
Jeremy Bernhardt
d8eace35eb [Keyboard] Adding support for Gergo (#4792)
* Commited into clean repo

* Gergo initial release

* Cleaning up

* Cleaning up

* Update readme.md

* Updated image, fixed MD formatting, added clairity

* Moved keymap to keyboard subdir, modified rules.mk

* Cleaned header guards

* Cleaned header guards. Read the rest of the PR comments

* Update keyboards/gergo/keymaps/default/keymap.c

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Update keyboards/gergo/readme.md

Co-Authored-By: germ <jeremythegeek@gmail.com>

* Moved makefiles to keymap mod-area-thingy-with-overrides

* Update rules.mk

Slow the roll on the defaults while I wait for merge

* Update rules.mk

* Cleaning cleaning cleaning

* More housekeeping. Keeping optdefs

* moved keyboard specfic conf to config.h. Can we merge yet?

* added info.json
2019-01-11 17:44:06 -08:00
Leszek111
52ccd8d89f [Keymap] Adds layout for Ergodox, colemak_code_friendly (#4819)
* Adds layout for Ergodox, colemak_code_friendly

* code cleanup

* code cleanup

* code cleanup
2019-01-11 17:39:24 -08:00
Spaceman
cad0e3b90c [Keymap] added new planck keymap /sebas (#4821)
* Create readme.md

* Add files via upload

* Add files via upload

* Update readme.md

* Add files via upload

* Update keymap.c

* Delete temp.c

* updated per request

removed 41-69 and changed keymap to layout

* Update keymap.c

* Added Guide

* Update keymap.c

* Update readme.md

* Create readme.md

* Add files via upload

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c
2019-01-11 17:30:54 -08:00
gorbachev
81ad6cac7e [Keymap] Sweet16 as a switch tester (#4822)
* Sweet16 as a switch tester

* pragma once

* QMK_KEYBOARD_H instead of sweet16.h
2019-01-11 17:27:15 -08:00
James Churchill
9c136e1168 Improved fix for __always_inline redefinition bug
Instead of changing based on the version of GCC, check for the presence of the macro instead.
2019-01-11 17:25:57 -08:00
fauxpark
2c4109394f Fix Caps Lock LEDs once and for all (#4824)
* Check the size of the SET_REPORT packet

If we have two bytes, that probably means the first is a report ID. The 6KRO interface may or may not have one, but the NKRO interface always does, so we need to check this regardless of whether KEYBOARD_SHARED_EP is defined.

* Fix indentation
2019-01-11 17:22:05 -08:00
MechMerlin
d9c5e5870e [Keyboard] Turn on KBD67 Lighting by default (#4826)
* remove broken link

* enable lighting for QMK Configurator folk
2019-01-11 17:11:48 -08:00
MechMerlin
07c6c4acb9 [Keymap] Alps64 Keymap + Readme Updates (#4807)
* update readme to adhere to modern QMK standards

* add in my keymap as I keep losing the darn hex file

* no need for KC_FNX

* update readme
2019-01-10 11:35:58 -08:00
orbitingorca
3ac6989cc1 Documentation clarification (#3611)
* Documentation fix

* Further clarification
2019-01-10 08:30:30 -08:00
Guilherme Lima
aad4319b40 docs: Add Manjaro/Arch dependencies on getting started page (#2701)
* Update getting_started_build_tools.md

* Update getting_started_build_tools.md
2019-01-10 08:28:52 -08:00
Jack Humbert
d28684da90 Adds support for JacoBurge's TouchPad (#4186)
* add touchpad

* progress

* working with leds and vibrations

* adds readme

* Update keyboards/touchpad/readme.md

Co-Authored-By: jackhumbert <jack.humb@gmail.com>

* updates
2019-01-10 08:26:40 -08:00
Jack Humbert
3cf179be61 Adds Proton C Conversion (#4661)
* adds proton c base

* fixes custom matrix include

* adds readme.md

* initial proton coversion, no pin mapping

* start of mcu selection

* add pin mapping and sweet16 test

* add at90 to list

* disable backlight, fix d7

* update flag names

* doc updates

* proton c update for mcu selection
2019-01-10 08:22:57 -08:00
reasonsandreasons
ebbc372f72 Added my Prime_O Layout (#4811)
* initial prime_o commit

* Cleaned up comments, other things.

* Update bakingpy 4x12 keymap and add test mode for debugging/development (#4810)

* Keymap: ave-63's iris layout (#4812)

* Updated keymap to use standard seven-underscore KC_TRNS notation

* initial prime_o commit

* Cleaned up comments, other things.

* Updated keymap to use standard seven-underscore KC_TRNS notation
2019-01-10 08:21:21 -08:00
ave-63
9c2d776123 Keymap: ave-63's iris layout (#4812) 2019-01-09 14:16:36 -08:00
Danny
808ff7275e Update bakingpy 4x12 keymap and add test mode for debugging/development (#4810) 2019-01-09 12:23:41 -08:00
Eduardo Lourenço Pinto Neto
722cee3362 Fix Mac mute keycode (#4809) 2019-01-09 09:23:09 -08:00
Eduardo Lourenço Pinto Neto
dc6b6c29ba Add KBD75 keymap (#4808)
* Add KBD75 keymap

* Fix README

* Fix README images
2019-01-09 07:52:11 -08:00
Danny Nguyen
84c2418817 Fix pinout of split hand and LED, remove flip half option 2019-01-08 17:02:51 -08:00
fauxpark
3bd30085d8 Tidy up Mod-Tap shortcuts (#4806) 2019-01-08 16:22:09 -08:00
Konstantin Đorđević
64c957d907 Add missing parentheses to some important macros (#4775)
* Add missing parentheses to quantum_keycodes macros

* Add missing parentheses to progmem macros
2019-01-08 15:08:17 -08:00
noroadsleft
9eb7b7919f Keyboard: Downbubble refactor and Configurator fix (#4798)
* Downbubble: Configurator fix

Fix the visual key alignment and some typos.

* Downbubble: refactor

Rename layout macros:

- LAYOUT_downbubble_standard to LAYOUT_standard
- LAYOUT_downbubble_splitbackspace to LAYOUT_split_bs
- LAYOUT_downbubble_splitrightshift to LAYOUT_split_rshift
- LAYOUT_downbubble_splitnumpad to LAYOUT_split_numpad
- LAYOUT_downbubble_spliteverything to LAYOUT_all
2019-01-07 23:16:50 -08:00
Vasken Dermardiros
103d904fab Alternate keymap for Alpha keyboard, enjoy! (#4797)
* Create README.md

* Add files via upload

* Update README.md
2019-01-07 13:06:34 -08:00
Elvis Pfützenreuter
c5707708ed Keymap: Added Model F-inspired layout for YMD[K]96 (#4777) 2019-01-07 13:00:15 -08:00
Konstantin Đorđević
cd9262d7b2 Improve consistency in UNICODEMAP code and docs, update docs/understanding_qmk (#4774)
* Remove unused UNICODE(n) macro, update docs

* Add note about max length of unicode_map to docs

* QK_UNICODE_MAP → QK_UNICODEMAP

* Refactor process_unicode_map

* process_unicode_map → process_unicodemap

This is done for consistency: UNICODEMAP is the method (hence UNICODEMAP_ENABLE, process_unicodemap), whereas unicode_map is the mapping table itself.

* Update references and ordering in docs/understanding_qmk

* Add additional note to docs/understanding_qmk

* &unicode_map[index] → unicode_map + index

This avoids the issue of the compiler sometimes complaining about the array index being out of range

* Update docs/getting_started_make_guide

* Update method sections in docs/feature_unicode
2019-01-07 12:56:57 -08:00
patrickmt
6e984a8b5e Update to arm_atsam wait and timer routines
Microsecond (us) delays are now handled by a busy wait loop according to MCU frequency. This replaces the system counter method which had an overhead of around 12us.
TC5 device and supporting routines removed as it was the old us delay counter.
wait_ms is now properly a macro to CLK_delay_ms.
wait_us is now properly a macro to CLK_delay_us.
Removed CLK_get_us as it has no use.
All calls to CLK_get_ms() have been replaced by timer_read64() with corrected typing.
All calls to CLK_delay_ms() have been replaced by wait_ms().
All calls to CLK_delay_us() have been replaced by wait_us() and timings verified or updated as needed after review on scope.
Corrected typing of variables using 64bit ms timer readings if needed.
2019-01-07 12:44:55 -08:00
Ian O'Dea
6ca52c9d57 Fix indentation in tmk_core led_matrix.c 2019-01-07 10:22:47 -06:00
Ian O'Dea
9f3afae5d1 Make arm_atsam led matrix circular animation circular rather than obloid 2019-01-07 10:20:15 -06:00
Ian O'Dea
d55dc9b816 Add ability to animate arm_atsam led matrix from the center of a circle 2019-01-07 09:36:28 -06:00
flehrad
2898699804 Add Downbubble to Handwired repository (#4794)
* add snagpad

* Update keyboards/snagpad/kb.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Rename kb.c to snagpad.c

* Update and rename kb.h to snagpad.h

* Update snagpad.h

* Update keymap.c

* Update config.h

* Update config.h

* Update rules.mk

* Update README.md

* Add files via upload

* Update info.json

* Update keymap.c

* Update snagpad.h

* Delete snagpad_numpad.json

* Delete snagpad_ortho.json

* Update README.md

* Update keyboards/snagpad/info.json

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* add tradestation

* --all

* Did something weird messing with git -_- hopefully fixed

* Update keyboards/tradestation/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/config.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/config.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update snagpad.h

* Update rules.mk

* Update keymap.c

* fixed merge conflict, updated to LAYOUT_numpad_5x4

* relocated to handwire, updated naming, added layouts to rules.mk

* Update keyboards/handwired/tradestation/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Rename LICENSE to license

* Rename README.md to readme.md

* Rename LICENSE to license

* Rename README.md to readme.md

* Update info.json

* Update keymap.c

* Update info.json

* Adding Numbrero QMK to Handwire Repository

* Update config.h

* Update readme.md

* Update keyboards/handwired/numbrero/numbrero.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keymap.c

* Update keyboards/handwired/numbrero/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Add handwired/downbubble keyboard to QMK Repository

* Update readme.md

* Create license

* Update keyboards/handwired/downbubble/readme.md

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/handwired/downbubble/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* fixed .h with noroadsleft's gist
2019-01-07 07:29:37 -08:00
yiancar
2bfac351ed Final HS60v2 changes. (#4790)
* initial commit, this now mostly works

- RGB controls work
- Dynamic keymap still broken due to eeprom
- Via works

* STM32 eeprom update

- Update EEPROM emulation library to handle 8bit data like AVR.
- This library also allows for multiple page pairs resulting in greater EEPROM size flexibility

* hs60 changes

* HS60 hhkb added

* Update keyboards/hs60/v2/config.h

Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
2019-01-06 17:22:19 -08:00
noroadsleft
2c0bc5ed6b Keyboard: Fractal layout macro and readme cleanup (#4789)
* Fractal: layout macro cleanup

Removed KEYMAP alias for LAYOUT_preonic_mit. Alias was unused, and the terminology usage is deprecated.

* Fractal: readme cleanup

Updated the line containing the documentation links in the readme.

* Fractal: disable preonic_mit community layout

QMK doesn't have a preonic_mit community layout at this time.

Disables preonic_mit as an option for community layout. Can be re-enabled when the layout is added.
2019-01-06 11:05:24 -08:00
mikethetiger
4aaa4b3428 Keymap: added my espectro keymap (#4791)
* adding my planck keymap

* adding my planck keymap

* added my espectro keymap
2019-01-06 10:36:24 -08:00
noroadsleft
90046af17f Keyboard: Numbrero: Configurator fix and code tidy (#4787)
* Numbrero: fix Configurator mismatch

Key object order in info.json didn't match the layout macro, leading to keys being assigned out-of-sequence.

* Numbrero: tidy

- white space changes in numbrero.h (alignment/readability/QMK conventions)
- minor changes to readme.md (grammar, mostly)
2019-01-05 15:34:38 -08:00
noroadsleft
27b512d9f5 Keyboard: Tradestation code tidy and readme refactor (#4784)
* Tradestation: tidy code

- correct JSON syntax on info.json
- visual key alignment on info.json
- white space changes on rules.mk and tradestation.h (readability/QMK conventions)

* Tradestation: readme refactor

Modify readme.md to more closely match QMK template.

* Tradestation: readme update

Update The Board podcast link for libsyn.
2019-01-05 15:34:19 -08:00
MechMerlin
9153ff59d4 Keyboard: update readme with ps2avr flashing instructions (#4776) 2019-01-05 10:04:45 -08:00
Masayuki Sunahara
ac7a9e3c66 add Pinky keyboard (#4748)
add Pinky (https://github.com/tamanishi/Pinky3) keyboard
2019-01-05 09:35:48 -08:00
Naoki Katahira
ea47be936b Keyboard: Lily58 update serial.c and add OLED (#4715)
* update serial.c and add OLED

* update readme

* keymap fix

* keymap fix2
2019-01-05 09:30:48 -08:00
mikethetiger
5b5f452bf9 adding my planck keymap (#4782)
* adding my planck keymap

* adding my planck keymap
2019-01-05 08:56:00 -08:00
Konstantin Đorđević
be666b2d8a Add underscores to names of brightness control constants in report.h (#4764) 2019-01-05 08:31:24 -08:00
noroadsleft
d6cc90d027 S65-X and S65-Plus updates and refactoring (#4780)
* S65-X: remove S65-Plus support

The original QMK codebase for the Sentraq S65-X actually supported both the S65-X and the S65-Plus. In the interim, the S65-Plus has been broken off into its own directory.

This commit removes support for the S65-Plus from the `keyboards/s65_x/` directory, as that code has been superseded by the code in the S65-Plus directory (`keyboards/s65_plus/`).

- deleted S65-Plus layout macros from s65_x.h and info.json
- deleted s65plus keymap directory
- removed references to the unused column pins
- removed the two unused columns for the switch matrices
- renamed switch K300 in LAYOUT_ansi to K301 (reflects matrix position)
- renamed switch K214 in LAYOUT_iso to K114 (reflects matrix position)

* S65-X: keymap refactor

- all keymaps now use #include QMK_KEYBOARD_H
- default and iso keymaps refactored for readability
- deleted redundant KC_TRNS and KC_NO keycode definitions from smt keymap

* S65-X: readme update

- updated Hardware Availability link
- updated Docs links

* S65-Plus: add LAYOUT_iso data

Adds LAYOUT_iso macro to s65_plus.h and info.json, and an ISO layout version of the default keymap.

* S65-Plus: refactor default keymap

- refactor for alignment/readability
- removed fn_actions code block
- add empty process_record_user block

* S65-Plus: readme update

- Hardware Availability link is now a hyperlink
- updated Docs links

* S65-X: enable 65_ansi and 65_iso community layouts

Thi commit allows the Sentraq S65-X to use the 65_ansi and 65_iso community layouts.

- LAYOUT_ansi renamed to LAYOUT_65_ansi
- LAYOUT_iso renamed to LAYOUT_65_iso
- added LAYOUTS rule to rules.mk
2019-01-04 21:47:13 -08:00
flehrad
3527efcbd2 Adding keyboards/handwire/numbrero (#4773)
* add snagpad

* Update keyboards/snagpad/kb.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Rename kb.c to snagpad.c

* Update and rename kb.h to snagpad.h

* Update snagpad.h

* Update keymap.c

* Update config.h

* Update config.h

* Update rules.mk

* Update README.md

* Add files via upload

* Update info.json

* Update keymap.c

* Update snagpad.h

* Delete snagpad_numpad.json

* Delete snagpad_ortho.json

* Update README.md

* Update keyboards/snagpad/info.json

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* add tradestation

* --all

* Did something weird messing with git -_- hopefully fixed

* Update keyboards/tradestation/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/config.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/config.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update snagpad.h

* Update rules.mk

* Update keymap.c

* fixed merge conflict, updated to LAYOUT_numpad_5x4

* relocated to handwire, updated naming, added layouts to rules.mk

* Update keyboards/handwired/tradestation/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Rename LICENSE to license

* Rename README.md to readme.md

* Rename LICENSE to license

* Rename README.md to readme.md

* Update info.json

* Update keymap.c

* Update info.json

* Adding Numbrero QMK to Handwire Repository

* Update config.h

* Update readme.md

* Update keyboards/handwired/numbrero/numbrero.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keymap.c

* Update keyboards/handwired/numbrero/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>
2019-01-04 21:38:22 -08:00
Jordi Pakey-Rodriguez
3e45bc775e Add novelpad 0xdec keymap (#4779) 2019-01-04 15:28:01 -08:00
noroadsleft
aff5c49ee9 Layouts: add 65_iso (#4778) 2019-01-04 15:27:21 -08:00
noroadsleft
7f4f0f7685 Remove deprecated QUANTUM_DIR code blocks from makefiles (#4754)
* Remove QUANTUM_DIR code blocks from keyboard rules

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect entire keyboards.

* remove QUANTUM_DIR code blocks from rules for default keymaps

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect default keymaps.

* remove QUANTUM_DIR code blocks from rules for user keymaps

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect "user" keymaps. (It's actually any keymap
that isn't named `default`.)

* remove QUANTUM_DIR code blocks from rules for community layouts

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files for community layouts.

* remove QUANTUM_DIR code blocks from rules for userspaces

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files for userspaces.
2019-01-04 07:25:48 -08:00
noroadsleft
b1ed855871 Dichotomy: fix info.json mismatch (#4771)
The info.json file was missing the two keys that correspond to the
rotary encoders.
2019-01-04 07:24:45 -08:00
Alex Ong
2bb2977c13 Merge branch 'master' into debounce_refactor
# Conflicts:
#	tmk_core/common/keyboard.c
2019-01-04 19:43:45 +11:00
Alex Ong
47c91fc7f7 Merge branch 'master' of https://github.com/qmk/qmk_firmware 2019-01-04 19:39:14 +11:00
James Churchill
563ce3f225 Add explicit eeprom include in split_common
Fixes builds that set EE_HANDS.
2019-01-03 20:00:27 -08:00
James Churchill
38e01a7480 Convert split_common to use generic GPIO api 2019-01-03 20:00:27 -08:00
noroadsleft
54b572159f Preonic rev. 3: fix info.json file
File was saved with an invalid JSON structure.
2019-01-03 21:52:35 -05:00
noroadsleft
6f80217958 Snagpad: fix Configurator mismatch (#4767)
Key objects for the LAYOUT_numpad_5x4 macro were out-of-order in
info.json.

Also white space changes because I'm that guy.
2019-01-03 16:33:32 -08:00
Konstantin Đorđević
e76bf17d36 Remove redundant, language-specific aliases for KC_ALGR (#4720)
* Use standard KC_ALGR, remove language-specific redefinitions

* Use ALGR instead of ALTGR in BÉPO and Canadian multilingual keymaps

* Remove BE_LALT, BE_LGUI aliases
2019-01-03 08:13:55 -08:00
Gam3cat
6cb2d7ba6d Keymap updates (#4706)
* adding my keymap

* update keymap

* adding gamecat keymap for jc65 keyboard

* updating jc65-gamecat keymap

* updating jc65-gamecat keymap

* updating jc65-gamecat keymap

* updating jc65-gamecat keymap

* M10a keymap and M65a updates

* keymap updates

* keymap updates

* M10a/M65a keymap updates

* M10a/M65a keymap updates

* Delete test.txt

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65/M10 keymap updates

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65/M10 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* Set theme jekyll-theme-cayman

* Set theme jekyll-theme-slate

* M65 keymap update

* M10a/M65a keymap updates

* M10a keymap update

* M65a keymap update

* M65a keymap update

* M65a keymap update

* M65a readme update

* M65a/M10a updates

* M65a readme updates

* M65a/M10a updates

* M65A update

* M65A update

* M65A update

* M65A update

* M65A/M10A keymap update

* M10A keymap update

* Set theme jekyll-theme-tactile

* M10A keymap update

* M65A keymap.c update

* M65 keymap added LED backlight toggle, inc/dec to adjust layer.

* M65 keymap/readme updates.

* M65 keymap fix

* M65 keymap update

* remove theme

* fix comments/readme

* update keymap

* LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure.

* LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure.

* M65 keymap update

* Updated M65, M10, and gonNerd keymaps.

* update

* del

* keymap updates M65, M10, gonnerd

* update keymaps

* adding back readme that somehow got removed.

* updated keymap

* update keymap

* add back readme

* Added h87a keymap, updated m10a/jc65/gonnerd

* Update h87a keymap

* Updates after feedback

* Updates after feedback

* Updates after feedback

* Updates after feedback
2019-01-03 08:12:58 -08:00
flehrad
526bc4c7cc Keyboard: add snagpad and trainstation keyboards (#4755)
* add snagpad

* Update keyboards/snagpad/kb.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Rename kb.c to snagpad.c

* Update and rename kb.h to snagpad.h

* Update snagpad.h

* Update keymap.c

* Update config.h

* Update config.h

* Update rules.mk

* Update README.md

* Add files via upload

* Update info.json

* Update keymap.c

* Update snagpad.h

* Delete snagpad_numpad.json

* Delete snagpad_ortho.json

* Update README.md

* Update keyboards/snagpad/info.json

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* add tradestation

* --all

* Did something weird messing with git -_- hopefully fixed

* Update keyboards/tradestation/keymaps/default/keymap.c

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/config.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/config.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/tradestation/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update snagpad.h

* Update rules.mk

* Update keymap.c

* fixed merge conflict, updated to LAYOUT_numpad_5x4

* relocated to handwire, updated naming, added layouts to rules.mk

* Update keyboards/handwired/tradestation/rules.mk

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Update keyboards/snagpad/snagpad.h

Co-Authored-By: flehrad <20124416+flehrad@users.noreply.github.com>

* Rename LICENSE to license

* Rename README.md to readme.md

* Rename LICENSE to license

* Rename README.md to readme.md

* Update info.json

* Update keymap.c

* Update info.json
2019-01-03 08:05:33 -08:00
ishtob
484c85bd0d Adding default settings for ERM motors for Hadron v3 haptic feedback (#4761)
* adding default settings to support 3v ERM vibration motors

* set default settings of haptic motor for LV061228B-L64-A 2v LRA

* update ishtob keymap and fix config settings
2019-01-02 13:30:59 -08:00
Jacob Jerrell
a7b1b146d1 Keymap: Bocaj Layout and Userspace Refactor (#4753)
* Bocaj Layout Revamp

* Pull in Upstream (#1)

* Various tweaks for some Input:Club build processes

* change KEYMAP to LAYOUT for all new keyboards made using this script

* Add support for rev3 of the Atom47 (#2672)

* Added support for rev3 of the Atom47

* Updated Atom47 readme's

* Fix redefine error on rev2 and add maartenwut's keymap

* Fix redefine error on LEdiodes keymap

* Add Nyquist keymap (#2692)

* nyquist

* danielhklein nyquist setup

* shift left controls

* remove readme

* cleanup before pr

* ready for pr

* Adds Phantom TKL support (#2696)

* Add an info.json to phantom keyboard

* Add layouts

 - KEYMAP_WINKEYLESS
 - KEYMAP_7BIT
 - KEYMAP_ISO
 - KEYMAP_ISO_WINKEYLESS

* Add key_counts

* Add 2 missing F-Row keys

* Add TKC1800 info.json

Created an info.json for the tkc1800.

* Clueboard 60 info.json

 - adds
   - LAYOUT_60_ansi
   - LAYOUT_60_iso
   - KEYMAP_AEK
   - KEYMAP
   - LAYOUT_60_ansi_split_bs_rshift

* Add the Speedo keyboard

* Fix KC60 info.json file (#2707)

* change KEYMAP to LAYOUT in all the KC60 files

* Redo the info.json file

* Small fixes to TKC1800

 - adjust F-row to use 0.25 spacing
 - split left shift
 - add key_count

* Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708)

* change diverge 3 KC_KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for handwired arrow pad

* change M10A to LAYOUT for m10-a

* Change KC_KEYMAP to LAYOUT_kc and KEYMAP to LAYOUT for mf68

* change KC_KEYMAP to LAYOUT for nano

* Refactor to LAYOUT

* refactor to LAYOUT-ansi and LAYOUT_iso for s65

* LAYOUT conversions for lfkkeyboards

* missed a few renames

* mini1800 for lfkeyobards support of LAYOUT

* Improve state/chord handling and clean up namespace

Some values that can never, ever, change were held in local
variables, rather than in PROGMEM. Fixed.

Change "pressed" to a signed int so the test for < 0 makes
sense, and to avoid possible weird failure modes in the
case where a key release comes in when pressed is already
zero. (Shouldn't happen, sure, but computers are weird.)

A lot of things in process_steno had external linkage for no
particular reason. They've been marked static. Stuff still
builds.

Distinguish between currently-held keys and keys that have
been held, and expose these values through a nicely-named API
so other code could, say, check on the current set of steno
chording in order to make displays. Also in passing fix up the
"state" value having external linkage so it could clash with
other people's variable declarations.

The API also provides hooks for key processing and steno chord
events, so you can monitor those events without having to
run in matrix_scan_user and recheck the values directly. Also
document these.

There is no path through processing a key that doesn't
end with a return false, so the nested return foo() are
gone and we just return false.

* Pull information from config.h and rules.mk (#2711)

* Pull information from config.h and rules.mk

* Readd the kbd75 maintainer

* Remove obsolete info.json entries (#2712)

* Clean up some long-standing errors when populating the API (#2715)

* More Configurator Warning Fixes (#2716)

* mf68_ble did not have the correct .c and .h files

* Fix JC65 KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for s60_x

* Convert KEYMAP to LAYOUT for lets_split boards

* Convert KEYMAP to LAYOUT

* more fixes to keymap for iris

* convert KEYMAP to LAYOUT for levinson keyboard

* change losinggeneration's KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for nyquist

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for viterbi

* convert KEYMAP to LAYOUT

* convert KEYMAP and its subsidiries to the LAYOUT standard

* convert KEYMAP and its subsidiries to the new LAYOUT standard

* Normacos keymap for let's split keyboard (#2691)

* Cheers let's split keymap

* fixed typo on norman layer of cheers keymap for let's split

* fixed right handed mappings for home row

* cheers keymap for let's split redefinition

* updated Cheers keymap for let's split

* cheers keymap for let's split updated with some terminal macros

* renamed cheers let's split keymap to a more appropriate normacos

* updated normacos keymap doc / removed non functional keys

* reset let's split rules to default values

* added more spotlight search macros

* normalized keymap comments

* Moved numpad on lower layer

* hhkb jp personal keymap (#2698)

* Add JJ40 Cockpit personal keymap (#2713)

* Add JJ40 Cockpit keymap

* Fix lower layer symbols

* Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718)

* add readme to ktype keyboard

* add readme to m10a

* add readme to mini1800

* add readme to parent directory

* Revert "Pull in Upstream (#1)"

This reverts commit eeba0cec17ccb636e4225eed88aeae72b99f5e45.

* Updates to Bocaj Files

- Gave up on Tap Dance for ' -> '
+ Added another 'Secret'
+ Add ' -> ' to the Swap Hands key
+ Add Swap Hands to the ' -> ' key
+ Made Hand Swapping a momentary toggle
- Removed Auto Shift
+ Added Layer Toggle to KC_QUOTE for the _TOOLS layer
- Disabled Tap Dance

* Merge remote-tracking branch 'upstream/master'

* Updates to Bocaj

Added Game Layers, Removed Unused Macros

* Removed 'secrets.h'

* Updates to Bocaj

Remove 'secrets'.
Remove 'sendstring_workman.h' and set related layer back to qwerty due to macro compatibility issues

* Total revisioning of keymap and layout structure

* Missed readme.md file

* Bocaj - Permissive Hold setting enabled

* Switching from ErgoDox EZ centric configuration to the layout/user approach

* Bocaj - Create Userspace and Ergodox layout

* Update settings.json

* Pushing local updates

* Reverting .vscode/settings.json

* Adds pretty_osx and _win wrappers

* Utilize Windows and Mac Wrappers

* Update layouts/community/ergodox/bocaj/keymap.c

* Updates to Bocaj keymap.c

- Extended pretty_osx and pretty_win wrappers to allow modification of the bottom rows and thumb clusters.
- Fixed already wrapped layouts to align with the change
- Wrapped _NUMS and _CLICKY layers with the _osx wrapper because I main with a Mac

* Updates to Bocaj

Small documentation updates, added KC_MAKE from Drashna's layout, added KC_LOCK back to the diablo layer.

* Add LShift to _Adjust layer

* Minor changes to bocaj

Put wrappers in userspace and added RESET keycode to the Adjust layer

* Updates to Bocaj config & keymap; Fixed problem with process_leader.c

- Made lots of changes to the bocaj layout and userspace
- Pulled in latest upstream/master
- Attempted to compile with latest and found an unneccessary `break` in process_leader.c

* Bocaj - Updates to Layout and Userspace

* Adjust LEADER_TIMEOUT to 350
* Put KC_GRAVE on _ADJUST layer
* Eliminate _LOWER layer and associated definitions
* Adjusted layer indicating LEDs to match changes
* Fixed Diablo leader sequence
* Added build info leader sequence
* Got rid of obsoleted IGNORE_MOD_TAP_INTERRUPT/PERMISSIVE_HOLD/PREVENT_STUCK_MODIFIERS (may add STRICT_LAYER_RELEASE in the future)

* Remove type_traits

Not sure what in my VSCode config always brings this one in

* refactor stage 1

* Bocaj Refactor Phase II

* Made LED_2 brighter if both CTRL & GUI are being held
* Enabled unicode because I got it to work in Mac OS
* Finalized Build Info leader combination after testing in Mac OS
* Not sure why KC_D3_1 was set to ASDF if !TAP_DANCE_ENABLE. So I changed that back
* Experienced issues with `EXTRAFLAGS += -flto` using Docker in MacOS. Not sure what it does, but I don't seem to be missing anything
* Wrote obligatory readme.md files and mentioned Drashna too many times... I don't think I can actually take credit for much of anything here.

* Updates to Bocaj

Made LED changes, added LM_DFLT which is similar to the grave macro, enabled retro tapping, working on a unicode idea -- currently fails to build.

* Bocaj Refactor Phase 3 Part 2

- Continuation of implementing unicode switching based on default layer
- Slight adjustments to _DIABLO and base wrapper because LM_DFLT macro didn't function as I'd hoped

* Slight adjustment to KC_MAKE
2019-01-02 09:23:42 -08:00
Frank Tackitt
7b5fa4b13e Keymap: Add userspace for @kageurufu (#4752)
* Add userspace for @kageurufu

* Remove custom keycodes for layer keys

Add some common defaults for my rules.mk
2019-01-02 09:16:55 -08:00
lbibass
c71c078dff Added brightness controls and Media controls to my keymap. (#4760)
* Added my Mechmini2 layout to qmk.

* Added more info to the readme.

* Made changes.

* Update keyboards/mechmini/v2/keymaps/lbibass_625_space/keymap.c

Co-Authored-By: lbibass <ewdries02@gmail.com>

* Update keyboards/mechmini/v2/keymaps/lbibass_split_space/keymap.c

Co-Authored-By: lbibass <ewdries02@gmail.com>

* Added brightness and volume controls to MechMini 625 layout.
2019-01-02 08:42:03 -08:00
Frank Tackitt
134a69f4ad Keyboard: Enable defaults for Sol (#4751)
The enables RGB, Mousekeys, and Extrakeys for users of config.qmk.fm
2018-12-31 14:55:48 -08:00
Drashna Jaelre
40383089d0 Keymap: Update for Drashna code - Proton C Prep Edition (#4708)
* Make CRKBD keylogger output actually show tap keys

* check MT/LT for twinkling

* Add ortho 5x12 support for fractal keyboard

* Use newer interface for setting pins/ports

* Remove custom unicode methods

* Reomve unicode input info

* Odd rules issue

* Redefine REST note to be more pleasing

* Properly disable PM LEDs with GPIO commands

* Update gitlab CI yaml file

* Remove extra mod tap check

* Remove initial state on ergodox glow

* Rev6 Cleanup

* Fix KC_MAKE macro

* Update GitLab CI yaml file

* More GitLab CI changes

* One final GitLab CI change

* Remove unneeded unicode support

* Optimize KC_MAKE
2018-12-31 14:29:56 -08:00
Drashna Jaelre
7f0def77a2 Move Split Common VPATH addition (#4716)
Specifically, only add the split_common folder to COMMON_VPATH if the feature is eanbled, to prevent issues with compilation
2018-12-31 08:45:44 -08:00
David Dai
b7688590b8 Change rgblight_get_mode & rgb_matrix_get_mode's return type to uint8_t. (#4747)
* Change rgblight_get_mode's return type to uint8_t.

Since rgblight_get_mode() is just returning rgblight_config_t.mode,
it should match rgblight_config_t.mode's type: uint8_t.

* Update rgb_matrix_get_mode to return uint8_t.
2018-12-31 08:42:58 -08:00
takashiski
0c0e208a36 define brainfuck keymap (#4742)
* define brainfuck keymap

* Update keyboards/namecard2x4/keymaps/brainfuck/readme.md

Co-Authored-By: takashiski <takashiskibb@gmail.com>
2018-12-30 14:53:09 -08:00
Giuseppe Rota
3ddec14eb8 Register the interrupting keycode in the tap dance state struct 2018-12-30 08:35:12 -08:00
satt99
46b4b4407f Comet46 add support for OLED (#4745)
* Add OLED support for Comet46

* fix length of char "name" of keylogger.c

* update ssd1306

* fix rules.mk

* update led-receiver keymap

* Update OLED related code

* add mod_state_reader & modify led_state_reader

* Update OLED related files

* Update kemaps

* Update readme

* change default-oled-display to default

* Add OSM compatibility to mod_state_reader

* Code formatting

* Use PROGMEM to store code_to_name

* Clean up satt keymap

* Rename default-led keymap to defult-rgbled
2018-12-30 08:34:06 -08:00
Matthew Lyon
c2390bf321 Keymap: mattly: more tweaks (#4746) 2018-12-30 07:54:10 -08:00
wanleg
c043edd138 Keymap: Wanleg 5x5 Keymap changes (#4738)
* config fixes (including for issue #3678)

* put back audio

* jj40 backlighting setup

* jj40 backlighting setup

* rules.mk fix

* jj40 backlighting settings

* iris setup

* iris setup

* iris setup

* iris setup

* iris setup - onehand

* remove commented-out section

* edits due to #4403

* xd75 testing

* fix 5x15 layout issues with 5x5 bluetooth & xd75

* commenting out unused placeholders

* change iris to more wanleg-like 4x12 layout

* formatting changes

* onehand layout cleanup/fix

* revert temp change

* create centre numpad option

* 1st working version

* change keypad numbers to regular numbers - doesn't work otherwise

* adding comparison files, no change to core

* fixed 5x5 with cleave

* fixed 5x5 with cleave

* switch mouse scroll buttons

* clean up left/right/centre pad placement in 5x15 layouts

* minor comment change

* Update layouts/community/ortho_5x15/wanleg/keymap.c

Co-Authored-By: wanleg <32079073+wanleg@users.noreply.github.com>

* Update layouts/community/ortho_5x15/wanleg/keymap.c

Co-Authored-By: wanleg <32079073+wanleg@users.noreply.github.com>

* Update layouts/community/ortho_5x15/wanleg/keymap.c

Co-Authored-By: wanleg <32079073+wanleg@users.noreply.github.com>

* revert to original
2018-12-30 07:53:02 -08:00
ginjake
cc7bf108a9 Keymap: add ginjake keymap for the zinc keyboard (#4741)
* サンシャインぴっかぴかモード実装

* サンシャインぴっかぴかモード
2018-12-29 08:19:34 -08:00
Giuseppe Rota
bb1b441325 Fix leader processing 2018-12-29 08:17:43 -08:00
Menchen
e2f60eba2f Fix capkey led for dz60. 2018-12-28 23:29:58 -08:00
Stephen Gelman
8443481aea Fix apparent typo in WhiteFox LED config
It seems the led_mask is set incorrectly on the WhiteFox meaning that
the LED at C9-1 (the space bar) doesn't get lit.  I can't see any reason
for this to be intentional so I am pretty sure it's a typo.  At the very
least it fixes the space bar LED for me.
2018-12-28 22:55:59 -08:00
Jason Thigpen
d9abb833e5 Add my zeal60 keymap (#4732)
* Add my zeal60 keymap

* Temporarily remove failing community layout from zeal60 make rules

* Revert "Temporarily remove failing community layout from zeal60 make rules"

This reverts commit ffd0018fb1dcf3d5f90d4a226c437d4e85430cce.
2018-12-28 22:27:35 -08:00
Max
2c6c483096 refactored cyclops keyboard project (#4734)
* refactored cyclops keyboard project

Moved the files into a subfolder to allow consistency in preparation for additional commits to come in the future.

made some small adjustments to the configuration and keymap

* Update keyboards/westfoxtrot/cyclops/keymaps/default/keymap.c

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cyclops/readme.md

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cyclops/readme.md

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>

* Update keyboards/westfoxtrot/cyclops/readme.md

Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>
2018-12-28 15:07:47 -08:00
Drashna Jaelre
6b46c06018 Fix Split Common Split_util.c typo 2018-12-28 14:52:58 -08:00
Danny
c0859ac096 Update split keyboard docs (#4735)
* Remove unused I2C_MASTER_RIGHT setting

* Update documentation about split keyboard options
2018-12-28 13:02:53 -08:00
Konstantin Đorđević
93b004c943 Keep pressed keys on layer state change (fixes #2053, #2279) (#3905)
* Keep pressed keys on layer state change

* Add doc comment for clear_keyboard_but_mods_and_keys

* Keep pressed keys only if PREVENT_STUCK_MODIFIERS is on

* Check STRICT_LAYER_RELEASE instead of PREVENT_STUCK_MODIFIERS
2018-12-28 11:07:56 -08:00
Kyle Brown
fbcbf44926 Update feature_advanced_keycodes.md (#3672)
* Update feature_advanced_keycodes.md

Probably a better way to word it, but I've solved this issue on reddit several times, had to solve this for friends, ect. It's something worth being in the docs as it's a common issue, and not always intuitive. I have offered this change as I was told by several people "It was never mentioned in the docs".

* Update feature_advanced_keycodes.md

Clear up what was meant to be said.
2018-12-28 10:31:15 -08:00
Jumail Mundekkat
3744a2b641 Added Skog TKL support (#4727)
* Added Skog TKL support

* Updated manufacturer/product name
2018-12-27 08:40:33 -08:00
noroadsleft
cfba216541 S65-Plus: fix layout macro name in info.json (#4728) 2018-12-27 08:37:29 -08:00
Konstantin Đorđević
0c1256e60a Read user input properly in linux_install.sh for Gentoo (#4395)
* Change spaces to tabs on two lines

The rest of the file uses tabs

* Read user input in a non-terrible, non-hacky way

* Remove unnecessary tee call

* read -p is not POSIX

* Add missing $ to echo GENTOO_WARNING

* Replace non-POSIX echo -n with printf

* Use cd ... || exit 1 in case git clone fails

* Add missing sudo

Thanks @snortwolf

* Undo replacing tee with >>
2018-12-26 08:01:26 -08:00
noroadsleft
b7d2a9f980 S65-Plus: refactor and Configurator support (#4725)
- s65_plus.h updated to #pragma once method
- added info.json file
2018-12-26 07:55:42 -08:00
Yan-Fa Li
ee1be3e5b5 Improve diagnostics for build hashes 2018-12-25 17:09:48 -08:00
noroadsleft
8e0444618f XMMX refactor, Configurator support and readme update (#4722)
* XMMX: matrix and keymap refactor

- xmmx.h updated to use #pragma once
- renamed LAYOUT_ansi_wk macro to LAYOUT_tkl_ansi
- renamed LAYOUT_ansi_wkl macro to LAYOUT_tkl_ansi_wkl
- renamed LAYOUT_iso_wk macro to LAYOUT_tkl_iso
- renamed LAYOUT_iso_wkl macro to LAYOUT_tkl_iso_wkl

* XMMX: Configurator support

* XMMX: readme update
2018-12-25 11:24:47 -08:00
TerryMathews
de78d9e1ff Chibios_test/stm32_f072_onekey: Add support for reset to bootloader (#4238)
* Add support for reset to bootloader

Chibios_test/STM32_F072_ONEKEY wouldn't reset to bootloader on a
compatible Discovery board because the Chibios library board file was
lacking the __early_init(void) function necessary to read the magic key.
Borrowed code from Clueboard 60, tested working.

* Remove board.chcfg
2018-12-25 10:42:48 -08:00
Jason Thigpen
08e9fc142c Add tsangan layout to dz60 with a "sane" default keymap (#4717) 2018-12-24 14:49:03 -08:00
noroadsleft
41dee98ec4 Redox: Configurator bugfix (#4721) 2018-12-24 14:27:35 -08:00
Takeshi ISHII
72d4e4bfd7 Replace serial.c of quantum/split_common/ (#4669)
* Add provisional Helix implementation to test the quantum/split_common.

* copy keyboards/helix/serial.[ch] to quantum/split_common/

* Make serial.c a pure driver.

Remove buffer name and buffer size from serial.c. They should be placed in the caller(matrix.c, split_utils.c).

* remove quantum/split_common/serial_backward_compatibility.h

* Changed array serial_master_buffer to structure serial_m2s_buffer.

* Changed array serial_slave_buffer to structure serial_s2m_buffer.

* Change keyboards/miniaxe/matrix.c

I also made changes to quantum/split_comon/matrix.c to keyboards/miniaxe/matrix.c.

Note: I contacted @ka2hiro, creator of miniaxe, and I got permission to change keyboards/miniaxe/matrix.c.

* update history comment in quantum/split_common/serial.c

* Revert "Add provisional Helix implementation to test the quantum/split_common."

This reverts commit 168c82ef82c88e79979d9796bab9cc819cc2f685.

* fix keyboards/miniaxe/matrix.c, quantum/split_common/matrix.c

avr-gcc 4.9.[23] report error.
avr-gcc 5.4.0, avr-gcc 7.3.0 pass.
It is funny.

* update comment quantum/split_common/serial.c

* Reserve RGBLIGHT_SPLIT macro in quantum/split_common
2018-12-24 11:14:57 -08:00
noroadsleft
2149f3b588 Toad Configurator support and readme update (#4718)
* Toad: Configurator support

* Toad: update Docs links in readme
2018-12-24 09:19:18 -08:00
ishtob
33483b440c Keymap: fix userspace compile error with planck grid (#4719) 2018-12-24 09:06:33 -08:00
Othi
fc921a9c54 First PR for KBD6x HHKB layout keymap (#4704)
* initial commit for Othi's HHKB layout keymap,
covering multiple modifiers hold and vim-like support and german characters. If there's
any suggestion i can be reached via mnpqraven on github or Othi#6661 on
discord

* added readme.md. TODO: update readme.md

* changed to default quantum keycode for `KC_TRNS`,
removed `PREVENT_STUCK_MODIFIERS`,
fixed tap dance using one shots
TODO: unicode implementation at https://docs.qmk.fm/#/feature_unicode

* keymap documentaion(readme) added

* unicode init
TODO: figure out what made the compose sequence not running

* update unicode and readme
2018-12-24 09:06:12 -08:00
Adam Lee
7e56c4bcb1 [Miuni32] Update the # of LEDs to match the final version of PCB (#4714)
* [Miuni32] Update the # of LEDs to match the final version of PCB

* [Miuni32] Update link to website
2018-12-23 08:39:30 -08:00
noroadsleft
2c3706611f Noxary x268: refactor and Configurator bugfix (#4713)
- renamed layout macro LAYOUT_65_ansi to LAYOUT
- rebuilt info.json to match LAYOUT macro
2018-12-23 08:36:01 -08:00
Michishige Kaito
5e52eda0ca shell.nix: Packages relocated in upstream cleanup 2018-12-22 15:09:58 -08:00
noroadsleft
7bbd299fba JD40 refactor and readme update (#4710)
* JD40: default keymap refactor

- Removed redundant action_layer.h include
- Refactored to use LAYOUT macro (from LAYOUT_kc)
- Refactored to use QMK-native keycodes
- Removed superseded TMK code blocks

* JD40: readme cleanup

Fixed and updated the links in the readme file
2018-12-22 08:23:04 -08:00
noroadsleft
ea1fe35ae7 Keyboard: Infinity60 refactor, Configurator support and readme update (#4707)
* Infinity60: refactor

- infinity60.h / keymap.c
  - renamed layout macro to LAYOUT_60_ansi_split_bs_rshift; removed layout macro alias
  - updated to #pragma once
  - keymaps now use #include QMK_KEYBOARD_H
  - keymaps/jpetermans/config.h updated to #pragma once
  - keymaps/jpetermans/rules.mk deleted (complete contents were deprecated make instructions)

* Infinity 60%: Configurator support

* Infinity60: readme update

Updated the Docs links.

* Infinity60: bugfix depariel keymap

Had a typo.

* Infinity60: edit matrix.c

per @drashna

- https://github.com/qmk/qmk_firmware/pull/4707#issuecomment-449540676
2018-12-21 19:39:48 -08:00
Michael Pio
4d98c69e02 Update Vinta (#4705)
* add support for configurator

* add more layouts

* fix default keymap
2018-12-21 18:39:25 -08:00
Jason Thigpen
ff8b1b9c69 Add crd's XD60 ANSI keymap (#4702) 2018-12-21 17:39:10 -08:00
Jeremy Herve
af84f0ff86 Keymap: Redox / jeherve: updates (#4694)
* Start using send_unicode_hex_string for shrug

See https://docs.qmk.fm/#/feature_unicode?id=send_unicode_hex_string

* Make sure one can come back to main layer after tapping to NAV

* Add 4 new keys to symbol layer

~, `, =, +, are now more accesssible. No need to reach out far from home row anymore

* Add two new macro keys

I did not have much use for the Expose key and the right Command key, so opted to replace those with 2 Macros:

- One to invoke Alfred: https://www.alfredapp.com/ => Opt + Space
- One to invoke 1password: https://1password.com/ => Cmd + Opt + \

* Update readme to mention changes in new version

* Remove unneeded short definition

* Shorter name for our custom key

See https://github.com/qmk/qmk_firmware/pull/4694#discussion_r243341864

* Make macros one-liners

See https://github.com/qmk/qmk_firmware/pull/4694#discussion_r243341487

* Switch to using eeconfig_init_user to set Unicode mode

See https://github.com/qmk/qmk_firmware/pull/4694#issuecomment-449151724
2018-12-21 10:00:45 -08:00
Sascha Grunert
f0863286cc Update keymap for planck/rev6 (#4701)
* Update keymap.c

* Update rules and keymap

* Update keymap rules
2018-12-21 08:33:36 -08:00
noroadsleft
b21c592f1e handwired/not_so_minidox: Configurator support (#4699) 2018-12-21 08:03:34 -08:00
Gergely Peidl
ca35647535 Feature Unicode example code fixed. 2018-12-21 07:21:41 -08:00
Drashna Jaelre
afd5cda4a0 Fix up process_leader to be a bit more optimized (#4662)
* Fix up process_leader to be a bit more optimized

* Process dual function keys better

* Make leader start a callable function

* Fix per key timer call location

* Add escape if already leading

* Return false for KC_LEAD

* Add documentation
2018-12-20 16:54:06 -08:00
Takeshi ISHII
30c3f3b2bd Keymap: Add Helix/pico keymap 'mtei' (#4696)
* add pico keymap 'mtei'

* num layer key change
2018-12-20 09:50:51 -08:00
Drashna Jaelre
6395853148 Docs: Add additional clarification to Leader Key documention (#4660)
* Add clarification for Leader Timeout

* Add additional documentatin to config_options.md

* Add leader_start() and leader_end() documentation

* Add Examples

* Clarify timout

* Remove customization

* Improve docs based on feedback

* Better clarification of features

* Fix example

* Spelling/grammar issue

* Spelling and clarification
2018-12-20 08:58:12 -08:00
Emily Soldal
1586548b4f Enable RGB animations in Atom47 2018-12-20 08:55:32 -08:00
MakotoKurauchi
29830f306f Keyboard: Pr/helixpico add layout kc (#4686)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL

* add define USB_MAX_POWER_CONSUMPTION

* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk

rules.mk: add 4 Variables for compile control.

   # Helix keyboard customize
   # you can edit follows 4 Variables
   #  jp: 以下の4つの変数を必要に応じて編集します。
   OLED_ENABLE = no            # OLED_ENABLE
   LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
   LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)
   LED_ANIMATIONS = yes        # LED animations

config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define

* HELIX_ROWS define move from config.h to rules.mk

* add readme.md

* rename readme.md to readme_jp.md

* add readme.md and modify readme_jp.md

* change helix/ssd1306.c for select glcdfont.c position

* add variable LOCAL_GLCDFONT into each keymaps rules.mk

* Add iPhone/iPad LED support to Helix default keymap

* renumber _ADJUST for shrink program size

* Fix Helix i2c wrong bit rate

* add helix serial debug code

* serial debug macro move from config.h to serial.h

* helix serial.c debugging...

* refine debug macros

* add some comments

* add SELECT_SERIAL_SPEED

* add comments

* debugging sync_send/sync_recv

* add very high speed

* fix sync_send/sync_recv

* fix com. start and switch send/recv

* debug mode off

* remove debug codes

* temporary change, compiling C, C++ and ASM without -g

* helix config.h refine

* Revert "temporary change, compiling C, C++ and ASM without -g"

This reverts commit e9730cbbfd94fbcf792d992e3a1a65ad279b24d6.

* add change_reciver2sender()/change_sender2reciver()

This is a change to improve readability.

* txled, rxled off in matrix_init()

* add serial_send_packet() / serial_recive_packet()

This is a change to reduce object size.

* add serial_low() at ISR() top

* add __attribute__((always_inline)) to some functions

* modify serial_send_packet()/serial_recive_packet()

A little, object size reduction.
A little, speedup.

* add debug code to helix/serial.c

* Adjust sampling timing of serial signal being received

* add split_scomm.c/split_scomm.h and change serial.c/serial.h

serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.

* add split_scomm.c/split_scomm.h into helix/rev1

* reduce object size helix/rev2/matrix.c

* remove checksum check, add parity check

* force occur parity error for test

* parity test ok. remove test code

* change some comment & add skip code when buffer_size == 0

* serial.c: multiple types of transaction support

Add 4 bits transaction-type field at packet top.
Select Transaction Descriptor Table entry by transaction-type.

* helix serial master-slave transaction optimize

Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.

* add debug code for retry

* add comment into each config.h

* fix ISR status drop

* add a debug macro 'debug_retry_chg()'

* reduce led_test size

* remove debug code from helix/serial.c and etc.

* helix:five_rows change TAPPING_TERM value 140

* Improved compatibility with let's split of serial.c. Finish helix/serial.c improvement.

- The difference with the original let's split's serial.c
  - It's high-speed about 4 times.
  - Stable bi-directional data transfer. (Helix need master to slave transfer)
  - serial.h was divided 2 files, serial_config.h and sereial.h
  - With multiple types of transaction support, communication contents can be optimized. (NEW flexible API)

- USE OLD Simple APIs (compatible with let's split serial.c)
  - files :
    - serial_config.h -- hardware configuration (need include by config.h)
    - serial.c/serial.h -- serial communication

- USE NEW flexible APIs. (Support multi-type transaction function.)
  serial.c was divided into 2 layers, split_scom.c and serial.c.
  The upper layer split_scomm.c is called from matrix.c.
  The lower layer serial.c accesses the hardware.
  - files
    - split_scomm.c -- communication buffer is defined in here. call by matrix.c.
    - split_scomm.h -- buffer size is defined in here. include by matrix.c, split_util.c
    - serial_config.h -- hardware configuration (need include by config.h)
      To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION
    - serial.c/serial.h -- serial communication lower layer

- NEW APIs for serial.c / serial.h (The lower layer)
  // Soft Serial Transaction Descriptor
  typedef struct _SSTD_t  {
      uint8_t *status;
      uint8_t initiator2target_buffer_size;
      uint8_t *initiator2target_buffer;
      uint8_t target2initiator_buffer_size;
      uint8_t *target2initiator_buffer;
  } SSTD_t;

  // initiator is transaction start side
  void soft_serial_initiator_init(SSTD_t *sstd_table);
  // target is interrupt accept side
  void soft_serial_target_init(SSTD_t *sstd_table);
  int soft_serial_transaction(int sstd_index);
  int soft_serial_get_and_clean_target_status(int sstd_index);

- NEW APIs for split_scomm.c / split_scomm.h (The upper layer)
   move from old serial.c the following buffer and functions
     serial_slave_buffer[]
     serial_master_buffer[]
     void serial_master_init(void)
     void serial_slave_init(void)
     int serial_update_buffers(void)
   define SERIAL_xxxxx_BUFFER_LENGTH move from serial_config.h to split_scomm.h

* fix comment typo

* Fix the value of helix:five_rows variable HELIX_ROWS to 5.

* led_test rules.mk some change

* Separate common parts of helix/rev2/keymaps/*/rules.mk into helix/rev2/keymaps_common.mk

* helix/rev2/keymaps/edvorakjp/rules.mk use helix/rev2/keymaps_common.mk

* Separate common parts of helix/pico/keymaps/*/rules.mk into helix/pico/keymaps_common.mk

* Helix each keymap's using rgblight mode symbol instead magic number

No change in build result.

* Helix pico keymaps: make rgblight modes selectable.

No change in build result.

* Helix rev2 keymaps: make rgblight modes selectable.

No change in build result.

* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)

* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.

* Merge branch 'master' of https://github.com/qmk/qmk_firmware

* revert 955dcbc

* delete keymaps_common.mk

* add LAYOUT_kc() to keyboards/helix/pico/pico.h
2018-12-20 08:55:03 -08:00
noroadsleft
af55ef8418 GSKT-00 Configurator update
- add JSON data for LAYOUT_all layout
- fix ISO Enter on LAYOUT_60_iso_tsangan layout
2018-12-20 08:52:54 -08:00
Kevin Hogeland
374ed67e87 Add PROGMEM keyword to Clueboard keymaps 2018-12-20 08:44:42 -08:00
Skyler Lewis
f3cbb7bd6e update the alairock keymap for dichotomy (#4687)
Just a couple placement updates to my layout on the dichotomy keyboard.
2018-12-19 16:54:19 -08:00
Ismael Venegas Castelló
5eb8f3f6b5 Keymap: Refactor Hacker Dvorak (#4688)
Programmer Dvorak based layout for the Ergodox EZ.
2018-12-19 16:49:56 -08:00
yiancar
b13162f7fd Also fix use of weak stm32 internal pullup 2018-12-19 11:52:05 -08:00
yiancar
df33618b26 Minor STM32 i2c driver cleanup 2018-12-19 11:52:05 -08:00
Drashna Jaelre
fdeec29636 Overhaul Unicode Common functionality (#4325)
* Standardize the Unicode EEPROM code

* Remove unicode init from process_record_* functions

* Add unicode init to where it belongs: matrix_init_quantum

* Move Unicode proccessing to unicode common

* Add audio feedback to input mode keys to drive konstantin up a wall

* Tap_code cleanup

* Update keycodes

* Update unicode documentation

* Update unicode keycodes for consistency/easier merge

* Add Audio Feedback section

* Remove Functions from feature page

And link to the file instead.  Link to specific lines later on.

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* Because I missed it!

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* SPAAAAAAAAAACing

Co-Authored-By: drashna <drashna@live.com>

* Add BSD for future compatibility

* Thought I fixed that!

Co-Authored-By: drashna <drashna@live.com>

* non-breaking

Co-Authored-By: drashna <drashna@live.com>

* Considered that

Co-Authored-By: drashna <drashna@live.com>

* Yuuup

Co-Authored-By: drashna <drashna@live.com>

* consistency

Co-Authored-By: drashna <drashna@live.com>

* white spaces .... copied from elsewhere

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Update keycode defines

* Fix Linux Song

* Update all of the songs

* Cleanup

* Move and update check to ensure only one unicode method is enabled

* Update quantum/quantum_keycodes.h

* Update documentation

* Wordsmithing and cleanup

* Format unicode_common (#13)

* case alignment

* process_record_unicode_common → process_unicode_common

* Move song arrays into function where they're used, align preprocessor directives

* Swap the order of UC_WIN and UC_BSD

* Update Unicode docs

* Reorder Unicode mode stuff to match the order of input mode constants

* Fix capitalization in doc subtitle

* Readd BSD and OSX_RALT songs

* Reword BSD note in docs

* Readd BSD keycode description

* Reword explanation of input on different platforms

* Steal vomindoraan's input mode documentation

Co-Authored-By: vomindoraan (vomindoraan@gmail.com)

* Willingly give Drashna the rest of my Unicode doc improvements

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* remove merge artifacts

* Unicode common cleanup (#17)

* Standardize the Unicode EEPROM code

* Remove unicode init from process_record_* functions

* Add unicode init to where it belongs: matrix_init_quantum

* Move Unicode proccessing to unicode common

* Add audio feedback to input mode keys to drive konstantin up a wall

* Tap_code cleanup

* Update keycodes

* Update unicode documentation

* Update unicode keycodes for consistency/easier merge

* Add Audio Feedback section

* Remove Functions from feature page

And link to the file instead.  Link to specific lines later on.

* Fix white spaces

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* Because I missed it!

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* SPAAAAAAAAAACing

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Add BSD for future compatibility

* Thought I fixed that!

Co-Authored-By: drashna <drashna@live.com>

* non-breaking

Co-Authored-By: drashna <drashna@live.com>

* Considered that

Co-Authored-By: drashna <drashna@live.com>

* Yuuup

Co-Authored-By: drashna <drashna@live.com>

* consistency

Co-Authored-By: drashna <drashna@live.com>

* white spaces .... copied from elsewhere

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Update keycode defines

* Fix Linux Song

* Update all of the songs

* Cleanup

* Move and update check to ensure only one unicode method is enabled

* Update quantum/quantum_keycodes.h

* Update documentation

* Wordsmithing and cleanup

* Format unicode_common (#13)

* case alignment

* process_record_unicode_common → process_unicode_common

* Move song arrays into function where they're used, align preprocessor directives

* Swap the order of UC_WIN and UC_BSD

* Update Unicode docs

* Reorder Unicode mode stuff to match the order of input mode constants

* Fix capitalization in doc subtitle

* Readd BSD and OSX_RALT songs

* Reword BSD note in docs

* Readd BSD keycode description

* Reword explanation of input on different platforms

* Steal vomindoraan's input mode documentation

Co-Authored-By: vomindoraan (vomindoraan@gmail.com)

* Willingly give Drashna the rest of my Unicode doc improvements

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* Rearrange process_unicode_common functions

* Make Unicode input mode constants (UC_*) an enum

* Simplify unicode_input_start/finish code

* Make the key used for WinCompose configurable

* Remove UC_OSX_RALT in favor of setting the key with UNICODE_OSX_KEY

* Update Unicode input mode doc

* Add descriptions and rearrange definitions in process_unicode_common.h

* Add registry command to Unicode docs + misc updates

* Reword an explanation in Unicode docs

* Add TODO comment

* Remove trailing whitespace

* Improve Cycling documentation

* Add Unicode Input method Cycling support (#19)

* Standardize the Unicode EEPROM code

* Remove unicode init from process_record_* functions

* Add unicode init to where it belongs: matrix_init_quantum

* Move Unicode proccessing to unicode common

* Add audio feedback to input mode keys to drive konstantin up a wall

* Tap_code cleanup

* Update keycodes

* Update unicode documentation

* Update unicode keycodes for consistency/easier merge

* Add Audio Feedback section

* Remove Functions from feature page

And link to the file instead.  Link to specific lines later on.

* Fix white spaces

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* Because I missed it!

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* SPAAAAAAAAAACing

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Add BSD for future compatibility

* Thought I fixed that!

Co-Authored-By: drashna <drashna@live.com>

* non-breaking

Co-Authored-By: drashna <drashna@live.com>

* Considered that

Co-Authored-By: drashna <drashna@live.com>

* Yuuup

Co-Authored-By: drashna <drashna@live.com>

* consistency

Co-Authored-By: drashna <drashna@live.com>

* white spaces .... copied from elsewhere

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Update keycode defines

* Fix Linux Song

* Update all of the songs

* Cleanup

* Move and update check to ensure only one unicode method is enabled

* Update quantum/quantum_keycodes.h

* Update documentation

* Wordsmithing and cleanup

* Format unicode_common (#13)

* case alignment

* process_record_unicode_common → process_unicode_common

* Move song arrays into function where they're used, align preprocessor directives

* Swap the order of UC_WIN and UC_BSD

* Update Unicode docs

* Reorder Unicode mode stuff to match the order of input mode constants

* Fix capitalization in doc subtitle

* Readd BSD and OSX_RALT songs

* Reword BSD note in docs

* Readd BSD keycode description

* Reword explanation of input on different platforms

* Steal vomindoraan's input mode documentation

Co-Authored-By: vomindoraan (vomindoraan@gmail.com)

* Willingly give Drashna the rest of my Unicode doc improvements

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* Rearrange process_unicode_common functions

* Make Unicode input mode constants (UC_*) an enum

* Simplify unicode_input_start/finish code

* Make the key used for WinCompose configurable

* Remove UC_OSX_RALT in favor of setting the key with UNICODE_OSX_KEY

* Update Unicode input mode doc

* Add descriptions and rearrange definitions in process_unicode_common.h

* Add registry command to Unicode docs + misc updates

* Reword an explanation in Unicode docs

* Add TODO comment

* Add cycle_unicode_input_mode and UNICODE_SELECTED_MODES macro

* Add an option for making cycle changes persistent

* Add debug prints to functions that change input_mode

* Use cycle_unicode_input_mode in whitefox/konstantin

* Add persist_unicode_input_mode function

* Add offset to cycle to allow stepping in reverse

* Add keycodes: UNICODE_MODE_FORWARD, UNICODE_MODE_REVERSE

Aliases: UC_MOD, UC_RMOD (respectively)

* REVERT ME: Undo changes to whitefox/konstantin to avoid conflicts

* Fix wrong constant name

* Revert "REVERT ME: Undo changes to whitefox/konstantin to avoid conflicts"

This reverts commit 42676bf251fc8e3823f5e614dad6e510ba47a2f3.

* Change dprintf text

* Give selected modes priority over EEPROM when !UNICODE_CYCLE_PERSIST

* Remove trailing whitespace

* Cleanup of RALT code and unicode compilation stuff

* Remove else for unicode handling
2018-12-19 08:39:24 -08:00
Danny Nguyen
40bf3a2ce9 Make readPin output a 0 or 1 when using AVR to match ChibiOS's version of readPin 2018-12-19 08:37:44 -08:00
Drashna Jaelre
3054c7bda0 Fix fc980c.h update (#4682) 2018-12-19 08:23:28 -08:00
noroadsleft
584a7a0395 Keyboard: Espectro refactor and Configurator support (#4666)
* Espectro: layout macro refactor

- updated to #pragma once method
- restructure LAYOUT_all data as block comment
  - Configurator was reading the LAYOUT_all macro even though it was commented out.
- updated all keyswitch arguments to use K<ROW><COLUMN> notation
- add LAYOUT_iso macro
- add info.json file for Configurator support

* Espectro: keymap refactor

- deleted unused MODS_CTRL_MASK definitions
- iso keymap refactored to use LAYOUT_iso macro
- default and iso keymaps refactored for readability
2018-12-18 09:16:06 -08:00
noroadsleft
8181c8dc97 FC980C: refactor and Configurator update
- fc980c.h
  - updated to #pragma once method
  - layout macro visual alignment
- info.json
  - fixed JSON ordering (keys were being assigned out-of-order)
- default keymap
  - visual alignment
  - deleted unused fn_actions block
2018-12-18 09:15:28 -08:00
Yan-Fa Li
06f1901783 Keymap: A Planck style keymap with iris flair (#4677)
* A Planck style keymap with iris flair

 - Re-arrange layers to be more planck like.
 - move backspace to right thumb
 - replace backspace with minus, more useful for coding
 - replace center keys with brackets
 - MT(MOD_LCTRL and ESCAPE)
 - Use QMK-DFU for bootloader
   - add a soft reset to keymap

* Feedback from reviewers

 - remove redundant define (noroadsleft)
 - remove unused layer switch case (drashna)
2018-12-18 09:14:56 -08:00
Matthew Lyon
e59f331268 Keymap: @mattly's planck layout (#4678) 2018-12-18 08:37:03 -08:00
Takeshi ISHII
9eedaa8802 Keymap: Changed to use LAYOUT_kc() macro instead of LAYOUT() macro for easy maintenance. (#4676) 2018-12-18 08:29:20 -08:00
Wilba
eeda99bf2e Keyboard: Initial commit of WT8-A implementation (#4674) 2018-12-18 08:28:31 -08:00
Andrew Kannan
20e134e681 Keyboard: Adding ortho60 to handwired (#4672)
* Adding ortho60 to handwired

* update to use LAYOUT_ortho_5x12

* Address PR comments about layout macros

* Add default layout to info.json for configurator

* Hack to xyverz layout until RGB branch is merged

* Fix undef RGBDIPIN in xyverz 12x5 layout

* Revert change to xvyerz's layout

* Fix typo

* Fix order

* Revert xyverz rules.mk
2018-12-18 08:26:43 -08:00
noroadsleft
398204b2a0 EKeyboard: ErgoInu Configurator fix (#4665)
* ErgoInu: Configurator update, part 1

Give each key its own line to make the file easier to debug.

* ErgoInu: Configurator update, part 2

- converted all JSON variables to lowercase (this was the bugfix)
- converted Tabs to Spaces

* ErgoInu: Configurator update, part 3

- break key data into chunks

* ErgoInu: Configurator update, part 4

Rebuilt the layout tree into a new file, taking the Y values from the original data. Copied relevant data from original file into the new file, and then overwrote the original file.
2018-12-16 00:40:46 -08:00
noroadsleft
5ec327ad99 Cospad Configurator and readme update (#4663)
* Cospad: Configurator update

- added LAYOUT_gamepad_6x4 data
  - renders as 4 rows by 6 columns visually
- fixed LAYOUT_numpad_6x4 data
  - JSON objects were in the wrong order

* Cospad: readme update

- markdown formatting fixes
- made Hardware Availability address a hyperlink
- updated Docs links
2018-12-15 13:39:34 -08:00
noroadsleft
6172e55489 Ergo42: Configurator patch (#4664)
Wasn't rendering in Configurator as intended. Updated JSON data to use alias name instead of macro name.
2018-12-15 13:39:05 -08:00
Alexander Kagno
3ec4a00bfc Per Key Leader Timing Option (#4026)
* leader changes to enable per key timing option

* Changes requested to docs for @drashna

* Changes requested by @drashna
2018-12-15 07:29:24 -08:00
noroadsleft
72bd17f290 converter/xt_usb: Configurator support (#4657) 2018-12-15 07:25:29 -08:00
noroadsleft
11439c4326 Configurator support for Sun Type 3 and Type 5 USB converters (#4656)
* Sun Type 3 USB converter: Configurator support

* Sun Type 5 USB converter: Configurator support
2018-12-15 07:25:11 -08:00
noroadsleft
ff5fcedb10 converter/palm_usb/stowaway: Configurator support (#4655) 2018-12-14 22:58:57 -08:00
noroadsleft
2527fe879f converter/ibm_5291: Configurator support and readme cleanup (#4654)
* converter/ibm_5291: Configurator support

- added layout data to info.json file
- corrected keyboard_folder value

* converter/ibm_5291: readme cleanup

- Fixed "image" url (target of link was a web page; changed markdown formatting to text link)
- Sentence capitalization fixes
- markdown formatting fixes for readability
2018-12-14 22:58:30 -08:00
noroadsleft
45591ee443 Keyboard: Chimera Ortho refactor (#4652)
* Layout macro refactor

- Renamed KC_KEYMAP to LAYOUT_kc
- Renamed KEYMAP to LAYOUT
- moved LAYOUT above LAYOUT_kc (Hoping this encourages users to use LAYOUT.)
- updated layout macro name in info.json
- white space changes for readability

* Keymap refactor: default

Default keymap now uses `#include QMK_KEYBOARD_H` and LAYOUT macro (from KC_KEYMAP/LAYOUT_kc). Keymap was also refactored to use process_record_user function instead of deprecated action_get_macro from TMK.

Also moved LONGPRESS_DELAY and LAYER_TOGGLE_DELAY definitions to config.h.

* Keymap refactor: dcompact

- Changed chimera_ortho.h include for QMK_KEYBOARD_H
- Updated layout name on keymap layers

* Coding conventions fix in default keymap

* Keymap refactor: gordon

- Changed chimera_ortho.h include for QMK_KEYBOARD_H
- Removed redundant includes of action_layer.h and process_tap_dance.h (superseded by QMK_KEYBOARD_H)
- Removed redundant definitions for KC_NO and KC_TRNS
- Updated layout name on keymap layers
2018-12-14 21:36:03 -08:00
Takeshi ISHII
8f790948e5 Refactor quantum/split_common/i2c.c, quantum/split_common/serial.c (#4522)
* add temporary compile test shell script

* Extended support of SKIP_VERSION to make invariant compile results during testing.

* build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support

Support compiled object enclosed in library.

e.g.
```
LIB_SRC += xxxx.c
xxxx.c --> xxxx.o ---> xxxx.a
```

* remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c

* add SKIP_DEBUG_INFO into tmk_core/rules.mk

When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time.

* tmk_core/rules.mk: Library object need -fno-lto

* add SKIP_DEBUG_INFO=yes

* remove temporary compile test shell script

* add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h

* quantum/split_common/serial.c: Changed not to use USE_I2C.
2018-12-14 21:31:56 -08:00
noroadsleft
a49d98e665 Comet46: Configurator support 2018-12-14 20:04:08 -08:00
Drashna Jaelre
4f1f52b53b Add left/right EEPROM flashing for DFU (#4560) 2018-12-14 18:39:54 -08:00
Fred Silberberg
91a4a63ac7 Fix keymap build to send over remote desktop correctly. (#4651) 2018-12-14 18:39:16 -08:00
noroadsleft
039434caf9 Keyboard: Bpiphany Pegasus Hoof Refactor, Configurator support (#4649)
* Pegasus Hoof: layout macro refactor

- Renamed KEYMAP to LAYOUT
- Added LAYOUT_tkl_ansi macro
- white space changes (changed tabs for 2 spaces)

* Pegasus Hoof: keymap refactor

- updated layout macro names
- changed to #include QMK_KEYBOARD_H
- removed redundant KC_TRNS definitions
- white space changes (changed tabs to spaces)
- removed deprecated build script instructions from rules.mk files
- updated config.h to #pragma once

* Pegasus Hoof: Configurator support

* Pegasus Hoof: readme cleanup

- Reformat header and description paragraph
- Fix Hardware Availability link (was 404)
- renamed filename to lowercase

* Pegasus Hoof: add LAYOUTS = tkl_ansi to rules.mk

* Pegasus Hoof: fix LAYOUT_tkl_jis macro
2018-12-14 16:38:46 -08:00
zvecr
bb5262de07 Keyboard: Refactor fourier to use split common code (#4582)
* Refactor fourier to use split common code

* Refactor fourier to use split common code - fix handedness when not using EE_HANDS or MASTER_LEFT

* add SOFT_SERIAL_PIN config
2018-12-14 14:25:32 -08:00
zvecr
cb149650ef Keyboard: Lets split eh default keymap - Fixes for superseded default layer functionality (#4581)
* Fixes for superseded default layer functionality

* Fixes for superseded default layer functionality
2018-12-14 13:29:30 -08:00
noroadsleft
4446f86bfd Keyboard: Bpiphany Frosty Flake Refactor, Configurator support and readme cleanup (#4648)
* Frosty Flake: layout macro refactor

- frosty_flake.h updated to use #pragma once
- KEYMAP renamed to LAYOUT
- KEYMAP_TKL renamed to LAYOUT_tkl

* Frosty Flake: keymap refactor

- config.h files updated to #pragma once
- deleted deprecated build script rules from rules.mk
- keymap.c files:
  - #include QMK_KEYBOARD_H
  - updated layout macro name
  - white space changes for readability

* Frosty Flake: Configurator support

* Frosty Flake: readme cleanup

- Fixed Hardware Availability link (old link was 404)
- tiny grammar fix (colon missing on compile-and-flash instructions)
2018-12-14 13:01:04 -08:00
zvecr
306f23dc51 Document the correct path to the split keyboard EEPROM files (#4585)
* Document the correct path to the split keyboard EEPROM files

* Document the correct path to the split keyboard EEPROM files
2018-12-14 12:49:33 -08:00
patrickmt
118d5cc03f Fix macro redefinition for GNUC compilers > 6
GNUC compilers greater than version 6 already have the macro __always_inline defined. This fix checks GNUC version before defining the macro itself.
2018-12-14 12:47:17 -08:00
noroadsleft
8f02375cc6 Keyboard: B.mini EX refactor and Configurator support (#4647)
* B.mini EX: refactor

- add LAYOUT_ansi and LAYOUT_iso macros
- add ansi and iso keymaps with readme files

* B.mini EX: Configurator support
2018-12-14 11:37:26 -08:00
Takeshi ISHII
155e9310ff Make quantum/split_common/serial.[ch] configurable (#4419)
* add temporary compile test shell script

* add 'CONFIG_H += serial_backward_compatibility.h' into common_features.mk:SPLIT_KEYBOARD block

* add quantum/split_common/serial_backward_compatibility.h

SERIAL_PIN_PORT and other PIN define move to serial_backward_compatibility.h
SERIAL_BACKLIT_START move to split_util.h

* quantum/split_common/serial.c change to helix-serial.c style serial configuration

* add temporary file quantum/split_common/split-keyboards-list.txt

* add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manuform/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,keyboards/qwertyydox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h

* remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_backward_compatibility.h

* remove temporary file quantum/split_common/split-keyboards-list.txt

* remove temporary compile test shell script

* Revert "remove temporary compile test shell script"

This reverts commit 15b0021b4092127b8d8a21f572642ad3702b46d4.

* update quantum/split_common/compile_split_test.sh for new keyboard test

* add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h

* remove temporary compile test shell script

* update docs/config_options.md, quantum/template/avr/config.h

* fix quantum/template/avr/config.h

* fix typo  docs/config_options.md
2018-12-14 11:00:10 -08:00
Drashna Jaelre
9739d6ba0a Docs: Clarify audio keycodes (#4620)
* Clarify audio keycodes

* Spelling errors

Co-Authored-By: drashna <drashna@live.com>

* Spacing in md

Co-Authored-By: drashna <drashna@live.com>

* Fix midi link too

* Wordsmithing
2018-12-14 10:43:24 -08:00
Drashna Jaelre
161ffa0af6 Add some optimization to the Tetris keyboard (#4645) 2018-12-14 10:42:30 -08:00
Drashna Jaelre
02d44beb44 Fix up tap_code functionality (#4609)
* Add delay in Tap Code to avoid issues

I think a few people have reporting issues with it working properly, and it may be a timing issue.  The 'register_code' uses this sort of delay in some of the functions, and
this is probably why.

Adding the 100ms delay should hopefully fix any issues with it.

* Make tap_code delay configurable

* Update documentation

* Bring tap_code16 inline with changes

* Fix type for tap_code16

Bad copy-paste job

* Just use the value check for the define

* Clarify timing in docs

Co-Authored-By: drashna <drashna@live.com>

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>
2018-12-14 09:01:58 -08:00
Drashna Jaelre
80dfd34fe4 Add additional resource links (#4594)
* Add additional resource links

And fix a typo or two

* Update docs/newbs.md

Co-Authored-By: drashna <drashna@live.com>

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>
2018-12-14 07:52:11 -08:00
Drashna Jaelre
8c3054777a Docs: Remove duplicate layer block in keycodes.md (#4621)
* Docs: Remove duplicate layer block in keycodes.md

Reorder and add OSL

* remove glitch

Co-Authored-By: drashna <drashna@live.com>
2018-12-14 07:51:17 -08:00
Drashna Jaelre
6c6bbff600 Enhance documentation for Tap-Hold functions (#4628) 2018-12-14 07:37:27 -08:00
Drashna Jaelre
641bbeb41a Remove userspace info from Quad-Function Tap Dance example (#4631) 2018-12-14 07:36:38 -08:00
noroadsleft
60f9abca12 handwired/CMD60 Refactor, Configurator support and readme update (#4632)
* handwired/CMD60: refactor

- renamed layout macro KEYMAP to LAYOUT
- removed K2C, K3B and K3C locations (indications are these locations were unused in hardware)
- keymap
  - now uses #include QMK_KEYBOARD_H
  - converted keycodes to short format
  - deleted TMK fn_actions and action_get_macro blocks
  - white space changes (readability/alignment)

* handwired/CMD60: Configurator support

* handwired/CMD60: readme update

- updated to conform to current QMK template
- added image and build gallery links

* handwired/cmd60: rename all files and folders to lowercase
2018-12-14 07:33:00 -08:00
noroadsleft
25892301d4 Keymap: handwired/108key_trackpoint Configurator support and readme update (#4633)
* handwired/108key_trackpoint: Configurator support

* handwired/108key_trackpoint: readme update

- fix typo in make command
- rename file to lowercase
2018-12-14 07:32:12 -08:00
Daniel Shields
1ae07f657a Keymap: Disable audio for planck/dshields/rev6 and enable retro tapping. (#4643) 2018-12-14 07:27:54 -08:00
Drashna Jaelre
dd03ac3893 Merge pull request #4642 from noroadsleft/cf/at101_blackheart
AT101 Blackheart Configurator support and readme update
2018-12-14 07:26:33 -08:00
noroadsleft
e83c62a002 Baguette: Configurator update
The layout was right, but offset on both axes.
2018-12-14 07:25:56 -08:00
noroadsleft
48933811c5 AT101 Blackheart: readme update
- added image
- updated Docs links
2018-12-13 23:36:58 -08:00
noroadsleft
119b02c540 AT101 Blackheart: Configurator support 2018-12-13 23:33:29 -08:00
noroadsleft
388de9bc07 Keyboardio Model 01: Configurator support 2018-12-13 22:54:56 -08:00
Fredric Silberberg
89b80b79d5 Add big switch layout 2018-12-13 18:30:15 -08:00
Fredric Silberberg
9e6ee47779 Added noeeprom versions of set hue, sat, val, and step 2018-12-13 18:30:15 -08:00
Fredric Silberberg
e8f730595c Dactyl_manuform map and updates to my ergodox layout for moving to a
different location.
2018-12-13 10:24:20 -08:00
Wilba6582
cc45f62d75 Added Dynamic Keymaps to M10-B 2018-12-13 08:18:49 -08:00
noroadsleft
24b17c9619 Keyboard: handwired/maartenwut readme cleanup and Configurator support (#4624)
* handwired/maartenwut: readme cleanup

- Fixed typo (Maarten's last name was misspelled)
- Updated Docs links

* handwired/maartenwut: Configurator support
2018-12-12 17:56:29 -08:00
noroadsleft
ca39fa8222 Keyboard: handwired/kbod Refactor, Configurator support and readme update (#4623)
* handwired/kbod: refactor

- layout macro KEYMAP renamed to LAYOUT

* handwired/kbod: update config.h files to #pragma once

* handwired/kbod: Configurator support

* handwired/kbod: readme update

- updated reademe to current template
- added image
2018-12-12 16:46:13 -08:00
ishtob
2cef75cbb3 Keymap: update ishtobs hadron keymap (#4613)
* adding ishtob's keymap to hadron ver3

* update ishtob keymap

* ishtob hadron keymap update 2

* Delete readme (Case Conflict).md

* Delete readme (Case Conflict).md

* add missing FN layer to ishtob hadron keymap

* removed unused toggle keycode
2018-12-12 15:20:30 -08:00
noroadsleft
4e78d28b4b Zlant: Configurator rendering bugfix (#4622)
Configurator's API uses the available alias name, instead of the direct matrix name.
2018-12-12 15:08:33 -08:00
noroadsleft
f6c0d999b9 Puck Refactor, Configurator support and readme cleanup (#4615)
* Puck: layout macro refactor

Reformat layout macro to resemble physical keyboard layout.

* Puck: Configurator support

* Puck: readme cleanup

Markdown formatting corrections.
2018-12-12 12:46:56 -08:00
noroadsleft
baf69ee89d S7 Elephant Configurator fixes (#4614)
* S7 Elephant: Configurator bugfix, part 1

Reformatted the JSON so each key is on its own line:

This makes the keys easier to rearrange.

* S7 Elephant: Configurator bugfix, part 2

Deleted the extra key from LAYOUT_iso_1u:

JSON contents stated this layout used a split Backspace, but the matrix is configured and intended to have a 2u Backspace.

Extended the Backspace to 2u width and deleted the extra key. (This fixes the error that broke LAYOUT_iso_1u's rendering in the Configurator.)

* S7 Elephant: Configurator bugfix, part 3

Fix ISO layouts:

Noticed JSON object for Enter on ISO layouts was immediately after Right Bracket. Inspection of s7_elephant.h revealed the expected and appropriate location to be after ISO Hash.

Moved Enter key to the proper location on all ISO layouts.
2018-12-12 12:46:12 -08:00
Konstantin Đorđević
28fbf84cc5 Add standard definitions for ALGR and KC_ALGR (#4389)
* Add standard ALGR defition, remove (re)definitions from language files

* Use ALGR(kc) consistently in ALTGR(kc) aliases

* Non-Nordic keymaps should not use NO_ALGR

* Add standard KC_ALGR definition

* Update docs with ALGR and KC_ALGR

* Update SS_ALGR and ALGR_T aliases
2018-12-12 10:17:19 -08:00
noroadsleft
8b6cdd1788 handwired/numpad20 Refactor and Configurator support (#4589)
* handwired/numpad20: refactor

- layout macro no longer auto-prepends keycodes with KC_
  - keymaps for this keyboard will now compile in QMK Configurator
- keymap now uses #include QMK_KEYBOARD_H
- deleted unused fn_actions code block

* handwired/numpad20: Configurator support
2018-12-11 20:49:44 -08:00
noroadsleft
d46d304395 Preonic Configurator update (#4598)
* Preonic: refactor layout macros

Unify layout macro names across AVR and ARM.

- all layouts and matrices have moved/duplicated to their appropriate revisions
  - preonic.h now includes the appropriate header file from the selected revision
  - revision header files only contain layouts appropriate for that revision
    - Previously, all layouts were available in source for all revisions.
- removed KEYMAP layout macro alias (was unused)
- macros LAYOUT_preonic_1x2uC and LAYOUT_preonic_grid for AVR and ARM revisions
  - LAYOUT_preonic_grid has alias LAYOUT_ortho_5x12 for all revisions
- deleted LAYOUT_ortho_4x12 alias (not appropriate for this keyboard)
- ARM-based revisions have 1x2uR, 1x2uL and 2x2u matrices

* Preonic: updated revision headers to #pragma once

* Preonic: update Configurator files

Updated the Configurator files to reflect the previous changes in this branch.

- Preonic revs. 1 and 2 will use keyboards/preonic/info.json
- Preonic rev. 3 will use keyboards/preonic/rev3/info.json
  - This file will override keyboards/preonic/info.json when preonic/rev3 is selected in the Configurator.
2018-12-11 18:58:10 -05:00
Twopidee
b11c332477 Keymap: Added Drewsky DZ60 keymap (#4607)
* Added Drewsky's DZ60 Keymap

* Update keyboards/dz60/keymaps/drewsky/keymap.c

Co-Authored-By: Twopidee <42394451+Twopidee@users.noreply.github.com>
2018-12-11 14:24:17 -08:00
Skyler Lewis
200ee8e797 Keymap: Dichotomy keymap by alairock (#4608)
* dichotemy layout for alairock

* dichotemy layout for alairock

* complete overhaul

* fix suggestions
2018-12-11 12:43:56 -08:00
noroadsleft
7c63c0a950 handwired/practice60: Configurator Support and refactor (#4603)
* handwired/practice60: Configurator Support

* handwired/practice60: refactor

- layout macro rows did not have an equal number of arguments in all rows of the matrix
- white space changes for readability/alignment
2018-12-11 09:47:06 -08:00
noroadsleft
a5a46f3d36 handwired/pteron: Configurator support 2018-12-11 09:46:39 -08:00
Drashna Jaelre
fb900e2ad1 Fix macro docs to be consistent with keyboard template (#4600) 2018-12-11 09:11:35 -08:00
Wilba
930e1dfc4c Changing Zeal60/Zeal65 VID/PID to be unique (#4605) 2018-12-11 07:31:13 -08:00
Drashna Jaelre
cce19d265d Reduce compile size of KBD6x (#4599)
Disable some functionality so that it will compile under size in the QMK Configurator
2018-12-11 07:29:17 -08:00
noroadsleft
a003be1e9c handwired/pilcrow Refactor, Configurator support and readme update (#4602)
* handwired/pilcrow: refactor

- layout macro renamed from KEYMAP to LAYOUT
- keymap now uses #include QMK_KEYBOARD_H
- layers reformatted for readability
- removed unused and deprecated fn_actions and action_get_macro blocks
- keymap config.h
  - updated to use #pragma once
  - removed redundant config.h include

* handwired/pilcrow: Configurator support

* handwired/pilcrow: readme update

Updated readme.md file to use modern template formatting.
2018-12-11 00:19:55 -08:00
Peter K. Cawley
3bef186ea6 adjust install_avr function to use unzip for broader compatibility (#4596)
On a laptop with god knows what mandatory security software (Cylance?), running up-to-date Windows 10 with msys2 mingw-64, attempting to install the AVR toolkit results in the following error:

```
1 [main] 7z (13316) C:\msys32\usr\lib\p7zip\7z.exe: *** fatal error - cygheap base mismatch detected - 0x612A5410/0x2375410.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
```

This appears to be related in some way, based on my research, to ASLR functionality in security software. Since I'm unable to override whatever is enforcing ASLR on my system, after trying several other approaches (removing other copies of msys-2.0.dll, which is what this is apparently actually referencing, rebasing that file in Windows to address 0x61000000, a few other things) I simply edited the installation shell script to use `unzip` instead of 7zip; `unzip`'s binary does not provoke a mismatch error and the installation proceeds as it should.

I'm not aware of the reason why some parts of the install script use `unzip` (e.g. `install_arm`) and others use 7zip, but it seems that for broader compatibility and sparing users on locked down machines the 120 minutes or so of futzing this took me to fix, it might be better to just use `unzip` in all cases.

Note: There is another function that uses 7zip, `extract_flip`. The line is `7z -oflip x FlipInstaller.exe`. I'm not sure what this is doing, or whether it's possible to do it with `unzip`, but it produces the same error. I haven't attempted to fix that in this PR, but it might be good to fix it for the same reason.
2018-12-10 16:15:15 -08:00
Drashna Jaelre
e5380795b9 Fix the LFKeyboards so they work with the QMK Configurator (#4591)
* Make layer_info weak so it works with QMK Configurator

* Fix lfk87 compile issue

* Add fixes for lfkpad
2018-12-10 11:38:57 -08:00
patrickmt
4a5e68f4f2 Bringing Massdrop keyboard hardware configuration to keyboard level (#4593)
MCU Pins for debugging, LED, boot tracing, and shift registers are now configurable at keyboard level.
Macros led_* replaced by DBG_LED_*
Macros m15_* replaced by DBG_1_*
Macros m27_* replaced by DBG_2_*
Macros m28_* replaced by DBG_3_*
For CTRL and ALT keyboards, debug boot tracing pin default now set to pad M27 instead of M28 since although M28 is not being used, it is technically a signal for USB port detection.
m15_print(...) renamed to dbg_print(...) to get away from hard coded port names.
dbg_print function now follows similar pattern to debug led output.
2018-12-10 11:28:06 -08:00
Michael
e99615b2ac Keyboard: Added RGB toggle and cycle to default KDB6x mapping. (#4592)
* Added RGB toggle and cycle to default mapping. This is present on layouts on 'http://qmkeyboard.cn/' but not here.

* Added addition keycodes for hue/sat/val.
2018-12-10 10:49:19 -08:00
noroadsleft
090c30212e handwired/onekey Refactor and readme update (#4590)
* handwired/onekey: refactor

- keyboard now uses a layout macro
- keymap now uses #include QMK_KEYBOARD_H

* handwired/onekey: readme update

Updated Docs links.
2018-12-10 09:22:50 -08:00
noroadsleft
753f57ee00 handwired/nicekey Refactor and readme cleanup (#4588)
* handwired/nicekey: refactor

Now uses a layout macro.

* handwired/nicekey: readme cleanup

- linked maintainer's GitHub account
- updated Docs links
2018-12-09 21:43:24 -08:00
Vyolle
fd3b0787ed Fixed lack of semi colon. (#4587) 2018-12-09 17:52:00 -08:00
Ben
16302be5ad docs typo (#4584) 2018-12-09 14:26:09 -08:00
MakotoKurauchi
b8db0b26b1 Keymap: Fixed a problem with underglow with froggy keymap (#4580) 2018-12-09 08:42:28 -08:00
zer09
614b3a0f7c Keymap: Keymap update (#4579)
* Add YREG keycode

* Add GM layer

* Set tapping term to 105

* update tapping term
2018-12-09 08:28:46 -08:00
marksard
11eaccdbce Keymap: Modified like-jis keymap for crkbd (#4577) 2018-12-08 09:43:57 -08:00
Konstantin Đorđević
13ad650136 Add a better Docker build script + update Dockerfile (#4222)
* Add a Docker build script

* Add usage and error messages

* Add -r to reads

Thanks mechmerlin

* Add keyboard:keymap form, improve script

* Add target argument, change usage forms in script

* Add check for more than 3 args in keyboard:keymap:target form

* Change Docker base image to debian, use community repo

This matches what qmk_compiler uses (https://github.com/qmk/qmk_compiler/blob/master/Dockerfile#L1).

I've removed the maintainer as we now have a community build on Docker Hub (https://hub.docker.com/r/qmkfm/qmk_firmware). This Dockerfile will also be maintained by the community.

* Change build command format to keyboard:keymap

* Call make directly in container run command

* Simplify script, remove 3-arg form

* Add COPY to Dockerfile so images are usable in and of themselves

Also change WORKDIR from /qmk to /qmk_firmware

* Add USB pass-through for Linux and docker-machine hosts

* Read directly into variables instead of array

* Alphabetically sort dependencies in Dockerfile

* Set executable bit on util/docker_build.sh

* Update Docker docs

* Add warning about Docker on Windows

* Expand comment in docs

* Check docker-machine exit code instead of string

* Only match --help with whole arguments

* Make script POSIX-compliant

* Convert script indentation to tabs
2018-12-08 09:42:46 -08:00
Drashna Jaelre
2ad2b73d68 Add support for PR and Issue templates to QMK_firmware GitHub (#4494)
* Add support document

* Add Bug Report

* Add GitHub Pull Request Template

* Feature request issue template

* Touch up feature request template

* Add 'other issues' template

* move support doc

* Minor tweaks

* More minor tweaks

* Spleeling fix

Co-Authored-By: drashna <drashna@live.com>

* CapiTALization fIXes

Co-Authored-By: drashna <drashna@live.com>

* Use new issue URL

Co-Authored-By: drashna <drashna@live.com>

* Add blanck issue template

* Update the PR template

* Formatting and additional changes

* Update docs/support.md

Co-Authored-By: drashna <drashna@live.com>
2018-12-07 16:51:27 -08:00
Vyolle
3e698a54ea Removed mousekeys. Added Levinson Steno keymap. (#4574)
* Changed location of mouse 3, and arrow keys

* Removed MouseKeys. Added Levinson Layout
2018-12-07 16:50:43 -08:00
ajp10304
6d78d45ca1 AJP10304 Planck layout, add LAYOUT_planck_grid (#4575) 2018-12-07 16:49:33 -08:00
noroadsleft
c9159effc0 handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576)
* handwired/MS_sculpt_mobile: refactor

- layout macro KEYMAP renamed to LAYOUT
- layout macro MATRIX_TESTING_KEYMAP renamed to MATRIX_TESTING_LAYOUT

* handwired/MS_sculpt_mobile: Configurator support

* handwired/MS_sculpt_mobile: readme cleanup

* handwired/MS_sculpt_mobile: rename folder

Renamed the directory to fully lowercase.

* handwired/MS_sculpt_mobile: rename keyboard files

Renamed the keyboard core files to fully lowercase.

* handwired/ms_sculpt_mobile: keymap readme cleanup

Capitalization fixes because I'm that guy.

* handwired/ms_sculpt_mobile: keymap config.h fixes

Keymap config.h files updated to use #pragma once

* handwired/ms_sculpt_mobile: updated paths

Fixing path references due to rename.
2018-12-07 16:48:03 -08:00
Nico Hormazábal
7749f4590f Keymap: Updated keymap with better F positioning (#4463)
* added own keymap for planck

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update Readme.md

* dynamic macros

* Update Readme.md

* moved the reset button

* Update readme for volume explanation

* Format

* Update Readme.md

* Update Readme.md

* added safe double shift

* changed the modified shift to regular shift, for allowing shift + F keys

* moved power stuff to the function layer

* del button on raise

* Update Readme.md

* updated F keys

* Update Readme.md

* Update Readme.md

* moved F keys

* fixed conflicts

* missed something

* moved F11 and F12

* Update layout in the image

* Update keyboards/planck/keymaps/dr_notsokind/keymap.c

Co-Authored-By: pnikosis <pnikosis@gmail.com>

* Apply suggestions from code review

Co-Authored-By: pnikosis <pnikosis@gmail.com>
2018-12-07 14:00:26 -08:00
noroadsleft
5b7260fc53 Keyboard: handwired/minorca Refactor, Configurator support and readme cleanup (#4571)
* handwired/minorca: refactor

- Refactored keymaps to use a layout macro, which was added to minorca.h.
- keymaps now use QMK_KEYBOARD_H include
- removed redundant KC_TRNS and KC_NO definitions
- rgb keymap refactor to use QMK core layer switching and Mod-Tap keycodes

* handwired/minorca: Configurator support

* handwired/minorca: readme cleanup

Restructure readme file to current QMK template.
2018-12-07 13:46:23 -08:00
ishtob
afb4a43677 Keymap: adding ishtob's keymap to hadron ver3 (#4570) 2018-12-07 13:37:28 -08:00
Sebastian Spieß
ca9262ca3d Add levinson keymap for user 'drogglbecher' (#4566)
* Add levinson layout for drogglbecher

* Add tab to layer 0

* Change OS key to ALT

* Remove unnecessary KC_TRNS define

Co-Authored-By: Drogglbecher <code@sebastian-spiess.de>
2018-12-07 08:36:51 -08:00
Alex Mayer
0f2108c905 1up60hse: Make Keymap Rows Match Keyboard Row Layout (#4564)
Remove unused process_record_user function
2018-12-07 07:56:38 -08:00
Jason Thigpen
45dca4bc40 crd alps64 updates (#4565)
* Update alps64 aek layout to work

I tried using the layout provided with my alp64 board in AEK
configuration, but keys weren't mapping correctly until I made this fix.

* Update crd's alps64 aek keymp to match other boards

(inspired by mechmerlin)

* Fix minor whitespace issue
2018-12-07 07:52:31 -08:00
milestogo
3f96ba0113 Keyboard: Palm serial keyboard USB converter (#4485)
* Initial palm_usb support

* removing left over sun .c file

* fixing licenses

* actually adding updated files

* fixing build error

* more include cleanup
2018-12-06 17:13:15 -08:00
noroadsleft
2fb14845d5 handwired/gamenum Refactor, Configurator support and readme cleanup (#4563)
* handwired/gamenum: refactor

- layout macro KEYMAP renamed to LAYOUT
  - white space changes for alignment
- default keymap
  - now uses #include QMK_KEYBOARD_H
  - updated layout macro names
  - white space changes (for readability)

* handwired/gamenum: Configurator support

* handwired/gamenum: readme cleanup

- renamed file to lowercase
- updated to match current QMK template more closely
- edits to reflect the other changes in this PR
2018-12-06 15:19:40 -08:00
Ian O'Dea
21bc230dfd Vertical animation support for arm_atsam led_matrix (#4538)
* Add initial support for vertically-oriented animations

* DRY up vertical animation support

* Fix animation code for arm_atsam led_matrix to work in all directions

* Adjust py calculation to base off bottom rather than top
2018-12-06 08:58:58 -08:00
fauxpark
42c9fd2625 Delete docs/keycode.txt (#4505) 2018-12-06 08:31:17 -08:00
Drashna Jaelre
4e5f921496 Allow HS60 to use Community Layouts (#3862)
* Add layout support to HS60

* Update Readme for HS60

* Remove defective code

* Clean up readme

* Fix typo
2018-12-06 07:40:19 -08:00
noroadsleft
dee2faf387 handwired/frenchdev Refactor, Configurator support and readme cleanup (#4561)
* handwired/frenchdev: refactor

- layout macro KEYMAP renamed to LAYOUT
- default keymap
  - now uses #include QMK_KEYBOARD_H
  - updated layout macro names

* handwired/frenchdev: Configurator support

* handwired/frenchdev: readme cleanup

Capitalization and markdown formatting fixes.
2018-12-06 07:29:42 -08:00
noroadsleft
a5b43b35fe Sol rev1 Configurator support (#4562)
Adds Configurator support for the Sol rev. 1 by RGBKB.

Notes:

The Sol keyboard supports split thumb keys like the Ergodox - any of the 2u thumb keys can be split into two 1u keys. The matrix here is configured for fully 1u keys on the thumbs.

The Sol also supports installing a rotary encoder on each half. The key matrix given includes the encoders' functions, which are shown in the Configurator as two 1u keys side by side below each half's main key block. The left key of the two (for each side) represents that half's rotary encoder's counter-clockwise function, and the right key is that encoder's clockwise function.
2018-12-06 07:27:04 -08:00
Snipeye
57678238a9 Keyboard: Fixing spelling, updating code, finalizing keymap for Dichotomy (#4539)
* Fixing spelling, updating code, finalizing keymap for Dichotomy

* Fixing requested changes in PR

* Further PR-requested changes for convention

* Making macros functionable, removing unecessary defs

* Fixing keymap to properly use previously-changed macros
2018-12-05 18:31:21 -08:00
noroadsleft
8ad561c8f0 Keyboard: handwired/fivethirteen Refactor, Configurator support, and readme cleanup (#4559)
* handwired/fivethirteen: refactor

- Layout macro KEYMAP renamed to LAYOUT
- Default keymap
  - now uses #include QMK_KEYBOARD_H
  - Removed redundant KC_TRNS definition
  - Removed deprecated fn_actions and action_get_macro functions.

* handwired/fivethirteen: Configurator support

* handwired/fivethirteen: readme cleanup

Restructured readme file to be closer to current QMK template.

Couldn't find a photo of an assembled fivethirteen, so deleted the
reference to the photograph.

Renamed to readme.md
2018-12-05 16:55:35 -08:00
noroadsleft
58670ef4b7 Keyboard: Configurator support for handwired/dactyl_manuform (#4558)
* handwired/dactyl_manuform/4x5: Configurator support

* handwired/dactyl_manuform/4x6: Configurator support

* handwired/dactyl_manuform/5x6: Configurator support

* handwired/dactyl_manuform/5x7: Configurator support

* handwired/dactyl_manuform/6x6: Configurator support
2018-12-05 15:27:55 -08:00
Ivan Choi
fd0f78254d Keymap: Updated files to work with Planck Rev. 6 (#4552)
* Update to work with Planck Rev. 6

Still something that needs to be worked with under keymap.c

Qwerty layer tap-toggle function seems to be a little laggy? Not instantaneous

* Changes

Deleted some unneeded lines

* deleting unneeded lines
2018-12-05 15:20:39 -08:00
jtcarrasco
04de0533b8 Keymap: Jtcarrasco (#4513)
* my XD75 builds for idobo and XD75

these are my xd75 layouts for the 2 versions of the board

* clearing of free space

spring cleaning

* additional cleaning

more spring cleaning

* removed lighting commands

don't need lighting on the idobo board so removal of such commands to keep the sizing down

* update for readme.md

* Update config.h

* commiting with keymap erros on idobo for review

* syntax fix for idobo and xd75 revok75, addition of del key switch on fn layer

* config edit to config user and keymap QMK_KEYBOARD_H

* update to vol controls for both idobo and xd75 for revok75 keymap

* filename changes
2018-12-05 15:13:31 -08:00
zvecr
368de26996 Keyboard: Initial i75 port (#4553)
* Initial i75 port - currently supporting promicro and teensy2

* Initial i75 port - review fixes
2018-12-05 13:56:43 -08:00
zvecr
161afe2e54 Keyboard: Fixes for superseded audio and default layer functionality (#4557) 2018-12-05 13:12:07 -08:00
Vyolle
ff3369ac5d Changed location of mouse 3, and arrow keys (#4556) 2018-12-05 12:13:52 -08:00
Drashna Jaelre
59b2be6200 Re-order feature list in sidebar (#4555)
Specifically, moved the shifted keycodes to the top of the 'Feature' list, so it's more visible.  This way, all of the keycodes are at the top of the list, rather than having the shifted keys at the bottom, so they should be easier to find since they're all in one place.
2018-12-05 10:28:06 -08:00
zvecr
b3d6426aa9 Keyboard: Refactor lets split to use split common code (#4536)
* Refactor lets split to use split common code

* Refactor lets split to use split common code

* Build fixes for OLED_sample keymap

* Build fixes for OLED_sample keymap - attempt to reduce firmware size
2018-12-05 09:51:35 -08:00
Nicholas Shaff
d0da43fbdc Keyboard: Updated sixshooter keyboard to move LED macros into the default keymap. (#4428) 2018-12-05 09:35:26 -08:00
Jarrett Drouillard
7d4955b2c4 Keymap: Preonic kuatsure updates 2018-Nov (#4500)
* preonic-kuatsure: ctrl / esc in one key + hello ` again

* preonic-kuatsure: remove esc on lower

* preonic-kuatsure: programmy macros

* user-kuatsure: turn off console all the time

* preonic-kuatsure: auto shift, but only for numbers

* preonic-kuatsure: remove programmery macros

* preonic-kuatsure: move braces, parens, etc over to raise

backwards compat

move &*() on lower

* preonic-kuatsure: stop with the full rep of game layer
2018-12-05 09:08:05 -08:00
Jason Thigpen
d115abfd8d Keyboard: Add dz60 tsangan hhkb (#4529)
* Add tsangan bottom row hhkb layout for dz60

* Add crd's tsangan hhkb layout for dz60

* Resort to native key aliases when they exist

* Update crd's dz60 ansi keymap to match updates for hhkb fn layer

* Add tsangan hhkb layout to dz60 info.json for KLE

* Fix JSON nesting in dz60 layouts block

* Minor adjustments to crd layouts to make them more consistent

* Update layout naming to 60_tsangan_hhkb
2018-12-05 09:02:26 -08:00
fauxpark
d6b7ca04f2 Only try to read the report ID from SetReport when the keyboard is part of the shared EP
Fixes #4471
Fixes #4517
2018-12-05 08:50:29 -08:00
wanleg
0677e64655 Keymap: Wanleg layout updates (#4550)
* config fixes (including for issue #3678)

* put back audio

* jj40 backlighting setup

* jj40 backlighting setup

* rules.mk fix

* jj40 backlighting settings

* iris setup

* iris setup

* iris setup

* iris setup

* iris setup - onehand

* remove commented-out section

* edits due to #4403

* xd75 testing

* fix 5x15 layout issues with 5x5 bluetooth & xd75

* commenting out unused placeholders

* change iris to more wanleg-like 4x12 layout

* formatting changes

* onehand layout cleanup/fix

* revert temp change
2018-12-05 08:42:50 -08:00
zvecr
20130e010b Keyboard: Initial nori port (#4542)
* Initial nori port

* ortho_4x4 layout and RGB fixes

* Review fixes for superseded audio and default layer functionality
2018-12-05 08:36:31 -08:00
Vyolle
86a7687a87 Major revisions, focused on streamlining and useability (#4554) 2018-12-05 08:19:14 -08:00
Ismael Venegas Castelló
538874f90f Keymap: Hacker Dvorak (#4514)
* Hacker Dvorak

Programmer Dvorak based layout for the Ergodox EZ.

* Address drashna comments.

* Fix RGB and drop OSL for MO.

* Add gulp file to automate development.

* Fix gulpfile.

* Caps, num and scroll lock indicators.

* Fix scroll lock.
2018-12-05 08:12:35 -08:00
Legonut
8a330b33ff Keyboard: Add new keyboard "Sol" from RGBKB (#4497)
* Add final RGBKB Sol firmware

* Apply suggestions from code review

Apply most of the changes noroadsleft has suggested

Co-Authored-By: Legonut <legonut3@gmail.com>

* Cleanup readme

* Cleanup keymaps per @noroadslefts suggestions

* Remove eeproms, use set_single_persistent_default_layer

* Suggestions from @noroadsleft and @drashna

some small cleanup

* Change RGB_SMOD to RGB_RMOD

* fix RGB_SMOD

* Apply suggestions from code review

Remove redundant lines

Co-Authored-By: Legonut <legonut3@gmail.com>
2018-12-04 18:15:52 -08:00
Drashna Jaelre
6d0dc910d9 Rework drashna userspace to be more modular (#4544)
* Break up files to make more readable

* Add comments to ortho 4x12 layout rules.mk

* Small tweaks

* Update GitLab CI scripts

* Make ortho boards smaller
2018-12-04 13:27:41 -08:00
Yan-Fa Li
106de349fb Invalid JSON (#4547) 2018-12-04 10:09:39 -08:00
Alex Mayer
59dc31a737 Keymap: Ergodox EZ: Clean Up Keymap Array Alignment (#4545)
Remove layer name comments, they are above the visual layout
Remove comments explaining things that are documented in qmk docs
2018-12-04 09:25:27 -08:00
ishtob
4099536c0e adding Hadron v3 keyboard, QWIIC devices support, haptic feedback support (#4462)
* add initial support for hadron ver3

* add initial support for hadron ver3

* pull qwiic support for micro_led to be modified for use in hadron's 64x24 ssd1306 oled display

* initial work on OLED using qwiic driver

* early work to get 128x32 oled working by redefining qwiic micro oled parameters. Currently working, but would affect qwiic's micro oled functionality

* moved oled defines to config.h and added ifndef to micro_oled driver

* WORKING :D - note, still work in progress to get the start location correct on the 128x32 display.

* added equation to automatically calculate display offset based on screen width

* adding time-out timer to oled display

* changed read lock staus via read_led_state

* lock indications fixes

* Added scroll lock indication to oled

* add support for DRV2605 haptic driver

* Improve readabiity of DRV2605 driver.
-added typedef for waveform library
-added unions for registers

* Update keyboards/hadron/ver2/keymaps/default/config.h

Co-Authored-By: ishtob <ishtob@gmail.com>

* Update keyboards/hadron/ver2/keymaps/default/config.h

Co-Authored-By: ishtob <ishtob@gmail.com>

* Update keyboards/hadron/ver2/keymaps/default/config.h

Co-Authored-By: ishtob <ishtob@gmail.com>

* Update keyboards/hadron/ver2/keymaps/default/config.h

Co-Authored-By: ishtob <ishtob@gmail.com>

* Fixes for PR

* PR fixes

* fix old persistent layer function to use new set_single_persistent_default_layer

* fix issues with changing makefile defines that broken per-key haptic pulse

* Comment fixes

* Add definable parameter and auto-calibration based on motor choice
2018-12-04 08:04:57 -08:00
VM
4bb28d2df0 Keymap: adding my keymap primarily to iris (#4541) 2018-12-03 21:10:28 -08:00
Luciano Malavasi
ac4fd5e99e Keymap: Fixed include statement in my Let's Split keymap. (#4543)
* keymap + alpha

* some fixes

* keymap + alpha

* some fixes

* drashna changes

* linked main Alpha repo in keyboards/alpha readme

* missed a spot

* there's another function called FUNC lol

* keymap + alpha

* some fixes

* keymap + alpha

* drashna changes

* Fixed include

* Revert "Fixed include"

This reverts commit ea92f261f86d8433eab313cde498adca1682a006.

* messed up my git, fixed include
2018-12-03 20:45:41 -08:00
Drashna Jaelre
3a0f3a5bd0 Make ARM Audio max volume configurable (#4540)
* Make ARM Audio max volume configurable

* Update docs/feature_audio.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/feature_audio.md

Co-Authored-By: drashna <drashna@live.com>
2018-12-03 16:42:57 -08:00
Drashna Jaelre
da1afe152a Fix up RGB Matrix code (#4503)
* Fix up RGB Matrix code

* Convert RGBLIGHT functions to rgbmatrix ones, and add defines
2018-12-03 10:27:15 -08:00
epaew
fe982caf5d Add edvorakjp kepmap for crkbd (#4537)
* edvorakjp layout for crkbd

* bugfix of edvorakjp

QMK cannot send keycode that doesn't exists on new layer.
2018-12-03 08:00:00 -08:00
Jack Humbert
5d47231f2a Add sidebar for ZH (#4533)
* add zh-cn readme

* edit readme

* Round 1 of edits

- Mandarin translation of QMK products is off, best to use the English name.
- Fix some terminology and grammar.

* trying re-translating the first paragraph

* add fallback langurages

* Create LANGS.md

* Rename docs/zh-cn/README.md to docs/zh/README.md

* Update LANGS.md

* Update index.html

* Delete README.md

* add sidebar for zh
2018-12-02 15:35:53 -05:00
Jack Humbert
d5a06aec83 Second try at configuring i18n for docsify and gitbook (#4531)
* add zh-cn readme

* edit readme

* Round 1 of edits

- Mandarin translation of QMK products is off, best to use the English name.
- Fix some terminology and grammar.

* trying re-translating the first paragraph

* add fallback langurages

* Create LANGS.md

* Rename docs/zh-cn/README.md to docs/zh/README.md

* Update LANGS.md

* Update index.html
2018-12-02 15:12:54 -05:00
noroadsleft
dbc7761688 Keyboard: handwired/atreus50 Refactor, Configurator support, and readme cleanup (#4530)
* handwired/atreus50: refactor

- layout macro renames:
  - KEYMAP is now LAYOUT
  - COMPACT_KEYMAP is now LAYOUT_kc
- keymap updates:
  - both keymaps now use #include QMK_KEYBOARD_H
  - removed redundant KC_TRNS and KC_NO definitions
  - default keymap now uses LAYOUT macro instead of LAYOUT_kc

* handwired/atreus50: readme cleanup

Reformatted the readme to be more closely aligned to current QMK
template, and fixed some typos/grammar.

* handwired/atreus50: Configurator support
2018-12-01 23:22:40 -08:00
MechMerlin
0db6bb10e0 Keyboard: Enable Lights by Default for Kira 75 (#4527)
* enable rgb underglow and backlights by default for use with QMK Configurator

* disable mousekeys
2018-12-01 17:28:35 -08:00
MechMerlin
1fd4546fff Keyboard: Add HHKB layout support to the DO60 (#4526)
* add 60_hhkb support

* add qmk configurator support for the new 60_hhkb layout

* allow community layout support for the 60_hhkb

* fixup readme to adhere to new QMK standards
2018-12-01 17:19:33 -08:00
noroadsleft
064d9e2175 handwired/promethium Refactor and Configurator support (#4524)
* handwired/promethium: refactor

- config.h files
  - updated to use #pragma once
  - removed redundant config.h includes
- layout macro moved from config.h to promethium.h
- layout macro renamed from KEYMAP_CUSTOM to LAYOUT

* handwired/promethium: Configurator support
2018-12-01 16:29:16 -08:00
noroadsleft
a90331aec2 handwired/ortho5x13 default keymap refactor, Configurator support, and readme update (#4525)
* handwired/ortho5x13: default keymap refactor

- keymap now uses LAYOUT macro
- keymap now uses #include QMK_KEYBOARD_H
- removed redundant KC_TRNS and KC_NO definitions

* handwired/ortho5x13: Configurator support

* handwired/ortho5x13: fix Docs links in readme
2018-12-01 16:28:32 -08:00
Erovia
0b0c98929b Add support for S7 Elephant (#4511)
* Add support for S7 Elephant

A high-end 70% custom keyboard designed and produced by jacky from Geekhack.

* Polish S7 Elephant code

Implement drashna's suggestions:

- specify bootloader
- remove unnecessary defines
- use led_set_user() for LED logic

* Correct info.json and s7_elephant.h

Correct info.json and s7_elepant.h to follow QMK convention and fix a
missing curly bracket.
2018-12-01 08:57:30 -08:00
Drashna Jaelre
75a51659ab Add tap_random_base64 and software timer info to Useful Functions doc (#4360)
* Update docs

* Add security caveat

Co-Authored-By: drashna <drashna@live.com>

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* Update docs/ref_functions.md

Co-Authored-By: drashna <drashna@live.com>
2018-12-01 08:21:06 -08:00
Jason Thigpen
5803012eda Add a layout to support tsangan bottom row with split bs and rshift (#4521)
* Add a layout to support tsangan bottom row with split bs and rshift

* Move the new layout to defaults

* Rename layout to be more accurately representative

* Rename files to match renamed layout def
2018-12-01 08:17:50 -08:00
Alex Mayer
8c033497c6 Planck: Align Keycode Columns (#4523)
Remove Extra Newlines
2018-11-30 14:51:45 -08:00
Wilba
d7f1e072a8 Added macros to Dynamic Keymaps, Zeal60 RGB backlight improvements (#4520)
* Refactored M6-B to use Zeal60 RGB backlight code

* Fixed M6-B LED co-ordinates

* Minor changes to RGB config for Zeal65

* Added dynamic keymaps to WT80-A, WT60-A, WT-80A, U80-A

* Macro implementation

* Implemented macros, API protocol version 8, RGB backlight fixes

* Improved radial effects for M6-B

* Fixed undefined references when building an RGB keyboard after M6-A
2018-11-30 08:43:34 -08:00
Jack Humbert
b10aad45b6 Test out i18n of the docs (#4519)
* add zh-cn readme

* edit readme

* Round 1 of edits

- Mandarin translation of QMK products is off, best to use the English name.
- Fix some terminology and grammar.

* trying re-translating the first paragraph
2018-11-30 00:14:55 -05:00
MechMerlin
81ce35c10a New Keyboard: Cyclops (#4512)
* initial commit

* add correct atmega32u4 pins used

* add a basic layout

* add simple keymap

* update readme

* Add QMK Configurator support

* add whitespace for formatting
2018-11-29 07:57:06 -08:00
Paul Massendari
fbf59ba2e5 Typo fix (#4515) 2018-11-29 07:33:45 -08:00
GO
87e6d01374 Keyboard: add newgame (#4466)
* Add files via upload

* Add files via upload

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/newgame40.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/config.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/config.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/config.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/config.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/config.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/keymaps/default/keymap.c

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/config.h

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/rules.mk

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/rules.mk

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Add readme (newgame40)

* Update keyboards/newgame40/readme.md

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keyboards/newgame40/readme.md

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Update keymap.c

* Update keyboards/newgame40/rules.mk

Co-Authored-By: GoTakigawa <44800276+GoTakigawa@users.noreply.github.com>

* Add files via upload

* remove community/ortho_4x10
2018-11-28 09:20:46 -08:00
noroadsleft
fff6f22cf6 Keyboard: handwired/bluepill Configurator support and readme cleanup (#4509)
* handwired/bluepill/bluepill70: Configurator support

* handwired/bluepill: readme cleanup

Formatting fixes to make the file easier to read.
2018-11-28 08:51:16 -08:00
Giuseppe Rota
8b85ec2a98 Add Extrakey support for Brightness up/down (#4477) 2018-11-28 08:19:07 -08:00
Paul Massendari
3b42cff516 Added Rick Roll to song lists (#4510)
🙂
2018-11-28 07:56:34 -08:00
zfhrp6
6d2730eeff [fortitude60] match default keymap comment to the implementation. (#4508) 2018-11-28 07:33:08 -08:00
Drashna Jaelre
a495326aed Turn off Mousekeys for several ps2avrGB keyboards (#4502)
* Turn off Mousekeys for jc65

* Turn off Mousekeys for ps2avrGB templates

* Disable mousekeys for bmini and canoe as well
2018-11-27 16:54:43 -08:00
Erez Zukerman
a152ad3145 Merge pull request #4501 from amayer5125/ergodox-ez-cleanup
Ergodox ez cleanup
2018-11-27 19:42:09 -05:00
Konstantin Đorđević
1904319745 Remove RGB_SMOD alias and replace uses with RGB_MOD (#4319) 2018-11-27 15:34:06 -08:00
Christon DeWan
55c3214877 fixed misplaced paranthesis in arm usb mouse send function (#4478)
bug was causing lots of dropped events for me.
2018-11-27 15:20:17 -08:00
epaew
dd7534ccca Keyboard: fix for debug crkbd (#4469) 2018-11-27 15:18:11 -08:00
Konstantin Đorđević
e4dfcf896e Add tap_code16 function (#4362) 2018-11-27 14:29:59 -08:00
Alex Mayer
6983c71efd Ergodox EZ: Clean Up process_record_user Function
Set ERPM = SAFE_RANGE
2018-11-27 17:19:15 -05:00
Alex Mayer
929e6a3231 Ergodox EZ: Remove Unused Code From Keymap 2018-11-27 17:00:01 -05:00
Drashna Jaelre
82c02d9b8d Update MSYS to use the 5.4.0 toolchain (#4106) 2018-11-27 13:45:01 -08:00
John Pettigrew
d79b5e67b6 Puck Macropad (#4274)
* Add Puck

* Update Manufacturer name in metadata

* Add num lock to high layer

* update pins

* update pin settings

* fix numlock key

* Cleanup config.h

* Update device info

* updates after review
2018-11-27 13:43:48 -08:00
mtei
90f9fb4eee Fixed docs/newbs_testing_debugging.md and tmk_core/common/print.h 2018-11-27 14:40:19 -05:00
abishalom
77ed9e3a73 Keymap: Added abishalom keymaps (#4495)
* Added abishalom keymaps

Added personal keymaps for Massdrop Alt and Tada68

* Update keyboards/tada68/keymaps/abishalom/rules.mk

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/rules.mk

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/config.h

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/keymap.c

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/keymap.c

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/rules.mk

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/keymap.c

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Update keyboards/tada68/keymaps/abishalom/keymap.c

Co-Authored-By: abishalom <abishalom1997@gmail.com>

* Updated keymaps

* Bugfix Tada68

* Update keyboards/tada68/keymaps/abishalom/keymap.c

Co-Authored-By: abishalom <abishalom1997@gmail.com>
2018-11-27 09:22:49 -08:00
Mattia Dal Ben
faef966a4d Keymap: Set serial connection as default for the Redox rev1.0 keyboard (#4488)
* Set serial as default for Redox

* Updated rules.mk file

* Removed unused rule

Co-Authored-By: mattdibi <mattdibi@users.noreply.github.com>

* Removed unused rule

Co-Authored-By: mattdibi <mattdibi@users.noreply.github.com>
2018-11-27 08:59:53 -08:00
Takeshi ISHII
a054b5a06c Fix Helix ws2812.c listed more than once warning. (#4499)
Remove `SRC += ws2812.c` from helix/rev2/rules.mk and helix/pico/rules.mk.
Because it will be added in common_features.mk.
2018-11-27 07:22:47 -08:00
noroadsleft
952a30ef34 handwired/arrow_pad Refactor and Configurator support (#4498)
* handwired/arrow_pad: layout macro and keymap refactor

- Layout macros moved from the keymaps to arrow_pad.h.
- LAYOUT_pad21 refactored to only accept keys that are physical present (no KC_NO entries required in keymap)
- Keymaps now use #include QMK_KEYBOARD_H
- Keymaps refactored to use process_record_user function (from action_get_macro)

* handwired/arrow_pad: Readme cleanup

Fixed the make commands and updated the layout macro.

* handwired/arrow_pad: Configurator support
2018-11-26 20:57:15 -08:00
Joe Wasson
bada74e2a1 Keymap: Fix build errors for non-Zeal boards. (#4496) 2018-11-26 17:39:29 -08:00
Drashna Jaelre
ecd21b44a8 Update to drashna userspace and keymaps (#4459)
* Fix reversed bool check in layer_state_set

* Add Quefrency 65 for a friend

* Add Ergodox EZ Glow keymap

* Add RGB Matrix Code

* Further changes to rgb matrix ErgoDox EZ

* Update bjohnson keymaps

* Fix CRKBD display

* Overhaul to corne keyboard

* Narrow scope for keylogger

* Minor layout tweaks to Corne Keyboard

* additional CRKBD tweaks

* Minor tweaks to CRKBD

* Add all characters for keylogger

* Ergodox EZ Glow overhaul

* Fix Ergodox EZ Glow layer colors

* Increase Tapping Term for Corne Keyboard

* Fix unicode-ish

* Revert some changes

* Add layer specific lighting effects

* Some minor tweaks to ergodox glow config

* revert changes to ergodox files

* Update Glow readme

* Add more tapping term defines

* Fix changes

* Fix ergodox keymap

* Hopefully fix sleeping

* Disable layer indications if rgb matrix is disabled

* Add support for sleeping and rgb layer change toggle to ergodox ez glow

* Make RGB Layer Indication Great Again

* Make Unicode Great Again

* Remove placeholder define

Co-Authored-By: drashna <drashna@live.com>

* Remove placeholder define

Co-Authored-By: drashna <drashna@live.com>

* Remove old EEPROM Reset keycode
2018-11-26 16:45:24 -08:00
zvecr
edb6c98fd2 Keyboard: Enable community ortho 4x12 layouts for lets split eh (#4487)
* Enable ortho_4x12 community layouts for lets_split_eh

* Keymap build fixes now that ortho_4x12 is enabled

* Keymap build fixes now that ortho_4x12 is enabled
2018-11-26 14:58:22 -08:00
Drashna Jaelre
b7b20cd9df Revert "Add support for PR and Issue templates to QMK_firmware GitHub (#4491)" (#4492)
This reverts commit b91dfa04e3.
2018-11-26 14:35:48 -08:00
Drashna Jaelre
b91dfa04e3 Add support for PR and Issue templates to QMK_firmware GitHub (#4491)
* Add support document

* Add Bug Report

* Add GitHub Pull Request Template

* Feature request issue template

* Touch up feature request template

* Add 'other issues' template

* move support doc
2018-11-26 14:35:01 -08:00
zgtm
fe68599a34 Keyboard: add generic ortho 5x15 layout support to Idobo (#4486) 2018-11-26 10:01:34 -08:00
listofoptions
4ebd27002a Keyboard: 5291 firmware to replace the existing soarers controller firmware (#4483)
* compiles but is not working

* still testing 5291

* compiles but is not working

* still testing 5291

* fixed a but in the layout (reversed key order in row)

* compiles but is not working

* still testing 5291

* fixed a but in the layout (reversed key order in row)

* fixed some issues

* doumentation needed

* doumentation needed

* documentation needed

* documentation needed

* Update readme.md

documentation

* Update readme.md

i dislike markdown <_>

* merge preperation
2018-11-26 09:53:49 -08:00
epaew
f3ffd6ad50 Keymap: Refactor edvorakjp user library (#4480)
* Refactor edvorakjp user library

* add tap dance support

* update keymaps

* edvorakjp: add SWAP_SCLN option

* fix behavior of SWAP_SCLN
2018-11-26 09:50:45 -08:00
zvecr
0031e46191 Keyboard: 40percentclub - enable 4x4 and 5x5 community keymaps (#4437)
* Enable 4x4 and 5x5 community keymap support

* Pull 4x4 community keymap fixes from @noroadsleft

* Build fixes for guidoism keymap - move keymap to layouts/community/planck_mit as it uses the LAYOUT_planck_mit macro
2018-11-26 09:27:07 -08:00
mwpeterson
97ab3211e2 Keymap: add Interrobang (#4420)
* remove clmk and dvrk and backlight; switch esc and enter to be modtap; add meh key

* change songs

* space cadet; move enter; move '"; move pgup pgdn

* remove extra songs

* update from noahfredrick keymap

* make it easier to type ../../thing/*/*

* move pipe

* requested changes

* add interrobang support

* add shift-insert to raise-v and lower-v, move pipe to raise-/lower-n
2018-11-26 09:26:26 -08:00
Drashna Jaelre
8bc19c8dcf Fix Blockey compiler (and size) issues (#4390) 2018-11-26 08:09:37 -08:00
Elliot Powell
6266c172b9 added ep/96 as a supported keyboard (#4476)
* added ep/96

* Update keyboards/ep/96/readme.md

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* removed led code

* Update keyboards/ep/96/config.h

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* Update keyboards/ep/96/info.json

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* Update keyboards/ep/96/readme.md

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>
2018-11-26 07:58:53 -08:00
Will Homer
ccd4da941c Add Espectro ISO layout (#4479)
* Add Espectro ISO layout

* Remove unused define from Espectro ISO layout
2018-11-26 07:57:30 -08:00
noroadsleft
834b555eca Keymap FAQ: fix positions of KC_HENK and KC_MHEN for JIS layout (#4482)
These keys were previously in each other's positions.
2018-11-25 18:40:47 -08:00
Colin Kahn
d7ab738ca6 Adding keymap layers for 40precentclub/foobar (#4481) 2018-11-25 18:38:46 -08:00
André Silva
f0db40ff11 fix diffutils arch package name (#4470) 2018-11-24 08:48:42 -08:00
xjacobx
3363743bf7 Adding my new keymap for the Idobo (#4468)
* Adding my new keymap, based of xd75, with leds enabled via the rules.mk file

* cleaned up the rules file

* Per Change Requests: removed deprecated functions along with updated the map to use the layout macro instead of raw matrix
2018-11-24 08:41:39 -08:00
Jasper Lievisse Adriaanse
7bc7c34d4f Add RCTL to my Planck layout (#4475) 2018-11-24 08:40:48 -08:00
noroadsleft
ee8627e078 Add EEPROM_RESET keycode to keycodes.md doc (#4473) 2018-11-23 20:07:53 -08:00
Gergely Nagy
3dd6d53942 ergodox: update algernon's layout to v1.12
This is the final version of my layout.

Overall changes
===============

* Updated to work with QMK master.

Miscellaneous
=============

* The `😂` symbol can be entered with UCIS.
* `LEAD r` now inputs `Right Alt`.

Signed-off-by: Gergely Nagy <me@gergo.csillger.hu>
2018-11-22 13:31:30 -08:00
Milton Griffin
2943d19ecd Keymap: Clone layout for Massdrop's xd75 (#4461)
* Added default75. No lighting.

* Added default75. No lighting.

* Update keyboards/idobo/keymaps/default75/config.h

Co-Authored-By: griffinmilton3 <griffinmilton3@gmail.com>

* Update keyboards/idobo/keymaps/default75/config.h

Co-Authored-By: griffinmilton3 <griffinmilton3@gmail.com>

* Update keyboards/idobo/keymaps/default75/config.h

Co-Authored-By: griffinmilton3 <griffinmilton3@gmail.com>

* Update keyboards/idobo/keymaps/default75/config.h

Co-Authored-By: griffinmilton3 <griffinmilton3@gmail.com>

* Fixes for pull request

* Updated keyboard declartion structure
2018-11-22 10:15:46 -08:00
Erez Zukerman
48262bdce0 Merge pull request #4454 from trunneml/improveddebounce
Adaptive debounce logic
2018-11-22 10:51:20 -05:00
Erez Zukerman
b7dd415c97 Merge pull request #4458 from drashna/ergodox_ez_matrix_fix
Fix Ergodox EZ Matrix scan
2018-11-22 10:50:20 -05:00
yiancar
87f06e7297 Fix raw hid define for chibios (#4460) 2018-11-21 15:12:40 -08:00
Joe Wasson
2f34252278 Keymap: Update keymap to match latest changes to Wilba's firmware. (#4432)
* Fix firmware to work with latest Wilba changes (i.e. dynamic keymap) and M60a.

* Get back RGB Backlight codes.

* More tweaks.

* Update users/talljoe/rules.mk

Co-Authored-By: Talljoe <jwasson+github@gmail.com>
2018-11-21 13:18:18 -08:00
Drashna Jaelre
8837b9d99e Fix row 11 2018-11-21 07:49:28 -08:00
Erez Zukerman
1485098443 Merge pull request #4453 from drashna/fix_ucis
Fix UCIS code
2018-11-20 15:17:43 -05:00
Michael Kemp
303fa4ec33 Keyboard: Add Handwired 108 Key with Trackpoint (#4448)
* Include both base keyboards

* Merge the keymap

* Merge the configs

* Add wiring diagram for clarity of documentation

* Merge rules

* Merge keyboard sources

* Change names to compile

* Update documentation to suit

* Add qwerty layout to 108keyTrackpoint

* Separate the dvorak standard layout from a media focused one

* Update documentation to reflect new keymaps

* [style] Add empty lines at ends of files

* [style] Meet current QMK style guide

* Bring READEME closer to the QMK template

* [style] Change all "108keyTrackpoint" to "108key_trackpoint"

* [style] Use "LAYOUT" instead of "KEYMAP"

QMK terminology has changed

Co-Authored-By: mkem114 <20897849+mkem114@users.noreply.github.com>

* Add two spaces after maintainer in README

This is required to render properly

Co-Authored-By: mkem114 <20897849+mkem114@users.noreply.github.com>

* Remove redundant line

"PREVENT_STUCK_MODIFIERS" is default on for QMK

Co-Authored-By: mkem114 <20897849+mkem114@users.noreply.github.com>

* Change include of keymaps to use QMK_KEYBOARD_H

This includes automatically

* Update make rules to match template

* Change from KC_MENU to KC_APP

The button functionality actually wanted is the context menu key

* [style] Change "dvorakMedia" to "dvorak_media"

* Update README to reflect minor changes
2018-11-20 10:11:23 -08:00
Nick Piazza
93c0362552 Update Levinson readme to support elite-c (#4445)
* init - updated levinson readme to support elite-c

* updated readme per PR comment

* added trailing spaces to lines 6 7 8

* updated readme bootloader instructions

* updated readme

* updated readme
2018-11-20 10:07:20 -08:00
Michael Graf
ad91454574 Adaptive debounce logic
The debounce filtering reports a key/switch change directly, without any extra delay. After that the debounce logic will filter all further changes, until the key/switch reports the same state for the given count of scans.
So a perfect switch will get a short debounce period and a bad key will get a much longer debounce period. The result is an adaptive debouncing period for each switch.

This value defines how often the same key/switch state has to be detected in successive reads until the next key state can be reported.
In other words this value defines the minimum debouncing period for a switch.
2018-11-20 15:55:35 +01:00
Erez Zukerman
385de70e4d Merge pull request #4442 from drashna/ergodox_ez_glow_configurable
Make Ergodox EZ Glow's rgb matrix user configurable
2018-11-19 20:01:22 -05:00
Drashna Jaelre
26156e84e8 Fix UCIS code
Revert code change that broke UCIS due to bad suggestions
2018-11-19 16:37:49 -08:00
Maarten Dekkers
f03fd95000 Fix permanently on capslock led on Atom47 (#4452) 2018-11-19 12:15:16 -08:00
Drashna Jaelre
9e0f68a652 Delete readme.md 2018-11-18 17:51:00 -08:00
MechMerlin
e0690096f8 Fix my community layouts (#4449)
* fix formatting of keymap

* update readme with boards I currently own

* made the wrong assumption that every board would use the same space for backspace

* update readme with boards I currently own
2018-11-18 15:20:21 -08:00
Drashna Jaelre
4d66df5091 Add default glow board 2018-11-18 08:59:52 -08:00
Drashna Jaelre
223b3d2be7 Fix i2c_master.d listed more than once warning 2018-11-18 08:57:51 -08:00
Drashna Jaelre
bdd41715af Make Ergodox EZ Glow's rgb matrix user configurable 2018-11-18 08:45:24 -08:00
Florian Didron
504bf11769 Allows disabling rgb effects in userspace (#4422)
* Allows disabling animations in user space

* Describe disabling effects in the docs

* Allows disabling individual reactive modes

* Adds the list ode defines
2018-11-18 08:24:41 -08:00
noroadsleft
de173e344e Satan: add LAYOUT_60_ansi_split_rshift to info.json (#4441) 2018-11-18 08:23:51 -08:00
zvecr
31298be2b1 Add personal zvecr dz60 keymap (#4443)
* Add Configurator support for dz60 ansi split space

* Add keymap and fix layout macro
2018-11-18 07:53:33 -08:00
Charlie McMackin
9ee2991c3d Default JIS TKL keymap for Pegasus Hoof (#4446)
* Add TKL JIS layout for Pegasus Hoof

Tested with a JIS Majestouch 2 TKL

* Add default_jis keymap for Pegasus Hoof

* Remove unnecessary keycode definition

* Remove legacy fn_actions in favor of MO(1)

* Remove unnecessary build directive
2018-11-18 07:52:53 -08:00
SpacebarRacecar
667e0962eb Update to my keymaps and userspace (#4447)
* fix to prime o keymap

* changed ortho keymaps

* added some symbols to lower layer

* set lower to be a higher layer than raise

* added split layout option with center numpad to prime_o keymap

* added some gaming functionality

* added alt f4 ortho keymaps and userspace

* fixed small error
2018-11-18 07:52:14 -08:00
Boy_314
d9453a93f3 Updating Boy_314's XD75 Layout (#4440)
* fixed arrow keys and left control

* added right shift

* latest version

* reverted arrow keys

* edited readme

* added osu layer

* updated osu layout

* updated osu layout

* added full arrow keys to osu layout

* in case i mess up creating macros

* added the best meme key in the world

* added plover steno layer

* updated boy314 layout

* removed unused layers

* added boy314 xd75 layout, inspired by preonic layout

* added boy314 xd75 layout, inspired by preonic layout

* version 2 of boy314's xd75 layout

* added readme notes

* updated readme for boy314 xd75 layout

* qwerty support, brackets on bottom row, caps lock underglow

* fixed readme/

* small changes to allow merging

* minor changes to format

* fixed up default readme

* added numpad and tweaked bottom row
2018-11-16 14:47:06 -08:00
Elliot Powell
774bee6426 Moved ep40 to ep/40 for easier adding of next ep keyboard (#4439)
* add initial ep40 files

* fixed issues

* updated keymap

* Added media control

* Update keyboards/handwired/ep40/rules.mk

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* Fixed requested changes

* Fixed more requested changes

* Added delete key to layor 1

* Updated defualt keympap to have a Backspace mod del key

* removed place holder

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* removed obsolete code

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* Moved ep40 to ep/40

* Fixed file names for moved code

* Fixed readme
2018-11-16 11:31:44 -08:00
Konstantin Đorđević
defcfb4953 Update whitefox/konstantin keymap (#4436)
* Add more spacing in keymaps

* Enable link-time optimization

* Disable deprecated TMK actions, change spacing in config.h

* Remove unrelated rules.mk options
2018-11-16 08:55:37 -08:00
zvecr
b49f37dce9 Unify 68keys with mf68 (#4435)
* Move 68keys keymap to mf68 folder

* Remove 68keys keyboard now its been migrated to mf68 keymap

* Migrate 68keys build config to mf68 keymap overrides
2018-11-16 08:35:04 -08:00
zvecr
09813793be Add configurator support for luddite (#4434) 2018-11-16 07:37:15 -08:00
James Laird-Wah
39bd760faf Use a single endpoint for HID reports (#3951)
* Unify multiple HID interfaces into one

This reduces the number of USB endpoints required, which frees them up
for other things.

NKRO and EXTRAKEY always use the shared endpoint.

By default, MOUSEKEY also uses it. This means it won't work as a Boot
Procotol mouse in some BIOSes, etc. If you really think your
keyboard needs to work as a mouse in your BIOS, set
MOUSE_SHARED_EP = no in your rules.mk.

By default, the core keyboard does not use the shared endpoint, as not
all BIOSes are standards compliant and that's one place you don't want
to find out your keyboard doesn't work.. If you are really confident,
you can set KEYBOARD_SHARED_EP = yes to use the shared endpoint here
too.

* unify endpoints: ChibiOS protocol implementation

* fixup: missing #ifdef EXTRAKEY_ENABLEs

broke build on AVR with EXTRAKEY disabled

* endpoints: restore error when too many endpoints required

* lufa: wait up to 10ms to send keyboard input

This avoids packets being dropped when two reports are sent in quick
succession (eg. releasing a dual role key).

* endpoints: fix compile on ARM_ATSAM

* endpoint: ARM_ATSAM fixes

No longer use wrong or unexpected endpoint IDs

* endpoints: accommodate VUSB protocol

V-USB has its own, understandably simple ideas about the report formats.
It already blasts the mouse and extrakeys through one endpoint with
report IDs. We just stay out of its way.

* endpoints: document new endpoint configuration options

* endpoints: respect keyboard_report->mods in NKRO

The caller(s) of host_keyboard_send expect to be able to just drop
modifiers in the mods field and not worry about whether NKRO is in use.
This is a good thing. So we just shift it over if needs be.

* endpoints: report.c: update for new keyboard_report format
2018-11-15 22:22:05 -08:00
MechMerlin
46cf8cc9b3 Configurator support for Octagon V2 75_ansi (#4426) 2018-11-14 18:37:53 -08:00
Pekaso
daf08f40f2 serial.c update (#4423) 2018-11-14 18:36:53 -08:00
noroadsleft
d8f090e559 Docs: Supporting a keyboard in the QMK Configurator (#4396)
* Docs: Configurator Support

* Minor updates

* Updated keyboard.h example to use #pragma once

per @drashna
https://github.com/qmk/qmk_firmware/pull/4396#discussion_r232140934

* Add link to doc under Reference section

Added to _sidebar.md and _summary.md

* Changed doc title; minor tweaks

Re-titled the doc as "Supporting Your Keyboard in QMK Configurator".
Made some minor changes to the keyboard.h examples.

* Added tags object to JSON example
2018-11-14 18:32:28 -08:00
ishtob
a034602651 adding block def to ishtob's userspace (#4427) 2018-11-14 09:22:16 -08:00
Phillip Tennen
0cda2f43e2 Backlight status functions (#4259)
* add functions to set specific backlight state

* add function to query backlight state

* update documentation with new backlight functions

* Update tmk_core/common/backlight.c

Co-Authored-By: codyd51 <phillip.ennen@gmail.com>

* Update tmk_core/common/backlight.h

Co-Authored-By: codyd51 <phillip.ennen@gmail.com>

* update docs for is_backlight_enabled() name change
2018-11-14 07:45:46 -08:00
James Osborn
f7fcba329d Fixed Unicode Support heading (#4425)
Previously, Unicode Support heading appeared as the last row in the Swap Hands table.
2018-11-14 07:33:46 -08:00
FiNeXdesign
e10a602e7b Keymap: Finex Redox keymap (#4418)
* Added FiNeX custom Redox Layout, first commit.

* updated readme

* removed old code
2018-11-13 14:44:50 -08:00
noroadsleft
991686203c converter/m0110_usb Configurator support and readme cleanup (#4421)
* Apple M0110 USB converter: readme cleanup

* Apple M0110 USB converter: Configurator support
2018-11-13 14:20:42 -08:00
KOBAYASHI Daisuke
911b2d0756 Docs: Fix descriptions of KC_INT1 and KC_INT3 2018-11-13 12:27:33 -08:00
FateEverywhere
4609d68ddc Keyboard: Add 412 64 Model 00 keyboard. (#4400)
* Add 412-64 keyboard firmware

It's pretty barebones for now, but the Model 00 is also a pretty barebones machine. Model 01 won't be better, but plenty of pins exist for things like LEDs on Model 02.

* MANU/PROD ID changes.

Changed around the MANUFACTURER and PRODUCT IDs to be more polite when viewed in qmk toolbox.

* Fixing PROD again.

For the love of all that is good and holy, that was ugly. This new one looks better. This stuff matters to me for some reason.

* Yep, updating MANU again.

There we go. That's better - From my name to my "design firm".

* Update keyboards/412_64/keymaps/default/keymap.c

Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>

* Update keyboards/412_64/rules.mk

Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>

* Update keyboards/412_64/rules.mk

Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>

* Update keyboards/412_64/rules.mk

Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>

* Update keyboards/412_64/rules.mk

Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>
2018-11-13 08:38:48 -08:00
Wilba
2dea540afb Refactoring M6-A, M6-B, Zeal60, Zeal65, WT60-A, WT65-A, WT80-A (#4417)
* Refactored M6-B to use Zeal60 RGB backlight code

* Fixed M6-B LED co-ordinates

* Minor changes to RGB config for Zeal65

* Added dynamic keymaps to WT80-A, WT60-A, WT-80A, U80-A
2018-11-13 08:31:25 -08:00
Junya Ogura
caa293a8f7 Remove duplicate row from Available functions table in i2c_driver doc (#4416) 2018-11-13 08:27:46 -08:00
noroadsleft
7e87532ec2 converter/ibm_terminal Refactor and Configurator support (#4414)
* IBM Terminal converter: layout macro refactor

- Renamed KEYMAP to LAYOUT
- Renamed KEYMAP_101 to LAYOUT_101
- minor matrix array fixes

* IBM Terminal converter: default keymap refactor

- Updated layout macro names
- Updated to #include QMK_KEYBOARD_H
- config.h updated to use #pragma once

* IBM Terminal converter: priyadi keymap refactor

- Updated layout macro names
- Updated to #include QMK_KEYBOARD_H
- Removed redundant KC_TRNS and KC_NO defines
- config.h updated to use #pragma once

* IBM Terminal converter: Configurator support

* IBM Terminal converter: readme cleanup

Updated markdown formatting.

* IBM Terminal converter: readme rename

Renamed file to fully lowercase.
2018-11-13 08:26:55 -08:00
Andrew Kannan
709bf386f4 Update Practice60 to use MT feature and revise system ticks (#4413)
* Update Practice60 to use MT feature and revise system tics

* Increase system tick frequency

10,000 instead of 10,000
2018-11-12 22:03:48 -08:00
MechMerlin
9b28dc8488 KBDFans KBD67 Support (#4412)
* initial commit for kbd67 keyboard

* add in a standard matrix

* get the correct matrix for layout_all

* add a layout_65_ansi LAYOUT macro

* get a default keymap in

* add caps lock led support

* fix formatting of my name in the comments

* add QMK Configurator support

* turn on bootmagic
2018-11-12 21:46:34 -08:00
TheOneTrueTrench
2dc14d1cb3 Fixed incorrect link to feature_combo.md in features.md docs file. Was linked to feature_combos.md, but _sidebar.md, _summary.md, and config_options.md all link to feature_combo.md. Assuming that it should not be pluralized. (#4411) 2018-11-12 16:46:01 -08:00
Andrew Kannan
e653cc198e The "Practice60" Board, Blue Pill powered (#4407)
* Starting point for blue pill based practice60

* Changes

* add

* try raw bin no botloader

* swap back to bootloader version

* edit

* Remove debug LED flash

* Disable JTAG to open up B3 and B4

* Add led backlight support (no breathing yet)

* Update matrix for correctness

* RGB Underglow working in a very simple state

* not as bright

* Move to handwired

* revert ChibiOS_Test changes

* Changes based on PR comments

* Address PR comments v2

* Move files
2018-11-12 16:31:22 -08:00
QMK Bot
599b21b9f4 convert to unix line-endings [skip ci] 2018-11-12 20:51:24 +00:00
Junya Ogura
2b3473455c Change hex file permission to 644 from 755 2018-11-12 12:30:51 -08:00
mtei
d0f8e1babe modify quantum/template/avr/config.h: add rgblight effect configurations 2018-11-12 12:23:12 -08:00
comaid
2b7decbaeb Fix up screen off timer of helix (#4347)
* Fix up screen off timer of helix

* Fix Up ScreenOffInterval exceeded uint16_t

* Fix Up never waking up once screen off if in case of matrix are not dirty

* Changing referenIng incorrect constant name

* OLED_ENABLED => SSD1306OLED

* Improve internal processing of process_record_kb()

* Use the return value of process_record_gfx()

* Move a include statement into #ifdef block

Move   #include "ssd1306.h` statement into #ifdef block

* Move process_record_kbI()

Move process_record_kb() from helix.c to rev1.c/rev2.c/pico.c

* Move process_record_kb()
2018-11-12 12:20:50 -08:00
comaid
aa03049015 Fix up screen off timer of crkbd (#4346)
* fix about screen off timer

* Fix Up ScreenOffInterval exceeded uint16_t

* Fix Up never waking up once screen off if in case of matrix are not dirty.

* Revert "fix about screen off timer"

This reverts commit 3d175f2340c14250a71af78afec5a1e890d9f4e7.

* Fix up screen off timer of crkbd

* Fix Up ScreenOffInterval exceeded uint16_t

* Fix Up never waking up once screen off if in case of matrix are not dirty.

* Fix up screen off timer of helix

* Fix Up ScreenOffInterval exceeded uint16_t

* Fix Up never waking up once screen off if in case of matrix are not dirty

* Revert "Fix up screen off timer of helix"

This reverts commit f0efb82443a7dc34b75579359b0514e8bfa51100.

* Improve internal processing of process_record_kb()

* Use the return value of process_record_gfx()

* Fix a indent

Fix a indent
2018-11-12 12:19:29 -08:00
Michael Kaylan
b1e74aee43 Make sure that avr-gcc@7 gets linked into the path on MacOS. 2018-11-12 12:16:43 -08:00
Daniel Shields
2509039abf Add missing arm gcc compiler for openSUSE 15.0 and Tumbleweed. 2018-11-12 12:16:10 -08:00
Logan Bussell
b26ccf9a2f Add rules.mk to ortho_4x12/buswerks keymap (#4405)
* Added buswerks keymap

* cleaned up comments on buswerks keymap

* Added buswerks keymap readme.md

* Fixed spelling in buswerks readme.md

* Removed unnecessary includes, changed process_record_user to now use set_single_persistent_default_layer(), removed deprecated functions, and moved the audio ifdef block to config.h

* Changed buswerks ortho_4x12 layout to accommodate 'MIT' layout

* Updated README.md to reflect layout changes

* update buswerks keymap

* add buswerks tragicforce68 keymap
2018-11-12 12:04:12 -08:00
zvecr
b173c05cc2 Tidy 40percentclub boards (#4403)
* Remove unnecessary re-definitions for XXXXXXX and _______

* Update 6lit to use KC_NO in layout macros

* Update rules.mk to follow current template

* Remove use of deprecated function action_get_macro - unused and contents were from old template

* Remove use of deprecated function action_get_macro - all code was commented out

* Remove use of deprecated function action_get_macro - convert macro to use process_record_user

* Convert keymap to consistent use of _______

* fix use of old style header guards

* Swap KC_NO for XXXXXXX macro since the swap to the macro for KC_TRANS

* Resolve use of ?= in rules.mk files

* Remove duplication of rules.mk and config.h in gherkin mjt keymap

* Remove unnecessary #includes

* Align layout macros so foobar can use gherkin keymaps

* Align 6lit layout macros with foobar

* Remove ifndef QUANTUM_DIR from keymaps
2018-11-12 12:02:28 -08:00
zvecr
746005acba Keyboard: Initial 25 port (#4394)
* Initial 25 port

* Initial 25 port - fix info.json and hand_swap_config

* Review comments - fix layout macros, copyright comments, and duplicated use of layering macros
2018-11-12 12:00:45 -08:00
Paco
b49fd46eaa Add support for slackware distribution (linux_install.sh) (#4369)
* Add support for slackware distribution (linux_install.sh)

The required packages are not provided by the official repository. The packages
need to be installed from slackbuilds.org either manually or with the help of
third party tools like sbotools.

* Modify linux_install.sh according to code review

Modifies the Slackware section of the linux_install.sh script based on the
suggestions from the code review.

* Modify utils/linux_install.sh according to suggestions
2018-11-12 11:58:07 -08:00
Yan-Fa Li
6274980e61 Improve new_project script (#4373)
* Improve new_project script

 - use git user.name if available to replace the boilerplate name in
   files we generate
 - fix shellshock warnings

* Test for git repo

Suggestion by @skullydazed

* Fix shellshock warning

* Incorporate feedback from reviewers

 - thanks @vomindoraan
 - use a heredoc instead of echo for console
 - factor out common paths
2018-11-11 19:54:10 -08:00
yiancar
4083614023 I2C driver docs (#4298)
* I2C driver docs

- Added I2C driver docs.
- Changed arm master i2c driver to have a weak i2c_init as it is impossible to account for all possible port configuration in the STM32 world.

* Update docs/i2c_driver.md

Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>

* Update docs/i2c_driver.md

Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>

* Update docs/i2c_driver.md

Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>

* Update docs/i2c_driver.md

Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>

* GPIO release fix
2018-11-10 15:26:39 -05:00
gorbachev
3ba242cc3f Keymap for random key presses for the scrabblepad (#4356)
* Random key presses for scrabblepad

* Fix keymap code comments

* Remove unused methods as per code review
2018-11-10 08:22:36 -08:00
Logan Huskins
b3853e7d40 Keymap: Add default keymap from web for 1up60hse (#4351) 2018-11-10 08:21:24 -08:00
MechMerlin
d6184be67a IDOBO Keyboard Support (75Keys Aluminum Keyboard) (#4401)
* initial commit

* put my name everywhere

* get the switch matrix correct

* add a basic keymap

* use a better LAYOUT macro

* update readme

* Add QMK Configurator support
2018-11-09 12:15:37 -08:00
mcmadhatter
519ce723fb Added support for backlight on diverge3 , and added a UK iso layout (#4392)
* Added support for backlight , and a UK iso layout

Added support for backlight , and a UK iso layout. Now uses the SPLIT_KEYBOARD #define rather than relying on lets split

* Update keyboards/diverge3/keymaps/isoUK/keymap.c

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/isoUK/keymap.c

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Simplified the lower layer

Simplified the lower layer

* dir rename to snake case

dir rename to snake case

* changed dir case

changed dir case

* Update keyboards/diverge3/rules.mk

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/config.h

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/config.h

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/keymap.c

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/keymap.c

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/keymap.c

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/config.h

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/config.h

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/config.h

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* Update keyboards/diverge3/keymaps/iso_uk/config.h

Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>

* aligned and tidyied up

aligned and tidyied up
2018-11-09 11:16:08 -08:00
Jason Thigpen
6ae409dd55 Add my new ANSI layout dz60 setup (#4397)
* minor additions to alps64 and dz60

* Rename crd keymap to represent 2u lshift layout

* Add crd's new ANSI layout dz60 with preferred layers
2018-11-09 08:49:29 -08:00
dlgoodr
fa2183a64a Keymap: dlg's tada68 keymap (#4289)
* dlg's keymap

* fix list order

* remove cruft

* pragma

Co-Authored-By: dlgoodr <dlg@dsrw.org>

* turn on bootmagic, enable swapping ` and Esc while I figure out which compromise is least bad
2018-11-08 17:01:16 -08:00
zvecr
73883425a5 relocate 40percent.club boards to new parent folder (#4380)
* Initial move of 40percent.club boards to common parent folder.

* Refactor readme files to be consistent

* Refactor readme files to be consistent - fix make command examples.

* Refactor readme files to be consistent - align readme filenames.

* Refactor readme files to be consistent - fix repo url.

* Disable Community keymap builds as they are currently failing due to missing functionality

* Move more of 40percent.club boards to common parent folder.

* Refactor readme files to be consistent - align readme filenames.

* Refactor readme files to be consistent - fix make command examples.
2018-11-08 15:17:41 -08:00
Filip Sund
ef84bd9799 Keyboard: Add 30wer config and keymap (#4386)
* Preliminary 30wer firmware. Not tested on real board yet.

* Added a layer to default 30wer keymap.

* Wrote readme for 30wer.

* Added 30wer info.json.
2018-11-08 15:12:42 -08:00
Ryoichi KATO
5eb69ca224 Keyboard: fix ifdef for crkbd's default/keymap.c
undef SSD1306OLED should not kill entire process_record_user() function.
2018-11-08 06:45:09 -08:00
Abhinav
ba76fcfb8b Add Layout-b for GH60 satan (#4123)
* Add Layout-b for GH60 satan

* Update layout, toggle for colemak layout

* Rename layout, replace function with KC_GESC

* Update Layer order, Readme

* Remove unnecessary code

* Add backspace in extend layer
2018-11-07 21:39:29 -08:00
Konstantin Đorđević
945dd946ab Fix misspelled make option, format rules.mk files (#4382) 2018-11-07 09:29:57 -08:00
Frank Tackitt
94f58322ac Configurable Rainbow Swirl range (#4376)
* Configurable Rainbow Swirl range

This allows tweaking of the rainbow effect to
 get different effects on keyboards with varied
 LED layouts. We found the value 1950 works on
 the RGBKB.net Sol to get a cool striped effect
 across the keyboard.

* Document RGBLIGHT_RAINBOW_SWIRL_RANGE

* Better wording for the documentation
2018-11-07 08:25:18 -08:00
Danilo Vulicevic
a30dd2bb17 Add xd75/billypython keymap (#4381)
* Add xd75/billypython keymap

* Expand rules.mk

(cherry picked from commit 806fee94ae3a21b6ca7a34624101349b57d41b75)

* Expand billypython's rules.mk

* Remove unused stuff in whitefox/billypython
2018-11-06 17:04:02 -08:00
Danny
fc477a1ee7 Add Tragicforce 68 layout for split backspace and add configurator layouts (#4378) 2018-11-06 13:13:58 -08:00
MechMerlin
f01a80968b Port over Noxary 268.2 from Rosakiin's Noxary Firmware (#4354)
* port over 268.2 from Noxary Firmware

* rename files

* update readme

* put rozakiin's ame in more places

* add configurator support

* Update keyboards/noxary/268_2/n268_2.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* Update keyboards/noxary/268_2/keymaps/default/keymap.c

Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>

* rename 268_2 keyboard files
2018-11-06 12:35:08 -08:00
Konstantin Đorđević
3dec80b774 Improve wording, punctuation and capitalization in newbs_getting_started guide (#4342)
* Improve wording, punctuation and capitalization in newbs_getting_started guide

Also add some links

* Update example build command output

Co-Authored-By: vomindoraan <vomindoraan@gmail.com>

* Replace occurrences of "layout" with "keymap"

Co-Authored-By: MechMerlin <30334081+mechmerlin@users.noreply.github.com>

* Explicitly instruct users to open an MSYS2 MinGW 64-bit terminal

* MSYS2 Console → MSYS2 MinGW

* Replace thin spaces with regular spaces
2018-11-06 12:21:44 -08:00
MechMerlin
a5d22424f4 Commit my DZ60 keymap (#4375)
* default mechmerlin keymap initial commit

* fix up the keymap

* cleanup keymap

* add rgb sleep functionality

* add the beginning of a readme

* fix that compile error

* fixup formatting

* spruce up that readme

* add RGB lighting controls to _CL layer

* update readme

* set rgb underglow color

* update readme

* fix formatting
2018-11-06 12:04:25 -08:00
Danilo Vulicevic
29dd664589 Add whitefox/billypython keymap (#4374)
* Add keyboards/whitefox/keymaps/billypython

Cloned from vomindoraan/qmk_firmware

* Customize keymap for Linux
2018-11-06 12:03:33 -08:00
Takeshi ISHII
a91f439aec Helix-serial.c configuration improvement (#4370)
The new simple API can be selected.

Previous version, can select two way.
  * use old API (compatible with let's split serial.c)
  * use new API (multi-type transaction)

This version, can select three way.
  * use old API (compatible with let's split serial.c)
  * use new API (single-type transaction)
  * use new API (multi-type transaction)

There is no change in the code generated by this change.
2018-11-06 12:02:30 -08:00
TheOneTrueTrench
8f5ac39fb9 separated all my changes into separate files, working on generalizing my relativity macros. (#4368)
* Updating to my local changes.

* Added auto-complete for joins.

* Added lights to imply current state better
2018-11-06 12:01:18 -08:00
Monksoffunk
f8d8005835 Zinc : Update to latest serial.c #4278 (#4361)
* Add Zinc keyboard

* Fix photo

* Fix readme.md

* Fix RGB LED init of monks/keymap.c

* Fix default keymap and readme.jp

* Fix change DEFS of RGB ANIMATIONS to LED_ANIMATIONS

* Add EOL

* Use serial_config_simpleapi.h

* Fix comment char

* Fix error handling in split_scomm.c : mtei works

* Fix keymaps

* Remove DISABLE_LEADER definition

* Remove pro_micro.h

* Add 2 spaces after Hardware name

* Fix keymaps
  - remove audio codes
  - change LAYOUT to LAYOUT_ortho_4X12
  - change "persistent_default_layer_set" to core function

* Use the Community Layouts feature
  -  with some clean up

* Update latest serial.c #4278
2018-11-06 12:00:02 -08:00
Sean Dwyer
63e212c0b7 Add localized LED flash effect on keypress to Massdrop ALT (#4340) 2018-11-06 11:54:53 -08:00
Drashna Jaelre
388df5359b Fix Spacing issue in makefile that breaks Terminal config 2018-11-06 11:31:40 -05:00
tcatkins99
1b3ac77fec mapdev's Espectro layout (#4366)
* Add mapdev layout to espectro

* Add mapdev layout to espectro

* - Update MO

Co-Authored-By: tcatkins99 <tatkins@beitzanddaigh.com>
2018-11-06 08:06:50 -08:00
Drashna Jaelre
73e634482e command.h include was not set correctly 2018-11-06 00:40:30 -05:00
Drashna Jaelre
40313cfa3b Fix Terminal feature on ChibiOS 2018-11-06 00:40:02 -05:00
Drashna Jaelre
ec34b53864 Fixe line endings 2018-11-06 00:39:37 -05:00
Drashna Jaelre
4a033641df Update Features page to reflect all of the features linked in the sidebar/summary 2018-11-06 00:38:54 -05:00
Drashna Jaelre
26a201e687 fix example to reflect caveat 2018-11-06 00:38:44 -05:00
Drashna Jaelre
6e44f94f21 Add EEPROM_RESET keycode to core code (#4234)
* Add EEPROM Reset keycode

* Add keycode to docs

* Move EEPROM Reset code to the end of the enum

* Cleanup and naming change
2018-11-06 00:38:18 -05:00
Drashna Jaelre
f2101cfb6a Update to drashna keymaps (#4365)
* Consistency fixes and more eeprom defaults

* Handle setting Unicode mode on eeprom reset better

* Unicode EEPROM hack

* Re-enable permissive hold and ignore mod tap

* Set unicode input mode

* More unicode stuff

* more haaaaaacks

* Attempted RGB Cleanup

* Fix compiler issue

* Add GitLab CI config for personal compiling

* Add avr gcc version to GitLab CI script

* Add rgblight init to matrix init
2018-11-06 00:36:26 -05:00
Drashna Jaelre
6729265625 Clarify the Mod Tap defines in documentation (#4352)
* Fix up Mod Tap settings keys

* Change link names

* permissive hold wordsmith

Co-Authored-By: drashna <drashna@live.com>

* ignore mod tap wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* grammar fix

Co-Authored-By: drashna <drashna@live.com>

* wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* word smithing

Co-Authored-By: drashna <drashna@live.com>
2018-11-06 00:35:16 -05:00
Konstantin Đorđević
4636f0f623 Remove ALTG(kc) as it's misleading and is not actually AltGr (#4338)
* Remove ALTG(kc) as it's misleading and is not actually AltGr

* Add temporary alias for ALGR in keyboards/planck/keymaps/pevecyan/keymap.c
2018-11-06 00:34:54 -05:00
zvecr
5729380530 Keyboard: Initial 6lit port (#4355)
* Initial 6lit port

* Pull request review changes

* Switch to bootmagic lite
2018-11-05 19:01:13 -08:00
zvecr
a3bb8c05c9 Keyboard: Initial foobar port (#4367) 2018-11-05 19:00:54 -08:00
Danny
a49d0a1e83 Keyboard: Add Nyquist Rev 3 (#4287)
* Add Nyquist Rev 3

* Switch to split_common
2018-11-05 11:00:38 -08:00
Jeremy Herve
a95fc388fd Redox: move curly brackets one row down. (#4364)
In #4258, the 2 curly brackets were inadvertently moved one row up. This fixes that.
2018-11-05 06:04:52 -08:00
Konstantin Đorđević
d1d5f20078 Update whitefox/konstantin keymap (#4363)
* Use Magic+Esc for entering bootloader mode

* Expand rules.mk

* Improve FN_RCTL tap dance

* Avoid one-line if statements

* Add PROGMEM to keymaps definition

* td_fn_rctl_* → td_fn_rctrl_*

* Fix FN_RCTL tap dance bug when count is 4, 8, 12 etc.

* Add ACTION_TAP_DANCE_DOUBLE_MODS

* Rearrange/rename keycode defines

* Use RAL_RGU and RCT_RSF in keymaps

* Replace keymap ASCII art with box drawing characters

* Add FN_FNLK and use it

* Set Unicode input mode in eeconfig_init_user instead of matrix_init_user
2018-11-05 06:04:14 -08:00
Jarred Steenvoorden
f2fda1bd56 Keymap update Adding RGB underglow controls. (#4358)
* Update userspace with common config.h

* Add my dz60, satan and xd75 keyboard keymaps

* Fixing executable bits changed during last upstream merge

* Cleanup unnecessary files and defines

* Remove unnecessary defines from userspace config

* Add underglow controls to dz60 function layer

* Fixing merge conflicts

* Fixing exectable bits changed during merge
2018-11-05 00:05:48 -08:00
TurboMech
f28a4e39fc Fix Espectro build (#4353)
After further testing and feedback from others, the bottom row matrix was incorrect.  Also RGB number was incorrect (I was tired when building this, really shouldn't do that).
2018-11-04 16:00:33 -08:00
Kosuke Adachi
756d92c1a0 Keyboard: Update the serial.c of crkbd based on the helix-serial.c (#4349) 2018-11-04 10:46:26 -08:00
noroadsleft
e9fd42df71 converter/adb_usb Configurator support and adb_usb.h cleanup (#4348)
* converter/adb_usb: Configurator support

Note: LAYOUT_ext_ansi has a blank space between the Spacebar and the
Right Alt/Option key when loaded in the Configurator. This is
deliberate.

Stock Apple Extended Keyboards and AEK IIs send the scan code for Left
Command when either Command key is used. (This is noted already in the
readme.) That being the case, the Command keys cannot be assigned to
different functions. Whichever keycode is placed on Left Command will be
used for both Command keys.

* converter/adb_usb: adb_usb.h cleanup

- replaced KEYMAP_COMMON_H with ADB_USB_H
- white space changes for visual alignment in LAYOUT_ext_ansi macro
2018-11-04 09:32:42 -08:00
TurboMech
3946ea2141 Keyboard: adding Espectro (#4343)
* added Espectro

Added Espectro keyboard from MechKeys.ca

* Update keyboards/espectro/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/espectro.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/default/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/default/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/config.h

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/keymaps/mac/keymap.c

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/readme.md

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/readme.md

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/readme.md

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/readme.md

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* Update keyboards/espectro/rules.mk

Co-Authored-By: TurboMech <32869044+TurboMech@users.noreply.github.com>

* fixing Espectro pull request

* fixing macros in mac keymap
2018-11-04 07:39:58 -08:00
noroadsleft
b5d7bb6154 converter/usb_usb Refactor and Configurator support (#4345)
* converter/usb_usb: layout macro refactor

- KEYMAP_ALL renamed to LAYOUT_all
- KEYMAP renamed to LAYOUT_ansi
- KEYMAP_ISO renamed to LAYOUT_iso
- KEYMAP_JIS renamed to LAYOUT_jis

* converter/usb_usb: keymap refactor

- all keymaps now use #include QMK_KEYBOARD_H
- layout macro names updated
- removed deprecated TMK macro/function code

* Add info.json file for Configurator support
2018-11-03 23:57:42 -07:00
MechMerlin
60ed0b7c30 Keyboard: Port over the x268 Noxary Firmware (#4339)
* port over Rozakiin https://github.com/Rozakiin/Noxary_Firmware/tree/master/noxary_x268

* rename LAYOUT to LAYOUT_65_ansi default layout

* add configurator support

* add community layout support

* put Rozakiin's name everywhere

* update readme

* problems with the 65_ansi keymap to be diagnosed later
2018-11-03 15:09:32 -07:00
wanleg
80c04b2919 5x5bt (#4333)
* got bluetooth working

* get rid of description on bluetooth

* get rid of commented code used for testing

* Update config.h
2018-11-03 10:39:40 -07:00
BK
bdc72740cb Add distro support for sabayon (#4320)
* Add distro support for sabayon

Sabayon is a gentoo based distro with a different package manager. Does
not need any use flags or masking for the required packages.

* Add missing backslash

* Put echo string in quotes, remove extra newline

* Order gentoo/sabayon packages alphabetically.
2018-11-03 10:38:37 -07:00
Michael Pio
292a87ad04 Instructions on how to flash via STM32 bootloader (#4316)
* Add instructions on flashing ARM keyboards with default STM32 bootloader

* fixed typo; added note suggestion to step 4
2018-11-03 13:08:05 -04:00
Josh
0633eb0273 Increasing square wave buffer to max volume. (#4296)
* Increasing square wave buffer to max volume.

* Using range designated initializers for square waves; defining DAC_SAMPLE_MAX.
2018-11-03 12:22:57 -04:00
Elliot Powell
cd544e10a9 Keymap: Fixed poor layout of EP40 default keymap (#4330)
* add initial ep40 files

* fixed issues

* updated keymap

* Added media control

* Update keyboards/handwired/ep40/rules.mk

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* Fixed requested changes

* Fixed more requested changes

* Added delete key to layor 1

* Updated defualt keympap to have a Backspace mod del key

* removed place holder

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* removed obsolete code

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>
2018-11-02 16:41:26 -07:00
Abhinav
6dec3550e0 Niu keymap (#4273)
* Add modified planck layout

* Update rules
2018-11-02 14:48:44 -07:00
patrickmt
cec203ea80 USB Suspend for arm_atsam protocol
Rewrote USB state tracking for implementation of suspend state.
Updated suspend.c in entirety.
Main subtasks (generally hardware related) are now run prior to keyboard task.
2018-11-02 14:33:07 -07:00
patrickmt
563fe23e53 Fix CTRL/ALT keyboard does not wake computer from sleep
Fix for Massdrop CTRL and ALT keyboards not waking computer from sleep
2018-11-02 14:33:07 -07:00
Drashna Jaelre
f1529e74c4 Remove old declaration
Co-Authored-By: nooges <nooges@users.noreply.github.com>
2018-11-02 14:31:29 -07:00
Danny Nguyen
a5fa75fcb3 Move disable JTAG code from keyboard_init to keyboard_setup
This way all split keyboards are using that code instead of just those using split_common with the fix
2018-11-02 14:31:29 -07:00
Fredric Silberberg
5779ffb59a Set the executable bit for sh scripts under util. 2018-11-02 13:42:05 -04:00
Jack Humbert
34112dac36 Adds the Proton C base project (#4224)
* adds proton c base

* fixes custom matrix include

* adds readme.md

* usable pins, readme update
2018-11-02 12:44:57 -04:00
Jack Humbert
15f6278aa6 Add support for Atmega32A to pin declarations and universal matrix (#4015)
* add computed pins from mcu type

* update for atmega32a

* doc typo

* add atmega16 chips, link to references

* remove avr include from config

* exclude assembler in config.h includes

* consolodate options, add 646

* fix typo in pindef
2018-11-02 12:31:40 -04:00
ENDO Katsuhiro
5909d8aef1 Keyboard: Add MiniAxe (#4314)
* Add a new keyboard MiniAxe.

* Fix readme foramt.

Co-Authored-By: ka2hiro <ka2hiro@curlybracket.co.jp>

* Fix readme format.

Co-Authored-By: ka2hiro <ka2hiro@curlybracket.co.jp>

* Remove unnecessary keycode aliases.

* Remove unnecessary param.

Co-Authored-By: ka2hiro <ka2hiro@curlybracket.co.jp>
2018-11-01 22:55:29 -07:00
Alex Mayer
6eb7501eb0 Four Banger: Clean Up Indentation (#4322)
Make indentation consistent and match project standards
2018-11-01 22:21:28 -07:00
Michael Pio
7a22da9f05 Update rules.mk for Vinta (#4317)
changed dfu args to exit to application mode after flashing
2018-11-01 17:28:01 -07:00
Jason Yamada-Hanff
e08266129e Keymap: port atreus layout to levinson keyboard (#4285)
* Keymap: port atreus layout to levinson keyboard

* fix (mostly deprecation) issues after review
2018-11-01 17:26:43 -07:00
Jason Yamada-Hanff
153d1ecfcc Keymap: add jyh levinson keymaps (#4284)
* Keymap: add jyh levinson keymaps

remove tap dance number keys due to sluggish responses

simplify I2C configuration

reverse hyper and meh positions

reduce tapping term to allow fast typing with mod tap space keys

remove Alt hold on right space key. too many false touches.

add vim-style arrows (hjkl) on asdf; semicolon/quote on raise

correct documentation string for jyh levinson layout

add alternative levinson layout for jyh

more inspiration from atreus keyboard. keeps shift in the expected
places. reduces number of layers. puts numpad layout easily
accessible. places important keys on palms and meta keys on top
corners for xmonad.

correct layer switching in jyh2 levinson layout

I was getting stuck on the numpad layer because the numpad hold key
was remapped once the layer was activated. Bad idea. Minor other
refinements.

use curly bracket { instead of brace [ on raise layer

add RGB keys on adjust layer

bootmagic key is confusing. turn it off.

try out permissive hold setting to make mod-tap better

remove hold for right control on quote key. too many mistakes

turn off permissive hold. it was causing unexpected behavior

enable rgb underglow animations

add make it pink/blue key to levinson layout

prevent stuck modifiers in jyh2 levinson keymap

* fix up deprecated code after code review

* remove PREVENT_STUCK_MODIFIERS because it is default

Co-Authored-By: yamad <jyamada1@gmail.com>
2018-11-01 16:52:47 -07:00
Jason Thigpen
99740c670a Add some more useful features to my alps64 AEK layout (#4312)
* Add mod-tap to right mods and shift

* Add del to fn1 layer and add fn2 layer for media and pcb debug
2018-10-31 22:27:57 -07:00
Drashna Jaelre
f63c0b7844 Add pointer(?) to disable_JTAG to prevent compiler errors (#4310) 2018-10-31 15:14:59 -07:00
Danny
bd6d6d93f2 Update iris 3 (#4307)
* Fix incorrect LED pin assignment

* Strip out extra newline
2018-10-31 14:43:39 -07:00
That-Canadian
5630ad7604 Added JTAG disable code to the split_common (#4309)
Added JTAG disable code to the split_common slave code since the slave never calls keyboard_init(). In the future the slave should likely be modified to call keyboard_init() in some way, but without calling any of the unnecessary USB initialization code.
2018-10-31 14:42:15 -07:00
noroadsleft
75d657b525 Configurator info.json fix for XD87 2018-10-31 13:18:44 -07:00
Daniel Shields
d147cf5ece Add support for planck/rev6 to dshields keymap. (#4304) 2018-10-31 07:07:34 -07:00
noroadsleft
685cec47bb Configurator info.json fix for KBD19x
The info.json had a random backslash, which invalidated the JSON structure. This commit fixes that issue.
2018-10-30 17:47:24 -07:00
Elliot Powell
426c18b8c6 Keyboard: add ep40 qmk support (#4291)
* add initial ep40 files

* fixed issues

* updated keymap

* Added media control

* Update keyboards/handwired/ep40/rules.mk

Co-Authored-By: e11i0t23 <32494740+e11i0t23@users.noreply.github.com>

* Fixed requested changes

* Fixed more requested changes
2018-10-30 14:55:22 -07:00
Jason Thigpen
7fc9170ea7 Add crd's AEK layout for ALPS64 board (#4292) 2018-10-30 09:10:53 -07:00
Leah
7373d5b394 Update feature_bootmagic.md (#4290)
Fix typo
2018-10-30 08:37:08 -07:00
Jason Thigpen
31ff5f219d Move grave to top layer (caps is esc) (#4288) 2018-10-30 08:22:25 -07:00
mtei
9315172190 helix serial.c: Add the version of gcc used for adjustment to the comment. 2018-10-29 22:25:48 -07:00
Žan Pevec
a9c5e75437 Planck keyboard layout update (#4279)
* Personal dz60 keymap

* Replacing unused macros

Co-Authored-By: pevecyan <pevecyan@users.noreply.github.com>

* Fixes on keymap

* Planck keyboard layout update
2018-10-29 22:21:07 -07:00
Michael Pio
34f102de7d Keyboard: Vinta (#4283)
* added initial config files for vinta

* added readme

* changed product id and device ver

* fixed keymap illustration

* updated rules.mk to enable more commands

* removed a bunch of pre-code text; changed some grammar woopsies

* removed bootmagic lite

* updated developer's note

* updated readme.md
2018-10-29 22:00:40 -07:00
Daniel Shields
1fa6c1d818 Make linux_install.sh work with openSUSE Leap 15.0 (#4218) 2018-10-29 13:48:24 -07:00
Bramver
1e96346f28 Keymap: Added personal Contra layout. (#4235)
* Added personal Contra layout.

* Update keyboards/contra/keymaps/bramver/rules.mk

Co-Authored-By: BramVer <bramvereertbrugghen@live.be>

* Update keyboards/contra/keymaps/bramver/keymap.c

Co-Authored-By: BramVer <bramvereertbrugghen@live.be>

* Update keyboards/contra/keymaps/bramver/keymap.c

Co-Authored-By: BramVer <bramvereertbrugghen@live.be>

* Reformatted layers to use the layout format.
2018-10-29 10:45:17 -07:00
jshuf
6a629e5d0d Keyboard: add support for kbd19x (#4272)
* 60_ansi keymap for DZ60

* 60_ansi keymap for DZ60

Amend author

* 60_ansi keymap for DZ60

* Merge new phantom layout from dev branch

* Initial util/new_project files

* Progress checkpoint (compiles, but untested)

* Progress snapshot, still working on layout graphics

* Add layer images

* Tidy up formatting

* First cut at info.json for kbd19x default layout

* Add default keymap

* add all-keys layout

* clean up documentation

* Update keyboards/kbd19x/info.json

Co-Authored-By: jshuf <44121348+jshuf@users.noreply.github.com>

* Update keyboards/kbd19x/rules.mk

Co-Authored-By: jshuf <44121348+jshuf@users.noreply.github.com>

* Change layout name from default to ansi
2018-10-29 10:33:07 -07:00
patrickmt
cd23984afc Fix undefined reference to console_printf for CTRL and ALT keyboards
Fix undefined reference to `console_printf` for CTRL and ALT keyboards when enabling CONSOLE_ENABLE
2018-10-29 10:26:30 -07:00
R4WBIT
cd87a8a323 fixed broken linebreak in fedora part, and indentation in arch-part 2018-10-29 07:17:22 -07:00
mtei
d63fb6f716 helix serial.c: add some comment 2018-10-28 10:39:08 -07:00
Takeshi ISHII
8517f8a660 Helix serial.c re-adjust compiler depend value of delay (#4269)
* Helix serial.c add debug code

* re-adjust READ_WRITE_WIDTH_ADJUST values

* re-adjust READ_WRITE_START_ADJUST values

* re-adjust TID_SEND_ADJUST value

* Helix serial.c: remove debug code
2018-10-28 10:12:44 -07:00
Drashna Jaelre
c60a312ba9 Further unify old iris keymap 2018-10-28 08:44:58 -07:00
Drashna Jaelre
b9811fd7e7 Make old keymap super compatible 2018-10-28 08:44:58 -07:00
Drashna Jaelre
0f086e4889 Add Alternate DVORAK layout 2018-10-28 08:44:58 -07:00
Drashna Jaelre
214241853a Fix Bootmagic_lite function 2018-10-28 08:44:58 -07:00
Drashna Jaelre
9d27bb512f Fix userspace config.h 2018-10-28 08:44:58 -07:00
Drashna Jaelre
d29a61e9ce Add Bootmagic Lite for now 2018-10-28 08:44:58 -07:00
Drashna Jaelre
ba7a1e8976 Update old iris config 2018-10-28 08:44:58 -07:00
Drashna Jaelre
7b3ead0133 Remove 'return false' in macros since it's not needed
And it produces better handling overall.
2018-10-28 08:44:58 -07:00
Drashna Jaelre
4df74f6058 Minor updates to keymaps 2018-10-28 08:44:58 -07:00
Drashna Jaelre
796bce5ab2 Cleanup KC_MAKE command 2018-10-28 08:44:58 -07:00
Drashna Jaelre
6ed925103f Change user EEPROM defaults 2018-10-28 08:44:58 -07:00
Drashna Jaelre
76b5ac621d Update to Corne Keyboard (crkbd) keymap 2018-10-28 08:44:58 -07:00
Drashna Jaelre
2776b9ee90 Update readme for userspace 2018-10-28 08:44:58 -07:00
Drashna Jaelre
3d15038dd4 Make RGB init write to eeprom once 2018-10-28 08:44:58 -07:00
Guido Bartolucci
2abb29402a Keymap: Updates to guidoism layout (#4262)
* Initial commit of guidoism

* created movement layer

* movement layer works!

* removed unnecessary layers

* moved enter key up and recreated caps lock

* cleaned up

* num pad

* checkpoint

* checkpoint

* checkpoint

* Added num pad

* changed max power draw so i can use this on ipad

* move around quotes

* added tri layer for a homed numpad

* moved layout to new style

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* added keys to unicode conversion

* removed adjust layer since its not used anymore

* moved esc to seperate key

* tweaked python

* checkpoint

* new code put into function

* new code put into function

* cleanup

* cleanup

* new code works perfect

* removed old code

* removed old code

* generate_c.py now replaces code within keymap.c

* added function layer

* updated readme

* updated readme

* updated readme

* updates readme

* updates readme

* updates readme

* Tweaks based on CR

* Remove old guidoism

* Use MO(_FUNCTION) directly
2018-10-28 08:29:37 -07:00
Drashna Jaelre
4ffcacd920 Add Bootmagic Lite to QMK (#4215)
* Preliminary additon of bootmagic lite functionality

* Cleanup code

* Clean up bootmagic code

* Add documentation and clean up code

* Make 'lite' an option for BOOTMAGIC_ENABLE

* Update Templates with note about Bootmagic Lite option

* Detect Debounce variable

* Make sure debounce is a non-zero number

* Capitalize Bootmagic

* Capitalize bootmagic

* Update wording

* Re-add EEPROM reset, by popular demand

And add eeprom-less version to drashna userspace for his sanity

* Fix spacing

* Set BOOTMAGIC_ENABLE to use full/lite/off

And default yes to "full" for compatibility

* Add Bootmagic lite info to templates

* Remove text from makefiles

* Cleanup of makefile

* mention yes in bootmagic docs

* Wordsmitthing the docs

* Fix white spaces

* Readd default bootmagic setting, because it's necessary
2018-10-27 14:53:50 -04:00
akrob
5be438f03d Keymap: update keymap transmogrified (#4241)
* layer locked breathing, layer changed brighter leds

* move config for tapping term into config.h

* Respect LED off even with layer indicators, add readme and update config
to new standard

* update Readme with note about both sides of board being required to flash
2018-10-27 09:41:17 -07:00
Mattia Dal Ben
9ea0103520 Keyboard: Redox keymaps refactoring (#4258)
* Reconfigured keymap macro to resemble physical layout

* Updated italian keymap

* Added RGB controls

* Updated default keymap

* Updated german layout

* Updated jeherve keymap

* Changed include guards to pragmas

* Changed include guards to pragmas in keymaps

* Update readme

* Fixed unused include

* Fixed indentation
2018-10-27 09:40:28 -07:00
Žan Pevec
569545a78f Keymap: Personal dz60 keymap (#4251)
* Personal dz60 keymap

* Replacing unused macros

Co-Authored-By: pevecyan <pevecyan@users.noreply.github.com>

* Fixes on keymap
2018-10-27 08:30:47 -07:00
Jasper Lievisse Adriaanse
2da8522154 Keymap: add my planck rev 5 layout (#4085) 2018-10-27 08:29:34 -07:00
Mattia Dal Ben
6916c0d728 Redox Wireless configurator support (#4256) 2018-10-27 08:23:12 -07:00
Monksoffunk
23cd9f4dee Keyboard: Add new keyboard Zinc (#4245)
* Add Zinc keyboard

* Fix photo

* Fix readme.md

* Fix RGB LED init of monks/keymap.c

* Fix default keymap and readme.jp

* Fix change DEFS of RGB ANIMATIONS to LED_ANIMATIONS

* Add EOL

* Use serial_config_simpleapi.h

* Fix comment char

* Fix error handling in split_scomm.c : mtei works

* Fix keymaps

* Remove DISABLE_LEADER definition

* Remove pro_micro.h

* Add 2 spaces after Hardware name

* Fix keymaps
  - remove audio codes
  - change LAYOUT to LAYOUT_ortho_4X12
  - change "persistent_default_layer_set" to core function

* Use the Community Layouts feature
  -  with some clean up
2018-10-26 21:23:49 -07:00
Drashna Jaelre
73e92ef0c0 Docs: Add references to One Shot functions, and clean up formatting (#4189)
* Docs: Add references to One Shot functions, and clean up formatting

* Update PR based on @mechmerlin's recommendations
2018-10-27 00:22:47 -04:00
Drashna Jaelre
d210ac7a3e Add caveat for basic keycodes in Tap Dance docs 2018-10-27 00:22:29 -04:00
Drashna Jaelre
f16b5cc92b Add delayed flashing option for DFU Util (#4225)
* Add delayed flashing option for DFU Util

* Use a loop to make code cleaner

* Make delay configurable but default to 10

* Better formatting of check
2018-10-27 00:21:43 -04:00
MechMerlin
5632552558 RGB Support for Panc60 (#4253)
* add RGB underglow support

* enable RGB underglow and backlighting
2018-10-26 21:20:00 -07:00
Drashna Jaelre
d3a6296199 Add key caveat to combos doc 2018-10-27 00:18:22 -04:00
Drashna Jaelre
b1bf0879ad Fix mouse_send() on chibiOS so it won't lock up the firmware 2018-10-27 00:17:25 -04:00
MechMerlin
b11a776cef Keymap: Update userspace (I want my Hacktoberfest shirt!) (#4252)
* use ctl_t

* spruce up readme and add a changelog

* add comment about using CTL_T

* add more description

* use RSFT_T so I can still have a right shift key even on the _AL layer

* add config.h for rgblight_sleep

* update readme to talk about rgblight_sleep

* update changelog with new changes
2018-10-26 17:14:50 -07:00
yiancar
6fa3cfbf53 Keyboard: Add HS60 V2 (#4250)
* HS60 V2

- Created V1 and V2 folders
- Added V2 ARM configuration

* Problems in paradise

* More touble

* We got it now!
2018-10-26 16:14:29 -07:00
Jack Humbert
24b3556e84 add better example 2018-10-26 14:24:13 -07:00
Jack Humbert
85688e5b52 add support for encoders to core 2018-10-26 14:24:13 -07:00
gromwalh
e22c399245 Ergodox Infinity: Swapped Row and Column in comments (#4247)
When comparing the pins in this file to the Ergodox Infinity schematic, it seems that the first section is describing the rows and the second section is describing the columns.
2018-10-26 14:12:40 -07:00
noroadsleft
cc87445481 JD45: readme update
Updated the links to the Docs.
2018-10-26 07:03:46 -07:00
noroadsleft
ca02863b56 JD45: mjt6u keymap refactor
- config.h
  - updated to remove redundancies
  - add #pragma once
- keymap.c
  - updated to use macro LAYOUT
  - redundant KC_TRNS and KC_NO definitions removed
2018-10-26 07:03:46 -07:00
noroadsleft
db8454ca99 JD45: mjt keymap refactor
Updated parallel to LAYOUT_kc macro rename.
2018-10-26 07:03:46 -07:00
noroadsleft
357c1bb657 JD45: justin keymap refactor
Updated parallel to LAYOUT_kc macro rename.
2018-10-26 07:03:46 -07:00
noroadsleft
8cf15bffa0 JD45: jeebak keymap refactor
- config.h deleted (file was redundant)
  - layout macro LAYOUT_JD45 removed (identical to new macro LAYOUT)
  - ../../config.h include line redundant due to past changes to build script
- keymap.c
  - updated to use macro LAYOUT
  - redundant KC_TRNS and KC_NO definitions removed
2018-10-26 07:03:46 -07:00
noroadsleft
340dd09758 JD45: default keymap refactor
Default keymap refactored to use new macro LAYOUT (from LAYOUT_kc).
2018-10-26 07:03:46 -07:00
noroadsleft
899731679d JD45: blakedietz keymap refactor
- config.h
  - updated to more-preferred format
  - layout macro LAYOUT_JD45 removed (identical to new macro LAYOUT)
- keymap.c
  - updated to use macro LAYOUT
  - redundant KC_TRNS and KC_NO definitions removed
2018-10-26 07:03:46 -07:00
noroadsleft
39addf8bc9 JD45: layout macro refactor
The macro that was LAYOUT prepended KC_ to all the keycode arguments, preventing the Configurator from working with the JD45. This macro is now LAYOUT_kc.

The macro LAYOUT is a more-standard macro.

Switch identifiers have changed throughout. Format is k<row><column>.
2018-10-26 07:03:46 -07:00
Phillip Tennen
fa1ac4d724 Fix incorrect doctoring in feature.backlight.md (#4244)
I'm guessing someone deleted a row at some point in the past, but I didn't blame it.
2018-10-26 06:59:41 -07:00
lbibass
fc1e22ea94 Keymap: Mechmini layout (#4232)
* Added my Mechmini2 layout to qmk.

* Added more info to the readme.

* Made changes.

* Update keyboards/mechmini/v2/keymaps/lbibass_625_space/keymap.c

Co-Authored-By: lbibass <ewdries02@gmail.com>

* Update keyboards/mechmini/v2/keymaps/lbibass_split_space/keymap.c

Co-Authored-By: lbibass <ewdries02@gmail.com>
2018-10-25 13:10:45 -07:00
SpacebarRacecar
3c95de3c69 Adding a readme to my userspace (#4239)
* added userspace readme

* small fix to userspace readme

* another fix to userspace readme

* changed and improved userspace readme

* Update readme.md

* Update readme.md

* changes to readme again

* readme again
2018-10-25 13:08:25 -07:00
194h
ffb2557a3a Keymap: Updated my(194h) keymap to make it more clean and useful (#4236)
* Added my(194h) atreus62 keymap

* Fixed what noroadsleft remarked in my pull request, hopefully got it all.

* Followed drashna's suggestion.

* Removed unused functionality from my keymap, added tap dance æøå and changed Layer 1 and Layer 2

* Removed unused functionality from my keymap, added tap dance æøå and changed Layer 1 and Layer 2
2018-10-25 10:04:48 -07:00
Drashna Jaelre
a5b10e5da2 Fix syntax for windows 2018-10-24 15:03:32 -07:00
MechMerlin
bef554d18b Bug: Users had to be in the /util directory to run the script (#4228) 2018-10-24 08:57:08 -07:00
Callum Oakley
9ed0c2d57b Keymap update (#4223)
* change window focus shortcuts

* hangul

* macos goodness

* re-arrange tab keys

* remove tab switching keys

* left hand func

* glorious macro pad

* workspace rotation keys

* tabbing hotkeys

* left hand tab change keys

* SEND_STRING("!") on KC_EXLM

* use SEND_STRING for all shifted symbols

* SEND_STRING even for non shifted symbols so they play nicely with the shifted ones
2018-10-23 16:28:40 -07:00
Ajax
b0a021c07a Made a userspace that allows you to use your keyboard as an order of operations based calculator (#2864)
* Made DZ60 layout with calculator

* Cleaned up and commented, preparing to fix bug with negative in front of open parenthesis as first character

* Fixed bug where negative sign infront of parenthesis as first character was parsed incorrectly

* Made a better solution for the bug from the previous commit

* Modularized and added a userfile so that this code can be used on various keyboards, found in doogle999

* Removed commented code from keymap

* Made the layer that is used for calculations a define so that it can be changed per keyboard

* Made the readme

* Made the readme in the correct place

* Revert "Made the readme in the correct place"

This reverts commit 7f8b59ed9e59c77401a48be3a7ac1e8fd8e84e32.

* Manually synced with qmk upstream

* Stopped repeat, made keys print character that they are defined as rather than what the keyboard wants them to do

* Added support for numpad, might make all keycodes custom so that there is no need to change doogle999.c if you want to change the keycode that is associated with a function, also made numpad automatically activating an option

* Fixed some bugs with backspacing, updated the readme

* Fixed some bugs with numlock turning on at the wrong times when a shift key was down

* Made the return to layer work automatically instead of just forcing it to layer 0

* fixes and style changes, 20% decreased binary size

* Fixed some bugs with double printing and compilation errors on my side

* Fixed bug with exceeding the buffer size

* Removed changes that added const-ness

* Made changes so that backspace does not repeat to remove backspace bugs, still some bugs with recalculating without having typed anything

* Fixed obo error with calc main loop

* Made includes more accurate in keymap for dz60

* Moved flags to user makefile
2018-10-23 12:44:48 -07:00
Konstantin Đorđević
c8267d9fea Update whitefox/konstantin keymap (#4220)
* Change brace style to QMK OTBS

* Change Unicode input mode to UC_WINC

* Align constant values in config.h
2018-10-23 12:34:06 -07:00
mike fettis
6539426f61 keymap for 1upkeyboards/sweet16 multilayers rgb lighting and tapdance (#4208)
* keymap for 1upkeyboards/sweet16 multilayers rgb lighting and tapdance

* Update config.h

typo

* cleanup

Co-Authored-By: ridingintraffic <michael.j.fettis@gmail.com>

* layers are using layout macro
replaced the include guard (the ifndef, define, and endif at the end) with just #pragma once
changed undergrow to use layer-change-code
emoji macros are using send_hex_code_string
cleaned up the includes

* tap() removed
maxtrix_scan_user updated
conf.h cleanup
2018-10-23 12:00:54 -07:00
Peter Roe
03d16db942 Keyboard: Ported ADB-to-USB converter from TMK to QMK (#3931)
* Ported ADB-to-USB converter from TMK to QMK

* Updated pull request with reviewer suggestions.

* Removed precompiled header file type (gch) from gitignore per reviewer request

* Update keyboards/converter/adb_usb/matrix.c

Changed instances of matrix_init_quantum to matrix_scan_quantum.

* Update keyboards/converter/adb_usb/matrix.c

Co-Authored-By: 13-bit <pete@13bit.me>
2018-10-23 11:52:57 -07:00
Scott Gorsuch
572c316e7d Keymap: Fix missing 4 key (#4219) 2018-10-23 09:29:35 -07:00
Drashna Jaelre
cb1e45b4ef Include quantum.h to fix travis CI errors 2018-10-22 21:35:35 -04:00
Drashna Jaelre
95619bdaca Fix file location for mmacdougal's keymap 2018-10-22 21:35:19 -04:00
SpacebarRacecar
8421a89820 added ASCII representation to dz60 iso-split layout and adjusted it so that it's consistent with the other layouts. (#4207) 2018-10-22 14:20:31 -07:00
noroadsleft
5dc41446aa Keyboard: Chimera LS refactor and Configurator support (#3715)
* Matrix/keymap refactor

- Deleted `KC_KEYMAP` macro
- Renamed `KEYMAP` macro to `LAYOUT_ortho_4x12`
- Default keymap updated to current QMK standards
  - #include QMK_KEYBOARD_H
  - Refactored from `KC_KEYMAP` to `LAYOUT_ortho_4x12` macro
  - `action_get_macro()` deprecated in favor of `process_record_user()`

`rules.mk` *not* updated to include `LAYOUTS = ortho_4x12` because I have no idea if and how that works on a split and/or wireless keyboard.

* readme cleanup: markdown formatting

* Add Configurator support

* added support for ortho_4x12 layout

* Macro and readme updates

Macros updated to use `KC_NO` directly.

Readme updates and cleanup.
2018-10-22 14:18:47 -07:00
fougner
e26a7b0ed8 Keyboard: initial support for XD87 (#4182)
* Keyboard: initial support for XD87

* Add row/col pin configuration for XD87 PCB

* Add default ISO layout

* Fix incorrect KC in default_tkl_iso

The KC_NUBS is duplicated in the TKL ISO layout.
Compare with the fullsize ISO which has a KC_NUHS
in the corresponding place.

* Add support for community layouts

* Add TKL ANSI layout

* Enable TKL ISO/ANSI community layout

* Fix LAYOUT_all

* Configure backlighting for XD87

* Various documentation changes
2018-10-22 14:01:45 -07:00
Colin T.A. Gray
418a886ae4 adds 'dfu-util' to macos_install.sh 2018-10-22 13:32:47 -07:00
Drashna Jaelre
552b1cccec Update the installation script PR (#4167)
* Update docs to use qmk_install

* Update Vagrantfile to use qmk_install
2018-10-22 13:24:43 -07:00
skullY
11c4c71131 Fixup the WSL install 2018-10-22 13:24:43 -07:00
skullY
79d495f51d Add opensuse packages provided by @isolatedvirus 2018-10-22 13:24:43 -07:00
skullY
ca56c2145f Fold install_dependencies.sh into linux_install.sh and freebsd_install.sh 2018-10-22 13:24:43 -07:00
SpacebarRacecar
704a2e8d3c Keymap: Updates to personal userspace and keymaps (#4206)
* - updated personal userspace
- updated fc660c, niu mini and planck keymaps
- added prime_o keymap

* Rename README.md to readme.md
2018-10-22 13:23:22 -07:00
SpacebarRacecar
e745144836 Keyboard: Prime_O layout/matrix fix (#4205) 2018-10-22 13:22:20 -07:00
noroadsleft
352bef99a9 Keyboard: JJ40 Refactor and Configurator support (#3197)
* Deleted LAYOUTS = planck_grid from rules.mk

* Refactor

* Configurator support

* Fixed offset layout matrix macro

* Readded LAYOUT_kc_ortho_4x12 matrix alias

* Refactor: rename LAYOUT_offset_right macro as LAYOUT_planck_1x2uR
2018-10-22 12:58:23 -07:00
markspanbroek
6d7745a110 Keyboard: Port of TMK XT USB Converter (#3619)
* Converter: add XT USB converter from TMK

* Converter: port TMK code for USB converter to QMK

* Apply requested changes after code review by @drashna

- use "pragma once" instead of include guards
- use LAYOUT instead of KEYMAP
- allow customisation with matrix_init_user() and matrix_scan_user()
- set BOOTLOADER instead of BOOTLOADER_SIZE
- Add XT_ENABLE to OPT_DEFS

* Remove unnecessary lines
2018-10-22 12:37:03 -07:00
noroadsleft
bf57587e62 Keyboard: Zlant refactor and Configurator support (#3678)
* Matrix/keymap refactor

White space and readability updates

* Configurator support

Added info.json file.

* Readme update

Markdown formatting

* Add support for ortho_4x12 keymaps

* Added planck_mit layout support

* Disable SWAP_HANDS_ENABLE for zlant:wanleg keymap

* Disable BACKLIGHT_ENABLE for zlant:bakingpy keymap
2018-10-22 12:35:09 -07:00
Levi Olson
47dcda1087 Diverge3 - Workman Layout (#3682)
* Diverge3: Workman Programmers Layout

* Diverge3: Comment Removal

* Diverge3: Image Links Fixed

* Diverge3: Images added

* Diverge3: Images cleaned up

* Diverge3: Images cleaned up

* Diverge3: Removing Images

* Diverge3: Improving readme.md

* Diverge3: Improving readme.md

* Diverge3: Add supporting Comments

* Diverge3: Update readme

* Diverge3: Update readme

* Diverge3: Updates per comments in PR

* Diverge3: Updates per comments in PR

* Diverge3: Updates per comments in PR

* Diverge3: Updates per comments in PR

* Diverge3: Updates per comments in PR

* Diverge3: Updates per comments in PR
2018-10-22 12:04:28 -07:00
Michael MacDougall
a2b650df47 Keymap: Add mmacdougall keymap (#3852)
* Add mmacdougall keymap

* Make requested changes
2018-10-22 11:59:40 -07:00
Drashna Jaelre
9374c0c9db Add caveats for shifted characters (#4192)
* Add caveats for shifted characters

And some formatting and grammar corrections.

Closes #1037

* Fix spelling of remote

* Fix spelling error

* Remote not Remove

* Remote not Remove
2018-10-22 14:57:15 -04:00
Drashna Jaelre
ab3fbfdb3b Update hardware config warnings to be more accurate
Closes #3565
2018-10-22 14:56:25 -04:00
Drashna Jaelre
7e99d869de Remove all of the deprecated RGB defines
Fixes #3641
2018-10-22 14:55:57 -04:00
Drashna Jaelre
00b6f14821 Replace outdated RGB/Audio information 2018-10-22 14:55:05 -04:00
ROMUSKING
5694e7b6a6 Keymap: add new keymap (#4127)
* an attempt at own layout

* typematrixed dvorak

* columns shifted

columns shifted out, second pinky column moved to the inside.

* Update users/romus/romus.h

* code cleanup

Changes requested by Drashna + Tap Dance enabled

* Fixed EOF

Fixed the no newline at the end of file alert.

* rgblight fight eeprom writes

* rgb code simplification

* Update users/romus/README.md

* Update quantum/keymap_extras/keymap_slovenian.h
2018-10-22 11:54:31 -07:00
Fernando Pazos Estévez
cf19cb0dbe Add Bluepill (stm32f103) handwired keyboard (#4126)
* Main folder

Main folder with some changes like the base layout and matrix for uploading in a future to the qmk repositorie

* First Commit

Firsts non previously commited changes:
-Changed to keyboards/handwired
-Basic credit to Xydane
-70% Layout

* Modified file structure for several keyboards

As I don't want to create several folders and overcrowd the main folders I made a few modifications to being able of configure several keyboards as revisions of the main keyboard.
Added a second variant.
Compiling tests went right but I haven't tried it on the controller.

* Starting leds

* Started dual color leds PWM functions and configs

I started to create the PWM functions and configs based on internet examples, it doesn't compile yet

* Backtraced a bit to establish and try debug before continuing the pwm

Just this, algo some doc as a new pinout image, space cadet modification to try if it works and little more

* Deleted unuseful stuff

After trying the reestructure to being compatible with several keyboards and that it worked I deleted the other keyboard.
Added space cadet shift to ISO.
Finally I couldn't debug everything and I'm getting quite frustrated to continue much more than just adding pwm leds

* Changed again Iso fix for Space Cadet

* Renamed keyboard, future pull

I just renamed the keyboard and made some simplifying changes in order to make a pull request sometime soon.

I'm too frustrated, tired and knowledge limited to achive using the PWM for leds, I didn't even get to use the debug mode...

I intend to end basic led color change using layers (if I can), document everything properly and make a pull request so other users can continue/use this project.

* Writed Readme.md file

I also corrected a previous compilation problem and ordered a bit the keymaps

* Corrected readme

* Try to add layer activated light

* Revert "Try to add layer activated light"

This reverts commit 205af820d845dab08988f329b9f062f558060220.

* Progress to fork

Coming back to work, upcoming pull

* Linked image

Corrected readme

* Some cleanning

Added images to readme, som cleaning, burning after commit.

* Almost finished (working)

Finally

* Finished bluepill firmware

Just finished and tried layer dependant led colors. Going for merge

* Deleted innecesary stuff and trailing spaces

Just as commit title said.

* Coding conventions

Just modified some files to respect coding conventions

* Deleted XXXXXX define

Checking some other PR seen this improvement

* Changes suggested on PR

Firs doing the easy changes

* More changes for the PR

-I also deleted one unused function for led toggling on matrix.c (Now it uses layer dependent baklight, algo on of on start)
-Deleted commented function on keymaps.

Right now only needs testing and all pragma replaces.

* Almost every pragma change on PR

That's almost finished, only waiting for reply due to compiling errors

* Revert "Almost every pragma change on PR"

This reverts commit 07f23aa862b370cdf0ae37d6f2130c9e9856f491.

* Revert last commit

I moddified by mistake a file from another keyboard

* Solved last pragma

Compiles fine.
Now I only need to test it, I say you if it works to include it in the main repository.
2018-10-22 11:45:45 -07:00
Mattia Dal Ben
387bd555c7 Keyboard: Add Redox Wireless keyboard (#4180)
* Added folder and default keymap

* Added italian keymap

* Fixed readme.md

* Added layer display through RGB led

* Added layer status display to italian keymap

* Fixed indentation

* Removed obsolete comments

* Updated instructions

* Fixed keymaps readmes and removed RGB controls on ADJUST layer

* Removed redundant KC_* definitions

* Fixed readme file

* Changed include guards to pragma once

* Removed unused audio functions

* Fixed rules.mk file

* Added spaces in readme to fix rendering

* Reconfigured keymap macro to resemble physical layout

* Updated default keymap

* Updated italian keymap

* Removed unused persistent_default_layer_set function
2018-10-22 11:41:57 -07:00
Naoki Katahira
f69333a0e5 Lily58 default keymap fix / add keymap (#4190)
* keymap fix/add

* keymap fix

* file fix

* typo fix
2018-10-22 11:39:26 -07:00
Takeshi ISHII
4665e4ffff Keyboard: Helix serial.c, split_scom.c bug fix and update (#4191)
* helix/serial.c add support PD1,PD3,PE6 and configuration simplify

* Add comment about ATmega32U4 I2C

* Add compile time check for ATmega32U4 I2C

* change TAB code to 8 SPACE code

* Helix serial.c PORTD,PD0 test. OK

  OK PD0
  -  PD1
  OK PD2
  -  PD3
  -  PE6

* Helix serial.c PORTD,PD1 test. OK

   OK PD0
   OK PD1
   OK PD2
   -  PD3
   -  PE6

* Helix serial.c PORTD,PD3 test. OK

   OK PD0
   OK PD1
   OK PD2
   OK PD3
   -  PE6

* Helix serial.c PORTE,PD6 test. OK

   OK PD0
   OK PD1
   OK PD2
   OK PD3
   OK PE6

* Helix serial.c: PD0,PD1,PD3,PE6 all test end

* Helix serial.c: rename SOFT_SERIAL_PORT to SOFT_SERIAL_PIN

* Helix serial.c add debug code

* Helix serial.c: add transaction ID range check

* Helix serial.c debug code update

* Helix serial.c debug code update

* Helix serial.c: Strict checking of the value of tid.

* adjust the delay of serial.c

* Helix serial.c: remove debug code

* remove EXTRAFLAGS += -DCONSOLE_ENABLE from five_rows/rules.mk

tmk_core/common.mk has
 >ifeq ($(strip $(CONSOLE_ENABLE)), yes)
 >   TMK_COMMON_DEFS += -DCONSOLE_ENABLE

* Fix error handling in split_scomm.c

* add some comment to serial.c

* add some comment about SELECT_SOFT_SERIAL_SPEED
2018-10-22 11:38:05 -07:00
Dylan Khor
fbc6bd8266 Minor updates to build tools docs revised (#4195)
* add initial khord iris keymap

* correct path of windows qmk install script
2018-10-22 11:29:04 -07:00
Colin T.A. Gray
91bfbb6256 Updates docs - planck 6 and macos instructions (#4201)
* add note about how to install rev6 (dfu-util)

* include instructions on installing dfu-util on macOS
2018-10-22 11:19:51 -07:00
Yan-Fa Li
dedbc37196 Doesn't need a 50ms debounce
Set it to default. I have no idea what I was thinking.
2018-10-22 09:06:18 -07:00
a-chol
8e3330bbf6 Keyboard: bminiex : Working backlight (#4171)
* bminiex : Working backlight

* bminiex keyboard with fixes

* bminiex keyboard more fixes
2018-10-21 09:20:24 -07:00
Vyolle
877c285ec8 Keymap: Renabled EXTRAKEYS in layout (#4174)
* Renabled EXTRAKEYS.

* Update keyboards/iris/keymaps/vyolle_steno/rules.mk

Co-Authored-By: Vyolle <dchamberlin.ax@gmail.com>
2018-10-21 09:15:48 -07:00
Dylan Khor
4fffef8853 Keymap: add initial khord iris keymap (#4188) 2018-10-21 09:05:45 -07:00
Drashna Jaelre
ea17e363a6 Add instructions for zadig when bootloader device is unknown 2018-10-20 11:48:10 -04:00
Alex Mayer
26d2ef2ad1 Ergodox EZ: Use Correct Const For LED Color 2018-10-20 07:41:48 -07:00
Campbell Barton
f775168c4f Keymap: qwerty_code_friendly: update readme, comments (#4178) 2018-10-19 16:47:59 -07:00
Drashna Jaelre
6c086f2b6d Revert changes to chibiOS-contrib (#4176)
* Revert "Keymap: qwerty_code_friendly: use numpad layout for f-keys (#4170)"

This reverts commit efc88a0b16.

* Fix keymap
2018-10-19 12:42:28 -07:00
mcarni
0d1e0a0d97 added an ISO split spacebar layout, keymap and readme files (#4165) 2018-10-19 12:05:34 -07:00
wanleg
6f6d28fa8d Big Switch and 5x5 edits (#4168)
* 4x4 - pro micro version

* pro-micro setup on 4x4

* tap dance LCTL/RESET key

* remove test file

* more research

* revert a couple un-intended edits

* opt_defs version of adding custom rules.mk variables

* cleanup

* cleanup

* cleanup

* cleanup

* layout edits

* layout edits

* keymap edit

* numpad layout change

* got tap dance layer-switch working

* keymap changes

* temporary revert

* restore previous settings

* misc fixes

* layer order change

* fix layout matrix

* Update tapdances.c

* playing around with triple tap dance

* sync with upstream

* quick edit

* tapdance cleanup

* mod tap interrupt

* tapping term edit

* tapping term adjust

* 5x5 board edits

* set gherkin tapping term

* big switch tap dance edit

* tapping term refinements

* 5x10 layout setup

* add audio for bigswitch

* keymap change

* keymap change & created testing board

* sound setup for big_switch

* more big switch size testing

* bigswitch testing finished

* final touch-ups
2018-10-19 11:01:40 -07:00
Andy
9ca73a9edc Keymap: Add dz60 iso-de layout (#4173) 2018-10-19 10:57:44 -07:00
Kosuke Adachi
78b48371aa Keyboard: Update logo and commonize it (#4151)
* Update logo and commonize it

* Move the glcdfont.c to the lib and add it to the SRC values of the rules.mk in the keymap folders

* Add static
2018-10-19 09:12:55 -07:00
Campbell Barton
efc88a0b16 Keymap: qwerty_code_friendly: use numpad layout for f-keys (#4170) 2018-10-19 08:43:55 -07:00
Konstantin Đorđević
6c6897f778 Keymap: Update whitefox/konstantin keymap (#4169)
* td_fn_ctrl_* → td_fn_rctl_*

* Swap Fn and RCtrl

* Change key combination for Command feature

* Replace register/unregister_code call with tap_code

* Add virtual desktop controls to keymap

* Add/close virtual desktop on Fn+GUI tap dance
2018-10-19 08:42:01 -07:00
Trigotometry
ae31eb564a Keymap: Trigotometry's Preonic (#4158)
* adding my keymap

* updated pull request comments from dashna, including redundancies and DVORAK entirely

* changed over visual representation to use 'LAYOUT_preonic_grid()'

* added a ReadMe and commented out AUDIO_ENABLED related stuff in keymap.c until I can align with current QMK standards

* Update readme.md

* readme corrections and adjustments
2018-10-19 08:40:46 -07:00
Drashna Jaelre
7222e3691b Fix Unicode EEPROM handling so it is consistent. (#4066)
* Fix Unicode EEPROM handling so it's consistant

* Remove changes to my userspace

* Optimize variables used

* fix functions

* additional cleanup

* Add False Flag

* rename function
2018-10-19 00:35:15 -04:00
Drashna Jaelre
7e1b57add4 Some cleanup of the Useful Functions docs (#4064)
* Add examples for tri layers

* Clean up and spelling fixes
2018-10-19 00:34:40 -04:00
Takuya Urakawa
f4094930a3 stm32f1xx EEPROM emulation (#3914)
* * Add stm32f1xx EEPROM emulation
* Fix eeprom update compare bug

Squashed commit of the following:

commit b8f248ae08cec0cd81ecbb8854d9b39221d4d573
Author: hsgw <urkwtky@gmail.com>
Date:   Sat Sep 15 19:13:48 2018 +0900

    fix EEPROM_update wrong compare

commit d4ed4e6ea864e967a3e17f7edee4b0c3b4a25541
Author: hsgw <urkwtky@gmail.com>
Date:   Sat Sep 15 17:43:47 2018 +0900

    eeprom fix initialization define

commit b61aa7c04d70c64df3416d63e5da08b73b6053af
Author: hsgw <urkwtky@gmail.com>
Date:   Sat Sep 15 16:33:40 2018 +0900

    maybe working

* Fix FLASH_KEY defines
2018-10-19 00:33:23 -04:00
194h
8efe8b498d Keymap: Added 194h atreus62 keymap (#4164)
* Added my(194h) atreus62 keymap

* Fixed what noroadsleft remarked in my pull request, hopefully got it all.

* Followed drashna's suggestion.
2018-10-18 17:09:06 -07:00
lexworth
fc1c692f71 Keymap: Adding my Minivan layout (#4162)
* adding my keymap

* adding my Minivan keymap

* deleted old incomplete keymap

* added link to layout image

* adding my minivan keymap
2018-10-18 15:36:30 -07:00
noroadsleft
480651cf9d Docs: Adding QMK Git Conventions doc; formatting cleanup on Learning Resources doc (#3902)
* Docs: newbs_learn_more_resources.md: formatting

* Added QMK Git Conventions doc, initial version

* Renamed contributing_qmk.md to newbs_best_practices.md

* Updated per review by @drashna

* Added navigation links

* Updated to Best Practices doc

* Minor updates to Learn More Resources doc

Markdown formatting consistency because I'm particular about it.

* Added Merge Conflict section to Best Practices doc
2018-10-18 15:12:11 -07:00
Jason Thigpen
53a43dbe99 Keymap: Swap func layer keys and add vim navigation to navigation layer (#4163) 2018-10-18 13:53:39 -07:00
mtei
db03b76910 optimize rgblight_effect_alternating(void)
rgblight_effect_alternating (void) calls rgblight_sethsv_at () RGBLED_NUM times. As a result, rgblight_set () is called RGBLED_NUM + 1 times. This is wasteful processing.
2018-10-18 13:52:41 -07:00
sm0g
14bdd5ed2a Keymap: added my tada68's from Gitlab. (#4146)
* added my tada68 from Gitlab.

* Removed unneeded code and the sm0gunix layout.
2018-10-18 13:51:02 -07:00
mwpeterson
f45bc9b362 Keymap: Add Planck keymap (#4154)
* remove clmk and dvrk and backlight; switch esc and enter to be modtap; add meh key

* change songs

* space cadet; move enter; move '"; move pgup pgdn

* remove extra songs

* update from noahfredrick keymap

* make it easier to type ../../thing/*/*

* move pipe

* requested changes
2018-10-18 13:00:30 -07:00
TheOneTrueTrench
4a7baaaf50 Keymap: Adding new functionality to personal keymap, smart macros (#4159)
* Added base keymap

* Added initial layers and mirrored most of Pok3r behavior.

* Some stuff for Space Captain

* Added new Marianas keymap for DZ60

* Included suggestions to remove unnecessary line regarding MODS_CTRL_MASK, and added names for layers.

Added enum to define names for layers, and removed unused #DEFINE

* Added DVORAK and COLEMAK

* Caps + enter + space for flashing mode.

* Added RGB status

* added flash script

* Changed lighting modes to make layers more apparent

* fixed issue with not being able to exit gaming mode.

* Added abbreviation constructor

* Changed lighting modes to make layers more apparent

* fixed issue with not being able to exit gaming mode.

* Added abbreviation constructor

* Fixed bug with SQL Table Macro generator.

* restructured file. No Logical changes.

* literals only for smart macros

* removed extraneous pointer declaration.

* Smart Macros

* Added Makefile and header file

* extended smart macros to be able to cover the whole alphas.

* removed non-relavent keymaps.

* didn't mean to include this guy.
2018-10-17 21:38:24 -07:00
Christoffer Holmberg
dad79cafcd Fix more broken links to the HID spec 2018-10-17 16:51:51 -07:00
Christoffer Holmberg
d08f9cb6e4 Fix grammar, typos, and the link to HID specification 2018-10-17 16:51:51 -07:00
Bramver
397d404ce0 Keymap: Added personal Quefrency layout (#4156) 2018-10-17 13:42:26 -07:00
jshuf
9de4ace6f2 Keyboard: Add tkl_ansi_plus_five layout for Phantom (#4145)
* 60_ansi keymap for DZ60

* 60_ansi keymap for DZ60

Amend author

* 60_ansi keymap for DZ60

* Merge new phantom layout from dev branch
2018-10-16 17:13:53 -07:00
Žan Pevec
1f13254460 Keymap: Personal keymap for planck (#4061)
* added my keymap

* Adde more changes

* Moved to pevecyan folder

* Added slovenian mapping

* Slovenian keymap completed

* Suggestions updates

* Fixes on slovenian keymap

Made some typos in previous iteration
2018-10-16 16:56:39 -07:00
QMK Bot
1d03af876c convert to unix line-endings [skip ci] 2018-10-16 23:11:58 +00:00
Žan Pevec
8ce9e3255e Fixes on slovenian keymap 2018-10-16 15:51:27 -07:00
Drashna Jaelre
1dc1e12fec Only include lufa.h if AVR in quantum/api.h 2018-10-16 17:11:51 -04:00
Drashna Jaelre
6cf9402cbc Fix LAYOUT define generation (#4148)
* Fix LAYOUT define generation

Prior to this, only the full keyboard path was defined.  Eg `KEYBOARD_planck_rev6`.
But the docs mention `KEYBOAD_planck`, which never actually gets defined.

This addresses this, and creates a define for each level of the keyboard folder, so that stuff like `KEYBOARD_planck` actually exists.

* Clean up changes to make it more readable
2018-10-16 14:14:52 -04:00
Jim Tittsler
76aa2baf3e Fix doc typo 2018-10-15 16:58:03 -07:00
jshuf
423b419138 Keymap: 60_ansi keymap for DZ60 (#4139)
* 60_ansi keymap for DZ60

* 60_ansi keymap for DZ60

Amend author

* 60_ansi keymap for DZ60
2018-10-15 13:27:09 -07:00
Max Rumpf
4e2817eff1 Keymap: Some tweaks to Maxr1998's Contra layout (#4144)
* Make some keys more accessible, prevent mistypings

* Add "Gaming" layer which maps L-Ctrl to space (left-handed jumping compatibility-mode for all games)
2018-10-15 13:23:19 -07:00
Drashna Jaelre
31d12662bd Update to drashna keymaps and userspace - RGB edition (#4143)
* Fix up userspace after feature merges

* Add new macros for keyboard layouts

* Keep new layouts in keymap for easy reference

* Cleanup layouts

* Fix CRKBD wrappers

* Fix up comments

* Fix spacing in orthodox base layer

* ergodox related cleanup

* Make KC_MAKE only flash when holding shift

* Add option to fast compile boards

* Clean up rgb modes to save space

* Re-enable Swap Hands on my Iris
2018-10-15 15:34:49 -04:00
Danny Nguyen
44a348d56f Use DFU bootloader for rev 3 2018-10-15 10:56:46 -07:00
Danny Nguyen
85f315ad65 Add Iris Rev. 3 2018-10-15 10:56:46 -07:00
Danny
2c3e617fba Keymap: Add nano keymap for modding Spooka light (#4141) 2018-10-15 10:53:32 -07:00
Yann Hodique
088b476343 Keymap: add sun_usb keymap for sigma (#4138)
Also add users/sigma, which contains useful code for keymaps.
2018-10-15 10:49:51 -07:00
Yann Hodique
4c9372a081 Keyboard: Make type 5 the default sun keyboard. (#4137)
Type 5 is better polished, and probably more common as the last non-USB Sun
keyboard.
2018-10-15 10:45:30 -07:00
Jason Thigpen
4930e22dda Keymap: Move multimedia events to dedicated layer and format config (#4136) 2018-10-15 10:44:55 -07:00
Kenny Hung
0beb945554 Keymap: add JJ40 Skewwhiffy layout (#4135) 2018-10-15 10:44:19 -07:00
Christoffer Holmberg
bf0bb1a4db Keymap: Update to ergodox layout (#4134)
* Disable KB mouse & cleanup

* fix ascii-layout

* _______ is now defined by qmk

and apparently has been for a year already ;)
2018-10-15 10:43:11 -07:00
Christoffer Holmberg
64459fedbf Keymap: Reworked layout (#4133)
* Reworked layout

* Remove redundant defines

https://github.com/qmk/qmk_firmware/pull/4133#discussion_r224977420

* fix typo
2018-10-15 10:42:38 -07:00
Chris
47e29754c2 Keymap: added default layout to the kbd6x for the tofu hhkb (#4132)
* added layouts

* fixed

* might aswell fix the default layout aswell
2018-10-15 10:41:43 -07:00
Žan Pevec
ec86141a4a Basic Slovenian keymap added (#4128)
* Basic Slovenian keymap added

* Author fixed
2018-10-15 10:39:58 -07:00
Vyolle
f0f9283d02 Keymap: add new keymap for Iris (#4119)
* Add files via upload

* Delete config.h

* Delete keymap.c

* Delete rules.mk

* Keymap w/mirror mode and steno support.

Keymap w/mirror mode and steno support. Can be used entirely one handed.

* Fixed some niggling issues.
2018-10-15 10:21:14 -07:00
QMK Bot
9fbd7eb7a5 convert to unix line-endings [skip ci] 2018-10-15 16:24:29 +00:00
Drashna Jaelre
d7dea0e6d9 Fix ErgoTravel Board
It was not properly including the "config_common" files, and was causing it to break on the configurator.

Additionally, updated this to use the split common code.
2018-10-15 12:21:28 -04:00
Kenny Hung
533f684887 Keymap: Move navigation buttons closer to the middle on XD75:skewwhiffy (#4118)
* RGB toggle button

* Remove custom lighting effects

* Fix small bug in Symbols layer

* Ignore mod tap interrupt in XD75 for skewwhiffy, and split layers into two for more flexibility and fix persistent layer issue

* Replace shift in nav layer with IntelliJ omnibox shortcut to avoid a sticky shift

* Remove custom setting in config, because it were annoying, it were.

* Move navigation buttons in one key

* Some review markups

* Use enums for layers

* Use LAYOUT_ortho_5x15

* Revert some capitalization changes made by accident
2018-10-13 13:46:46 -07:00
asakuno
d81d216d72 Fix Typo in Custom Quantum functions document (led_state) (#4129)
*_LOCK
  ↓
DEL
2018-10-13 00:40:42 -07:00
MechMerlin
e5c315f961 Treasure Type9 Fix: change diode direction to ROW2COL (#4125) 2018-10-12 10:34:52 -07:00
Patrick Hener
0793abfd19 Add sendstring_german.h (#4124)
* added sweet16 test keymap and touched sendstring_german.h

* added sendstring_german.h

* Delete keymap.c

As suggested deleted the keymap file.
2018-10-12 10:31:08 -07:00
Yann Hodique
52ecc76e28 port sun_usb converter from tmk
initial import
2018-10-12 10:26:58 -07:00
mtei
4bb0fb2ffc A comment indicating the insertion location of the new mode was added. 2018-10-11 17:14:42 -07:00
mtei
ec59556cd7 add a notice into docs/feature_rgblight.md 2018-10-11 17:14:42 -07:00
mtei
661e304033 Add a temporary comment to quantum/rgblight.h to aid migration.
Add a temporary comment. The content is a contrast table of old magic number and new symbol.
2018-10-11 17:14:42 -07:00
Jason Thigpen
ae489efee4 Keymap: Add crd's simple layout (#4117)
* Add crd's simple layout

* Fix transparent mapping in crd's config

* Add secondary navigation to fn layer
2018-10-11 17:00:53 -07:00
Oscillope
8a778d656d Keymap: Undo my backlight workaround (#4122)
* Update jj40 keymap for easier pgup/pgdn

* Backlight problem fixed by a previous commit
2018-10-11 17:00:17 -07:00
Drashna Jaelre
a7d05820a6 Add documentation for Combo feature 2018-10-10 21:36:58 -04:00
Drashna Jaelre
43757cd985 Cleanup learning newb links 2018-10-10 21:36:32 -04:00
Drashna Jaelre
0e4374042c Update and cleanup AVR Hardware docs 2018-10-10 21:35:26 -04:00
Boris Burger
6c55e8cab5 Keymap: DZ60 layout based on stephengrier's with PgUp/PgDn/Home/End, Insert, etc. (#4110)
* DZ60 layout based on stephengrier's with customisations.

* CapsLock is used as Fn key.
* Del is available as Fn+Backspace & Shift+Backspace (using a macro)
* PgUp / PgDn / Home / End = Fn+Arrows (as on macOS, Microsoft Surface)
* Tilde = Shift+Esc
* Backtick = Fn+Esc
* Underglow toggle and mode selection are available as Fn+Q and Fn+W
* Reset (bootloader mode) = Fn+B

* Standardised layout formatting and Ctrl+Del & Shift+Del support.

Using 7 underscores for KC_TRNS in layouts and aligning the keycodes
according to LAYOUT_directional.

Del is now only Fn+Del, Ctrl+Backspace translates to Ctrl+Del,
Shift+Backspace translates to Shift+Del.

* Documented new Backspace/Del related macros.

Del is now just Fn+Backspace, pressing Ctrl+Backspace sends Ctrl+Del,
pressing Shift+Backspace sends Shift+Del
2018-10-10 14:17:42 -07:00
noroadsleft
0e142138aa evil80: Add readme.md file 2018-10-10 13:26:06 -07:00
pgillan145
d17421d074 Added cheese keymap to tada68. (#4105)
* Added cheese keymap to tada68.

* Removed extraneous definitions.
2018-10-10 12:58:11 -07:00
noroadsleft
7d156263ab Orange75: cleanup and Configurator support update (#4101)
* Orange75: cleanup and Configurator support update

`orange75.h`:
Moved `K014` to the second (number row) as the left half of a split Backspace (guessing at its true location; will need to be checked/tested after merge).

`info.json`:
Updated to match new `LAYOUT` macro.

`keymaps/default/keymap.c`:
- Updated to match new `LAYOUT` macro.
- Added layer mock-ups as block comments.
- Formatted to be a bit more readable.

* Orange75: deleted an extra comma from keymap.c
2018-10-10 12:56:45 -07:00
MakotoKurauchi
79bff50247 Keymaps: Helix rgblight mode update (#4091)
* Helix each keymap's using rgblight mode symbol instead magic number

No change in build result.

* Helix pico keymaps: make rgblight modes selectable.

No change in build result.

* Helix rev2 keymaps: make rgblight modes selectable.

No change in build result.

* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)

* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
2018-10-10 12:53:18 -07:00
patrickmt
ab91e07753 Massdrop keyboards console device support for hid_listen
Added hid_listen USB device for arm_atsam USB protocol.
Debug printing is now done through the console device (CONSOLE_ENABLE = yes) rather than the virtser device, for viewing in hid_listen.
Function dpf(...) renamed to CDC_printf(...) and should now be called directly if intending to print to the virtual serial device.
2018-10-10 13:49:01 -04:00
Drashna Jaelre
f2965e1eea Specify max layers supported in layer keycodes 2018-10-10 11:48:36 -04:00
Drashna Jaelre
1df10ae3bf Update default Planck layout to be more in line with standard conventions 2018-10-09 15:21:37 -04:00
Drashna Jaelre
5a127293e7 Fix formatting in Unicode text 2018-10-09 15:21:08 -04:00
Brian Choromanski
7f6bb82b9d Added link to One Shot Keys 2018-10-09 10:27:03 -07:00
Brian Choromanski
04e28470bc Added OSL to list of layer toggles 2018-10-09 10:27:03 -07:00
Grady Sigler
42add5450d Keymap: Iris Keymap (#4100)
* IRIS Keyboard Keymap

I wanted a keymap that really changed things up. I also found that as a programmer I need as many symbols as I can get.

* Make cmd-option-escape work on a mac

* Add more prettyfication.

* Add other types of hold

* More work on the layer keys

* tweaks

* More tweaks.

* more tweaks

* Remove OSL/OSM they didnt seem to work very well
2018-10-08 19:50:42 -07:00
captsis
be227b4317 Keyboard: add orange75 (#4093)
* New Keyboard: orange75

Co-Authored-By: fox-lab <fox-lab@users.noreply.github.com>

* Update keyboards/orange75/info.json

corrected

*  #4093 corrections

* added del to layout again

* clarified supported hardware

* directives...

* Update keyboards/orange75/config.h

* Update keyboards/orange75/readme.md
2018-10-08 18:20:31 -07:00
yiancar
98a63d8d6e DC01 updates and I2C avr speed overwrite (#4088)
* DC01 updates and I2C avr speed overwrite

- General updating of DC01
- Made F_SCL define in AVR I2C driver overwritable from config.h

* Update drivers/avr/i2c_master.c
2018-10-08 18:27:04 -04:00
chipperdoodles
914d42acd0 Update Bluetooth docs (#4062)
* syncing upstream

* Bluetooth Doc update

More Description in bluetooth section, Addition to Config options rules.mk section.

* merge upstream

chibios

* lib/chibios checkout

* Additional EZ key Section

added back EZ-Key diy link, Cleaned up some errors
2018-10-07 11:23:41 -07:00
sbstjn
be2610b6da feat: Add 68Keys.io 2018-10-07 10:51:18 -07:00
Bramver
aa707c6b9e Keymap: Personal Nyquist keymap added. (#4059)
* Personal Nyquist keymap added.

* Responded to comments for PR.

Removed unnecessary imports.
Updated way of macros.
Removed tick from unicode inputs.

* formatting in keymap
2018-10-07 07:36:01 -07:00
Brian Mock
370fdb89c2 Keymap: Adds TheVan RoadKit Gamepad Layout (#4090)
* adds prototype firmware for wavebeem-gamepad

* adds installer script

* updates readme

* updates title

* adds prototype firmware for wavebeem-gamepad

* adds installer script

* updates readme

* updates title

* removes unused code

* removes more code

* simplify code
2018-10-06 20:55:48 -07:00
Drashna Jaelre
f86c0c2643 Update and clarify Unicode documentation (#4065)
* Update and clarify Unicode documentation

* Fixed UCIS info based on feedback from algernon

* Further clarifications and cleanup

* Formatting

* Add an example for unicode map

* fix AutoHotKey title
2018-10-06 20:44:33 -04:00
Drashna Jaelre
7458ac9489 Update Contrib doc (#4068)
* Add link for style

* ignore java

* Add example and update link?

* Minor fixes

* Change 1TBS text

* comments
2018-10-06 20:43:37 -04:00
Drashna Jaelre
cfa9f6ba6d Add non-US Hash and Backslash to AutoShift handling 2018-10-06 20:43:12 -04:00
Wojciech Siewierski
60f5ce8890 Keymap: Update keyboards/planck/keymaps/vifon (#4084)
* Implement macro recording

* Remove off-by-one from the macro recorder

* Holding both modifiers enables the third layer

* Exit the 3rd layer into one of the secondary ones

* Regular Enter and Escape on the secondary layers

Useful for the macro recording because the "tap" modifiers always act as
modifiers there.

* Remove the buffer overflow from the macro recorder

When the limit is reached, the backlight blinks with each keypress.

* More robust macro recording implementation

* Macro record refactoring and improvement

- support for a second macro (saved using the end of the macro buffer)
- improved reliability

* Add comments to my macros

* Macro recording: remove a redundant code

* Separate the raise+lower layer from the special layer

* Add back/forward keys

* Bind mouse movement

* More readable KC_TRNS

* Improve the mouse bindings

* Use a convenience macro instead of the low-level ACTION macro

* Add mouse to the Dual layer; make most of the layer transparent

* New "mouse" layer; clean up the "special" layer

* CapsLock, NumLock and ScrollLock on the Special layer

* Enable my fix for the stuck modifiers and adjust the dual layer to it

* Fix the macro recording after enabling the stuck mods fix

* Click with Lower/Raise+Space

* Reduce the memory used by the macro recording

Previously the auxiliary layers were numbered 30 and 31 which resulted
in all 32 array elements being allocated regardless of the actually
used layers in the user code.

* Optimize source_layers_cache for the cache memory

Swapping the array indices should increase the locality of the memory access.

* Remove the mouse layer

* Use update_tri_layer to simplify the code

* Add some custom per-keymap build options

* Add ShiftLock

* Secure the reset button

* Add numeric layer

* Remove explicit layer keys on LW and RS layers

* Replace Alt+left/right with Back/Forward keys

* Sleep/delay key (for macro recording)

* App/menu key

* Fix stuff after merging to master

* Local per-keymap config.h; minor cleanup

* Remove the old macro_record.h

Replaced with dynamic_macro.h

* Adjust my keymap to the current API

* Pure Pro Gaming layer

Accessible by double tapping the Pure Pro layer. It features switched
Lower and Raise layers, for one-handed access to numbers.

* Pure Pro Gaming layer: no Mod4, persistent number layer under RShift

* Pure Pro Gaming layer activated with long press, not double press

* Reduce the size of the vifon keymap

See: issue #930

* Increase the dynamic macro buffer

The default was actually decreased. The actual used value didn't change.

* Add the context menu key

* No more strange ideas in the gaming layer

* Reduce the firmware size by disabling API_SYSEX_ENABLE

* Make slash available on the PP layer (replaces the RESET key)

* Add a generic "hold this key" macro

* Add a missing undef

* Turn LGUI in the gaming layer into LW instead of disabling it

It's not as disruptive as LGUI and it makes the LW/RS order kind of
more consistent (LW on the left, RS on the right).

* Refactor the Pure Pro Gaming layer

* Try out the 1st party qmk KC_LOCK (vs my own KM_HOLD)

* Alternative way to switch keyboard layouts with the left hand

* Add dot & slash to the Pure Pro layer (but not to the Gaming layer)

* Now that there is a second KM_LW, we can simplify the layout a bit

It was confusing to have the modifiers completely swapped.  Just
moving them is much more natural.

* Disable the console now that qmk got bigger

* Update the keymap for the modern qmk standards
2018-10-06 07:49:04 -07:00
Jereme Corrado
2c1402aa32 Keymap: Added Planck keymap: jcorrado (#4083) 2018-10-05 14:52:46 -07:00
Takeshi ISHII
f1003aaccf Keyboard: Helix five_rows keymap reduced size (#4082)
* add PERMISSIVE_HOLD in helix:five_rows/config.h

* add Eucalyn char layout into helix:five_rows

* Helix five_rows keymap: make rgblight modes selectable.

No change in build result.

* fix keymap.c map comment, add console compile option

No change in build result.

* Helix five_rows keymap: reduced the size.
2018-10-05 14:51:34 -07:00
Johannes Huber
54b61b508b E6V2 LE HHKB love (#4079)
* Keyboard: E6V2 LE HHKB layout support

* Keymap: Add johu's E6V2 LE HHKB layout
2018-10-05 14:49:30 -07:00
thomasviaud
27e216fc1a Keymap: Add french iso layout for dz60 (thomasviaud) (#4080) 2018-10-05 12:00:24 -07:00
yiancar
ac7b2d92bf ARM SWD guide
- Added a detailed (but saddly long) debugging guide.
- Modified sidebar and summary to include the links.
2018-10-05 11:03:30 -07:00
eucalyn
13d67200df Keyboard: set SAFE_RANGE (#4078) 2018-10-05 08:43:04 -07:00
noroadsleft
b4f26a4616 Keyboard: DZ60: add Plate B layouts (#4076)
Adds maximized DZ60 Plate B layout macros in ANSI and ISO, featuring 2.25u Left Shift (1.25u/1u split for ISO) and 1.75u Right Shift with Inverted-T arrow keys. Also supports Split Spacebar and Split Backspace.
2018-10-04 20:34:47 -07:00
James Laird-Wah
0c3137d8ff rgb_matrix: continue calling rgb_matrix_indicators() when toggled off
This allows user code to continue to use the matrix for indication, even
when the RGB toggle is off, using rgb_matrix_set_color().

Without this change, it's impossible for user code to use the matrix
when the toggle is off, as any changes get overwritten with black on the
next task cycle, and the indicator code is not called at all.
2018-10-04 21:43:31 -04:00
SpacebarRacecar
26adf3706a Keymap: Added personal userspace and keymaps. (#4073)
* added personal userspace, niu mini, planck and fc660c keymaps

* removed unnecessary include and some other minor corrections
2018-10-04 15:00:33 -07:00
Drashna Jaelre
dad579c8f8 Add mousekey_send to (un)register_code 2018-10-04 10:44:28 -04:00
Enochen
f13ca59361 rn42 compilation error fix (#4050)
* rn42 compile fix

Fixes a compilation error

* simpler rn42 compile fix

good idea drashna :)
2018-10-03 15:02:24 -07:00
martinakcsilla
0d61e612f0 process_ucis: Add a callback for success (#4067)
There is `qk_ucis_symbol_fallback` for the case where symbol lookup
fails, but there wasn't one for the success case. This adds
`qk_ucis_success`, called after successfully finishing the UCIS symbol
input.

Thanks to @drashna for the idea!

Signed-off-by: Csilla Nagyné Martinák <csilla@csillger.hu>
2018-10-03 14:38:02 -07:00
takashiski
ac27b62fa1 Keyboard: add info.json for qmk configurator (#4063) 2018-10-03 12:22:18 -07:00
Pittyolo
9c4b6d2100 Keyboard: Adding Split Space support for Mechmini 1 (#4052)
* Adding Split Space support

* Adding my keymap

* update

* Made the requested updates

* Made the requested update
2018-10-03 12:14:36 -07:00
Filip Sund
d55468c18d Keyboard: Added dactyl-manuform 4x6 and keymap. (#4058)
* Added dactyl-manuform 4x6 and keymap.

* Did changes recommended by drashna.
2018-10-03 12:04:01 -07:00
Filip Sund
f01133d089 Keyboard: Add handwired/pteron config and keymaps (#4060)
* Added pteron files made via from kbfirmware.com.

* Added readme.

* Made some progress on Pteron keymap.

* More keymap.

* Updated bootloader, added some keymap illustrations.

* Moved default keymap to FSund, made default keymap from default preonic keymap.

* Fixed typo in default pteron keymap.

* Made changes recommended by drashna.
2018-10-03 10:12:27 -07:00
Jumail Mundekkat
e58ea882e4 Keyboard: Added split backspace layout for the b.mini (#4051) 2018-10-03 08:36:40 -07:00
takashiski
5368235f22 Keyboard: Add namecard keyboard (#4044)
* create namecard2x4

* create default keymaps

* Update README

* fixed typo and func remove dont need.

* update infomation on readme

* update missed point

* remove explicit initialize

* update default keymap's readme

* add my name to copyright

* change keymap style to LAYOUT macro and fixed typo LAYOUT macro
2018-10-03 08:34:43 -07:00
noroadsleft
404db1d06f handwired/ibm122m: refactor and Configurator support (#4054)
* handwired/ibm122m: refactor

Refactored layout macro and keymaps to more closely resemble the keyboard's physical layout.

* handwired/ibm122m: add Configurator support
2018-10-03 08:33:14 -07:00
Jumail Mundekkat
4d1d1b7196 Keyboard: Added JN68M keyboard to handwired (#4053) 2018-10-03 08:32:56 -07:00
Daniel Shields
b1c2849500 Keymap: Add RGB matrix keypress effects and reduce firmware size. (#4055) 2018-10-03 08:30:44 -07:00
noroadsleft
b9c5030851 Keyboard: KBD4x: corrected info.json file (#4056)
The `info.json` file for the KBD4x was invalid due to a couple of extra commas.
2018-10-03 08:30:13 -07:00
noroadsleft
d435dabefb Keyboard: Mint60: Configurator support and readme cleanup (#4057)
* Mint60: add Configurator support

* Mint60: readme cleanup

Fixed the imgur url so the photo shows up, and updated the links to the docs.
2018-10-03 08:29:29 -07:00
James D. Marble
76f0b3cc70 Add missing F-keys to ergodox_infinity input_club
F11 and F12 were in the ascii art, but not the actual mapping.
This corrects the error.
2018-10-02 22:41:18 -07:00
Chris Johnston
2d671a7e1a Enable support for Linux Mint 18 with linux_install.sh (#4042)
Enable support for ubuntu-derived linux-es in installer

Checks /etc/os-release for mention of ubuntu and debian.

Linux Mint uses ID_LIKE=ubuntu, not ID_LIKE=debian (as seen in
Ubuntu 16.04, unsure about others)
2018-10-02 22:16:49 -07:00
takashiski
37cfd2c500 add JP keycode for MacOSX (#4033) 2018-10-02 17:51:43 -07:00
yiancar
1741e39e34 New keyboard: Baguette (#4047)
* Bagette

Addition of Baguette a close group buy custom

* Add json
2018-10-02 16:03:50 -07:00
Florian Didron
9aecf4ccfd Adds a method allowing to set custom colors to the rgb matrix 2018-10-02 16:33:49 -04:00
Bramver
66b793730e Keymap: Personal XD75 keymap added. (#4045)
* Personal XD75 keymap added.

Nothing fancy, has emojisupport.

* Converted to spaces to follow guidelines

* Fixed requested changes.

Replacing include guards with pragma once.
Omitting unnecessary lines.
PR #4045
2018-10-02 13:06:31 -07:00
Jarred Steenvoorden
5c2ac733af Keymap: Adding my DZ60, Satan, XD75 kemaps and updates to userspace (#4039)
* Update userspace with common config.h

* Add my dz60, satan and xd75 keyboard keymaps

* Fixing executable bits changed during last upstream merge

* Cleanup unnecessary files and defines

* Remove unnecessary defines from userspace config
2018-10-02 08:14:37 -07:00
Drashna Jaelre
1a33054a35 Reduce firmware size of KBD8x to fix Travis Compile issues 2018-10-02 11:08:21 -04:00
Rebecca Le
9f2e39732f Keyboard: Add support for the KBD4x (#4036)
* Generate a new project for the KBD4x

* Specify the possible layouts for the KBD4x - MIT and grid

* Fill out the readme for the KBD4x

* Configure the default keymap and wiring configuration as specified on http://qmkeyboard.cn/

* Add info.json for QMK Configurator

* Enable backlight support for the KBD4x

* Standardise on LAYOUT_planck_mit/LAYOUT_ortho_4x12 layout names

* Add whitespace so the Readme will render correctly

* Disable mouse keys support for the KBD4x to make the firmware small enough
2018-10-01 20:43:43 -07:00
noroadsleft
abcf64ecbd Keyboard: DZ60 cleanup (#3994)
* DZ60: Deleted K214 from LAYOUT_all

* DZ60: Delete matrix LAYOUT_2_shifts; replace with LAYOUT_all

After the deletion of K214 from LAYOUT_all, LAYOUT_all and LAYOUT_2_shifts are identical.

Deprecated LAYOUT_2_shifts in favor of LAYOUT_all.

* DZ60: refactor 256k_HHKB and itsaferbie keymaps to use LAYOUT_60_hhkb macro

Both keymaps previously used the LAYOUT_hhkb macro. After comparing the macros, the only difference between them was that LAYOUT_hhkb included the place of the ISO Backslash key. Neither keymap used this key, so both were refactored to use LAYOUT_60_hhkb instead.

LAYOUT_hhkb is now essentially unused by any keymaps in the repo. (More on that in a moment.)

* DZ60: bugfix for dbroqua keymap

This keymap had two layers that used the LAYOUT_true_hhkb macro and a third that used LAYOUT_hhkb. These macros have the same number of keys, but represent different physical layouts. As the "main" layers used LAYOUT_true_hhkb, switched the third layer to LAYOUT_true_hhkb as well.

The LAYOUT_hhkb macro is now unused by any DZ60 keymaps in the repo, and can be safely deleted.

* DZ60: bugfix for 60_ansi_arrow_fkeys, 60_plus_arrows, and stephengrier keymaps

All three keymaps had one layer in LAYOUT_all and one in LAYOUT_directional. Only difference between these macros is LAYOUT_all excludes the ISO Backslash position. As none of the keymaps used this position, all layers were switched to use LAYOUT_directional.

* DZ60: added layout mock-ups to dz60.h

Documenting the physical layouts that go with each matrix.

* DZ60: replace TMK SHIFT_ESC with QMK Grave Escape

Replaced all instances of keycodes that called TMK's ACTION_FUNCTION(SHIFT_ESC) with QMK's KC_GESC, and added config.h files so KC_GESC behaves as the deprecated TMK function did, except for the default keymap, which I thought should have the QMK standard behavior.

* DZ60: delete SHIFT_ESC code blocks

Deleted ACTION_FUNCTION(SHIFT_ESC) code blocks from keymaps that didn't use the functionality it provided.

* DZ60: deleted unused MODS_CTRL_MASk definitions

Was used in the now-deleted SHIFT_ESC code blocks. Interestingly named MODS_CTRL_MASK when it was actually checking the Shift keys. *shrug*

* DZ60: refactor jkbone keymap to use process_record_user

Replaced TMK action_function keycodes with QMK process_record_user equivalents.

* DZ60: delete unused layout macros

The macros LAYOUT_hhkb, LAYOUT_directional_625_space, and LAYOUT_60_ansi_split_bs_rshift_5x1u were unused by any keymaps in the repo, and have thus been deleted.

* DZ60: refactor iso_6u_space and iso_7u_space keymaps

Both keymaps refactored to use the LAYOUT_60_iso macro.

* DZ60: refactor dz60.h

Updated the notation of the switch arguments. Format is now:

`k<row><column>`

where `<row>` is `[0-4]` and `<column>` is `[0-9a-e]`.

* DZ60: refactor LAYOUT_60_iso_5x1u matrix

Updated matrix so `KC_ENT` belongs on the home row, which is consistent with LAYOUT_60_iso for the DZ60 as well as the ISO community layouts.

* DZ60: fix white space in dz60.h

I hate when indentation is inconsistent within a file.
2018-10-01 20:35:09 -07:00
Yan-Fa Li
713ec91147 Add C hint to inline code 2018-10-01 22:55:51 -04:00
Drashna Jaelre
1512a6bfd4 Keymap: Update to drashna keymaps and userspace (#3992)
* Enabled unicode support and send_unicode function

* Unicode cleanup

* More unicode tweaking

* Update EEPROM stuff

* Account for keyboard macros

* Switch Equal to Plus on Ergodox

* more tweaks

* Minor Unicode tweaks

* Correct matrix printing for keylogger

* Fix unicode functions

* Fix unicode mode set since it actually uses EEPROM

* Re-add DISABLE_LEADER

* Ergodox is easier to hit the tapping term, fix that

* Fix stupid type on unicode mode check

* Preliminary CRKBD/HeliDox support

* Fixes to Helidox

* Cleanup userspace from old merge stuff

* Remove CCCV sounds

* Make Mode NOEEPROM Again
2018-10-01 21:00:14 -04:00
Drashna Jaelre
f5ae3760c6 Add send_unicode_hex_string function (#3828)
* Add send_string_unicode function

Co-authored-by: kdb424 <kdb424@gmail.com>
Co-authored-by: Konstantin <vomindoraan@gmail.com>

* Clean up code based on feedback

* Fix includes
2018-10-01 20:56:04 -04:00
Drashna Jaelre
26f4e7031a Add tap_code function (#3784)
* Add tap_code

* formatting

* Doc clarification

* Rename variable to make more consistent
2018-10-01 20:53:47 -04:00
Drashna Jaelre
e885c793bc Add Function level EECONFIG code for EEPROM (#3084)
* Add Function level EEPROM configuration

Add kb and user functions for EEPROM, and example of how to use it.

* Bug fixes and demo

* Additional cleanup

* Add EEPROM reset macro to example

* Forgot init function in list

* Move eeconfig_init_quantum function to quantum.c and actually set default layer

* See if removing weak quantum function fixes issue

* Fix travis compile error

* Remove ifdef blocks from EECONFIG so settings are always set

* Fix for ARM EEPROM updates

* Fix merge issues

* Fix potential STM32 EEPROM issues
2018-10-01 20:53:14 -04:00
Drashna Jaelre
4318797d19 Add user level to default_layer_state_set 2018-10-01 12:58:46 -04:00
Daniel Shields
da6c58175a Make digital rain RGB matrix effect #define configurable. 2018-10-01 12:54:37 -04:00
Anthony Som
b3f6aa9480 Correct small typo
A small typo (it -> in) that I noticed while reading through the documentation
2018-10-01 12:42:05 -04:00
MechMerlin
285ed08867 Keyboard: Rename macropad to treasure/type9 (#4035)
* rename macropad keyboard to type9 under the treasure directory

* fixup the readme

* rename macropad to type9

* moar renames
2018-10-01 09:34:20 -07:00
Andrew Kannan
45a4a0a7fc Keyboard: Adding initial luddite keyboard framework (#4029)
* Adding initial luddite keyboard framework

* Use pragma and update readme

* Remove duplicate macro definitions
2018-10-01 09:25:16 -07:00
Drashna Jaelre
3907ed034b Fix YMDK NP21 keyboard to use proper keyboard level functions (#3042)
* Use proper function levels

* Add matrix init functions

* Convert KEYMAP to LAYOUT

Or @mechmerlin is going to hunt me down and harm me... probably :)

* Fix conflict issues
2018-10-01 11:09:57 -04:00
Drashna Jaelre
9d949389f9 Adds default value for TAPPING_TERM if Tap Dance is enabled (#2785)
* Force require TAPPING_TERM if Tap Dance is enabled

* Handle lack of TAPPING_TERM more gracefully
2018-10-01 11:09:05 -04:00
noroadsleft
a398d2cece Keymap: Add noroadsleft keymap for KC60 (#3876)
* Add personal KC60 keymap

* Update personal KC60 keymap

* Keymap update 2018-05-30 01:53 UTC-7

* Added macro: T_PEEKR

* Added macro for MacOS Select All; modified MacOS function layer

* Added git branch-name macro

* Added GitHub signature macro

* Added readme files

* Added Quake 2 and System layers

* Refactored keymap readme

* Refactored to add userspace files; added Colemak layer

* Minor code cleanup; updated readme files

* Reverted use of userspace

Decided not to make use of the Userspace feature at this time. Reverted its addition, and updated the readme files where needed (they were linking to userspace files).

* Updated per review comments by @drashna

* Refactor buggy macros

I'm still not sure these work properly

* Fix Windows shortcuts

* Fix Mac shortcuts, possibly

Untested; still may be broken.

* Remove PREVENT_STUCK_MODIFIERS from config.h

Deprecated by #3107
2018-09-30 22:06:29 -07:00
OlliGranlund
a6c85f1c23 Keymap: add olligranlund Iris + satan layouts (#4031)
* init

* function layout planning

* nordic keymap v1.0

* Added latest satan layouts, updated readmes

* Cleaning code

* Renamed ISO -> iso
2018-09-30 13:50:16 -07:00
Erovia
a7d46f1b0f Keymap: Add ErgoDone keymap with QWERTY and COLEMAK Mod-DH (#3884)
* Custom keymap for the ErgoDone

The keymap supports QWERTY and COLEMAK MOD-DH with LED indication.

* Enable Space Cadet Shift

* Fix after-boot layer indicator LED

* Implement keyboard suspend, move layer LED handling to function, unify
identation

* Add readme.md with layout

* Optimize LED handling, add include guard

Read the default layer via the proper EEPROM function, so the calling of
bootmagic() is no longer necessary.
Fix bug when the CapsLock LED wasn't working anymore after a layer
switch.
2018-09-30 11:14:06 -07:00
Wilba6582
66ef1e3d67 RAMA M6-B and IS31FL3218 driver (#4021)
* Initial RAMA M6-B commit.

* Moved IS31FL3218 driver, minor cleanups

* Refactor, added dynamic keymap.

* Added dynamic keymaps to RAMA M6-A

* Refactor M6-A and M6-B to use common code.

* Formatting

* Cleanup

* Cleanup

* Changes from review
2018-09-30 11:35:10 -04:00
Wilba6582
6734cd9c5c Keyboard: Zeal60: Fix getting backlight values "id_*_indicator_row_col" (#4030) 2018-09-30 07:31:23 -07:00
Alexander Kagno
3875d6f581 Keymap: Added Leader Key Functionality (#4025)
* deleting arkag branch, forcibly moving changes over to master

* fade_color function added, not tested

* added half functions some stuff

* surround_type function implemented and working.

* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes

* added a fade state machine and functionality

* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout

* changes to sleep breath function, changed how I will switch to HALMAK

* support for halmak added

* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid

* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.

* reformatted some if statements in state detection

* changes to force fade to pause on boot, or plug in.

* Attempting to move over to userspace, pushing to repository for help

* userspace stuff....

* userspace stuff....

* layout changes, working userspace,

Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY

* Layout change

Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.

* Removed excessive tabs in files

* Moved mods on homerow around...

* changes recommended by @drashna

* removed homerow mods, more flashy lighting!

* changed delays for lighting.

* velocikey code retro fit into userspace to match typing speed

currently "working" but isn't as reactive as I want.

* Readme and other documentation hidden throughout code

* Added a pretty picture

* pretty picture actually added

* More readme updates

* Velocikey now working inside my userspace!

* Changed repo macro and fixed readme

* Removed media layer, moved media control to LAZY layer

* fixed more merge issues when I had to merge...

* implemented some leader key stuff

* removed merge garbage...

* changes requested by @drashna, leader key switch from macros
2018-09-29 17:51:06 -07:00
Yan-Fa Li
170507896d Keyboard: Update info.json to match LAYOUT (#4027)
* Update info.json to match LAYOUT

* update mf68_ble info.json

LAYOUT -> LAYOUT_68_ansi
2018-09-29 16:16:21 -07:00
izzy84075
92d95ba1e1 Keyboard: Add basic support for the YD68 / YD68v2 PCBs. (#4020)
* Add basic support for the YD68 / YD68v2.

Keymap and WS2812 underlighting work. Capslock LED should work, though I don't have one populated to test. Backlight LEDs are not set up, as they're not on a hardware PWM pin, could be set up as software.

* Fix Imgur link

* Fix default keymap to match the stock firmware

* Fix the Hardware Supported line and add a short description
2018-09-29 12:44:54 -07:00
noroadsleft
68854f0735 Keyboard: converter/hp_46010a: rename layout macro to LAYOUT (#4024)
Messed up in my previous PR (#4017) by providing the wrong matrix name.

Fixing by changing the matrix name instead, because there's only one at this point. Thought it made more sense this way.
2018-09-29 12:44:12 -07:00
Takeshi ISHII
cd215209ef Helix led_test keymap reduce size (#4023)
* Helix: make rgblight modes selectable.

No change in build result.

* edit the comment of helix/rev2/keymaps/default/keymap.c

* Helix led_test keymap: reduced the size.
2018-09-29 10:40:54 -07:00
marksard
4f64951080 Keymap: Fixed a possible of buffer overflow. (#4016)
Update inline funnction to static inline function.
Fixed error of if enabe ADJUST_MACRO_ENABLE.
2018-09-29 10:25:03 -07:00
Shaleen Jain
1da2f8d546 Keymap: tada68: add shalzz's layout (#4019) 2018-09-29 08:49:51 -07:00
noroadsleft
9f8bbe2f3f Keyboard: converter/hp_46010a: Configurator support (#4017) 2018-09-29 08:47:16 -07:00
patrickmt
daf0cc60bf CTRL keyboard bootloader_jump support
Adds support for CTRL keyboards to enter bootloader via bootloader_jump()
2018-09-28 23:09:53 -04:00
Drashna Jaelre
20a10bd084 Size fix for Hadron, take 2 (#4009)
* Add Link Time Optimization to reduce firmware size

* Disable Mousekeys on Hadron to save room
2018-09-28 22:23:13 -04:00
Drashna Jaelre
3d767e4aab Disable Moueskeys to reduce Vitamins Included firmware size 2018-09-28 22:22:53 -04:00
Drashna Jaelre
ab83aedfab Second attempt to reduce the size of the USB BLE Converter (#4010)
* Disable Leader to reduce firmware size for Travis

* Additionaly fixes to USB_USB\BLE Keyboard converter

* Disable One Shots to get USB to USB BLE converter to fit
2018-09-28 22:22:31 -04:00
patrickmt
239f02408e Massdrop keyboard updates for SEND_STRING, syscalls, stdio, debug prints, Auto Shift (#3973)
* Update for SEND_STRING usage

Update for SEND_STRING usage.
Sending keyboard reports (kbd, nkro) now obey the minimum polling time.
While attempting to send a keyboard report and waiting for a USB poll, other functions of the keyboard, including LED effects and power management, will continue to operate at their intended intervals.

* Updates for send string, syscalls, stdio, debug prints, auto shift

Now properly waiting for previous keys sent over USB to complete before sending new.
Added heap to linker and now compiling with syscalls support.
Removed custom string functions and now using stdio.
dprintf now works as intended through virtser device.

* CTRL and ALT keymap updates

CTRL mac keymap updated
ALT default and mac keymap updated
ALT rules.mk added Auto Shift with default no

* Code cleanup as per discussion with vomindoraan

Code cleanup as per discussion with vomindoraan
2018-09-28 21:32:15 -04:00
Takuya Urakawa
e2dee054d0 add st-link_cli flashing (#3899)
* add st-link_cli support

* format names
2018-09-28 21:30:44 -04:00
Drashna Jaelre
e4eeb1eb23 Fix RGB Matrix feature processing in common_features.mk
Specifically, an "L" got appended to the controller names for te "valid types",
but did not get appended to the blocks that include the specific drives.
So, this breaks anything that isn't "Yes".
2018-09-28 17:11:05 -04:00
Ethan Madden
cb468e0307 Keymap: Clicky frequency modulation (#4012)
Also worked around my busted dipswitch 2...
2018-09-28 12:44:15 -07:00
noroadsleft
f1b2d46eaf Spell-check update for Userspace documentation
Because leaving review comments on a PR that's already been merged doesn't make any sense.
2018-09-28 14:39:52 -04:00
Wilba6582
daa11dc414 Changed VID/PID, added commands, refactoring 2018-09-28 12:36:55 -04:00
yiancar
7fe03d085c Update quantum matrix to support both AVR and Chibios ARM (#3968)
* Update quantum matrix to support both AVR and Chibios ARM

- Addition of STM32 pin definitions
- Created abstruction layer defines to control GPIO (This is a bit pointless for Chibios as we are creating a PAL ontop of a PAL but it is necessary for uniformity with AVR)
- Modified matrix.c to use the above functions

* minor ifdef fix

* Rename of functions and docs

- Added documentation.
- Renamed functions according to Jack's spec.

* Massdrop fix

* Update matrix.c

* Update quantum.h

* Update quantum.h

* Update quantum.h

* Update internals_gpio_control.md
2018-09-28 12:33:11 -04:00
Drashna Jaelre
fa47f5fb15 Update to the Userspace documentation (#4005)
* Overhaul to Userspace Documentation

* Formatting issues

* Additionaly formatting fixes

* Add Readme info

* Additionaly Readme info

* Formatting fixes
2018-09-28 12:27:51 -04:00
Drashna Jaelre
8454fa5e9f Update Document Templates to reflect newer wording and URLs (#4006)
* Add pragma once info to contributing guidelines

* Fix links in readme template to match doc site

* Revert changes to contributing doc as somebody already changed it
2018-09-28 12:04:30 -04:00
Drashna Jaelre
9ade35a9fe Optimize size of USB_USB BLE Converter 2018-09-28 10:47:20 -04:00
Drashna Jaelre
ebc143297c Optimize size of Pearl keyboard 2018-09-28 10:47:05 -04:00
Drashna Jaelre
8847b2abbf Optimize size of Vitamins_Included keyboard 2018-09-28 10:46:47 -04:00
Drashna Jaelre
a4bdab6837 Optimize size of Hadron keyboard 2018-09-28 10:22:08 -04:00
Drashna Jaelre
31afdd81a1 Optimize size of JC65/v32a keyboard 2018-09-28 10:21:51 -04:00
Wilba6582
a173eda6d2 Improved dynamic keymaps (#3972)
* Improved dynamic keymaps

* K&R sucks
2018-09-28 00:09:14 -04:00
James Laird-Wah
b382076ad1 Keyboard: keyboardio model01: rgbmatrix support (#3989)
* model01: implement RGB matrix feature

LEDs can still be individually controlled if this is switched off.

* model01: use fast banked LED setting commands

* model01: update default keymap to use RGB matrix

* model01: update RGB matrix support to match common_features.mk

* rgb_matrix: include <string.h>

This was missing after commit 4d5705ea6c
which introduces a use of memset().

* model01: make g_rgb_leds weak

This allows users to override which LEDs are configured as
modifiers, or tweak the x/y coordinates, should they so choose.
2018-09-27 20:53:36 -07:00
Chiang Fong Lee
7d2d0c6795 split_common: fix backlight update for serial boards 2018-09-27 19:56:35 -07:00
Chiang Fong Lee
96c9ebc2e4 Revert "Split Common: Serial Backlight LED fix (#3586)"
This reverts commit 3eabd7946e.
2018-09-27 19:56:35 -07:00
Takeshi ISHII
baebbc0967 add 'mavrdude' target into tmk_core/avr.mk (#3986)
* add 'mavrdude' target into tmk_core/avr.mk

I made it a little convenient when writing the same binary to multiple Pro Micro.

* rename target name 'mavrdude' to 'avrdude-loop'

* modify docs/flashing.md about avrdude-loop

* mdify docs/flashing.md again

* modifi docs/flashing.md 3rd
2018-09-27 22:02:12 -04:00
Drashna Jaelre
edeace279b Make Audio Clicky's randomness a float
Rather than a define, but read from the define.  This way, a smart coder could externally configure the randomness, changing it on the fly

This is also a precursor step to adding full on support for configurable randomness.
2018-09-27 18:31:18 -07:00
Ethan Madden
246d539f29 Keymap: add clicky support to jetpacktuxedo keymap (#3990)
controlled by dip 3 with pitch modulated by the knob
2018-09-27 18:09:23 -07:00
Pekaso
a65085a893 Keyboard: [Fortitude60] LED fix and Serial improvement (#3982)
* arrangement Underglow

* modified serial function references from helix

* Remove defines (ws2812_*REG)
2018-09-27 18:06:19 -07:00
skullydazed
8ef747accf Treat too-large firmwares as an error, not a warning (#3956)
* Treat too-large firmwares as an error, not a warning

* switch the order of printing

* I think I have it

* adjust the formatting some more
2018-09-27 13:32:01 -07:00
Daniel Shields
8b2591c707 Keymap: Clean-up of dshields keymaps. (#3983) 2018-09-27 11:47:26 -07:00
Wilba6582
13e166d9c4 RAMA U80-A, wilba.tech WT60-A, WT65-A, WT80-A, IS31FL3736 driver (#3925)
* Initial commit of RAMA U80-A

* Initial commit of RAMA U80-A

* Moved IS31FL3736 driver, minor cleanups

* Superficial stuff

* Review changes

* Refactored to use common code.
2018-09-27 10:40:44 -04:00
James Laird-Wah
f70f45ee67 RGB Matrix refactoring to open up for new drivers (#3913)
* rgb_matrix: use a driver ops struct

This is intended to avoid #ifdef proliferation on adding more drivers,
eg. model01, which use different architectures.

* rgb_matrix: document driver struct members

* rgb_matrix: remove unused LED testing code

* rgb_matrix: don't build into IS31x drivers unless being used

* rgb_matrix: refactor make config options

This ensures that the necessary files are included for any custom
RGB_MATRIX_ENABLE value, without having to add entries here for specific
boards. This particularly affects model01 because its controller is
integrated and won't be used anywhere else, so it's preferable not to
put it in common_features.mk.

This now validates the value of RGB_MATRIX_ENABLE.

It was necessary to fix an error in ergodox_ez rules.mk using the wrong
comment separator, yielding an invalid value.

* IS31x drivers: don't write the control registers all the time

This is only needed when they are changed. This is done in init() and
board- or keymap-specific code is free to make further changes.

* rgb_matrix: move structs from chip drivers to rgb_matrix_drivers.c

This approach is specific to the rgb_matrix functionality, so keep it
neatly separated from the raw chip drivers.
2018-09-27 10:40:18 -04:00
MechMerlin
12ad59f99d Keyboard: Treasure Macropad (#3988)
* port macropad over to qmk

* add bootloader size
2018-09-26 22:09:05 -07:00
noroadsleft
ec0297027d Bugfix for 60_ansi_tsangan and 60_iso_tsangan layouts (#3987)
This corrects the matrix macro reference for both of the keymap.c files in layouts/default.
2018-09-26 19:19:38 -07:00
Florian Didron
c7ce0d21dc Moves animation calculation logic out of the for loops 2018-09-26 21:16:09 -04:00
mtdjr
96648a133d Keymap: mtdjr userspace changes and Nyquist keymap addition (#3940)
* holefully correct error in mtdjr userspace for layer_state_set_user

* return state and wrap rgb actions in their own conditional

* mtdjr nyquist and userspace updates

* mtdjr updates as requested
2018-09-26 12:23:30 -07:00
MechMerlin
dbdbbbd5c9 Keyboard: Refactor XMMX keyboard to XMMX and Toad (#3955)
* pull out toad keyboard and get it compiling

* refactor xmmx

* use the correct LAYOUT macros

* move LED code out to toad.c file

* move LED code out to xmmx.c file

* adjust for correct number of columns and pins used

* remove led set user
2018-09-26 12:17:54 -07:00
Kosuke Adachi
e2eee47e20 Keyboard: Crkbd stands for Corne Keyboard, not helidox (#3985) 2018-09-26 11:13:19 -07:00
Konstantin Đorđević
722f06ff8c Keymap: Update whitefox/konstantin keymap (#3980)
* Rename constexpr keymap folder to konstantin

* Replace numpad comma with Unicode comma

* Rename tap dance constants

* Move record->event.pressed check into switch

* Use RShift as a dedicated Fn key
2018-09-26 11:08:56 -07:00
KOBAYASHI Daisuke
f3551747b3 Keymap: Add Koba's keymap for Ergo42. (#3965)
* Keymap: Add Koba's keymap for Ergo42.

* Fix: Remove unnecessary #define.

* Fix: Rename readme files to lowercase.
2018-09-26 11:04:31 -07:00
Savio Fernandes
7f1268f35e Keymap: add artbycrunk iris layout (#3964)
* version 1

* version 1.1

* version 1.2
2018-09-26 11:03:42 -07:00
Daniel Shields
4d5705ea6c Add new RGB matrix effect digital rain aka The Matrix 2018-09-26 12:21:49 -04:00
holtenc
627ee050b4 Keyboard: Remove BACKLIGHT BREATHING as default config for Prime Keyboards (#3979)
* initial commit

* Update readme.md

* Update keymap.c

added comment for description of function to control LED as layer indicator

* corrected formatting as requested.

* format for configurator

* corrected info.json to propertly reflect layout in Configurator

* updated layouts to reflect physical keyboard

* comment out BACKLIGHT BREATHING in config.h
2018-09-25 15:48:01 -07:00
wanleg
223081bf2b Keymap: 4x4 pro micro (#3976)
* 4x4 - pro micro version

* pro-micro setup on 4x4

* tap dance LCTL/RESET key

* remove test file

* more research

* revert a couple un-intended edits

* opt_defs version of adding custom rules.mk variables

* cleanup

* cleanup

* cleanup

* cleanup

* layout edits

* layout edits

* keymap edit

* numpad layout change

* got tap dance layer-switch working

* keymap changes

* temporary revert

* restore previous settings

* misc fixes

* layer order change

* fix layout matrix

* Update tapdances.c
2018-09-25 15:39:41 -07:00
Alexander Kagno
61f9541066 Keymap: Velocikey implemented at userspace, readme is more helpful (#3974)
* deleting arkag branch, forcibly moving changes over to master

* fade_color function added, not tested

* added half functions some stuff

* surround_type function implemented and working.

* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes

* added a fade state machine and functionality

* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout

* changes to sleep breath function, changed how I will switch to HALMAK

* support for halmak added

* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid

* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.

* reformatted some if statements in state detection

* changes to force fade to pause on boot, or plug in.

* Attempting to move over to userspace, pushing to repository for help

* userspace stuff....

* userspace stuff....

* layout changes, working userspace,

Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY

* Layout change

Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.

* Removed excessive tabs in files

* Moved mods on homerow around...

* changes recommended by @drashna

* removed homerow mods, more flashy lighting!

* changed delays for lighting.

* velocikey code retro fit into userspace to match typing speed

currently "working" but isn't as reactive as I want.

* Readme and other documentation hidden throughout code

* Added a pretty picture

* pretty picture actually added

* More readme updates

* Velocikey now working inside my userspace!

* Changed repo macro and fixed readme

* Removed media layer, moved media control to LAZY layer

* fixed more merge issues when I had to merge...
2018-09-25 15:38:04 -07:00
johanntang
118e948e35 Keyboard: added mehkee96 support -JT (#3957)
* added mehkee96 support -JT

* making requested changes -JT

* fixes -jt

* fixed info.json -JT

* tidy up info.json comments from noroadsleft -JT
2018-09-25 15:23:31 -07:00
takashi kono
6347a654de Keymap: Ergo42: biacco-winjp (#3935)
* create: biacco jis keymap for windows for Ergo42

* fix: biacco-winjp: change #ifndef to #pragma once.

* fix: following: 3935#pullrequestreview-157941685
2018-09-25 15:18:11 -07:00
Jack Henahan
2b23072c34 Pin avr-gcc in shell.nix pending release of 8.3.0 (#3922)
* Pin avr-gcc in shell.nix pending release of 8.3.0

There's apparently a critical bug in 8.2.0, which is now the nixpkgs default. This change overrides that default in favor of the known good version. Once 8.3.0 is the default, the override can be dropped.

* Arch/Manjaro fix
2018-09-25 15:16:35 -07:00
BenRLewis
9dc19fdb6d Keymap: FollowingGhosts v60r layout (#3926)
* First version of FollowingGhosts' custom layout

* Added copyright etc.

* Fixed readme and added space cadet shift

* Moved from RGB to HSV, updated readme and added media keys

* Updated pragma

* Added play/pause and updated config

* Added pragma back
2018-09-25 15:11:11 -07:00
Ethan Madden
a54f09d4f3 Keymap: jetpacktuxedo planck keymap (#3896)
* added my planck keymap

based on a blend of my minivan keymap and the planck default keymap.

* moved pipe to better match minivan keymap

* updated as per @drashna

also moved my keymap a bit after adding the quad encoder and underglow
(which doesn't even work on arm right now lol)

* a few smaller tweaks
2018-09-25 15:06:48 -07:00
Drashna Jaelre
a0309db983 Add On/Off keycodes 2018-09-25 13:28:36 -07:00
Drashna Jaelre
cfb1b353ee Add functions so you can configure programatically 2018-09-25 13:28:36 -07:00
Drashna Jaelre
e72e4b6920 Store Clicky status in EEPROM 2018-09-25 13:28:36 -07:00
MechMerlin
b7e25f9ec4 Keyboard: DZ60 Bug: layout_directional is shifted to the left by one (#3978)
* layout_directional is shifted to the left by one

* forgot to adjust the physical layout
2018-09-24 20:39:17 -07:00
noroadsleft
9012f4c2e0 Keyboard: Crkbd: Configurator support and readme formatting (#3971) 2018-09-23 20:50:08 -07:00
noroadsleft
07d317ab88 Keyboard: Crkbd: move I2C and Serial defines to keyboard's config.h (#3970)
* Crkbd: move I2C and Serial defines to keyboard's config.h

per @drashna on Discord

* Crkbd: remove misleading comment re: I2C and Serial

USE_I2C and USE_SERIAL are usually a "one or the other"-type deal, but this keyboard uses both.
2018-09-23 18:47:43 -07:00
listofoptions
ce057ea474 Keyboard: HP 46010A converter (#3967)
* funged git history, restarting

* tested and working (message typed on this)

* updated documentation to include wiring directions

* formatting

* updated matrix and default layout a bit

* getting ready for merge into main repo

* getting ready for merge into main repo v2

* cleaning

* cleaning repo of extranious files

* updated documentation
2018-09-23 18:46:53 -07:00
Luca
58b9b22670 Circuitry sample for PS/2 Mouse (#3959)
Added a sample circuitry for handling the connection of a PS/2 Mouse.
    Even if it's written that a circuitry is needed, there're a lot of other
    things and the information gets lost really fast. A really simple sample
    helps to remember who wants to implement the functionality about the
    circuitry.
2018-09-23 13:49:17 -07:00
MechMerlin
57ec309d3e Keyboard: Panc60 (#3961)
* initial check in

* figure out the column pins

* temporary keymap

* guess the row pins

* fix matrix.c compilation errors

* use the LAYOUT_60_hhkb macro and tweak the keymap a little bit

* update readme

* Put my name everywhere

* Add QMK Configurator support

* figured out the row pins

* update readme to have reset info

* Fill in some blanks that are documentation related

* Update matrix.c

* add kb functions

* forego kbfirmware labeling

* add arrows and caps lock to function layer.

* add a LAYOUT_60 and LAYOUT_all macro

* missed a comma

* add configurator support for the two new LAYOUT macros

* Jack helped me with a new custom matrix

* add 60_ansi into rules.mk
2018-09-23 13:48:48 -07:00
Alexander Kagno
35e76539e7 Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master

* fade_color function added, not tested

* added half functions some stuff

* surround_type function implemented and working.

* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes

* added a fade state machine and functionality

* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout

* changes to sleep breath function, changed how I will switch to HALMAK

* support for halmak added

* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid

* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.

* reformatted some if statements in state detection

* changes to force fade to pause on boot, or plug in.

* Attempting to move over to userspace, pushing to repository for help

* userspace stuff....

* userspace stuff....

* layout changes, working userspace,

Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY

* Layout change

Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.

* Removed excessive tabs in files

* Moved mods on homerow around...

* changes recommended by @drashna
2018-09-22 08:43:28 -07:00
Danny
747cf78b5d Add nano keymap for modding Spooka light (#3953) 2018-09-20 15:37:18 -07:00
Jumail Mundekkat
99c1c5bfe9 Keyboard: Added Prime_L, Prime_O and Prime_M, moved Prime_R into primekb folder (#3907)
* Added template copies for prime_l
Added first set of files for prime_m and prime_o
Temporarily storing kbfirmware dumps in tmp

* Completed base for prime_m, prime_o and prime_l
Moved prime_r into primekb folder

* Added in QMK Configurator layout files for new PrimeKB keyboards
Slight modification to layout header files
Added my name to licensing

* Updated primekb readmes

* Removed temporary working files

* Updated default keymap for Prime_O

* Added link to Newbs Guide in prime_r readme
2018-09-20 15:36:11 -07:00
Danny
cfdc23bbae Keyboard: Add Quefrency 65 support in configurator (#3950)
* Fix Quefrency configurator layout to support new key added

* Add configurator support for Quefrency 65
2018-09-20 08:00:18 -07:00
Simon Dagfinrud
4c22e92ce8 Keymap: Fix tada68:iso-nor to match latest ISO_layout (#3946) 2018-09-19 16:34:08 -07:00
Daniel Shields
6cab514036 Keymap: Initial commit of dshields keymap for the model01 keyboard. (#3942) 2018-09-19 16:33:00 -07:00
MechMerlin
5b4bcfa7f2 Keyboard: Move Bathroom Epiphany boards into its own directory (#3936)
* make bpiphany directory with simple readme file

* move unloved_bastard to bpiphany directory

* move frosty_flake to bpiphany directory

* move pegasushoof to bpiphany directory

* move tiger_lily to bpiphany directory

* add a little more info to readme

* move kitten_paw to bpiphany directory

* update make instructions

* update intro text

* add missing routines to matrix.c of unloved_bastard

* add missing routines
2018-09-19 16:25:58 -07:00
Rys Sommefeldt
14be5258a6 Keymap: rys Tada68 ISO UK layout (#3934)
* rys Tada68 ISO UK layout

* Bring _FL more in line with my favoute WhiteFox layout

* Whoops, fix - to _

* remove empty config.h

* Remove legacy block
2018-09-19 16:23:23 -07:00
holtenc
2bdeccd7ba Keyboard: Add Prime_EXL prototype to 'handwired' (#3932)
* initial commit

* Update readme.md

* Update keymap.c

added comment for description of function to control LED as layer indicator

* corrected formatting as requested.

* format for configurator

* corrected info.json to propertly reflect layout in Configurator

* updated layouts to reflect physical keyboard
2018-09-19 16:20:36 -07:00
Anthony Wharton
334e2629df Remove redefinition of _______ in documentation example (#3924)
* Remove redefinition of `_______` in documentation example

* Slight rewording to include purpose of defintions

* Update include to newer macro
2018-09-19 16:18:15 -07:00
itsdrdick
77433b1a31 Keyboard: Add evil80 keyboard (#3921)
* Add evil80 keyboard

* Delete rules.mk

* Update config.h

* Update keymap.c

* Update keymap.c
2018-09-19 16:16:18 -07:00
Mat Greten
14f691d2a7 Keymap: meagerfindings ergodox (#3920)
* initial commit

* updating after review
2018-09-19 16:15:13 -07:00
Joe Wasson
c23233f41a Keymap: Talljoe's keymap for oddball keyboards (#3910)
* Create layout for JD45

* Tweak layout to better support JD45 and add more tap dancing.

* Add Maltron and tweak layout for 40% enter compatibility.

* Switch back to `BL_TOGGLE` for backlight.

* More tweaks

* Rename talljoe_gherkin to talljoe-gherkin

* Make NAV layer tab C_S_T also.

* Add missing RESET key.

* Add Talljoe layout for minivan.

* MTI is not for me

* Tweak keymap.

* Add talljoe keymap to Atreus.

* Minor tweaks.

* Fix talljoe keymaps to work with new Zeal60 commit.
2018-09-19 16:13:58 -07:00
Simon Dagfinrud
71fe973190 Keyboard: Add ISO-NOR keymap for TADA68 (#3944) 2018-09-19 11:42:58 -07:00
skullydazed
92f67719cc Keyboard: Fix the LAYOUT_iso macro for tada68 (#3943) 2018-09-19 11:41:40 -07:00
nachie
23da333ae3 Keyboard: Added support for GSKT-00 (#3911)
* Added QMK support for GSKT-00, PaladinSplit, PaladinTKL and PaladinPad pcbs

* Remove the paladin boards from this PR

* Changed gskt00 as per review comments. Added two new default layouts, 60_ansi_tsangan and 60_iso_tsangan

* Fix the layouts/default/60_iso_tsangan/layout.json file

* Removed ? from rules.mk, removed unused fn_actions from keymaps. Changed the 60_iso_tsangan to work correctly

* Removed PREVENT_STUCK_MODIFIERS
2018-09-17 16:00:40 -07:00
James Laird-Wah
03b8ce206d Keyboard: add Keyboardio Model 01 (#3900)
* Keyboard: add Keyboardio Model01

This port implements key scanning and everything in their default
keymap.

It doesn't implement mouse warping; QMK can't do that (yet).

LED control is mostly not implemented. The ability to set all LEDs is
included because they can get stuck on coming from the bootloader
otherwise. Single LED control is also implemented for numpad indication.
The scanners also support batch LED transfer which is what you'd need if
you wanted to do fast effects. Gamma correction is also not implemented,
but is present in the original firmware. The necessary info for further
implementation is in the KeyboardioScanner module for Kaleidoscope.

To install on your keyboard:

    make model01:avrdude

When prompted, hold the "prog" key on the keyboard to put it into
programming mode. This can also be achieved by holding the "prog" key
while plugging in the keyboard. This works even if the firmware is
corrupt or missing.

Hot plugging the halves seems to work fine, but there is no explicit
support for eg. making sure the matrix scan rate is reconfigured.

* model01: clean up includes and include guards

Uses #pragma once everywhere.

* model01: split LED and matrix code

This makes space if someone wants to implement better LED support
later on, the keyboard is a lot more capable than the current code.

* model01: separate I2C timeouts for matrix vs. LED

If the scanners have no data they don't ACK reads and just time out.
So we want a pretty short timeout to keep scan rates high.

Meanwhile the LED transfers might take longer - I don't know though,
so here we are conservative.

* model01: implement better LED control

- gamma correction from the manufacturer's firmware
- suitable delays to allow back to back LED writes
    - this is fast enough to write the whole keyboard without noticeable
    delay, in my experience
- minor bug fix: RHS Fn key was not addressable

* model01: add license to wire-protocol-constants.h

* model01: replace gamma LUT

The original was of unclear license origin. This one is functionally
identical and includes a generator should people wish to adjust it.

* model01: use the already-present CIE1931 lightness curve

...rather than baking in another gamma curve.

It's said that CIE1931 is the right thing to be using rather than gamma.
OK. Let it be so.

* model01: call matrix_init_user() from matrix_init_kb()

* model01: remove inapplicable config options from rules.mk

* model01: readme.md: update build environment links
2018-09-17 15:49:20 -07:00
Merlin04
ec64be6622 Keyboard: Fix pin numbers for Fractal keyboard (#3743)
* Added support for the Fractal keyboard

* Try to fix the issue

* Add support for the Fractal keyboard.

* Fix errors with files

* Update config.h
2018-09-17 15:18:19 -07:00
Olivier Poitrey
cb8d352cb3 Keymap: dz60/macos_arrow: fix rev3 broken media layer (#3928)
Last rev broke the media layer because of a typo in layer definition.
Switched to an enum to avoid similar future typos.
2018-09-17 15:10:00 -07:00
Joe Wasson
a6d1db2c27 Create AG_TOGG code to toggle Alt/Gui swap. 2018-09-17 15:04:22 -07:00
dsissitka
244e1c5a57 Fix LEADER_KEY docs.
LEADER_KEY needs to be set in config.h, not keymap.c. Credit goes to @randywallace for figuring this one out:

https://github.com/qmk/qmk_firmware/issues/2514#issuecomment-384847485
2018-09-17 14:38:06 -07:00
Pascal Greilich
3f680a93eb Keyboard: Tada68 readme img (#3918)
* a new planck layout

* layout images

* layout images 2

* typo

* update include following PR comment

* updates following PR commments 2

* updates following PR comments

* layout images

* better layout names
2018-09-17 14:09:41 -07:00
Anthony Wharton
ed2dd3b59c Keyboard: Add YMD96 instructions for Linux + Backlight Fixes (#3908)
* Add flashing instructions for Linux

* Make device/manufacturer name consistent for ymd96

* Disable command mode by default for YMD96

* Add function call to fix backlight for YMD96

* Add personal YMD96 config

* Replace include with QMK macro

* Move KEYMAP macro to keymap-level folder

* Move custom KEYMAP macro to global LAYOUT_iso macro

* Change transparent keymappings to global definition

* Remove unecessary import and change to pragma once

 - (instead of repeated ifdef)

* Remove global keymap/layout definition
2018-09-17 13:55:49 -07:00
wanleg
fe3bfd91c1 Keymap: Big switch config (#3904)
* bigswitch keymap

* bigswitch keymap

* bigswitch keymap

* bigswitch keymap

* recommended edits made

* forgot to revert this change with the others
2018-09-17 13:41:59 -07:00
Joe Wasson
743449472e Make PREVENT_STUCK_MODIFIERS the default (#3107)
* Remove chording as it is not documented, not used, and needs work.

* Make Leader Key an optional feature.

* Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE`

* Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
2018-09-17 13:48:02 -04:00
omkbd
b65e214375 Keyboard: add ergodash mini keyboard (#3901)
* add ergodash mini

add ergodash mini (4rows version)
fix keymap and readme

* fix

replace include guard
remove includes

* fix audio
2018-09-15 10:57:46 -07:00
Olivier Poitrey
6bf2c07715 Keymap: dz60/macos_arrow: rev3 (#3909)
* Arrow keys are now arranged on hjkl (vi style)
* The escape key is moved on capslock, shared with func layer switch
* The grave key is now dedicated (not shared with escape)
* Add a new numpad layer that can be activated with the spacebar
* Fix layout mismatch between layers
* Use bult-in underscore KC_TRNS alias
2018-09-15 10:50:38 -07:00
Pascal Greilich
232ef75783 Keymap: A new alternative layout for planck (#3894)
* a new planck layout

* layout images

* layout images 2

* typo

* update include following PR comment

* updates following PR commments 2

* updates following PR comments
2018-09-15 10:15:36 -07:00
Naoki Katahira
9712501bf3 Keyboard: Add Lily58 Keyboard (#3893)
* add Lily58

* file fix
2018-09-15 10:14:39 -07:00
Graham P Heath
db35065e14 Keymap: Grahampheath: telophase fix and keymaps (#3888)
* add my config

* fix backlight, clean up that code

* group background code, restore static var

* qwerty is supposed to be in the middle

* wrap layer change backlight in ifdef

* backlight levels and some more 'emojis'.

* Restructure to make it possible to press cmd ent on the right side of the board with one hand.

* Expose the period through the number layer. Add Hyper keys to mouse layer

* reduce mouse speed

* add a : -P  key

* Thumbs up and down, remove some keys that are duplicated via function keys, clean up

* fix build issues

* add various emoji

* duplicate default Meira keymaps

* Miera updates

* add documented but unmapped emoji

* Sound for the Meira, was stumped by a file size! Thanks drashna!

* add docs

* docs

* revert lib changes...

* clean up

* clean up

* remove make file

* Fixes missing key

* clean up

* add my lets split

* add more emoji

* add the telophase board (unofficially, I guess...)

* add missing files

* add/reset files

* Review feedback implementation: Not needed. Add #define FLIP_HALF to your config.h file instead.

* Review feedback implementation: All of these includes should be replaced with #include QMK_KEYBOARD_H.

* Review feedback implementation: [FAILING] You may want to use LAYOUT_ortho_4x12 instead, and move this to /layouts/community/ortho_4x12/ instead. That way, you can use the same keymap for all of the boards.

* clean up

* add a key for command tilde (osx loves it)

* at least its building again

* remove adjusts and migrate layer switching to MO(_LAYER)

* update the telophase readme

* update the telophase readme

* grahampheaths -> grahampheath

* ONEHAND_ENABLE -> SWAP_HANDS_ENABLE

* convert lets split to use ortho_4x12

* Move lets split keyboard layout into community/ortho_4x12

* make telophase use LAYOUT()

* I did it?!

* Add clap and grin

* swap tabs and back and forward

* whitespace

* Add ellipsis and thanks emoji

* Move flip_half to telophase config (conflicts with lets split layout)

* Use #pragma once instead of config_user_h

* remove unused stuff
2018-09-15 10:12:11 -07:00
James Laird-Wah
b1f11636c6 docs/contributing: add #pragma once to Coding Conventions
This supersedes the older include guard mechanism since all the
compilers now support it. It's easier for new users and less prone
to error.
2018-09-15 09:37:06 -07:00
Wilba6582
48a992f1c0 Zeal60/Zeal65/M60-A implementation (#3879)
* Initial version of zeal60

* WIP

* Fixes issue #900

* Adding RGB underglow functionality.
Fixed a compile-time conflict caused by enabling RGB underglow functionality.

* Refactor RPC protocol

* Fix last merge

* README for RGB underglow updated.

* Additional README changes.

* Adding RGBW strip software-based current-limiting functionality.

* RGBW current-limiting functionality should be handled by RGBSTRIP_MAX_CURRENT_PER_LIGHT instead.

* Updated README to reflect implementation of built-in current limiting.

* Keymap readability improvements.

* Minor keymap improvements.

* Fixed LED driver init sequence, formatting

* Dimming implementation tested, working.

* Stab LEDs synced with spacebar hits in effects.

* RGB underglow tested and functional. Simplified README for RGB underglow.

* Undid accidental file deletion from previous merge conflict. Safer values for RGB underglow.

* Improved arrow key positions in keymap.

* Added functionality to correct uneven RGB underglow. Refactored related code.

* Reverted to safer values for underglow.

* Changes for v0.3

* Custom LED brightness scaling will take place after current adjustment in order to avoid being overridden.

* Create keymap.c

Added split backspace and split shift to ISO layout

* Create config.h

Turned on LEDs for new layout

* Fixed bug where left spacebar stabilizer LED (LC06) would adopt color of row above.

* Added hhkb_wilba keymap

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Added indicators, full param setting via host

* Added "mousekey" layout

* Added Zeal65 support, factory test mode

* Keycode safe range changed, caused bugs

* Bumped EEPROM version due to change in QMK keycodes

* Disable HHKB "blocked" LEDs if KC_NO in keymap

* Added "disable_hhkb_blocker_leds"

* Required overridden function for keymaps in EEPROM

* Added polar coordinate mapping, effect speed

* Force Raw HID interface number to 1 always

* Fixed last merge from master

* Added effect speed to default keymaps

* add BACKLIGHT_ prefix to vars

* add BACKLIGHT_ prefix to vars

* Keymap speed effect; keymap improvements/fixes
Readme updated to match changes

* Refactored to use common IS31FL3731/I2C drivers

* Fixed make rules, backlight disabled feature

* Make split rightshift default for Zeal65

* Added M60-A as a "version" of Zeal60.

* Renamed IS31FL3731 driver functions

* Fix suspend_wakeup_init_kb() being defined twice

* First pass refactor dynamic keymaps

* Updated to changed I2C and ISSI drivers

* Refactor zeal_color.* usage to quantum/color.*

* Updated Zeal65, fixed dynamic_keymap

* Major refactoring of Zeal60 backlight and API

* Lots of little cleanups

* Added readme.md

* Added readme.md

* Added LAYOUT_60*() macros, refactored and cleaned up default keymaps

* Fix compile error in suspend.c

* Added Zeal65 LAYOUT macros, info.json

* Added rama/m60_a, deleted zeal60/keymaps/m60_a

* Fixed rama/m60_a/keymaps/proto

* Fixed compilation error for suspend.c

* Requested changes for PR

* Fixed readme.md images

* Another readme.md fix

* Added drashna's requested changes
2018-09-13 14:37:13 -04:00
MechMerlin
170de1273c Add an easy way to create new keymaps for your favorite keyboard (#3868)
* initial commit of keymap creation script

* create default keymap

* pass shellcheck

* provide a better usage message

* change printf string to more accurately reflect the path

* make it more easily understood

* found another typo

* add documentation regarding the new_keymap script

* enforce lowercase for userinputs
2018-09-13 11:22:05 -07:00
Takeshi ISHII
6d6d91c834 rgblight.[ch] more configurable (#3582)
* add temporary test code rgblight-macro-test1.[ch]

* rgblight.h : mode auto numberring and auto generate mode name symbol

No change in build result.

* rgblight.c use RGBLIGHT_MODE_xxx symbols

No change in build result.

* quantum.c use RGBLIGHT_MODE_xxx symbols

No change in build result.

* fix build break. when RGB_MATRIX_ENABLE defined

* add temporary test code rgblight-macro-test2.[ch]

* modify rgblight_mode_eeprom_helper() and rgblight_sethsv_eeprom_helper()

* modify rgblight_task()

* configurable each effect compile on/off in config.h

* update docs/feature_rgblight.md

* fix conflict. docs/feature_rgblight.md

* remove temporary test code rgblight-macro-test*.[ch]

* fix comment typo.

* remove old mode number from comment

* update docs/feature_rgblight.md about effect mode

* Revert "update docs/feature_rgblight.md about effect mode"

This reverts commit 43890663fcc9dda1899df7a37d382fc38b1a6d6d.

* some change docs/feature_rgblight.md

* fix typo

* docs/feature_rgblight.md update: revise mode number table
2018-09-13 10:24:09 -07:00
MechMerlin
ce122c4981 Keyboard: Shuffle keyboards into thevankeyboards directory (#3895)
* move tv44 to thevankeyboards directory

* move bananasplit to thevankeyboards

* move roadkit to thevankeyboards directory

* add a basic readme

* update readmes to correct the make instructions and add more help text

* rename tv44 to minivan as per Jack's suggestions

* update readme

* rename tv44 to minivan

* update tv44 to minivan

* change includes for tv44 to minivan

* remove extra includes
2018-09-13 09:40:43 -07:00
MechMerlin
cd3518b802 Keyboard: Reorganize Alf keyboards into Alf Directory (#3892)
* rename alf_x2 to alf

* rename to x2

* rename dependencies

* Fix readme

* moved x2 into alf directory

* update readme for make instructions

* move dc60 to alf directory

* update dc60 readme for make instructions

* change readme txt as per noroadsleft PR comment
2018-09-13 09:21:02 -07:00
blindassassin111
7ff4faf3be Keyboard: Fixing Omnikey lock light issue (#3891) 2018-09-13 09:19:37 -07:00
patrickmt
b8a0d3de3d Keyboard: ALT keymap update and LED driver brightness mismatch fix (#3890)
* ALT keymap update

Added additional End key on layer 1 to match key cap

* LED driver update addressing PR #3871

Update sync between IS31FL3733 drivers is causing varying behavior in keyboards including brightness mismatch and slight flicker at very low rgb values. Visually, disabling sync is not noticeable. Ref PR #3871 by guarnacciaa.
2018-09-13 09:17:26 -07:00
Stephen Tudor
132c44bab1 Keymap: Fix Dvorak mapping for left/right brace (#3889) 2018-09-13 09:16:39 -07:00
lucwastiaux
87faf55b01 Keymap: Cleanups on the ergodox EZ / atreus dvorak 42 key layouts (#3887)
* add SCREEN_NAV layer for copy/pasting within screen

* working readreg/paste macros

* working read reg / paste macros

* write log and tran patterns, and expand

* add ls -la shortcut, add tab on combined layer

* put delete word on the right pinky key on shell_nav layer

* add TAB on the right side, add reset key

* added Cloud9 macros

* add cloud9 shortcuts to atreus layout

* added BROWSER_CONTROL layer

* finalized browser control layer

* adding comment

* add browser control layer to atreus

* add flashing command line

* remove the tab on combined layer

* remove the tomouse

* remove mouse layer, change log/tran expand patterns, cleanups

* add dumptlog macro

* add "delete to home" shortcut

* fix conflict

* remove unneeded mouse layer

* add meh shortcuts on the browser_control layer

* add/modify some macros

* explain the various layers

* putty paste is right mouse button
2018-09-13 09:12:03 -07:00
Erovia
f1612b7fa1 Keymap: Add Contra keymap with QWERTY and COLEMAK Mod-DH (#3883)
* Add own personal Contra layout

* Enable auto-shifting

* Enable tap dancing and implement Space Cadet-like shift with LSHIFT and ENTER

* Implement Colemak Mod-DH layout, clean up Adjust layer

* Implement keyboard and keymap refactor

More info: https://github.com/qmk/qmk_firmware/pull/3191

* Update the readme.md and keymap.c files for Colemak

* Add include guard, make layout description cleaner
2018-09-13 09:07:21 -07:00
noroadsleft
5dd4b2af53 Keyboard: Updated info.json for Duck Jetfire (#3866)
* Updated info.json for Duck Jetfire

Generated a new info.json file. @mechmerlin asked my help in debugging this file. Firmware works as expected if built from source, but not if built from the Configurator.

* Corrected the position of the arrow keys in LAYOUT_all
2018-09-13 09:04:55 -07:00
Xyverz
7551e0bbc7 Keymap: Fixed my ortho_5x12 layout (#3881)
* Fixed my ortho_5x12 layout

I've fixed the config.h file for my 5x12 ortho layout so that I can
now use it with my Nyquist.

* Update config.h

* Update config.h
2018-09-11 14:22:18 -07:00
Drashna Jaelre
32ff7be266 Fix RG Sleep issues for Teensy Controllers
Appearenly, teensy controllers have some issues with waking up.  If the rgblight is called "too soon", it will cause the controller to lock up, intermittently. Adding a 10 ms
delay seems to fix this issue, as it lets it have enough time to handle things properly.

This has been tested extensively on my Ergodox EZ, and can be seen in the @drashna userspace, under the "suspend_wakeup_init_user" function.
2018-09-11 13:05:17 -07:00
Dean Camera
df8e417032 Fix mismatched aliased event and event stub function prototypes. 2018-09-11 12:52:57 -07:00
Dean Camera
c7e1b53913 Remove unneccesary ATTR_CONST from stub functions (thanks to NicoHood). 2018-09-11 12:52:57 -07:00
Miguel Garcia Rodriguez
e9a67f8fde Fix installation for linux finding ID:fedora in os_release 2018-09-10 20:52:34 -07:00
Thomas Vandaele
265eca0f7c Add manjaro asn arch-based distro 2018-09-10 17:55:46 -07:00
leico
2e0c63e0af improve looks like hang up when first time execute make git-submodule (#3846) 2018-09-10 16:21:54 -07:00
Jeremy Herve
e11e4a91ac Keymap: Redox: add a new Colemak keymap, macOS oriented. (#3861)
* Add my own keymap to the list of available Redox keymaps.

This keymap is a Colemak keymap, and is meant to be used on Mac OS.
More information can be found in the readme.

* Fix "macOS" typo and remove mention of the license.

This directory inherits the project's license.

* Add missing custom keycode.

* Address feedback from PR review

- Remove deprecated code
- Remove RGB logic since it is overwritten by code running later.
2018-09-10 07:39:05 -07:00
Peter Nguyen
7d8f680b50 Fix typo in keymap_swedish.h (#3877)
* Fix typo in keymap_swedish.h

* Update keymap_swedish.h
2018-09-09 19:49:26 -07:00
sK0pe
63852e7a68 Keymap: Adjusted keymaps for standardisation (#3874)
* Added HHKB with 7U space bar
There are backlight changers on the function Z, X and C, mediat controls
have been removed.

* Fixed the default layout and added a keymap
GUI and ALT keys were swapped.
My own keymap which adds calculator, removes power, removes eject.

* Adjusted naming convention of hhkb layout layer

Fixed as per required from code review.

* Updated for qmk configurator

I didn't realise that there was a new standardisation across all the keymaps to accommodate the configurator.

Hopefully fixed now.
2018-09-09 19:47:14 -07:00
MechMerlin
fa1e674bbb 65% and 68 key community layouts (#3872)
* rename 68_ansi layout to 65_ansi layout

* more renames and readme change

* add company names

* add community layouts for 68_ansi

* add 68_ansi support for mf68 type boards

* update readme
2018-09-09 19:45:59 -07:00
Damien
7b8e5d4555 Keymap: Updated my FC660C config (#3870)
* - Fixed DK60 version in config.h

* - Updated dk60 readme with new QMK rules

* - Fixed wording in readme

* Added dbroqua layout for DZ60

I've also updated dz60.h to add "true HHKD" keymap definition (6U
spacebar).

With the default HHKB definition r_alt was not mapped and when I pressed
r_menu it was r_alt.

Regards

* Updated dbroqua layout for HHKB keyboard

Added default configuration and alternate (swap gui/alt keys).

Save user choice in keyboard memory (like plank, thanks for this
feature!).

* Added dbroqua layout for Iris keyboard

* Updated layout and fixed includes

* Added personal layout for FC660C

* Inverted ESC & GRV
2018-09-09 19:43:45 -07:00
Danny
3dbdfbd99a Add support for a different pinout on Split boards (#3869)
* Add support for a different pinout for the right half of a split keyboard (number of cols/rows still has to be the same)
2018-09-09 19:42:46 -07:00
noroadsleft
38c916a368 Keyboard: Updated readmes for 1upkeyboards (#3864)
Corrected the make examples by adding the parent directory.

Updated the QMK Docs links for the build environment setup and the make instructions. Added links to the Newbs Guide.
2018-09-09 19:33:30 -07:00
Yasuhiro Shimizu
93b5c98fbb Keymap: remove unnecessary readme from my helix keymap (#3860) 2018-09-09 19:23:24 -07:00
Josh
17fffc3a51 Keymap: Initial PR for contributing my ortho_4x12 community layout. (#3853)
* Initial keymap with no BL and with Ctrl and Enter on the home row.

* Removing alternative layouts (Dvorak etc.).

* Putting Enter back in the default position, moving Esc next to Alt.

* Replacing grave with del.

* Adding a numpad layer.

* Adding operators and a triple zero to the numpad layer.

* Swapping Alt and Win.

* Updating to use new audio macros.

* Removing numpad layer and changing left space to MOD_HYPR on hold.

* Adding configurable 'clicky keys' feature.

* Cleaning up clicky conditional logic.

* Turning on backlight support and mapping backlight keys in the adjust layer.

* Enabling backlight functionality.

* Adding Adventure time theme song; increasing fake clicky randomness.

* Cleaning up layer constants in my Planck keymap.

* Initial implementation of porting my Planck keymap to a Let's Split.

* Updating keyboards/planck/keymaps/josh to use declarations from new work on master.

* Updating keyboards/lets_split/keymaps/josh to use declarations from new work on master.

* Work in progress migrating Planck and Let's Split keymaps to a community keymap.  Everything is working but Planck backlight.

* Fixing rules.mk to enable backlight & audio correctly on Planck PCBs.  Cleanup.

* Tweaks to get Let's Split working with my community layout.

* Switching to use EE_HANDS in my Let's Split build.

* Adding vitamins_included makefile options to my ortho_4x12 layout.

* Fixing planck/rev6 build -- backlight must be disabled.

* Removing I2C from my rules.mk and addressing it in the config.h instead.

* Moving community layout directory to my reddit username.  :D

* Adding a test encoder function; making lower left a media key and moving esc to a mod tap on ctrl.

* Commenting out -flto in the compiler flags for the vitamins_included keyboard (couldn't figure out how else to turn it off).

* Changing rotary encoder to control media volume.

* Changing backlight and clicky defaults to max brightness no breathing and a low pitch click.

* Initial implementation of backlight flickering.

* Updating my README.md

* Adding LINK_TIME_OPTIMIZATION to the vitamins_included/rev1 as a rules.mk feature.

* Reverting keyboards/vitamins_included/rules.mk to master and using 'filter_out' in my layout instead.

* Adding tested boards to the readme for my layout.

* Per drashna, removing redundant clicky implementation and cleaning up headers.

* Removing an extra include from my keymap.
2018-09-09 19:09:53 -07:00
patrickmt
e68c8f2ac6 Keyboard: CTRL LED scan code mapping fix (#3867)
* CTRL LED scan code mapping fix

Fixed scan codes to properly align with key wiring

* Update scan codes for caps and scroll lock lighting

Update scan codes for caps and scroll lock lighting according to previous scan code mapping update
2018-09-07 14:22:12 -07:00
Danny
7f7c278c3e Keyboard: Add support for Quefrency 65% right half (#3865)
* Add support for Quefrency 65% right half

* Add support for additional thumb key on Rev. 1.1 PCB
2018-09-06 12:49:13 -07:00
TheOneTrueTrench
e0c9f1d9b9 Keymap: Added new Marianas keymap for DZ60 (#3858)
* Added new Marianas keymap for DZ60

* Included suggestions to remove unnecessary line regarding MODS_CTRL_MASK, and added names for layers.

Added enum to define names for layers, and removed unused #DEFINE
2018-09-06 08:08:16 -07:00
Matthew Treadwell
c3b3f33c6a Keymap: Update personal keymap (#3855)
* Updated personal keymap

* simplified keymap based on suggestions
2018-09-05 16:39:00 -07:00
Michael F. Lamb
e72d07c22b Keymap: mitosis/datagrok: bug fix (#3854)
I don't know how this slipped past the test suite in the last merge, but
this syntax I tried is invalid and doesn't compile. Fixed.
2018-09-05 13:52:29 -07:00
Luke Stanley
155850187d Keyboard: Add IBM 122-key Terminal keyboard and my Ergodox EZ keymap (Programmer's Dvorak + Gaming/QWERTY layer) (#3850)
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* Add keyboard information and separated my custom layout from the default

* Add readme to Lukaus' Ergodox EZ keymap

* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* Add keyboard information and separated my custom layout from the default

* Add readme to Lukaus' Ergodox EZ keymap

* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* Fix merge conflict again?

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* Add keyboard information and separated my custom layout from the default

* Add readme to Lukaus' Ergodox EZ keymap

* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* updated ergodox_ez keymap and initial commit for IBM Model M 122 key

* Add keyboard information and separated my custom layout from the default

* update keymap

* Update rules.mk to remove redundant commented line

* Fix missing key on default layout for IBM Model M 122 key

* Fix issues identified by drashna and noroadsleft

* Update readme for IBM 122 key
2018-09-05 13:45:19 -07:00
antonio miranda
2b09900bdc Keymap: Add am keymap (#3843)
* Add am keymap

* Add configuration to play nice with stuck modifiers

This is in particular useful with emacs since its easy to get ctrl stuck

* Deactivate mouse keys and backlight

* Add control/esc and shift/enter taps

* Remove DVORAK and PLOVER

I won't be using this soon, so getting some free space

* Raiser and Lower ideas from jeebak

* Add cursor and mouse layers

* Enable mouse keys

* Switch underscore with minus

* Disable audio and fix warnings

* Update to the upstream changes

* VIM line motion symbols on the raise layer

* Enable sound and freeup some media keys on layers

* Fix whitespace on keymap

* Code review changes

* Improve keymap documentation

* Improve keymap to match to the default one

* Restore DEFAULT_FOLDER to the default value

* Fix config.h unescaped line
2018-09-05 13:41:27 -07:00
patrickmt
e5465e1c57 CTRL and ALT updates
Added support to enter bootloader from software (bootloader version must be newer than "v2.18Jun 22 2018 17:28:08" until workaround for older is created).
Updated CTRL and ALT keymaps for entering bootloader with Fn+b held for >500ms.
Added basic MacOS keymap for ALT.
USB sleep LED indicator now turns off after 1 second.
Slowed down debug LED code printing.
2018-09-05 11:14:31 -07:00
yiancar
73a3399d0e Add the ability to disable the USB startup check for Chibios
- Added support for NO_USB_STARTUP_CHECK. This allows the keyboard do function and not get stuck in a SUSPENDED state loop in case of no USB connection.
- Added support for WAIT_FOR_USB. In LUFA no keyboard has this flag enable therefor no keyboard waits for usb to be active.
- Added documentation for both configuration flags as they were missing.
2018-09-05 09:42:04 -04:00
MechMerlin
1a907a1627 Keyboard: formatting changes for readme and enable bootmagic (#3851) 2018-09-04 13:29:58 -07:00
Michael F. Lamb
224b4dea98 mitosis:datagrok add layer select, more layouts (#3835)
* mitosis:datagrok: fix typo'd inconsistent brace arrangement

(thank you @cari66ean)

* mitosis:datagrok: add makefile argument MITOSIS_DATAGROK_SLOWUART

* mitosis:datagrok: return backspace to opposite space, use TT(), more

- move backspace back to its position opposite space
- move del to red+backspace
- move tab back to tap-leftshift
- move printscreen/scrolllock/pause to blue+left pinky column
- use TT() instead of MO() to stick a layer on if wanted
- indentation that my text editor wants
- default to no audio; i can enable it at compile time.

* mitosis:datagrok: modularize features, add default layer rotator key

* mitosis: add MITOSIS_DATAGROK_BOTTOMSPACE makefile argument

* mitosis:datagrok: README improvements; document new features

* mitosis:datagrok: dot. not "number pad dot." in numbers layer

* mitosis:datagrok remove unnecessary _user audio code

* mitosis:datagrok: return to MO() for red/blue, keep TT() for purple

in this way, the LED still updates quickly when red or blue is pressed,
but we can still lock the purple layer on for 10-key numpad operation
with red+tapping blue.

* mitosis:datagrok: add colemak and dvorak default layers

* mitosis:datagrok update readme re: available default layouts

* mitosis: remove unneeded code that was overriding led_set_user

also, add some comments

* mitosis:datagrok: updated led setting code for new layers

also, place into led_set_user where it belongs, not matrix_scan_user.

* mitosis:datagrok: update LEDs when setting the default layer

maybe this should go into default_layer_set?

* mitosis:datagrok update readme with new imgur links + other improvements

* mitosis:datagrok fix typo in image urls

* mitosis:datagrok remove useless #include (ty @drashna)

* mitosis:datagrok undo unnecessary change to quantum/quantum.h

i can put the extern float definition in my own keymap code. (ty @drashna)

* mitosis:datagrok move customized layout to my keymap

no need to modify keyboard-level mitosis.h. (ty @drashna)

* mitosis:datagrok update comment describing my led indicator logic

* datagrok:mitosis update readme to document LED indicator.
2018-09-04 08:55:31 -07:00
Emīls Delle
40718d2ca3 Keymap: Create ISO HHKB keymapping for GH60 (#3832)
* Create ISO HHKB keymapping for GH60

* Add media controls to Fn layer

* Use M(x) instead of F(x), add Copyright text
2018-09-04 08:52:52 -07:00
marksard
0533ea4a20 Keymap: Added a keymap like a JIS keyboard for JJ 40. (#3847) 2018-09-04 08:52:00 -07:00
Jack Humbert
a14eb01883 fix mousekey call 2018-09-03 16:59:32 -07:00
Elisiano Petrini
714c82cc2e Keymap: Massdrop CTRL: add basic MacOS support (#3842)
* swap KC_LALT with KC_LGUI
* replace KC_RALT with KC_RGUI

This makes the keyboard more mac friendly out of the box (I'm aware this
that this could partially be done in software with the preferences but
hey, where's the fun in that).
2018-09-03 16:57:57 -07:00
Xyverz
f48e20c1eb Keymap: Updates to xyverz keymaps (#3841)
* fixing ortho_4x12 configs

* Using upstream/master version instead

* Additions and Corrections

Corrected the Kinesis/Stapelberg's .c file to allow LEDs to work
Removed excess cruft from my Kinesis keymap to reflect this change
Other minor tweaks and adjustments to my ortho_4x12 and 5x12 layouts

* Rules for vitamins_included

Added a section to disable RGB underglow for the Let's Split
   Vitamins Included board.

* fixing ortho_4x12 configs

* Using upstream/master version instead

* Additions and Corrections

Corrected the Kinesis/Stapelberg's .c file to allow LEDs to work
Removed excess cruft from my Kinesis keymap to reflect this change
Other minor tweaks and adjustments to my ortho_4x12 and 5x12 layouts

* Creating my own userspace

* Added Rorschach keymap

* renamed userspace folder

I renamed my userspace folder since I'm not ready to start using
it just yet, and I want to get my keyboards programmed. This is
a temporary thing and will be fixed later as I get time.

* adding files in "new" folder

* Disabling LEDs on Pro Micro

* Modifications to Kinesis keymap

* More kinesis tweaks

* removed userspace from master

Created a new branch for my userspace stuff. I'll work on it there.

* Moved keymap to separate branch

Moved the Rorschach keymap I was working on to a separate branch
for development purposes. Not ready to push it up to upstream
master.
2018-09-03 16:57:06 -07:00
Xin-Xin Wang
aa795dc33e Keymap: Fix missing braces around initializer error on older gcc (#3840) 2018-09-03 16:55:06 -07:00
Christon DeWan
07fac2fbbf Keymap: xtonhasvim Levinson (#3837)
* pulled in levinson from staging.

* simplified trilayer handling

and some other linting that bit me in the last code review

* formatting
2018-09-03 16:50:11 -07:00
Christon DeWan
dd29b64256 Keyboard: Add support for Diverge TM2 (#3829)
* pulling in diverge tm2 from staging branch

* cleaned up comments, docs, licenses

* refactored apparent grid to make 2u spacebars more obvious

* various delinting from noroadsleft review

* most of drashna's feedback responded to

- lots of lint swept
- used more modern tri-layer functions
- still need to adopt modern split support.

* switch to common split code. remove comment cruft

* tapping force hold makes LT way more usable for rapid ,  sequences
2018-09-03 16:35:27 -07:00
marksard
35efcc9f39 Keyboard: Improvement of crkbd communication functions (based on helix-keyboard) (#3798)
* improvement of crkbd communication functions (based on  helix-keyboard)

* Removed unnecessary code.

* Changed read restriction from #define to #pragma once.

* Changed from sizeof to defined size.

* moved lib folder to crkbdroot.
removed warning of ws2812.d
2018-09-03 16:34:16 -07:00
Steven Liu
fa1ee47cf2 Enable mouse keys in register_code and unregister_code
This allows for macros to be assigned to press two mouse directions at same time, which allows for one key diagonals.
2018-09-03 19:27:11 -04:00
leico
04bea9ef74 Keymap: share my ortho_4x12 layout symbolic (#3833)
* add ortho_4x12 symbolic layout

* delete trash

* modify little bit

* fixed doesn't requires

replace `#ifndef ... #endif` to `#pragma ones` in config.h
delete `QMK_KEYBOARD_CONFIG_H` in config.h
delete `action_layer.h` and `eeconfig.h` in keymap.c
2018-09-02 09:46:52 -07:00
Damien
479bf78f3e Keymap: Added personal layout for FC660C (#3834)
* - Fixed DK60 version in config.h

* - Updated dk60 readme with new QMK rules

* - Fixed wording in readme

* Added dbroqua layout for DZ60

I've also updated dz60.h to add "true HHKD" keymap definition (6U
spacebar).

With the default HHKB definition r_alt was not mapped and when I pressed
r_menu it was r_alt.

Regards

* Updated dbroqua layout for HHKB keyboard

Added default configuration and alternate (swap gui/alt keys).

Save user choice in keyboard memory (like plank, thanks for this
feature!).

* Added dbroqua layout for Iris keyboard

* Updated layout and fixed includes

* Added personal layout for FC660C
2018-09-02 08:35:04 -07:00
Travis Carr
83df69488d Fix bad key label in ascii art (#3830)
Just fixed a key that was wrong in the Tokyo60 ASCII art
2018-09-02 08:29:13 -07:00
Pranav Singh
7e5a0def3a Keymap: new planck keymap (#3809)
* Add files via upload

* new planck keymap

* new planck keymap

* readme file updated

* deleted files from qmkfirmware folder

* re-added readme file to /qmk_firmware

* Fix main readme (hopefully)
2018-09-01 10:02:10 -07:00
Brad
0dcd60eeed Keymap: added keys to broswen keymap (#3825)
* added PGUP and PGDN to my keymap

* added VOLU VOLD and MUTE to keymap
2018-09-01 09:59:20 -07:00
Yasuhiro Shimizu
ffc2dc0359 Keymap: add yshrsmz keymaps (#3770)
* add ergo42 keymap

* add helix keymap

* add keymap for lets_split

* Add keymap for nyquist

* update keymaps to address review comments

- remove unneeded include
- use `#pragma once`
2018-09-01 09:38:29 -07:00
Jon Olsson
8eb674b257 Keymap: Nojjan atreus (#3822)
* Add support for my Falbatech Atreus

This is currently the default Atreus keyboard layout, but I will
eventually customize it to match my Ergodox layout.

* Address review comments

* More review comments fixed

* More review comments fixed
2018-09-01 09:23:10 -07:00
Salt-Peanuts
dedffb5f6d Keymap: Cleaned up Rorschach keymap (#3823) 2018-09-01 09:22:21 -07:00
patrickmt
2aa27f0c78 Keyboard: Rename alt67 to alt (#3824)
Renamed keyboard alt67 to alt and adjusted necessary files where alt67 appeared.
CTRL keymap fixed enum structure name.
usb2422 removed stray define no longer used.
2018-09-01 09:21:48 -07:00
MechMerlin
fb79015049 Keymap: Merlin Learns to QMK (#3820)
* Fix up my keymaps to use more QMK features

* update 60_ansi readme

* add the start of my userspace

* begin to use my new userspace

* use more of my userspace

* spread userspace love to my clueboard

* spread userspace love to 75 layout

* add a fairly vanilla readme

* put the FNX into a userspace incase I ever want to use it for something else

* respond to drashna's code review comments
2018-08-31 14:49:18 -07:00
Danny
acc06a0848 Keyboard: Add Tragicforce 68 (#3807)
* Fork MF68 to Tragicforce 68

* Set pinouts and key layout

* Reformat keymap, update comments/notes

* Cleanup rules.mk
2018-08-31 11:13:55 -07:00
rschardt
c51b2266a0 Keymap: Adding adnw_puq-Layout for Ergodox (#3723)
* added adnw_p_u_q-Layout

* changed link

* 3723 - outsource definitions to config.h

* added TAPPING_TERM

* changed defines and added colors

* removed debug- and action_layer-Header
2018-08-31 08:44:15 -07:00
Christon DeWan
78ef62764b Keymap: I got my intern a KBParadise V60 Type R... (#3813)
* new mode for v60

xtonhasvim. still working on it:

- need to get indicator lights going
- and fun layer properly fleshed out.

* status lighting, proper fun layer

copied fun layout from keycaps to maximize accessibility

* enable power return

* support brightness adjustment for indicators

* refined brightness setting.

is saved in eeprom now

* readme. and fixed tilde

* more modifiers fall through fun layer

* i mean, this kinda works..

* much more reliable way of restoring lights

* responded to feedback
2018-08-31 08:28:14 -07:00
blindassassin111
4e45119796 Keyboard: Adding Z-150 PCB firmware (#3793)
* Adding the AT101 PCB firmware

* Fixed AT101 keymap error

* Fixing AT101 firmware

* More Fixes for AT101 firmware

* Rename AT101_Blackheart.c to at101_blackheart.c

* Rename AT101_Blackheart.h to at101_blackheart.h

* Update readme.md

* Renaming AT101 folder pt1

* Renaming AT101 folder pt2

* Fixing AT101 LED function name

* Redoing AT101 folder naming pt2

Last round had issues, should be the last rename.

* Fixing missing comma in at101_blackheart.h

* Adding Z-150 PCB

* Adding Z-150 readme file

* Fixing Z-150 firmware errors

* Fixing Z-150 layout error

* Fixing Z-150 firmware errors

* Fixing Z-150 Issues

Still unsure where the extra "\" is that through the error.

* Fixing more Z-150 errors

* Finally fixing the Z-150 error

* Fixed Z-150 layout naming

* Removed Z-150 layout fillers
2018-08-31 08:15:09 -07:00
Daniel Shields
f9eedd7ce7 Keymap: Add backlight controls for Planck Light in dshields keymap (#3801) 2018-08-31 08:12:37 -07:00
patrickmt
2cd80f84a4 Keyboard: CTRL and ALT keyboard json fix (#3816)
Fixed incorrect layout names
2018-08-31 07:38:06 -07:00
ishtob
94f92cedef Fix emulated EEPROM start address on STM32F303 (#3819)
MCU has 254 flash, changed 250 to 254. tested working on a planck rev6
2018-08-31 07:37:13 -07:00
Salt-Peanuts
be94e5e591 Keymap: Updated keymap with the "pretty" layout (#3812) 2018-08-30 15:38:31 -07:00
patrickmt
b61653739b Keyboard: CTRL and ALT updates (#3810)
Update to CTRL and ALT keyboard files
2018-08-30 13:49:17 -07:00
fauxpark
ce3ccd3f4a Docs: Tabulate Modifier & Mod-Tap keycode listings in advanced keycodes docs (#3799) 2018-08-30 09:37:05 -07:00
wanleg
2fcfd5cff7 Keymap: Wanleg updates (#3794)
* various edits and minor additions

* updates

* updates

* updates

* lets_split LEDs off instructions

* lets_split LEDs off instructions

* turn off lets_split LEDs in userspace

* one-hand setup for right side
2018-08-30 09:34:14 -07:00
Lars Herbach
2b707f3470 Keymap: Added new tada68 keymap (#3788)
* Initial Commit

* Removed duplicate lines
2018-08-30 09:23:33 -07:00
fauxpark
1acaf2b2c2 Tweak the wording in "Becoming a QMK Collaborator" 2018-08-30 07:39:58 -04:00
arlenk
4cd4e1ded6 Docs: add process_terminal() and update links to other functions (#3778)
* add process_terminal() and update links to other functions

* convert links to permalinks and add a few missing process_* functions

* update links in main text as well
2018-08-29 18:20:41 -07:00
Sascha Grunert
11f49d6388 Keymap: Update keymap including LAYOUT_planck_grid (#3779)
* Update keymap including LAYOUT_planck_grid

* Change include
2018-08-29 18:19:43 -07:00
Takeshi ISHII
97d09ef8fa Keyboard: remove old comment from keyboards/helix/rules.mk (#3795)
remove 2 lines from keyboards/helix/rules.mk

 | -# if firmware size over limit, try this option
 | -# CFLAGS += -flto
 | -

see keyboards/helix/[rev2|pico]/keymaps/EACH_MAP/rules.mk:

 | Link_Time_Optimization = no # if firmware size over limit, try this option
 :
 :
 :
 | ifeq ($(strip $(Link_Time_Optimization)),yes)
 |    EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
 | endif
2018-08-29 18:12:09 -07:00
patrickmt
3cafc4e7c6 Keyboard: Update CTRL and ALT keyboard readme (#3796)
* Massdrop keyboards readme update

Massdrop keyboards readme update for flashing instructions

* ctrl and alt keyboard readme update

Updating make command in Massdrop CTRL and ALT keyboard readme files to reflect directory change
2018-08-29 18:11:32 -07:00
fauxpark
097f1a299f Mask off keycode/layer/mod where possible in LT(), MT(), etc. (#3430)
* Mask off keycode/layer/mod where possible in LT(), MT(), etc.

* Don't need these parentheses

* Put back parentheses for order of operations
2018-08-29 21:05:02 -04:00
TerryMathews
d12d058bae Autodetect lack of screen presence
This is the simplest, most efficient way I could come up with to silence
the "Failed to start write 60" error that occurs when QMK tries to talk
to a screen that doesn't exist.

iota_gfx_init passes a success boolean. We catch that into a global bool
(we could rewrite multiple functions to pass this as an argument, but
given the number of keyboards using this code it seemed less disruptive
this way) and then use that as a conditional on running the
iota_gfx_task in matrix_scan_user.

Tl;dr: if the screen doesn't init, the screen write code doesn't run.
2018-08-29 21:03:23 -04:00
patrickmt
972388447b Massdrop keyboards readme update (#3791)
Massdrop keyboards readme update for flashing instructions
2018-08-29 14:11:58 -07:00
mechmerlin
6794a5c9dc move massdrop boards into its own directory for configurator visibility 2018-08-29 16:38:12 -04:00
yiancar
621ce29a53 STM32 EEPROM Emulation (#3741)
* STM32 EEPROM Emulation

- Added EEPROM emulation libaries from libmaple and Arduino_STM32. https://github.com/rogerclarkmelbourne/Arduino_STM32 and https://github.com/leaflabs/libmaple.
- Renamed teensy EEPROM library and added conditional selection of library.
- Remapped EEPROM memory map for 16 byte blocks (as is with STM32f3xx MCUs).
- Added EEPROM initialization in main.c of Chibios.
- Added EEPROM format to clear the emulated pages when EEPROM is marked as invalid.

* Fixed ifdef
2018-08-29 16:14:49 -04:00
patrickmt
30680c6eb3 Massdrop keyboard support (#3780)
* Massdrop SAMD51

Massdrop SAMD51 keyboards initial project upload

* Removing relocated files

Removing files that were relocated and not deleted from previous location

* LED queue fix and cleaning

Cleaned some white space or comments.
Fix for LED I2C command queue.
Cleaned up interrupts.
Added debug function for printing numbers to scope through m15 line.

* Factory programmed serial usage

Ability to use factory programmed serial in hub and keyboard usb descriptors

* USB serial number and bugfix

Added support for factory programmed serial and usage.
Incorporated bootloader's conditional compiling to align project closer.
Fixed issue when USB device attempted to send before enabled.
General white space and comment cleanup.

* Project cleanup

Cleaned up project in terms of white space, commented code, and unecessary files.
NKRO keyboard is now using correct setreport although KBD was fine to use.
Fixed broken linkage to __xprintf for serial debug statements.

* Fix for extra keys

Fixed possible USB hang on extra keys report set missing

* I2C cleanup

I2C cleanup and file renames necessary for master branch merge

* Boot tracing and clocks cleanup

Added optional boot debug trace mode through debug LED codes.
General clock code cleanup.

* Relocate ARM/Atmel headers

Moved ARM/Atmel header folder from drivers to lib and made necessary makefile changes.

* Pull request changes

Pull request changes

* Keymap and compile flag fix

Keymap fix for momentary layer.
Potential compile flag fix for Travis CI failure.

* va_list include fix

Fix for va_list compile failure

* Include file case fixes

Fixes for include files with incorrect case

* ctrl and alt67 keyboard readme

Added ctrl and alt67 keyboard readme files
2018-08-29 15:07:52 -04:00
frederik-h
a6c770432f Keymap: Add german layout for redox keyboard (#3695)
*     Add german layout for redox keyboard

    A german layout for the redox keyboard which tries
    to stay close to the default english redox layout
    while acommodating the umlauts at their usual position.

* Fix keycodes in german redox keymap

The keycode for Y was wrong.

* Minor changes

* Remove #ifdef include guard by #pragma once
* Remove unnecessary include from rules.mk

* Review changes

Remove unnecessary code fragments that
were pointed out in the review
of PR #3695 by @drashna.
2018-08-29 12:01:49 -07:00
blindassassin111
190fcdde26 Keyboard: Adding the AT101 PCB (#3785)
* Adding the AT101 PCB firmware

* Fixed AT101 keymap error

* Fixing AT101 firmware

* More Fixes for AT101 firmware

* Rename AT101_Blackheart.c to at101_blackheart.c

* Rename AT101_Blackheart.h to at101_blackheart.h

* Update readme.md

* Renaming AT101 folder pt1

* Renaming AT101 folder pt2

* Fixing AT101 LED function name

* Redoing AT101 folder naming pt2

Last round had issues, should be the last rename.

* Fixing missing comma in at101_blackheart.h
2018-08-29 11:58:09 -07:00
noroadsleft
836efb50c6 Updated templates for use by new_project.sh (#3783)
* template.h file cleanup

Reformatted the pre-macro comments as block comments.

Updated the ps2avrgb template comment to match the avr template's comment, which was more informative.

Deleted the line about the macro representing the Planck MIT layout, because the macro doesn't represent that layout anymore.

* base template keymap.c refactor

Deleted the deprecated TMK macro functions.

Defined two custom keycodes for use as macros by process_record_user.

process_record_user is now after the keymap and before matrix_init_user, where the deleted TMK functions were.

* Removed an extra " from macro command per @drashna

* Added BOOTLOADER rule to avr/rules.mk per @drashna

* Updated Bootloader sections per @drashna

* Updated links to docs at the bottom of both avr and ps2avrgb template readme.md files

Corrected the links to the Build Environment Setup and the Make Instructions docs.

Added direct link to the QMK Complete Newbs Guide.
2018-08-29 10:57:30 -07:00
Jumail
74f2f855a3 Fixed bootloader target
Fixed matching grep matches (for PRODUCT in particular)
Fixed " Bootloader" concatenation for WSL (windows line-endings)
2018-08-29 13:43:12 -04:00
Drashna Jaelre
e4bbe057f2 Yet another update to drashna keymaps and userspace (#3787)
* Make tap function inline

* Use better makefile keyboard detection

* Remove Copy-Paste macro

* Add F11/F12 to Iris

* Minor tweaks to userspace config

* Set audio clicky randomness to 1.5
* Set NO_DEBUG to only be set if console is not enabled

* Move NO_MUSIC_MODE to userspace config.h

* Reduce Ergodox Debounce

* Add Planck Light config

* Use OSM for ortho 4x12

* Music Mode changes for planck light

* Cleanup do to shutdown user and other fixes in Master

* Add and use 'shutdown_user' fzunction

* Remove global NO_MUSIC_MODE define

* Add NO_MUSIC_MODE to individual keymaps

* Change layer colors

* Remove NO_PRINT and NO_DEBUG from userspace config.h

Since these are automatically disabled if the console isn't enabled.

* Remove backlight code if backlight isn't enabled

* Remove Twinkle from Ergodox

* Disable RGB twinkling and enable PSM

* Clean up RGB matrix code

* Clean up planck light indicators

* Clean up tap code

* Rules cleanup for ortho 4x12

* Fix up userspace template

* Revert "Clean up tap code"

This reverts commit 09f64d6d67aa021c3b5ac86a9a739a5ca2b9c1ec.

* Organize includes

* userspace cleanup

* Fix modifier spelling error

* Fix userspace rules

* Disable Permissive Hold again

* Minor clean up

* Fix Tap stuff

* Viterbi Updates for file size
2018-08-29 13:42:15 -04:00
Boy_314
661ca4440c Keymap: Boy_314's Preonic and XD75 Layouts (#3781)
* fixed arrow keys and left control

* added right shift

* latest version

* reverted arrow keys

* edited readme

* added osu layer

* updated osu layout

* updated osu layout

* added full arrow keys to osu layout

* in case i mess up creating macros

* added the best meme key in the world

* added plover steno layer

* updated boy314 layout

* removed unused layers

* added boy314 xd75 layout, inspired by preonic layout

* added boy314 xd75 layout, inspired by preonic layout

* version 2 of boy314's xd75 layout

* added readme notes

* updated readme for boy314 xd75 layout

* qwerty support, brackets on bottom row, caps lock underglow

* fixed readme/

* small changes to allow merging

* minor changes to format

* fixed up default readme
2018-08-28 18:17:52 -07:00
Alex Ong
a55c838961 Added bold in a few areas. 2018-08-29 10:49:53 +10:00
Alex Ong
e8e6268765 Fixed missing whitespace in debounce documentation
Table wasn't working due to missing newline.
2018-08-29 10:48:11 +10:00
Alex Ong
4db27a2c76 Changed order of rules in TMK. Documented feature. 2018-08-29 10:45:53 +10:00
Evan Travers
08c682c193 Docs: Add docs for the LAYOUT_* macro to layouts (#3772)
When moving my planck layout to my let's split, I ran into this issue
because I had copied my planck layout from the default layout which just
used the `{}` array form for the keymap layers. I checked the docs, but
this bit wasn't clear to me. I'm sure @ishtob or @drashna helped me on
discord, but this seemed to be the logical place to add a helpful hint.
2018-08-28 17:35:24 -07:00
Alex Ong
3cf7f7322c Removed "debounce_algo = manual" in all keyboards with CUSTOM_MATRIX = yes. 2018-08-29 10:19:36 +10:00
Alex Ong
9bd6d6112d Keyboard: xealous (#3731)
* Keyboard: HandWired/XeaL60

* Updated rules.mk

* Mapping for layout was flipped

* Figured out how to re-map bad pins.

* Updated Keymap

* Enabled audio, Forced NKRO

* Added QMK_KEYS_PER_SCAN

* Removed more unnecessary files, since split_keyboards are in main QMK branch already.

* Simplified rules.mk in rev1

* Removed i2c from matrix.c

* Re-formatted to 4 spaces per tab,

* Changed note for NUMPAD

* Added I2C support back!

* Fixed keyboard mappings. Both sides work

* Moved i2c configuration from keymaps/default/config.h to config.h

* Changed SCL_CLOCK to 400000L

* Added DEBUG_MATRIX_SCAN_RATE for future optimization efforts

* Removed row2col code to clean up matrix.c

* Scan rate from 2100 -> 4200 by using Nop instead of waiting 30us between columns.

* Further optimized column reading via optimized_col_reader.

* Immediate key-recognition

* Switched back to own implementation of SPLIT_KEYBOARD. Will optimize so that slave interrupts master.

* Moved scanrate debug messages to another file.

* Made matrix_scanrate.c compile if CONSOLE_ENABLE is off. Updated to latest i2c.c

* Latest i2c uses a few bytes for lighting information

* Optimizations in i2c.h to determine buffer size.

* Disabled a whole bunch of features. TODO: Test that keyboard still works fine.

* Minimum #define NO_ACTION's with still working keyboard

* Fixed matrix not working due to offsets not being respected

* Added numlock button for keymap.

* Use I2C_KEYMAP_START offset

* Removed serial, Backlight and RGB support

* Removed need for split_flags.

* Added audio on and off for numlock.

* Renamed from xeal60 to xealous, simplified build system.

* Used more shared split_common code.

* Updated audio code.

* moved tone_qwerty and tone_numpad to config.h. Removed keymaps/default/config.h

* Added more shortcut keys in _FN layer. Increased debounce to 6ms due to fencepost error.

* DF used with incorrect argument. Custom_keycodes no longer required.

* Fixed bug in update_debounce_counters which was resulting in no debouncing!

* Removed unnecessary #include
2018-08-28 17:08:07 -07:00
Daniel Burkholder
af5f59636e Keyboard: Dactyl - Only initialize relevant variables (#3771)
This small change prevents an unused variable from being initialized, throwing a warning during compilation, thus ending fatally.

[07:47:10] [Daniels-MacBook-Pro-3] [dburkhol] [ /Users/dburkhol/git/qmk_firmware ] [develop ]
: make handwired/dactyl:default
QMK Firmware 0.6.97
Making handwired/dactyl with keymap default

avr-gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text    data     bss     dec     hex filename
      0   19972       0   19972    4e04 .build/handwired_dactyl_default.hex

Compiling: keyboards/handwired/dactyl/twimaster.c                                                   [OK]
Compiling: keyboards/handwired/dactyl/matrix.c                                                     keyboards/handwired/dactyl/matrix.c:52:22: error: 'expander_col_pins' defined but not used [-Werror=unused-const-variable=]
 static const uint8_t expander_col_pins[MATRIX_COLS] = MATRIX_EXPANDER_COL_PINS;
                      ^~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
 [ERRORS]
 |
 |
 |
make[1]: *** [.build/obj_handwired_dactyl_default/matrix.o] Error 1
make: *** [handwired/dactyl:default] Error 1
Make finished with errors
2018-08-28 17:06:51 -07:00
xton
3892829d74 Keymap: xtonhasvim updates (#3768)
* cherrypicking file changes just for updates

* removed unused heat foo

* avoid defining own min/max

* add license

* formatting
2018-08-28 16:54:17 -07:00
Eduardo Lourenço Pinto Neto
3c20983055 Keymap: Adding keymap to the XD60 (#3767)
* Created keymap based on Default base layer and GK64 function layer

* Update readme.md
2018-08-28 16:53:10 -07:00
MechMerlin
b1935c5e0d Putting my ducks in a row: Eagle/Viper V2 into Duck directory (#3766)
* mv eagle_viper into duck

* delete files

* remove eagle_viper .c and .h
2018-08-28 16:52:30 -07:00
MechMerlin
3916b06168 Putting my ducks in a row: Octagon V1/V2 (#3765)
* Move octagon directory into duck diretory and fix as many compile issues as I can

* fix formatting

* fix layout75 matrix

* edit readme for build instructions
2018-08-28 16:52:00 -07:00
Jacob Jerrell
444def8411 Keymap: Bocaj - Create Userspace and Ergodox Layout (#3750)
* Bocaj Layout Revamp

* Pull in Upstream (#1)

* Various tweaks for some Input:Club build processes

* change KEYMAP to LAYOUT for all new keyboards made using this script

* Add support for rev3 of the Atom47 (#2672)

* Added support for rev3 of the Atom47

* Updated Atom47 readme's

* Fix redefine error on rev2 and add maartenwut's keymap

* Fix redefine error on LEdiodes keymap

* Add Nyquist keymap (#2692)

* nyquist

* danielhklein nyquist setup

* shift left controls

* remove readme

* cleanup before pr

* ready for pr

* Adds Phantom TKL support (#2696)

* Add an info.json to phantom keyboard

* Add layouts

 - KEYMAP_WINKEYLESS
 - KEYMAP_7BIT
 - KEYMAP_ISO
 - KEYMAP_ISO_WINKEYLESS

* Add key_counts

* Add 2 missing F-Row keys

* Add TKC1800 info.json

Created an info.json for the tkc1800.

* Clueboard 60 info.json

 - adds
   - LAYOUT_60_ansi
   - LAYOUT_60_iso
   - KEYMAP_AEK
   - KEYMAP
   - LAYOUT_60_ansi_split_bs_rshift

* Add the Speedo keyboard

* Fix KC60 info.json file (#2707)

* change KEYMAP to LAYOUT in all the KC60 files

* Redo the info.json file

* Small fixes to TKC1800

 - adjust F-row to use 0.25 spacing
 - split left shift
 - add key_count

* Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708)

* change diverge 3 KC_KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for handwired arrow pad

* change M10A to LAYOUT for m10-a

* Change KC_KEYMAP to LAYOUT_kc and KEYMAP to LAYOUT for mf68

* change KC_KEYMAP to LAYOUT for nano

* Refactor to LAYOUT

* refactor to LAYOUT-ansi and LAYOUT_iso for s65

* LAYOUT conversions for lfkkeyboards

* missed a few renames

* mini1800 for lfkeyobards support of LAYOUT

* Improve state/chord handling and clean up namespace

Some values that can never, ever, change were held in local
variables, rather than in PROGMEM. Fixed.

Change "pressed" to a signed int so the test for < 0 makes
sense, and to avoid possible weird failure modes in the
case where a key release comes in when pressed is already
zero. (Shouldn't happen, sure, but computers are weird.)

A lot of things in process_steno had external linkage for no
particular reason. They've been marked static. Stuff still
builds.

Distinguish between currently-held keys and keys that have
been held, and expose these values through a nicely-named API
so other code could, say, check on the current set of steno
chording in order to make displays. Also in passing fix up the
"state" value having external linkage so it could clash with
other people's variable declarations.

The API also provides hooks for key processing and steno chord
events, so you can monitor those events without having to
run in matrix_scan_user and recheck the values directly. Also
document these.

There is no path through processing a key that doesn't
end with a return false, so the nested return foo() are
gone and we just return false.

* Pull information from config.h and rules.mk (#2711)

* Pull information from config.h and rules.mk

* Readd the kbd75 maintainer

* Remove obsolete info.json entries (#2712)

* Clean up some long-standing errors when populating the API (#2715)

* More Configurator Warning Fixes (#2716)

* mf68_ble did not have the correct .c and .h files

* Fix JC65 KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for s60_x

* Convert KEYMAP to LAYOUT for lets_split boards

* Convert KEYMAP to LAYOUT

* more fixes to keymap for iris

* convert KEYMAP to LAYOUT for levinson keyboard

* change losinggeneration's KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for nyquist

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for viterbi

* convert KEYMAP to LAYOUT

* convert KEYMAP and its subsidiries to the LAYOUT standard

* convert KEYMAP and its subsidiries to the new LAYOUT standard

* Normacos keymap for let's split keyboard (#2691)

* Cheers let's split keymap

* fixed typo on norman layer of cheers keymap for let's split

* fixed right handed mappings for home row

* cheers keymap for let's split redefinition

* updated Cheers keymap for let's split

* cheers keymap for let's split updated with some terminal macros

* renamed cheers let's split keymap to a more appropriate normacos

* updated normacos keymap doc / removed non functional keys

* reset let's split rules to default values

* added more spotlight search macros

* normalized keymap comments

* Moved numpad on lower layer

* hhkb jp personal keymap (#2698)

* Add JJ40 Cockpit personal keymap (#2713)

* Add JJ40 Cockpit keymap

* Fix lower layer symbols

* Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718)

* add readme to ktype keyboard

* add readme to m10a

* add readme to mini1800

* add readme to parent directory

* Revert "Pull in Upstream (#1)"

This reverts commit eeba0cec17ccb636e4225eed88aeae72b99f5e45.

* Updates to Bocaj Files

- Gave up on Tap Dance for ' -> '
+ Added another 'Secret'
+ Add ' -> ' to the Swap Hands key
+ Add Swap Hands to the ' -> ' key
+ Made Hand Swapping a momentary toggle
- Removed Auto Shift
+ Added Layer Toggle to KC_QUOTE for the _TOOLS layer
- Disabled Tap Dance

* Merge remote-tracking branch 'upstream/master'

* Updates to Bocaj

Added Game Layers, Removed Unused Macros

* Removed 'secrets.h'

* Updates to Bocaj

Remove 'secrets'.
Remove 'sendstring_workman.h' and set related layer back to qwerty due to macro compatibility issues

* Total revisioning of keymap and layout structure

* Missed readme.md file

* Bocaj - Permissive Hold setting enabled

* Switching from ErgoDox EZ centric configuration to the layout/user approach

* Bocaj - Create Userspace and Ergodox layout

* Update settings.json
2018-08-28 16:48:41 -07:00
yiancar
fdd0f91527 ISSI31FL3733 driver (#3679)
* ISSI31FL3733 driver

- Addapted IS31 driver for the above driver

* fix my branch

* ISSI31FL3733 driver

- Inclusion of above ISSI led driver

* IS31fl3733 driver

- Added correct function for control registers

* Finalized support for ISSI31fl3733 led driver

- Finalized and tested driver.
- Modified i2c_master for arm due to declaration mistake.
- Fixed spaces/tabs in quantum.h file.
- Fixed spaces/tabs in common_features.mk file.
- Removed unnecessary includes from rgb_matrix.c file.
- Added local definitions for MIN and MAX macros in rgb_matrix.c file.
- Adjusted chevron effect.
- Added necessary define (RGB_3733_MATRIX_ENABLE) for makefile.
- Added necessary C define (ISSI3733) to aid with inclusion of the correct header file.
- Added documentation for the new driver.

* Driver structure update

- Changed rule includes to be more condensed (RGB_MATRIX_ENABLE = IS31FL3731) and (RGB_MATRIX_ENABLE = IS31FL3733)
- Updated documentation
- Reverted to the use of differently named functions for each driver and selecting the needed ones within rgb_matrix.c

* ISSI Drivers refractoring

- Moved issi drivers in a dedicated folder
- Updated documentation

* I2C library fix

I released the special pins incorrectly before. It is now fixed.
2018-08-28 09:03:11 -04:00
ishtob
2410f02359 Fixes STM32F303XC timer issue for Planck Rev 6 (#3777)
* Adding my personal planck keymap

* Adding readme.md to my keymap

* Create my userspace

add users/ishtob/

* Moved macros off keymap

macros now exsists in my userspace, moved them off keyboard specific keymaps

* Create my userspace

add users/ishtob/

* rebase from main QMK repo

* fixed compile error with planck rev6 keymap

* fixed compile error with planck rev6 keymap

* Revert "Merge branch 'master' of https://github.com/ishtob/qmk_firmware"

This reverts commit 6c8a9a6eec7ec311802338ea361099612182465d, reversing
changes made to 5c598d9a53a7f794d5be283ac40ca97631ae5578.

* fixed issue where compile errors if private macro file is not present

* Revert "fixed issue where compile errors if private macro file is not present"

This reverts commit e0035df48ffb9a95aa94e8339c58ef539e0449cf.

* Fixed STM32 timer issue with Planck Rev6 with tap mods

* Revert "fixed compile error with planck rev6 keymap"

This reverts commit 5c598d9a53a7f794d5be283ac40ca97631ae5578.

* Revert "Revert "fixed compile error with planck rev6 keymap""

This reverts commit c36896ca718f8b9bb3c653d7532797e9129477e3.

* Fixed compile issues with my personal userspace and keymap utilizing the userspace
2018-08-27 17:10:22 -04:00
Michael F. Lamb
c63d9ee0d5 mitosis: minor readme improvements (#3762)
* minor improvements to top-level mitosis keyboard readme

* typo

* trivial readme change
2018-08-26 12:00:22 -07:00
Michael F. Lamb
95e9ef27be add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
Logan Bussell
0680bfe03d Keymap: Made changes to buswerks ortho_4x12 keymap (#3757)
* Added buswerks keymap

* cleaned up comments on buswerks keymap

* Added buswerks keymap readme.md

* Fixed spelling in buswerks readme.md

* Removed unnecessary includes, changed process_record_user to now use set_single_persistent_default_layer(), removed deprecated functions, and moved the audio ifdef block to config.h

* Changed buswerks ortho_4x12 layout to accommodate 'MIT' layout

* Updated README.md to reflect layout changes
2018-08-26 09:33:43 -07:00
MechMerlin
a63d4774f5 Keyboard: Putting all my ducks in a row: Lightsaver (#3758) 2018-08-26 09:30:49 -07:00
MechMerlin
1ee545014a Keyboard: Make a 1upkeyboards directory for visibility (#3759) 2018-08-26 09:30:12 -07:00
Drashna Jaelre
eb19fb5b57 Helpful functions 2018-08-26 07:32:15 -07:00
Doug Raffle
91cf4b00c5 Keymap: initial migration of raffle planck (#3748)
* initial migration of raffle planck

* cleaned up includes per merge per drashna

* removed unicode shrug attempt

* cleaned up include.
2018-08-25 18:01:07 -07:00
MechMerlin
e16b39f0c2 Keyboard: Duck Jetfire QMK Support (#3752)
* Initial Commit

Port from xauser's jetfire code. Does not compile yet

* fix up keymap from uint8 to uin16

* update rules file to contain custom matrix

* Good stopping point

Still lots of compile errors but I'm getting there.

* fix a few more compile errors

* move a few functions around to help with compiling

* Finally got it all to compile

* Get rid of that old KEYMAP macro

* edit readme

* Put my name everywhere and some minor code clean ups

* start to remove that kc nonsense

* fix keymap compilation issues

* add reset key info

* better human readable formatting

* match the duck default layout

* add confgurator support

* clarify reset key

* might be a good idea to use the correct pin

* get the riight keycode for RGB

* include an ALL layout

* I tried to fix the formatting....sigh

* add functons to ensure Configurator compile-ability

* move jetfire to duck directory

* Moved and renamed things as per Drashna's PR comments as his back was hurting as he reviewed this
2018-08-25 18:00:20 -07:00
Doug Raffle
a68057852b Keymap: initial migration of raffle 1up60rgb (#3747)
* initial migration of raffle 1up60rgb

* updated include statement
2018-08-25 17:13:07 -07:00
Luciano Malavasi
f6bd5d793a Keymap: PyroL Let's Split keymap + Alpha keymap modifications (#3753)
* keymap + alpha

* some fixes

* keymap + alpha

* some fixes

* drashna changes

* linked main Alpha repo in keyboards/alpha readme

* missed a spot

* there's another function called FUNC lol

* keymap + alpha

* some fixes

* keymap + alpha

* drashna changes
2018-08-25 17:11:53 -07:00
MechMerlin
0e17a44b46 Keyboard: Change the default LAYOUT to LAYOUT_60_hhkb for tokyo60 (#3751) 2018-08-25 13:20:18 -07:00
MechMerlin
1e7d08d2e3 Keyboard: Tokyo60 Cleanup: QMK Configurator support (#3749)
* use LAYOUT_60_hhkb

* cleanups

* more minute clean ups

* fix some capitilization issues

* add configurator support
2018-08-25 13:00:09 -07:00
Alvin C
b806cc9eea Keyboard: add tokyo60 (#2861)
* adding tokyo60 to qmk

* updating readme

* updating keymap and power consumption for mobile
2018-08-25 12:16:05 -07:00
Njiall
26dacd51fc Keyboard: Added gamepad layout to cospad (#3714) 2018-08-25 10:35:24 -07:00
Salt-Peanuts
7e8c0a368b Keymap: Added my keymap for Rorschach keyboard; minor updates to my Kinesis files. (#3734)
* Added keymap for Rorschach

* Rorschach update

* Minor updates to Kinesis files

* Minor fixes

* Minor fixes for Rorschach
2018-08-25 09:29:43 -07:00
Barry Huang
028a4feeed Keyboard: readme.md update (#3581)
for correct site link
2018-08-25 09:26:24 -07:00
Budi Dharmawan
a9b6ebcd89 Keymap: update to budi's tv44 (#3587)
* update to budi's tv44

* update august - budi's tv44
2018-08-25 09:04:40 -07:00
MechMerlin
34d01f0a7f Keyboard: introduce new default layout 68_ansi (#3745) 2018-08-25 09:00:06 -07:00
MechMerlin
80edd8a9d8 Keymap: Hold for MO and Tap for TG (#3742)
Special thanks to Drashna for teaching me how to implement myFNX command. This allows a user to hold Fn for regular Fn and
tap to toggle another layer.

For now this will stay within my community layout as this is the
only layout that I will be using this in. This may change in the future.
2018-08-25 08:47:54 -07:00
Danny
b6d8524794 Keyboard: add Wavelet (#3739)
* Add Wavelet keyboard

* Fix build error for keyboards w/o Planck MIT layout

* Add swap hands support
2018-08-25 08:46:42 -07:00
Anthony
4de9ed7eb0 Add a belgian keymap, partially based on keymap_french.h (#3737) 2018-08-25 08:45:42 -07:00
MechMerlin
067091d9c2 Introduce new 75_ansi standard layout (#3738)
* introduce new layout 75_ansi

* use the new 75_ansi layout for my octagon v2
2018-08-24 08:54:16 -07:00
Alex Schroeder
37d3055264 Keyboard: Support PCBDOWN variants for Atreus keyboard (#3735) 2018-08-24 08:53:03 -07:00
zwnk
c6eccb39e0 Keyboard: dactyl_manuform 5x7 aka Ergodox-ish added (#3691)
* dactyl_manuform 5x7 aka Ergodox added

* LAYOUTS = ergodox removed

* README updated

* README updated again

* zip file removed
2018-08-23 11:48:30 -07:00
wanleg
6d1536db1d Keymap: fix conditionals in userspace rules.mk (#3726)
* fix conditionals in rules.mk

* minor keymap change
2018-08-22 20:16:49 -07:00
Erik Thorsell
9064b424e9 Keymap: Add Dvorak Svorak A5 layout for Ergodox-EZ (#3725)
* Add svorak a5

* Update Svorak A5 keymap

* Fix issue with special characters

The initial keymap did not account for non US software layout. Hence, the
special characters were incorrect. Since this layout is aimed towards Swedish
writing people the presumption is that whoever uses it will have Swedish as
their OS language.

Includes:
 - Special character issue fixed
 - QWERTY layer that can be toggled if requiered (also presumes Swedish software
   layout)

* Add special characters and media keys

* Add ctrl, alt, etc. to functional layer
2018-08-22 20:16:16 -07:00
MechMerlin
5d8d350976 Keyboard: Finish up the HSE now that I have a board to play with! (#3728)
* fix up readmes

* update keymap to match configurator default

* add more info
2018-08-22 20:14:52 -07:00
marksard
6076ed85be Keyboard: Partial refactor of the crkbd code (#3600)
* Add display to LED-parameters function
* Improvement of update timing for OLED display (Need TWI_Init)
2018-08-22 09:51:37 -07:00
noroadsleft
9d27d55443 Keyboard: Blockey refactor (#3722)
* Matrix refactor

Edited for readability.

* Keymap refactor

Deleted TMK-syntax macro block. Edited for readability.

* Readme cleanup

Edited image link (link previously referenced a single-image album).

* Configurator support
2018-08-22 09:00:40 -07:00
noroadsleft
4951fc52be Keyboard: AL1 Configurator fix: misplaced arrow keys (#3716)
* Configurator fix: misplaced arrow keys

* rules.mk: set backlight and RGB rules
2018-08-22 08:59:00 -07:00
noroadsleft
356fe590e6 Keyboard: AMJ96 Refactor and Configurator update (#3707)
* AMJ96 Refactor

LAYOUT matrix and default keymap refactored to use full-length keycodes (instead of shorthand).

* Configurator update

Minor physical layout update and made the labels more sensible.

* Readme update

White space correction.

* Default keymap update: #include QMK_KEYBOARD_H

* rules.mk update

Disabled the following options as my local test compile's .hex ended up too big to fit in the available flash space:

MOUSEKEY_ENABLE
EXTRAKEY_ENABLE
BACKLIGHT_ENABLE
RGBLIGHT_ENABLE

If this is undesirable, suggestions are welcome.

* Config/rules update

Re-enabled MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, BACKLIGHT_ENABLE, and RGBLIGHT_ENABLE and disabled COMMAND_ENABLE in rules.mk; enabled NO_ACTION_MACRO and NO_ACTION_FUNCTION per @drashna

* Swapped `___` for `XXX` in amj96.h per @mechmerlin
2018-08-22 08:58:12 -07:00
Kjili
c8cd1ebc45 Keyboard: Fix tada68 Linux readme (#3717)
Remove confusing mention of a "Windows" computer.
2018-08-21 19:08:17 -07:00
Kyle Peatt
a4294a153b Keymap: Added personal keymap for bface (#3719)
* [keymap] Added personal keymap for bface

* Add readme

* [keymap] Added personal keymap for bface

Add readme

Remove right shift slash test
2018-08-21 19:07:18 -07:00
noroadsleft
343dc1be7f Keyboard: UT47 Configurator support and readme cleanup (#3708)
* Configurator support

* Readme cleanup
2018-08-21 08:45:42 -07:00
noroadsleft
cffaf0acf4 Keyboard: Configurator render fix for AMJPad (#3706)
- `LAYOUT` updated to `LAYOUT_numpad_6x4`
- `LAYOUT_all` update to `LAYOUT_ortho_6x4`
2018-08-21 08:42:18 -07:00
noroadsleft
3f8654c85d Keyboard: AMJ60 LAYOUT_iso matrix fix (#3705)
LAYOUT_iso matrix was invalid.
2018-08-21 08:41:40 -07:00
noroadsleft
8720c6628a Keyboard: Alf X2 matrix fix (#3704)
Invalid syntax in LAYOUT_split_arrows matrix macro.
2018-08-21 08:41:12 -07:00
noroadsleft
e1be79d7c9 Keyboard: Corrected LFK65_HS LAYOUT_all matrix (#3703)
Switch `k3D` was listed as `K3D` in the parameter list, causing a compile error (undeclared variable).
2018-08-21 08:40:25 -07:00
MechMerlin
d0b55b59f9 Keyboard: bface update (#3702)
* add configurator support

* update bface code to more modern QMK standards

* update readme

* update readme

* Make changes thanks to noroadsleft's PR comments
2018-08-21 08:39:25 -07:00
Stephen Grier
9d99fd8418 Keymap: Adding stephengrier keymap for the DZ60 PCB (#3700) 2018-08-21 08:38:26 -07:00
Christoffer Holmberg
220ea4c9b7 Keymap: Nordic layouts for ErgoDox, Planck (#3693)
* first verion of skug

* zudvp layer added and new thumb cluster

* move del to arrw cluster and switch places of algr and no_circ

* first verion of skug

* zudvp layer added and new thumb cluster

* move del to arrw cluster and switch places of algr and no_circ

* rework layouts

* Adds SYMB layer toggle to 'ä'

Closes #2

Also moves ctrl away from '-' and 'z' to the outer bottom corners
and removes redundant SYMB layer binds from there

* Adds mouse movement to right hand on ARRW layer

Closes #3

* Fix typoed keycodes

* planck qwerty nordic

* Update README.md

* Update README.md

* Implemented changes to planck layout requested by drashna

* Implemented changes to ergodox layout requested by drashna

NOTE: `version.h` is still required.
2018-08-21 08:37:29 -07:00
noroadsleft
dbef2ad6b9 Keymap: Update 333fred's keymap for Zen (#3690)
Reset file to upstream/master, update only macro name (KEYMAP to LAYOUT).
2018-08-20 09:45:15 -07:00
MechMerlin
e2755c11b3 Keyboard: forgot to rename the layout 1up60hse correctly (#3699) 2018-08-19 19:35:14 -07:00
noroadsleft
2091280bbb Keyboard: Fix Configurator rendering for Big Series 2-, 3-, and 4-key boards (#3698) 2018-08-19 19:33:49 -07:00
Sebastian Kaim
4a3eb3bdd4 [WIP] Added support for the b.face keyboard (#2493)
* Added support for the b.face keyboard

This commit adds support for the 60% keyboard from winkeyless, the
b.face. The basic keyboard layout as well as the RGB backlighting
works as expected; the per-key LEDs can be turned on or off but not
yet dimmed. A default 60% US-layout is included.

* Added link to the bface in the ps2avrGB README
2018-08-19 19:32:35 -07:00
Graham P Heath
10c636a1ee Keyboard: add Telophase board (and Graham's keymaps) (#3244)
* add my config

* fix backlight, clean up that code

* group background code, restore static var

* qwerty is supposed to be in the middle

* wrap layer change backlight in ifdef

* backlight levels and some more 'emojis'.

* Restructure to make it possible to press cmd ent on the right side of the board with one hand.

* Expose the period through the number layer. Add Hyper keys to mouse layer

* reduce mouse speed

* add a : -P  key

* Thumbs up and down, remove some keys that are duplicated via function keys, clean up

* fix build issues

* add various emoji

* duplicate default Meira keymaps

* Miera updates

* add documented but unmapped emoji

* Sound for the Meira, was stumped by a file size! Thanks drashna!

* add docs

* docs

* revert lib changes...

* clean up

* clean up

* remove make file

* Fixes missing key

* clean up

* add my lets split

* add more emoji

* add the telophase board (unofficially, I guess...)

* add missing files

* add/reset files

* Review feedback implementation: Not needed. Add #define FLIP_HALF to your config.h file instead.

* Review feedback implementation: All of these includes should be replaced with #include QMK_KEYBOARD_H.

* Review feedback implementation: [FAILING] You may want to use LAYOUT_ortho_4x12 instead, and move this to /layouts/community/ortho_4x12/ instead. That way, you can use the same keymap for all of the boards.

* clean up

* add a key for command tilde (osx loves it)

* at least its building again

* remove adjusts and migrate layer switching to MO(_LAYER)

* update the telophase readme

* update the telophase readme

* grahampheaths -> grahampheath

* ONEHAND_ENABLE -> SWAP_HANDS_ENABLE

* convert lets split to use ortho_4x12

* Move lets split keyboard layout into community/ortho_4x12

* make telophase use LAYOUT()

* I did it?!

* Add clap and grin

* swap tabs and back and forward

* whitespace
2018-08-19 13:29:11 -07:00
eucalyn
99da48c72b Keyboard: add mint60 keyboard (#3543)
* add mint60

* change source by reviews
2018-08-19 13:26:42 -07:00
aydenvis
4cc1edbb67 Keyboard: Add QWERTYYdox keyboard (#3636)
* Add files via upload

* Update readme.md

* Update readme.md

* Update readme.md

* Add files via upload

* Delete split_util.h

* Delete split_util.c

* Delete serial.h

* Delete serial.c

* Delete matrix.c

* Delete i2c.h

* Delete i2c.c

* Update rules.mk

* Update config.h

* Update readme.md

* Update readme.md
2018-08-19 13:23:13 -07:00
wanleg
d87ef88de0 Keyboard: add 5x5 board support (#3694)
* 5x5 board support

* 5x5 work

* 5x5board config

* add 5x5 board support
2018-08-19 13:18:19 -07:00
Fredric Silberberg
8bc771a842 Added arrow layout. 2018-08-19 13:09:31 -07:00
MechMerlin
ee238f1219 Keyboard: add 1up60hse (#3687)
* initial commit

* update readme

* enable/disable some keyboard features and add 60_ansi community layout support

* put my name everywhere

* can't use numbers for defines

* enable lighting

* put in a default keymap, use the correct pins, and put in a switch matrix

* update switch matrix to use KXY hex notation

* add QMK Configurator support

* add the rest of my name

* update where to get this keyboard
2018-08-19 13:04:03 -07:00
Biacco42
c55313509f Keyboard: Update Ergo42 default keymap (#3686) 2018-08-19 12:53:41 -07:00
Biacco42
78a01068a4 Keymap: Remove needless lines / files for Ergo42 (#3685) 2018-08-19 12:52:23 -07:00
DeastinY
10b4591d88 Keymap: Added deastiny layout for contra [based on dvorak type II] (#3673)
* Added deastiny layout for contra [based on dvorak type II]

* added questionmark and slash to another layer

* added pragma once
2018-08-19 12:30:28 -07:00
Cole Markham
fe687af54d Keyboard: Add Big Series 2-, 3-, and 4-key boards (#3669)
* Implement magic 8-ball mode for big series switch

* LED Testing

* Add Ctrl+Alt+Del key mapping

* Add Windows lock (win+L) layout.

* Add Big Series 3-key

* Add Big Series 4-key

* Add Big Series 2-key

* Fix layout mapping for Big Series 3u

* Fix merge-conflict.

* Refactor bigseries boards into a single folder
2018-08-19 12:29:03 -07:00
Biacco42
a18cd1b2b6 Keymap: Ergo42 biacco-biacco keymap (#3659)
* Add biacco-biacco keymap

* Change P position

* Update biacco-biacco map y position

* Revert y position...

* Refactor needless lines

* Fix some review commentted
2018-08-19 12:27:21 -07:00
Shihpin Tseng
1950a145c7 Fix process_combo which assign -1 to uint16_t 2018-08-20 02:29:08 +08:00
noroadsleft
19fdfccca2 Keyboard: Ckeys refactor (#3681)
* Obelus Refactor: LAYOUT to LAYOUT_ortho_4x4

- Keymap also now uses #include QMK_KEYBOARD_H
- Readability and white space changes
- rules.mk now has LAYOUTS = ortho_4x4
- added info.json

* naKey Refactor: LAYOUT to LAYOUT_numpad_5x4

- Matrix LAYOUT renamed to LAYOUT_numpad_5x4
- Now supports community layout numpad_5x4
- White space changes

* naKey Configurator update

Updated order of JSON objects to match new matrix order.
2018-08-17 16:12:22 -07:00
wanleg
9175eebc87 Keymap: Wanleg userspace (#3670)
* configure wanleg userspace

* additional layout support

* additional layout support

* userspace edits

* fix swap hands between 30 and 40 percent

* add additional keymaps

* userspace edits

* userspace configuration

* userspace configuration

* Update readme.md

* userspace work

* swap hands userspace fix

* made requested edits

* Update readme.md

* use relative paths instead of copying file

* Update wanleg.h

* fixing layer order
2018-08-17 16:11:21 -07:00
noroadsleft
8007d9f3a7 Keyboard: Zen refactor and Configurator support (#3677)
* Matrix refactor

* Keymap refactor

* Configurator support

* Readme reformatting
2018-08-17 16:04:21 -07:00
skullY
da24a34efb First pass at reorganizing docs 2018-08-16 09:16:05 -07:00
fauxpark
700aa8fe1c Tidy up keycode.h (#3666)
* Tidy up keycode.h

* Fix spacing here

* Add back this comma
2018-08-16 12:12:48 -04:00
MechMerlin
97df0fc072 Keyboard: DC60 Support (#3667)
* initial commit and get pins correct

* get the switch matrix done

* Add Configurator support

* update LED numbering

* enable lighting options

* add a default-ish keymap

* turn off mouse keys as the file gets too large

* put my name everywhere

* update Alf names

* update keymap to match whats on qmkeyboard.cn
2018-08-16 09:06:19 -07:00
mtei
fe0683938a change messege at 'check-size' target 2018-08-16 12:04:35 -04:00
Phil Hagelberg
15a73f4f64 Add Atreus as an official board. 2018-08-16 12:01:34 -04:00
noroadsleft
4044c746d0 Keyboard: Eagle/Viper V2 refactor and Configurator update (#3671)
* Matrix refactor: eagle_viper/v2 LAYOUT_all

- Deleted K0L (research indicates no switch position at this location)
- Renamed K0J to K0I (spacebar key; on 9th column instead of 10th)
- Updated info.json and default keymap to match
- readability updates

* Keymap refactor

readability update
2018-08-16 08:54:17 -07:00
skullY
9b237f5de3 fix line endings 2018-08-16 08:38:42 -07:00
Takuya Urakawa
303ca46e77 Keyboard: add ergoinu keyboard (#3655)
* add ergoinu

* remove unnecessary code

* replace include guard
delete unused code

* remove unused RGBLED defines
2018-08-16 08:36:35 -07:00
Brad
a828d49f8c Keymap: Adding broswen keymap for iris split keyboard. (#3654)
* Adding broswen keymap for iris split keyboard.

* added changes as requested by drashna

* formatting
2018-08-16 08:33:02 -07:00
MechMerlin
9eab1667b0 Keyboard: Update AL1 default keycaps to new QMK standards (#3675)
* update keymaps to not use KC_FNX anymore

* add a reset key as the al1 has no hardware reset
2018-08-16 08:31:52 -07:00
Joshua T
c19d949b72 Keymap: Revamp replicaJunction keymaps (#3589)
* Revamp replicaJunction keymaps

Updates both the replicaJunction Ergodox and Atreus keymaps and moves
most of the logic into a new user directory.

* Cleanup as requested in #3589

* Slightly increased TAPPING_TERM

* Fixed typo in #pragma once

* Fix TAPPING_TERM redefined in config.h

* Add include of replicaJunction.h

Due to the tap dance references, without this include, I was getting
compiler errors about both internal QMK items like
`qk_tap_dance_state_t` and constants defined in my replicaJunction.h
file like TD_LAYER_TOGGLE.

Also remove some commented-out code that defined an enum which has since
moved to replicaJunction.h.
2018-08-15 15:38:41 -07:00
zgtm
632287535c Keyboard: add generic ortho 5x14 layout support to Viterbi (#3658)
* Add default ortho 5x14 layout

* Fix layout_ortho_5x14: KC_EQLS -> KC_EQL

* Add ortho_5x14 layout to Viterbi
2018-08-15 15:34:25 -07:00
bmoorey
789619eeb9 Keymap: Adding readme file to personal keymap folder (#3665)
* Create a

* Add files via upload

* Delete a

* added readme
2018-08-15 15:32:58 -07:00
zwnk
3549415116 Keyboard: dactyl manuform 6x6 added (#3662)
* mouse layer keys shifted

* mouse layer keys shifted

* manuform 5x6 added

* mouse layer keys shifted

* manuform 5x6 added

* dactyl_manuform 5x6 keymap added

* reorg. dactyl manuform folder

* removed LAYOUTS = ortho_4x12 for 4x5

* Rows and Cols in config.h fixed

* MASTER_LEFT

* 5x6 matrix fixed

* keymap updated

* removed the i2c, serial, split_util and matrix files and inserted SPLIT_KEYBOARD

* default keymap for dactyl_manuform 5x6

* Fixes for Dactyl Manuform

* Add/update default keymap

* readme dactyl_manuform updated

* links to keymaps added

* dactyl_manuform 6x6 added. README updated

* dactyl_manuform README updated

* cleanup

* more cleanup
2018-08-15 15:31:59 -07:00
mechmerlin
4cfdd2cff5 Add configurator support for 66_ansi layout for rev1, 2 and 3 2018-08-15 13:53:28 -07:00
David Vonau
1eaf9c8b9b this commit fixes #3643, rev2 was affected too 2018-08-15 10:51:55 -07:00
zgtm
bfc9aa66f9 Docs: Update image in FAQ/Keymap: KC_EQLS -> KC_EQL (#3660) 2018-08-15 09:48:14 -07:00
zgtm
23867894c0 Layouts: Add default ortho 5x14 layout (#3656)
* Add default ortho 5x14 layout

* Fix layout_ortho_5x14: KC_EQLS -> KC_EQL
2018-08-15 09:43:39 -07:00
MakotoKurauchi
b3d80d4af0 Keymap: Helix : Update froggy keymap (#3652)
* led ripple effect

* fix key name
2018-08-15 09:30:34 -07:00
josephchoi1116
77b7e2cd59 Keyboard: Added layout LAYOUT_60_ansi_split_bksp_rshift to ok60 (#3644)
* Added layout LAYOUT_60_ansi_split_bksp_rshift

* Added layout 60_ansi_split_bksp_rshift
2018-08-15 09:28:47 -07:00
Danny
89838d0939 Keyboard: Migrate Quefrency to use split common files (#3642) 2018-08-15 09:27:34 -07:00
yiancar
ad2bb529c7 Rgb matrix arm (#3648)
* Addition of I2C master driver for STM32, Generalization of ISSI3731 driver

- Addition of an i2c_master driver for STM32 to replicate expectations of AVR driver.
- Moved ISSI3731 driver one level up to make it accesible by both architectures.
- Renamed ISSI3731 functions to a more general name for preparation of other ISSI drivers.
- Added compiler directives where necessary to differenciate each architecture.

* converted tabs to spaces
2018-08-15 01:19:38 -04:00
zwnk
feec8ad469 Keyboard: Add default keymap for dactyl_manuform 5x6 (#3649)
* mouse layer keys shifted

* mouse layer keys shifted

* manuform 5x6 added

* mouse layer keys shifted

* manuform 5x6 added

* dactyl_manuform 5x6 keymap added

* reorg. dactyl manuform folder

* removed LAYOUTS = ortho_4x12 for 4x5

* Rows and Cols in config.h fixed

* MASTER_LEFT

* 5x6 matrix fixed

* keymap updated

* removed the i2c, serial, split_util and matrix files and inserted SPLIT_KEYBOARD

* default keymap for dactyl_manuform 5x6

* Fixes for Dactyl Manuform

* Add/update default keymap
2018-08-14 10:54:22 -07:00
zwnk
61b6116147 Keyboard: Dactyl manuform 5x6 added and working (#3627)
* mouse layer keys shifted

* mouse layer keys shifted

* manuform 5x6 added

* mouse layer keys shifted

* manuform 5x6 added

* dactyl_manuform 5x6 keymap added

* reorg. dactyl manuform folder

* removed LAYOUTS = ortho_4x12 for 4x5

* Rows and Cols in config.h fixed

* MASTER_LEFT

* 5x6 matrix fixed

* keymap updated

* removed the i2c, serial, split_util and matrix files and inserted SPLIT_KEYBOARD
2018-08-13 20:23:11 -07:00
Danny
e12151f15e Keyboard: Clean up Iris files (#3640) 2018-08-13 12:38:49 -07:00
josephchoi1116
6cdc6e8397 Keyboard: Update info.json (#3638)
Add a layout of ANSI split backspace & R.Shift
2018-08-13 12:37:53 -07:00
Logan Bussell
08963796d8 Keymap: Added buswerks ortho_4x12 keymap (#3623)
* Added buswerks keymap

* cleaned up comments on buswerks keymap

* Added buswerks keymap readme.md

* Fixed spelling in buswerks readme.md

* Removed unnecessary includes, changed process_record_user to now use set_single_persistent_default_layer(), removed deprecated functions, and moved the audio ifdef block to config.h
2018-08-13 12:37:11 -07:00
Danny
05b7383703 Keyboard: Refactor Levinson to use split common code (#3639)
* Migrate Levinson to use split_common code

* Update keymap
2018-08-13 12:05:58 -07:00
Felipe Coury
39256c2449 Keyboard: Pearl keyboard LAYOUT_spacebar had an undefined constant K34 (#3633) 2018-08-12 09:33:04 -07:00
bmoorey
e510491bbc Keymap: Created and populated a keymap folder for Iris (#3632)
* Create a

* Add files via upload

* Delete a
2018-08-12 09:31:28 -07:00
Alex Ong
ac9b88e8cc Removed NP_STAR and NP_SLSH. 2018-08-12 21:39:55 +10:00
Alex Ong
714e0da960 Basic keymap (no FN). Compiles. 2018-08-12 21:27:51 +10:00
Alex Ong
c796944354 Delete removed other keymaps 2018-08-12 18:25:50 +10:00
alex-ong
2758158a4b Added xeal60 via clone of lets split 2018-08-12 17:23:58 +10:00
skullydazed
09759c20ae Document FIRMWARE_FORMAT (#3631) 2018-08-11 23:02:06 -07:00
skullydazed
3be4d2417c Keyboard: Make tada68 build .bin files by default (#3630) 2018-08-11 22:35:07 -07:00
MechMerlin
f0e0ca402c Keymap: copy skully's faux clicky mods (#3628) 2018-08-11 16:45:29 -07:00
fauxpark
2a49832db3 Update FAQ section on power keys 2018-08-11 14:30:53 -07:00
fauxpark
d263b27c9a Dedupe shifted keycodes listing 2018-08-11 14:29:53 -07:00
skullydazed
1cdef7cd2f Keymap: Add fauxclicky support to my keymap (#3625) 2018-08-11 14:28:01 -07:00
eucalyn
acd2767631 Keyboard: add blockey keyboard (#3545)
* add blockey

* change sources by reviews
2018-08-11 14:22:49 -07:00
skullY
7ad0f24efa Move my keymap to the community folder 2018-08-11 13:36:08 -07:00
orbitingorca
5d723ab158 Keyboard: Add ansi, split bs and rshift, 5 1u keys to right of space in DZ60 (#3612)
* Dz60 keymap, ansi, split bs and rshift, 5 1u keys to right of space

fixup

* Change Keymap to layout
2018-08-11 13:27:05 -07:00
tong92
a1568b9972 Keymap: Add mac layout (#3607)
- tv44
- planck
2018-08-11 13:24:06 -07:00
Nicholas Shaff
317c624761 Keyboard: Six Shooter Keyboard (#3598)
* Created base sixshooter configuration

* Added SixShooter basic LED on/off support.

* Updated LED identifier numbers to align with layout identifiers (and IDs on PCB).

* Minor sixshooter documentation cleanup.

* Added sixshooter info.json file.

* Moved sixshooter custom keycodes out of keymaps and into base keyboard files, small documentation tweaks.

* Removed unnecessary boot section size definition.

* Removing CONFIG_H if/define and replacing with #pragma once.
2018-08-11 13:23:11 -07:00
Biacco42
e5f201edb4 Keymap: Port ergo42/biacco keymap to Helix pico (#3585)
* Port ergo42/biacco keymap to Helix pico

* Fix for review
2018-08-11 13:22:32 -07:00
skullY
8e50a472ab Make both RGB and sound work on Clueboard 66% hotswap 2018-08-11 13:19:39 -07:00
Drashna Jaelre
c909c4ea50 Fix Typos in echo 2018-08-11 13:18:36 -07:00
Drashna Jaelre
bd4ba8d180 Add WSL support to script 2018-08-11 13:18:36 -07:00
Drashna Jaelre
bcdd7735c8 Add error message if config not detected 2018-08-11 13:18:36 -07:00
Drashna Jaelre
99cb107b71 Add 32 bit MINGW support .... 2018-08-11 13:18:36 -07:00
Drashna Jaelre
9c8f8bd3bc Fix minor typo in qmk_install.sh for MSYS/MINGW64 detection 2018-08-11 13:18:36 -07:00
skullY
98b16b3294 Comment and organize build_keyboard.mk a bit 2018-08-11 15:19:08 -04:00
mechmerlin
85659ae5e1 add layout support to clueboard 2018-08-11 11:59:51 -07:00
mechmerlin
2a89134d8e add some of my default layouts for the clueboard I got 2018-08-11 11:59:51 -07:00
Seth Barberee
3eabd7946e Split Common: Serial Backlight LED fix (#3586) 2018-08-11 11:10:23 -07:00
ishtob
fd0bd29a0a Keymap: adding my personal userspace to QMK master (#3605)
* Adding my personal planck keymap

* Adding readme.md to my keymap

* Create my userspace

add users/ishtob/

* Moved macros off keymap

macros now exsists in my userspace, moved them off keyboard specific keymaps

* Create my userspace

add users/ishtob/

* rebase from main QMK repo
2018-08-10 08:30:21 -07:00
MakotoKurauchi
feb5e4aaeb Keyboard: Helix serial improvements (#3608)
* add change_reciver2sender()/change_sender2reciver()

This is a change to improve readability.

* txled, rxled off in matrix_init()

* add serial_send_packet() / serial_recive_packet()

This is a change to reduce object size.

* add serial_low() at ISR() top

* add __attribute__((always_inline)) to some functions

* modify serial_send_packet()/serial_recive_packet()

A little, object size reduction.
A little, speedup.

* add debug code to helix/serial.c

* Adjust sampling timing of serial signal being received

* add split_scomm.c/split_scomm.h and change serial.c/serial.h

serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.

* add split_scomm.c/split_scomm.h into helix/rev1

* reduce object size helix/rev2/matrix.c

* remove checksum check, add parity check

* force occur parity error for test

* parity test ok. remove test code

* change some comment & add skip code when buffer_size == 0

* serial.c: multiple types of transaction support

Add 4 bits transaction-type field at packet top.
Select Transaction Descriptor Table entry by transaction-type.

* helix serial master-slave transaction optimize

Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.

* add debug code for retry

* add comment into each config.h

* fix ISR status drop

* add a debug macro 'debug_retry_chg()'

* reduce led_test size

* remove debug code from helix/serial.c and etc.

* helix:five_rows change TAPPING_TERM value 140

* Improved compatibility with let's split of serial.c. Finish helix/serial.c improvement.

- The difference with the original let's split's serial.c
  - It's high-speed about 4 times.
  - Stable bi-directional data transfer. (Helix need master to slave transfer)
  - serial.h was divided 2 files, serial_config.h and sereial.h
  - With multiple types of transaction support, communication contents can be optimized. (NEW flexible API)

- USE OLD Simple APIs (compatible with let's split serial.c)
  - files :
    - serial_config.h -- hardware configuration (need include by config.h)
    - serial.c/serial.h -- serial communication

- USE NEW flexible APIs. (Support multi-type transaction function.)
  serial.c was divided into 2 layers, split_scom.c and serial.c.
  The upper layer split_scomm.c is called from matrix.c.
  The lower layer serial.c accesses the hardware.
  - files
    - split_scomm.c -- communication buffer is defined in here. call by matrix.c.
    - split_scomm.h -- buffer size is defined in here. include by matrix.c, split_util.c
    - serial_config.h -- hardware configuration (need include by config.h)
      To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION
    - serial.c/serial.h -- serial communication lower layer

- NEW APIs for serial.c / serial.h (The lower layer)
  // Soft Serial Transaction Descriptor
  typedef struct _SSTD_t  {
      uint8_t *status;
      uint8_t initiator2target_buffer_size;
      uint8_t *initiator2target_buffer;
      uint8_t target2initiator_buffer_size;
      uint8_t *target2initiator_buffer;
  } SSTD_t;

  // initiator is transaction start side
  void soft_serial_initiator_init(SSTD_t *sstd_table);
  // target is interrupt accept side
  void soft_serial_target_init(SSTD_t *sstd_table);
  int soft_serial_transaction(int sstd_index);
  int soft_serial_get_and_clean_target_status(int sstd_index);

- NEW APIs for split_scomm.c / split_scomm.h (The upper layer)
   move from old serial.c the following buffer and functions
     serial_slave_buffer[]
     serial_master_buffer[]
     void serial_master_init(void)
     void serial_slave_init(void)
     int serial_update_buffers(void)
   define SERIAL_xxxxx_BUFFER_LENGTH move from serial_config.h to split_scomm.h
2018-08-10 08:22:09 -07:00
MechMerlin
90d8ed6c44 Keyboard: Add Configurator support for Clueboard 66 Hotswap (#3522) 2018-08-10 08:15:11 -07:00
Erick Ozaki
243764b83d Keymap: Custom L0 layout for ergodone (#3591) 2018-08-09 18:09:43 -07:00
MechMerlin
489a922f34 Keyboard: Disable mouse keys for kbd6x (#3603) 2018-08-09 18:03:34 -07:00
Christopher Sexton
1ac2dd9b63 Keymap: Spaceman Spiff layout for KBD75 (#3595)
![Keyboard Layout](https://i.imgur.com/tQLYDvu.png)

<!-- http://www.keyboard-layout-editor.com/#/gists/c1e8a15c68e4c52eed84653f21ae2d29 -->

Designed specifically to make switching back-n-forth with the Apple's MacBook Pro keyboard intuitive. Has a slight tendency toward readline/vim keybindings.

Caps locks becomes an `Esc` when pressed alone, or a `Ctrl` when pressed with another key.

Base Layer
----------

As simalar to the Apple keyboard as possible. Notiable exception is `Caps Lock`:
- `Esc` when pressed alone
- `Ctrl` when pressed with another key

Control+ Layer
--------------

Left `Ctrl` key switches to the "Control+ Layer". This layer mostly acts like a control key in most cases, with a few exceptions:

- `Ctl+` + `hjkl` are vim-style motion keys
- `Ctl+` + `p` and `Ctl+` + `n` are page up and down
- `Ctl+` + `Backspace` is forward delete

Fn Layer
--------

Audio Controls:
- `Fn` + `a` Volume Down
- `Fn` + `s` Volume Up
- `Fn` + `d` Mute

To flash this layout you need to press `Fn+Backspace`
2018-08-09 17:53:13 -07:00
Christopher Sexton
98afb45a27 Keymap: Spaceman Spiff layout for the GH60 Satan (#3596)
![Keyboard Layout](https://i.imgur.com/M9glFON.png)

Designed specifically to make switching back-n-forth with the Apple's
MacBook Pro keyboard intuitive. Has a slight tendency toward
readline/vim keybindings.

Caps locks becomes an `Esc` when pressed alone, or a `Ctrl` when pressed
with another key.

Base Layer
----------

As simalar to the Apple keyboard as possible. Notiable exception is
`Caps Lock`:

- `Esc` when pressed alone
- `Ctrl` when pressed with another key

Control+ Layer
--------------

Left Ctrl key switches to the "Control+ Layer". This layer mostly acts
like a control key in most cases, with a few exceptions:

- `Ctl+` + `hjkl` are vim-style motion keys
- `Ctl+` + `p` and `Ctl+` + `n` are page up and down
- `Ctl+` + `Backspace` is forward delete

Fn Layer
--------

Audio Controls:
- `Fn` + `a` Volume Down
- `Fn` + `s` Volume Up
- `Fn` + `d` Mute

To flash this layout you need to press `Fn+Backspace`
2018-08-09 17:52:35 -07:00
Yan-Fa Li
83da38c5e4 Keymap: Update cache22 default keymap (#3597)
- requested by rockydbull
2018-08-09 17:50:09 -07:00
MechMerlin
ccfe60eb57 Update ps2avrgb readme (#3599)
* give ps2avrgb a specific readme

* add homebrew and crosspack avr step

* update readme of all ps2avrgb boards to reflect the new template
2018-08-09 17:45:43 -07:00
yiancar
435e9b7bdb RGB Driver Documentation Update (#3601)
- Minor formating in rgb matrix page
- Added a short discription for is31fl3731 in drivers page
2018-08-09 17:41:48 -07:00
Kyle Brown
925b65b7d0 Update message.mk (#3602)
Fixed typo
2018-08-09 17:41:07 -07:00
marksard
619b5d1e6d Keymap: add like jis(iso) layout keymap for crkbd (#3562)
* add like jis(iso) layout keymap for crkbd

* Modified code by review.
2018-08-07 21:05:35 -07:00
James Underwood
69fef83b0e Keyboard: Adds Fleuron v1.0 keyboard (#3571)
* Adds Fleuron keyboard directory and default layout

* Adds Fleuron keyboard directory and default layout

* adds double zero macro, and updates to the new macro methodology

* adds raise and lower layers

* removes makefile from default layout, turns off mousekey, console, and command in rules.mk

* makes upper right key a bksp in default layout, adds .json layout file

* updates to default layout

* tweak default layout jusabit

* fix raise and lower switch case, and scoot a few keycodes around

* make changes for PR #3571

* fixing erros for PR #3571

* adds Dollartacos first custom keymap

* fixes for PR #3571
2018-08-07 17:47:49 -07:00
wanleg
fd085837e1 fix swap_hands keycodes in documentation (#3588) 2018-08-07 14:20:29 -07:00
fauxpark
d8e6ada5d7 Improve RGB lighting documentation (#3580) 2018-08-07 09:07:19 -07:00
Yan-Fa Li
16d6fd6e8e Keyboard: Add Catch 22 Hotswap Macropad to QMK (#3576)
* Initial Commit of catch22 macropad by rockydbull

* Add configurator info.json

* Use macros

* Use pragma once

* Use CA22 as product id

* Clean up readme

* Use the layer define value

* Feedback from @drashna
2018-08-06 08:40:00 -07:00
Greg Bowler
2b0f5d3bea Keyboard: Remap layout to match the actual keys sent from the tada68 board. (#3483)
* Remap layout to match the actual keys sent from board.
Fixes #3480

* Remap layer 1
2018-08-06 08:37:46 -07:00
MechMerlin
0c4e0a2097 Keyboard: KBD6x Support (#3560)
* initial commit

* get the matrix correct

* make my name be known

* add rgblight enable

* add a default keymap

* Add QMK Configurator support for the base layout

* add name here too

* fix up readme

* remove set user from keymap

* use led_set_kb as per drashna's comments on PR
2018-08-06 08:20:19 -07:00
fauxpark
f6ec2ce201 Update Shifted keycodes docs (#3575) 2018-08-05 08:55:53 -07:00
ArpinFidel
0346bc2c5b Keymap: XD75 keymap (#3553)
* cloned colinta as base

* switched to default base. started customising

* minor changes to layout

* added mouse keys

* minor tweaks to layout and mouse speed

* updated readme

* tweaked layout

- added middle fn keys
- moved rgb controls to fn layer middle
- added special keys to fn layer right

* moved scroll buttons as to not interfere with lshift

* turned on backlight

* fixed backlight

* changed user keycodes to differentiate

* changed folder name to lowercase

* updated readme

* stop processing after custom keycode

* edits to suit new standards

* added layer indicator using gp100 and gp103
2018-08-05 08:55:17 -07:00
fauxpark
e818b29879 Update FAQ section on Apple Fn (#3574) 2018-08-05 08:51:33 -07:00
Fred Silberberg
9a4db7a860 Keymap: Adds zen layout for 333fred (#3563)
* Initial commit of zen keymap

* Added RGB control for my zen

* Fixed ergodox layout.

* Reduce brightness.

* PR feedback.
2018-08-05 08:42:16 -07:00
Dave Brown
a6e1cb08c6 Keymap: frogger keymap (#3570)
* adding my keymap

A bit of pok3r, and a bit of some other things.

* Adding a readme

* undoing changes to gitignore

* adding a bit of commentary
2018-08-04 14:02:03 -07:00
Drashna Jaelre
a2b4178245 Make sure 'shutdown_user' is called 2018-08-04 16:49:57 -04:00
Drashna Jaelre
ef5b161bb5 Fix Audio code when resetting keyboard
I incorrectly disabled a bunch of code that shouldn't have been disabled.  This should only disable music mode stuff, not general audio.
2018-08-04 16:49:57 -04:00
Drashna Jaelre
23d68d0ba1 Make sure Planck light calls user suspend functions (#3568)
* Make sure Planck light calls user suspend functions

* Add suspend.h include to quantum.h for kb/user function compatibility
2018-08-04 16:49:10 -04:00
fauxpark
435a1202e7 More improvements to keycode docs (#3567)
* Reorder keycode list docs according to HID usage

* Add missing keycodes/descriptions/aliases
2018-08-04 09:09:22 -07:00
Xyverz
3e8f272873 Keyboard: LED fixes for Kinesis Stapelberg controller, and keymap changes (#3564)
* Rules for vitamins_included

Added a section to disable RGB underglow for the Let's Split
   Vitamins Included board.

* fixing ortho_4x12 configs

* Using upstream/master version instead

* Additions and Corrections

Corrected the Kinesis/Stapelberg's .c file to allow LEDs to work
Removed excess cruft from my Kinesis keymap to reflect this change
Other minor tweaks and adjustments to my ortho_4x12 and 5x12 layouts

* Updated readme
2018-08-04 09:01:26 -07:00
Olivier Poitrey
f8a915a2db Keymap: dz60 macos arrow rev2 (#3561)
* dz60/macos_arrow: move the eject key on esc to leave right cmd+bksp for move to trash

* dz60/macos_arrow: move the reset key on the media layer

This avoids accidental activation.

* dz60/macos_arrow: disable LEDs
2018-08-04 08:50:17 -07:00
MechMerlin
ec26684491 Update templates used for new_project.sh (#3558) 2018-08-03 10:00:06 -07:00
Jack Humbert
ac46378ac6 Update ISP flashing guide with pre-compiled binary (#3217)
* update flashing guide with pre-compiled binary

* Add files via upload

* Update isp_flashing_guide.md

* update file and instructions

* update instructions
2018-08-02 23:07:33 -04:00
Taylor Gonzalez
bb4af7deee Fix qmk_install.sh to properly target MSYS (#3455)
* qmk_install fix for windows users.

* Updated wildcard to caputre both MSYS and MINGW64 in qmk_install

* added OR to windows qmk_install
2018-08-02 14:43:51 -07:00
MechMerlin
d8db4ab202 Keyboard: make sure LAYOUT macro names match in info.json and h87a.h (#3550) 2018-08-02 14:41:20 -07:00
techsock
329b574831 Keyboard: M0110 converter ported from TMK (#3556)
* M0110 Converter Initial Commit

Port of the M0110 converter from TMK to QMK

* Fixed Typo
2018-08-02 14:40:40 -07:00
MechMerlin
20e5798e63 Keyboard: update new link for hardware availability (#3554) 2018-08-02 14:38:43 -07:00
marksard
9aee5e6427 Keymap: refactoring and modifief to helix five rows jis (#3552)
* display of LED mode
* refactoring
* modified a keymap
* use extra jp header
2018-08-02 14:32:37 -07:00
orbitingorca
dfef321bdf Keyboard: Enable using shared user hhkb layout for dz60 (#3549) 2018-08-02 14:17:11 -07:00
Takeshi ISHII
b29799f887 Keyboard: fixed build break (size overflow) HelixPico with Backlight or Underglow (#3546)
* build break fix for HelixPico

* add customize variable 'Link_Time_Optimization' into rev2 and pico keymaps rules.mk

* "CFLAGS += -flto" change to "EXTRAFLAGS += -flto"

* add USE_Link_Time_Optimization macro
2018-08-02 14:16:17 -07:00
Joshua Magee
0a00583462 Keyboard: Document the correct path to the let's split EEPROM files. (#3539)
* Document the correct path to the let's split EEPROM files.

* Document the EEPROM files in /quantum/split_common/ as the canonical location.
2018-08-02 13:52:24 -07:00
Danny
a057f1ca9e Keymap: Reformat Iris default keymap (#3534)
* Reformat default keymap to use LAYOUT, move RGB controls to RAISE layer

* Use set_single_persistent_default_layer instead of old method
2018-08-02 13:49:17 -07:00
wanleg
62a8603122 Keyboard: 4x4 modular keyboard (#3531)
* add support for 4x4 macropad

* Update readme.md

* set DFU escape key

* cleanup

* Update config.h

* Update keymap.c

* Update config.h

* Update keymap.c

* Update 4x4.h

* reviewed

fudging review automation

* playing with the system

* reverting

* Required additions made

Added support for additional layouts

* tidy up default keymap
2018-08-02 13:48:39 -07:00
Kenny Hung
6c20c6219c Keymap: Refactor symbols layer with layer tap workaround (#3520)
* Squash layout to fit on Planck

* Replace AST with PAST keycode so that it works with layer tap

* Review markups
2018-08-02 13:47:06 -07:00
Konstantin Đorđević
f0f1a363d2 Keymaps: Add whitefox constexpr keymap (#3541)
* Add keyboards/whitefox/keymaps/constexpr

* Conform to project coding conventions

* Tweak numpad layer keys

* Remove unnecessary directives
2018-08-01 20:04:20 -07:00
Jack Humbert
ea7bb624de Update CODE_OF_CONDUCT.md 2018-08-01 15:20:02 -04:00
fauxpark
03ad6927cb Docs: Format Space Cadet documentation (#3540)
* Format Space Cadet documentation

* Fix page filenames

* Move Caveats section up
2018-08-01 08:43:54 -07:00
MechMerlin
ff14028bd8 Keyboard: KBD75 Rev 1 LAYOUT_ansi_1u Bug (#3542) 2018-08-01 08:34:00 -07:00
fauxpark
c11a26ba54 Docs: Format Key Lock documentation (#3538) 2018-07-31 18:07:50 -07:00
Max Rumpf
9d016767e8 Keymap: Improvements to Maxr1998's Contra keymap (#3535)
* Add image

* Improvements to my Contra layout

* Quick fix for Level3 layer
2018-07-31 17:58:52 -07:00
Emmanuel Odongo
bb86d8a00c Docs: Fix some minor errors in tap dance example (#3530)
* Fix some minor errors in tap dance example

Fix for #3529
Fix minor errors in the code examples for __Example 4: 'Quad Function Tap-Dance'__ and relevant documentation. 
Clarified the need to include the header file in `keymap.c`.

* Use #pragma once in header guard

Fix for #3529
Implement change requested in #3530
2018-07-31 17:50:02 -07:00
Dylan Khor
cbf200e9dd Keymap: Add unagi planck keymap (#3527)
* modifications to add mouse buttons 1-4 and misc

* Add khord chocopad keymap

* fix merge message

* Add unagi keymap

* Add readme for unagi planck keymap

* Replace boilerplate for unagi keymap
2018-07-31 17:48:41 -07:00
fauxpark
2bc34b09cd Docs: Format Grave Escape documentation (#3536) 2018-07-31 17:40:55 -07:00
fauxpark
9b7a3a0bc8 Docs: Add Usage section to backlight docs (#3537) 2018-07-31 17:40:09 -07:00
Danny
1c88e4663d Add Rorschach keyboard (#3532)
* Add Rorschach keyboard

* Add info.json

* Replace header guards with pragma once
2018-07-31 09:08:44 -07:00
bakageta
76f3a10eec Keyboard: Add support for bpiphany's HID Liberation Device (#3470)
* Keyboard: Added support for HID Liberation Device

* Keymap: Custom (bakageta) layout for HID Liberation Device

* Updated with requested changes
2018-07-30 23:37:34 -07:00
fauxpark
98fa82ceef Backlighting docs (#3526)
* Some words about backlighting

* Link to RGB feature pages
2018-07-30 23:22:52 -07:00
rbong
b90141a156 Keymap: Added rbong keyboard layout (#3517) 2018-07-30 23:20:30 -07:00
Will
aee0f3c3d2 Keymap: Fate Iris layout (#3508) 2018-07-30 23:19:45 -07:00
mtdjr
07ab5befc7 Keymaps: correct error in mtdjr userspace for layer_state_set_user (#3521)
* holefully correct error in mtdjr userspace for layer_state_set_user

* return state and wrap rgb actions in their own conditional
2018-07-29 21:45:09 -07:00
fauxpark
25d757284c Docs: Fix Command docs escaping (#3523) 2018-07-29 21:08:59 -07:00
MechMerlin
841ea7ceb6 Keyboard: Add caps lock led support to DZ60 (#3506)
* add caps lock led support to DZ60

* changes from drashna's code review comments

* call led_set_user at the end of led_set_kb
2018-07-29 15:18:45 -07:00
orbitingorca
54517f8b34 Keyboard: Add a hhkb layout for the ok60 (#3512)
* Add HHKB keymap

* Add hhkb layout to info.json
2018-07-29 11:20:48 -07:00
rbong
dacc746b01 Keyboard: Add tada68 Linux flashing instructions (#3516) 2018-07-29 09:10:54 -07:00
Brosseau Valentin
bcc1a7ca30 Keymap: Change the bepo layout for only 1U keys (#3514) 2018-07-29 09:07:16 -07:00
Evan Travers
6caea0acfb Docs: Adjust dynamic macro docs to include more than the planck (#3509) 2018-07-29 08:59:39 -07:00
wanleg
64f1ad00a7 Keymap: add left/right mouse keys (#3504) 2018-07-29 08:50:24 -07:00
fauxpark
f2ebafcee8 Docs: Make Bootmagic and Command docs a little easier to read (#3499)
* Make Bootmagic and Command docs a little easier to read

* Sometimes Bootmagic/Command is default on

* "Escape" pipe character so it renders correctly
2018-07-29 08:42:51 -07:00
Brad
595f3cbe5b Added alternating led underglow pattern (#3498)
* added alternating led pattern

* added alternating with rgblight_config values

* removed my comments
2018-07-29 08:42:11 -07:00
Mikkel Jeppesen
f1513c3ad2 Keyboard: Let's Split fixes (#3511)
* Fixed pin for RGB

* Implemented drashnas fixes for filesize
2018-07-27 14:34:41 -07:00
Evan Travers
bd874b9577 Docs: Clarify "right" -> "right-handed" (#3507)
I couldn't understand this sentence at first owing to the confusion
between right meaning "correct," and right meaning "right-handed."
2018-07-26 18:07:24 -07:00
Bruno Fagundez
9fc7bb1f6a Docs: Fixed the link to the advanced keycodes wiki (#3505) 2018-07-26 17:37:24 -07:00
MechMerlin
573e1c09e7 Keyboard: Update KEYMAP to LAYOUT for ckeys obelus (#3495) 2018-07-26 14:34:38 -07:00
MechMerlin
4deb5de438 Keyboard: Hide JC65 directory in QMK Configurator (#3491)
To prevent people from picking the wrong version for their MCU
2018-07-26 14:32:02 -07:00
J.net
b6c5c4cf52 Keymap: jennetters iris keymap (#3488)
* jennetters iris keymap, re-write for improved readability.

* Update rules/config/keymap to follow correct makefile structure
2018-07-26 14:30:47 -07:00
J.net
e0d467dbab Keymap: jennetters fourier split 40% keymap (#3487)
* jennetters fourier keymap, tapdance declarations and reformatted keymap file for readbility

* Update rules and keymap to follow new makefile setup.

* Add #pragma once to config.h
2018-07-26 14:30:01 -07:00
Daniel Shields
449736c06d Keymap: Add LAYOUT_planck_grid to planck/dshields keymap. (#3484) 2018-07-26 14:29:12 -07:00
MakotoKurauchi
07e0558e9a Keyboard: Add HelixPico keyboard (#3502) 2018-07-26 14:26:02 -07:00
lucwastiaux
f2bf5a9a74 Keymap: Ergodox Dvorak 42 key layout changes (#3500)
* add SCREEN_NAV layer for copy/pasting within screen

* working readreg/paste macros

* working read reg / paste macros

* write log and tran patterns, and expand

* add ls -la shortcut, add tab on combined layer

* put delete word on the right pinky key on shell_nav layer

* add TAB on the right side, add reset key

* added Cloud9 macros

* add cloud9 shortcuts to atreus layout

* added BROWSER_CONTROL layer

* finalized browser control layer

* adding comment

* add browser control layer to atreus

* add flashing command line

* remove the tab on combined layer

* remove the tomouse

* remove mouse layer, change log/tran expand patterns, cleanups

* add dumptlog macro

* add "delete to home" shortcut

* fix conflict

* remove unneeded mouse layer

* add meh shortcuts on the browser_control layer

* add/modify some macros

* explain the various layers
2018-07-26 14:21:55 -07:00
MechMerlin
7a8c139d07 Keyboard: E6V2 Layout Fix (#3490)
* add yanfali's patch to get rid of the e6v2 directory in configurator

* fix matrix for 60_ansi
2018-07-25 20:12:15 -07:00
NeonSpork
49892272a0 Keymap: UT47:nordic - A couple of tweaks (#3489)
* Add files via upload

Added a nordic layout for UT47

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Add files via upload

* Update to readme and keymap files

* Update readme.md

Changed cover image

* Update readme.md

typo fix

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Delete rules.mk

* Updated cover image in readme.md

Fixed typo in image of keymaps

* Update keymap.c

Changed backslash to forward slash in first function layer.

* Add files via upload

* Delete config.h

deleting files so I can upload to a folder with lower case name

* Delete keymap.c

deleting file so I can change to lower case name

* Delete readme.md

deleting file so I can change to lower case name

* Add files via upload

* Update keymap.c

Cleaned up definitions in beginning of file.

* Update keymap.c

forgot an include

* Update keymap.c

* Update readme.md

Updated picture of layout, link was wrong and pointed to an old/removed image.

* Update readme.md

Fixed error in link to keyboard layout editor

* Update keymap.c

More cleanup of the includes at beginning of file

* Update config.h

* Update keymap.c

Fixed typo: Volume Down and Volume Up on the Tab layer were switched.

* Update keymap.c

* Added a macro on the Tab layer for <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd>
* Added a macro on the Gaming layer for <kbd>Alt</kbd>+<kbd>Tab</kbd> (replaces prebious Backspace key)

* Update readme.md

Updated readme.md file to reflect changes to keymap.c in cover photo and KLE link.
(added short cuts for Ctr Alt Del and Alt Tab)
2018-07-25 20:11:38 -07:00
MechMerlin
723d338c62 Keyboard: E6V2 LE Improvements (#3486)
* fix for that stupid LED

* formatting changes and add firmware flashing warning to readmes

* update readme with more info

* add LAYOUT_60_ansi thanks to help from phlop

* add configurator support for 60_ansi

* add 60_ansi for community layout support
2018-07-25 12:18:36 -07:00
Len Trigg
0fa192091c redox: convert to use SPLIT_KEYBOARD feature (#3478) 2018-07-25 12:16:03 -07:00
Jacob Jerrell
4b5dcda126 Keymap: Bocaj Ergodox Updates (#3364)
* Bocaj Layout Revamp

* Pull in Upstream (#1)

* Various tweaks for some Input:Club build processes

* change KEYMAP to LAYOUT for all new keyboards made using this script

* Add support for rev3 of the Atom47 (#2672)

* Added support for rev3 of the Atom47

* Updated Atom47 readme's

* Fix redefine error on rev2 and add maartenwut's keymap

* Fix redefine error on LEdiodes keymap

* Add Nyquist keymap (#2692)

* nyquist

* danielhklein nyquist setup

* shift left controls

* remove readme

* cleanup before pr

* ready for pr

* Adds Phantom TKL support (#2696)

* Add an info.json to phantom keyboard

* Add layouts

 - KEYMAP_WINKEYLESS
 - KEYMAP_7BIT
 - KEYMAP_ISO
 - KEYMAP_ISO_WINKEYLESS

* Add key_counts

* Add 2 missing F-Row keys

* Add TKC1800 info.json

Created an info.json for the tkc1800.

* Clueboard 60 info.json

 - adds
   - LAYOUT_60_ansi
   - LAYOUT_60_iso
   - KEYMAP_AEK
   - KEYMAP
   - LAYOUT_60_ansi_split_bs_rshift

* Add the Speedo keyboard

* Fix KC60 info.json file (#2707)

* change KEYMAP to LAYOUT in all the KC60 files

* Redo the info.json file

* Small fixes to TKC1800

 - adjust F-row to use 0.25 spacing
 - split left shift
 - add key_count

* Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708)

* change diverge 3 KC_KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for handwired arrow pad

* change M10A to LAYOUT for m10-a

* Change KC_KEYMAP to LAYOUT_kc and KEYMAP to LAYOUT for mf68

* change KC_KEYMAP to LAYOUT for nano

* Refactor to LAYOUT

* refactor to LAYOUT-ansi and LAYOUT_iso for s65

* LAYOUT conversions for lfkkeyboards

* missed a few renames

* mini1800 for lfkeyobards support of LAYOUT

* Improve state/chord handling and clean up namespace

Some values that can never, ever, change were held in local
variables, rather than in PROGMEM. Fixed.

Change "pressed" to a signed int so the test for < 0 makes
sense, and to avoid possible weird failure modes in the
case where a key release comes in when pressed is already
zero. (Shouldn't happen, sure, but computers are weird.)

A lot of things in process_steno had external linkage for no
particular reason. They've been marked static. Stuff still
builds.

Distinguish between currently-held keys and keys that have
been held, and expose these values through a nicely-named API
so other code could, say, check on the current set of steno
chording in order to make displays. Also in passing fix up the
"state" value having external linkage so it could clash with
other people's variable declarations.

The API also provides hooks for key processing and steno chord
events, so you can monitor those events without having to
run in matrix_scan_user and recheck the values directly. Also
document these.

There is no path through processing a key that doesn't
end with a return false, so the nested return foo() are
gone and we just return false.

* Pull information from config.h and rules.mk (#2711)

* Pull information from config.h and rules.mk

* Readd the kbd75 maintainer

* Remove obsolete info.json entries (#2712)

* Clean up some long-standing errors when populating the API (#2715)

* More Configurator Warning Fixes (#2716)

* mf68_ble did not have the correct .c and .h files

* Fix JC65 KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for s60_x

* Convert KEYMAP to LAYOUT for lets_split boards

* Convert KEYMAP to LAYOUT

* more fixes to keymap for iris

* convert KEYMAP to LAYOUT for levinson keyboard

* change losinggeneration's KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for nyquist

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for viterbi

* convert KEYMAP to LAYOUT

* convert KEYMAP and its subsidiries to the LAYOUT standard

* convert KEYMAP and its subsidiries to the new LAYOUT standard

* Normacos keymap for let's split keyboard (#2691)

* Cheers let's split keymap

* fixed typo on norman layer of cheers keymap for let's split

* fixed right handed mappings for home row

* cheers keymap for let's split redefinition

* updated Cheers keymap for let's split

* cheers keymap for let's split updated with some terminal macros

* renamed cheers let's split keymap to a more appropriate normacos

* updated normacos keymap doc / removed non functional keys

* reset let's split rules to default values

* added more spotlight search macros

* normalized keymap comments

* Moved numpad on lower layer

* hhkb jp personal keymap (#2698)

* Add JJ40 Cockpit personal keymap (#2713)

* Add JJ40 Cockpit keymap

* Fix lower layer symbols

* Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718)

* add readme to ktype keyboard

* add readme to m10a

* add readme to mini1800

* add readme to parent directory

* Revert "Pull in Upstream (#1)"

This reverts commit eeba0cec17ccb636e4225eed88aeae72b99f5e45.

* Updates to Bocaj Files

- Gave up on Tap Dance for ' -> '
+ Added another 'Secret'
+ Add ' -> ' to the Swap Hands key
+ Add Swap Hands to the ' -> ' key
+ Made Hand Swapping a momentary toggle
- Removed Auto Shift
+ Added Layer Toggle to KC_QUOTE for the _TOOLS layer
- Disabled Tap Dance

* Merge remote-tracking branch 'upstream/master'

* Updates to Bocaj

Added Game Layers, Removed Unused Macros

* Removed 'secrets.h'

* Updates to Bocaj

Remove 'secrets'.
Remove 'sendstring_workman.h' and set related layer back to qwerty due to macro compatibility issues

* Total revisioning of keymap and layout structure

* Missed readme.md file

* Bocaj - Permissive Hold setting enabled
2018-07-25 08:37:04 -07:00
Dylan Khor
c531dfb6a7 keymap: Update khord let's split keymap and add chocopad keymap (#3482)
* modifications to add mouse buttons 1-4 and misc

* Add khord chocopad keymap

* fix merge message
2018-07-25 08:30:17 -07:00
Stephen Tudor
4ac48a61a6 Keymap: Add smt keymap for TKC1800 (#3481) 2018-07-25 08:28:06 -07:00
Drashna Jaelre
4df6b7ba19 Fix for the Split Common I2C code's SCL_CLOCK issue (#3474)
* Fix the SLC_CLOCK setting for the Split Common code

Make the SCL_CLOCK setting configurable per board, since some use different settings
And change the Iris  to use 100000L instead of 400000L

* Add SCL_CLOCK variable to documentation

* Change SCL_CLOCK default to 100000L
2018-07-25 08:26:10 -07:00
NeonSpork
56ed2d495d keymap: UT47:nordic - fixed typo (#3477)
* Add files via upload

Added a nordic layout for UT47

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Add files via upload

* Update to readme and keymap files

* Update readme.md

Changed cover image

* Update readme.md

typo fix

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Delete rules.mk

* Updated cover image in readme.md

Fixed typo in image of keymaps

* Update keymap.c

Changed backslash to forward slash in first function layer.

* Add files via upload

* Delete config.h

deleting files so I can upload to a folder with lower case name

* Delete keymap.c

deleting file so I can change to lower case name

* Delete readme.md

deleting file so I can change to lower case name

* Add files via upload

* Update keymap.c

Cleaned up definitions in beginning of file.

* Update keymap.c

forgot an include

* Update keymap.c

* Update readme.md

Updated picture of layout, link was wrong and pointed to an old/removed image.

* Update readme.md

Fixed error in link to keyboard layout editor

* Update keymap.c

More cleanup of the includes at beginning of file

* Update config.h

* Update keymap.c

Fixed typo: Volume Down and Volume Up on the Tab layer were switched.
2018-07-25 08:25:45 -07:00
Michael Pio
c14e297ad5 Keyboard: Add QC60 (#3472)
* Added initial files for QC60 prototype

* renamed all 'keymap' to 'layout'

* renamed layout macros to suggested naming convention of LAYOUT_macro_description

* replaced boilerplate

* removed rules.mk from keymap folders

* replaced 'qc60/rev1' with 'qc60/proto'

* replaced more boilerplate

* renamed DEFAULT_FOLDER to point at the correct folder

* updated readme
2018-07-25 08:18:36 -07:00
Lukas Klingsbo
9ce35e823b Keyboard: Base for the nicekey keyboard (#3475)
* Base for the nicekey keyboard

* Fixed formatting of readme
2018-07-23 16:13:11 -07:00
Xyverz
1225120b92 Keymap: Adjustments to my Ortho_4x12 layout configs (#3466)
* Rules for vitamins_included

Added a section to disable RGB underglow for the Let's Split
   Vitamins Included board.

* fixing ortho_4x12 configs
2018-07-23 12:23:44 -07:00
Kenneth Aloysius
f2bc70a264 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453)
* Add M6-A keymap

* Update XD60 keymap

* Update XD60 keymap readme

* Update JJ40 and Let's Split keymaps

* Add readme for M6-A

* Fix typo, update JJ40 README

* Update jj40 readme

* Cleanup jj40 keymap

* Revert Let's Split QWERTY layer to default before #2010

* Update numpad layers

* Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer

* Keep ASCII art consistent with keymap

* Staryu: initial port

* Add personal keymap

* Added and updated READMEs

* Fix: default keymap for staryu

* Rudimentary backlight support.

* Enabled mousekeys for default keymap

* use QMK_KEYBOARD_H and LAYOUT

* Update readme.md for NIU mini: flash using avrdude

* Fix missing linebreaks for Staryu README

* Update readme.md

* Update PS2AVRGB boards with new matrix.c

* Update canoe matrix.c; untested

* Fix canoe.c for building (needs matrix_scan_user and matrix_init_user)

* Add personal Iris keymap

* Update keymap

* Update keymap

* Update keymap, disable backlighting and underglow

* Move PrintScreen button

* Add README

* Update personal keymaps

* Add INS key

* Limit USB max power consumption, change Fn to MENU

* Remove Numpad layer (easy to accidentally toggle)

* Fix backlighting for ps2avrgb

* Update comments to refer to actual pin naming

* Possible fix for xyverz ortho keymap: define RGBLED_NUM

* Make led_set_user in backlight.c overridable

* Add changes to address points raised in code review, untested (don't have build env right now)
2018-07-23 12:11:56 -07:00
noroadsleft
4e41812a67 Keyboard: Fix character encoding for kona_classic's info.json (#3473) 2018-07-23 12:02:45 -07:00
marksard
7e8d4be8ac Keymap: Refactor helix keymap based on changes to default keymap (#3469) 2018-07-23 11:44:55 -07:00
lebastaq
b5d9bee969 Keymap: Add software development oriented bepo layout to xd75 (#3451)
* added special keys

* formatting

* disabled autoshift

* updated readme to follow guidelines

* changed copyright

* minor fixes

* added changes requested

* update traditional bepo layout
2018-07-23 11:43:13 -07:00
NeonSpork
1775a3075e Keymap: UT47:nordic - Fixed error in picture link in readme file (#3452)
* Add files via upload

Added a nordic layout for UT47

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Add files via upload

* Update to readme and keymap files

* Update readme.md

Changed cover image

* Update readme.md

typo fix

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Delete rules.mk

* Updated cover image in readme.md

Fixed typo in image of keymaps

* Update keymap.c

Changed backslash to forward slash in first function layer.

* Add files via upload

* Delete config.h

deleting files so I can upload to a folder with lower case name

* Delete keymap.c

deleting file so I can change to lower case name

* Delete readme.md

deleting file so I can change to lower case name

* Add files via upload

* Update keymap.c

Cleaned up definitions in beginning of file.

* Update keymap.c

forgot an include

* Update keymap.c

* Update readme.md

Updated picture of layout, link was wrong and pointed to an old/removed image.

* Update readme.md

Fixed error in link to keyboard layout editor

* Update keymap.c

More cleanup of the includes at beginning of file

* Update config.h
2018-07-22 13:41:39 -07:00
Rasmus Schults
095b28e006 Loop based vusb_transfer_keyboard 2018-07-22 11:49:36 -04:00
Rasmus Schults
8a27703ef4 VUSB fix report dropping if usbInterruptIsReady() returns false 2018-07-22 11:49:36 -04:00
noroadsleft
006abbfd6f Keyboard: Kona Classic refactor and Configurator update (#3464)
* Refactor: matrices and keymaps

* Configurator support

* Readme cleanup
2018-07-22 06:59:28 -07:00
noroadsleft
95e7e10061 Keyboard: Configurator fix: KC60SE info.json, LAYOUT matrix (#3463) 2018-07-22 06:58:32 -07:00
Fabian Topfstedt
87dc2efda8 Keymap: Custom (fabian) layout for Iris and Planck (#3460)
* fabian layout

* added MOUSECURSOR layer that gets activated by holding space

* cleanup, meh and tilde and grave as separate keys, toggle switch for mousecursor layer

* merged default

* #pragma once

* including QMK_KEYBOARD_H instead of various imports

* using layer toggle instead of a function

* deleted obsolete rules.mk (was part of the old makefile system)

* #pragma once

* including QMK_KEYBOARD_H instead of various imports

* use ifndef KEYBOARD_planck_rev6 instead of ifdef KEYBOARD_planck_rev5
2018-07-22 06:58:01 -07:00
Seth Barberee
ed99581161 Convert Iris to use SPLIT_KEYBOARD (#3458)
* convert iris to split-common

* Fix build error
2018-07-22 06:56:14 -07:00
noroadsleft
83d33caf63 Keyboard: Fix UTF-8 encoding for DC01 Numpad info.json (#3462) 2018-07-21 15:35:57 -07:00
Yan-Fa Li
6834febece Temporary work around for CB60 sound issues (#3325)
* Temporary work around for CB60 sound issues

Discussed this with @fredizzimo, upping the system ticks to 100K fixes
the sound issues I was having with the CB60; speaker would fail to shut
off after playing music, sometimes at startup. This changes the matrix
scan time from it's default of every 2ms to once ever 200us.

Fred has a more extensive change to the way matrices are scanned which
will require less clock cycles and we can then revert this change at
that time.

* Remove keymap dir from clueboard root
2018-07-21 15:00:11 -07:00
Jarred Steenvoorden
8def9bc642 Keymap: Jarreds keymap creation (#3459)
* Add planck keymap

* Add windows key to nav layer

* Turn off mouse layer

* Update userspace file to allow sharing between more boards
2018-07-21 12:15:31 -07:00
Merlin04
3fc5a05d66 Keyboard: Added support for the Fractal keyboard (#3457)
* Added support for the Fractal keyboard

* Try to fix the issue

* Add support for the Fractal keyboard.

* Fix errors with files
2018-07-21 12:14:32 -07:00
noroadsleft
1147fc24ad Keyboard: DC01 refactor and Configurator support (#3445)
* Arrow: matrix and keymap refactor

* Left: matrix and keymap refactor

* Numpad: matrix macro correction

* Numpad: add support for community layouts numpad_5x4 and ortho_5x4

* Right: matrix and keymap refactor

* DC01 global readme cleanup (minor grammar)

* DC01 global Configurator support

* Right: bugfixes for HHKB-style keymaps
2018-07-21 12:12:07 -07:00
Jack Humbert
d4056a11d3 rename MIT to 1x2uC for preonic 2018-07-20 23:09:25 -04:00
Jack Humbert
1572375bfb adds support for preonic rev 3 2018-07-20 23:09:25 -04:00
Jack Humbert
0284431ad9 add col type defines 2018-07-20 23:09:25 -04:00
Xyverz
8e86e22187 Keymap: Fixed Dvorak layer (#3450)
I was missing the KC_BSLS from my Dvorak layer, so I needed to add it back in.
2018-07-20 09:32:47 -07:00
noroadsleft
9c4b9bbccc Keyboard: KC60se matrix fixes (#3446)
* Replace KC_NO with ___ in matrices for readability

* Add K49 to LAYOUT matrix

K49 was previously was stated to be padless, but it's actually the right-hand half of a split Backspace.

* Switched positions of K3C and K3D in LAYOUT matrix

When using a split right Shift, K3D is to the left of K3C.

* Insert KC_NO (___) element into bottom row of LAYOUT_60_ansi matrix

Reported by @NimMooMoo on QMK Discord

Right-hand modifiers on bottom row were shifted one key to the right. After debugging, discovered that the "electrical matrix" (the part of the matrix macro that determines which row and column a key uses) was one element short on the last row at K49, causing the rest of the row to be offset by one column.

This commit corrects that issue.

* Added a missing comma in the LAYOUT matrix
2018-07-20 09:10:13 -07:00
Taylor Gonzalez
0537a59920 Keymap: Added a keymap for the planck light (#3434)
* Moved F row to raise

* Moved mouse keys over one space and removed unneccessary code

* Moved delete on lower

* Added CTRL functions

* Added Print Screen

* Added README.md file

* Updated CTRL

* Updated readme to current CTRL

* Minor Changes

* Updated mouse speeds

* Unknown changes

* Updated README and keymaps

* Removed caps from number row and put it in special

* Moved around equals sign again

* Updated mouse key speed

* Pull Request Updates
2018-07-20 09:07:54 -07:00
Biacco42
d21b287e7d Keymap: Underglow support for Ergo42 default-ish keymap (#3431)
* Transprot underglow implementation to default map

* Remove needless old lines
2018-07-20 09:05:45 -07:00
Michael Zoech
c50e80e13b Keyboard: adding Sentraq S65-Plus (#3406)
* New keyboard 'Sentraq S65-Plus'

* Change ANSI_KEYMAP to LAYOUT_ansi

* Use QMK_KEYBOARD_H as include
2018-07-20 09:01:35 -07:00
Batuhan Baserdem
738a9fc16c Userspace update for user bbaserdem (#3443)
* Put in my keymaps

* Fixed all but weird lets split issue

* Organized and tried to trobleshoot lets split

* Organized and tried to trobleshoot lets split

* Added bbaserdem keymaps

* Added bbaserdem keymaps

* Fixed stuff

* FIxed a filename error

* Lets split eh

* Finalized things regarding keymap
2018-07-18 20:17:55 -07:00
noroadsleft
b89cec9ebc Keyboard: LFKeyboards LFK65-HS Readme cleanup (#3442) 2018-07-18 20:06:34 -07:00
noroadsleft
38299ff2ef Keyboard: LFKeyboards SMK65 refactor and Configurator support (#3441)
* SMK65: Matrix refactor

* SMK65: Keymap refactor (QMK_KEYBOARD_H)

* SMK65: Configurator support
2018-07-18 20:05:39 -07:00
noroadsleft
61c53ad75e Keyboard: LFKeyboards Mini1800 refactor and Configurator update (#3440)
* Mini1800: Matrix refactor

* Mini1800: Keymap refactor (QMK_KEYBOARD_H)

* Mini1800: Configurator update (white space)
2018-07-18 20:05:05 -07:00
noroadsleft
9234f9c964 Keyboard: LFKPad refactor and Configurator support (#3439)
* LFKPad: matrix refactor

* LFKPad: keymap refactor (QMK_KEYBOARD_H; matrix update)

* LFKPad: Configurator support

* LFKPad: added community layout numpad_6x4 to rules.mk

* LFKPad: Update rgb_sequence to match new matrix

* LFKPad: delete deprecated makefile include block from rules.mk
2018-07-18 20:03:40 -07:00
donfuge
2869d51ba8 keymapping for hungarian layout added (#3438) 2018-07-18 20:02:42 -07:00
noroadsleft
bc7fe1223d Add #include "config_common.h" after #pragma once to config.h templates (#3444) 2018-07-18 17:16:57 -07:00
noroadsleft
f804bd3d2d LFK87 refactor and Configurator support (#3436)
* LFK87: Matrix refactor

* LFK87: Keymap refactor

* LFK87: Configurator support

* LFK87: Added community layouts tkl_ansi and tkl_iso to rules.mk
2018-07-18 11:31:31 -07:00
yiancar
72fd49b146 DC01 keyboard addition (#3428)
* DC01 initial commit

- Addition of directories
- Left readme

* Initial commit of left half

* Initial files for right half

* arrow

* i2c adjustments

* I2C slave and DC01 refractoring

- Cleaned up state machine of I2C slave driver
- Modified DC01 left to use already pressent I2C master driver
- Modified DC01 matrixes

* Fixed tabs to spaces

* Addition of Numpad

* Add keymaps

- Orthopad keymap for numpad module
- Numpad keymap for numpad module
- ISO, ANSI and HHKB version of keymap for right module

* Minor matrix.c fixes

* Update Readmes
2018-07-18 12:55:57 -04:00
scott-t-wilson
7e9a7af672 Keyboard: Add support for LFK65-HS - a hotswap 65% (#3009)
* Add support for LFK65-HS - a hotswap 65%

* Add info.json for LFK65-HS

* Clean up for new build system, remove uneeded code.

* LFK65-HS cleanup. Fixed LAYOUT macros, etc
2018-07-18 09:54:49 -07:00
Dan
11773a5546 Keymap: Add light controls for Planck (#3435) 2018-07-18 09:33:26 -07:00
Paul Davis
b2175e1849 Song List: Mario Mushroom (#3432) 2018-07-18 08:03:43 -07:00
noroadsleft
ffc2ae057b Keyboard: NIU Mini refactor and Configurator update (#3433)
* Removed LAYOUTS = planck_grid from rules.mk

* Matrix refactor

* Keymap refactor

* Configurator update
2018-07-18 08:02:52 -07:00
That-Canadian
a012113d63 Split common (#3429)
* Line ending stuff again

* Added Let's Split Eh? Files and updated #USE_IC2 checks to also include th EH revision (can only be used in I2C)

* Added personal keymap, updated some of the EH files

* Created new keyboard file for testing "lets_split_eh" will merge into lets_split once fully functional

* Added split code from lets_split, removed pro micro imports and LED code

THIS IS WORKING CODE, WITHOUT RGB AND BACKLIGHT

* Took back original Lets Slit files for the lets_split keyboard, working in the lets_split_eh folder for now

* Updated eh.c

* More rework of the I2C code, added global flags for split boards.

* Introduced RGB over I2C, having weird edge case issues at the moment though

* Fixed weird I2C edgecase with RGB, although still would like to track down route cause..

* Changed RGB keycodes (static ones) to activate on key-up instead of key-down to elimate weird ghosting issue over I2C

* Lots of changes, mainly externalized the Split keyboard code and added logic for only including when needed.

- Added makefile option "SPLIT_KEYBOARD" that when = yes will include the split keyboard files and custom matrix
- Split keyboard files placed into quantum/split_common/
- Added define option for config files "SPLIT_HAND_PIN" FOr using high/low pin to determine handedness, low = right hand, high = left hand
- Cleaned up split logic for RGB and Backlight so it is only exectuted / included when needed

* Updated documentation for the new makefile options and #defines specific to split keyboards

* Added a bit more info to docs, so people aren't confused

* Modifed Let's Split to use externalized code, also added left and right hand eeprom files to the split_common folder

* Removed some debugging from eh.c

* Small changes to keyboard configs. Also added a default keymap (just a copy of my that_canadian keymap).

* Added a README file to the Let's Split Eh?

* Changed it so RGB static updates are done on key-up ONLY for split boards rather than all boards. Also fixed leftover un-used variable in rgblight.c

* Updated default keymap and my keymap for Let's Split Eh? Updated the comments so it reflects RGB control, and removed audio functions.

* Fixed lets_split_eh not having a default version

* Removed "eh" references from lets_split folder for now

* Took lets_split folder from master to fix travis build errors, weird my local was overriding.

* Changed LAYOUT_ortho_4x12_kc -> LAYOUT_kc_ortho_4x12 to match bakingpy and others

* Removed rules.mk from my lets_split keymap, not needed

* Updated the config_options doc to better explain the usage of "#define SPLIT_HAND_PIN"

* Fixed split_common assuming I2C for RGB and Backlight. Added serial backlight support (stole from bakingpy's Levinson code ;) ) Serial RGB not implemented yet. Also Added "USE_IC2" to the lets_split_eh/eh as that was looked over.

* Fixed stupid mistake, forgot to set BACKLIT_DIRTY to false after setting slave backlit settings for serial

* Updated backlight data block to be cleaner (thanks drashna ;) )
2018-07-17 14:54:07 -04:00
noroadsleft
c691396ae5 Keyboard: Noxary 268 refactor and Configurator update (#3426)
* Rename LAYOUT to LAYOUT_all

* Repair LAYOUT_all object in info.json (element count mismatch)

* Added LAYOUT_iso and LAYOUT_ansi matrices, with sample keymaps

* Added LAYOUT_iso and LAYOUT_ansi to info.json

* Added block comment regarding layout options to 268.h

* Readme cleanup (GitHub markdown parsing)
2018-07-17 08:19:40 -07:00
Mark Kuba
860f6d65b8 Keyboard: Add tada68 flashing instructions for Mac (#3424) 2018-07-17 08:18:11 -07:00
Konstantin Lepa
85d2d4fee5 Keymap: Change Satan layout lepa (rev 2) (#3427)
* Change Satan keymap lepa (rev 2)

* Remove unused code from satan keymap lepa.
2018-07-17 08:16:01 -07:00
NeonSpork
a57c9648e9 Keymap: a Nordic layout for UT47 (#3422)
* Add files via upload

Added a nordic layout for UT47

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Add files via upload

* Update to readme and keymap files

* Update readme.md

Changed cover image

* Update readme.md

typo fix

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Delete rules.mk

* Updated cover image in readme.md

Fixed typo in image of keymaps

* Update keymap.c

Changed backslash to forward slash in first function layer.

* Add files via upload

* Delete config.h

deleting files so I can upload to a folder with lower case name

* Delete keymap.c

deleting file so I can change to lower case name

* Delete readme.md

deleting file so I can change to lower case name

* Add files via upload

* Update keymap.c

Cleaned up definitions in beginning of file.
2018-07-17 07:56:26 -07:00
Fredric Silberberg
e9755521ab Update README with rules.mk ordering information. 2018-07-17 00:10:42 -04:00
Fredric Silberberg
bbecd276d2 Correct parsing of rules.mk for keyboard revisions
Previously, when looking for rules.mk files, we'd parse the individual
folders (A/B/C/D/E) into 5 variables, (A/B/C/D/E, A/B/C/D, A/B/C, A/B,
and A). Then, we'd get the final directory names and store _those_ in 5
new variables (A, B, C, D, and E). Then, when looking for the rules.mk,
we'd look in root_dir/keyboards/(A|B|C|D|E)/rules.mk, instead of looking
in root_dir/keyboards(A|A/B|A/B/C|A/B/C/D|A/B/C/D/E)/rules.mk. This
commit changes that logic from the former to the latter.
2018-07-17 00:10:42 -04:00
marksard
4d4b845cf5 Keymap: Modified of 'Helix five rows JIS" keymap (#3425)
* Change key layout in raise-layer.
* Improvement update cycle to mouse key changes.

* Update the readme.md
2018-07-16 20:08:31 -07:00
That-Canadian
0fab3bbde3 Lets split eh (#3120)
* Line ending stuff again

* Added Let's Split Eh? Files and updated #USE_IC2 checks to also include th EH revision (can only be used in I2C)

* Added personal keymap, updated some of the EH files

* Created new keyboard file for testing "lets_split_eh" will merge into lets_split once fully functional

* Added split code from lets_split, removed pro micro imports and LED code

THIS IS WORKING CODE, WITHOUT RGB AND BACKLIGHT

* Took back original Lets Slit files for the lets_split keyboard, working in the lets_split_eh folder for now

* Updated eh.c

* More rework of the I2C code, added global flags for split boards.

* Introduced RGB over I2C, having weird edge case issues at the moment though

* Fixed weird I2C edgecase with RGB, although still would like to track down route cause..

* Changed RGB keycodes (static ones) to activate on key-up instead of key-down to elimate weird ghosting issue over I2C

* Lots of changes, mainly externalized the Split keyboard code and added logic for only including when needed.

- Added makefile option "SPLIT_KEYBOARD" that when = yes will include the split keyboard files and custom matrix
- Split keyboard files placed into quantum/split_common/
- Added define option for config files "SPLIT_HAND_PIN" FOr using high/low pin to determine handedness, low = right hand, high = left hand
- Cleaned up split logic for RGB and Backlight so it is only exectuted / included when needed

* Updated documentation for the new makefile options and #defines specific to split keyboards

* Added a bit more info to docs, so people aren't confused

* Modifed Let's Split to use externalized code, also added left and right hand eeprom files to the split_common folder

* Removed some debugging from eh.c

* Small changes to keyboard configs. Also added a default keymap (just a copy of my that_canadian keymap).

* Added a README file to the Let's Split Eh?

* Changed it so RGB static updates are done on key-up ONLY for split boards rather than all boards. Also fixed leftover un-used variable in rgblight.c

* Updated default keymap and my keymap for Let's Split Eh? Updated the comments so it reflects RGB control, and removed audio functions.

* Fixed lets_split_eh not having a default version

* Removed "eh" references from lets_split folder for now

* Took lets_split folder from master to fix travis build errors, weird my local was overriding.

* Changed LAYOUT_ortho_4x12_kc -> LAYOUT_kc_ortho_4x12 to match bakingpy and others

* Removed rules.mk from my lets_split keymap, not needed

* Updated the config_options doc to better explain the usage of "#define SPLIT_HAND_PIN"
2018-07-16 22:25:02 -04:00
Drashna Jaelre
b2877470ce Update to drashna userspace and keymaps (#3172)
* Use string with delay

* Add skipped region to ergodox

* Add send string config

* Use default_layer_state instead of function

* Fully generalize keyboards

* old iris cleanup

* Fix Drashna keymap compile issues

By checking to see if secret.c exists before actually trying to add it

* Remove unnecessary references

* Add 4x12 ortho board

* Update userspace readme for secrets

* Make RGB more modular

* Fix iris keymap, since we don't need the lower left (Function keys)

* Fix includes

* Add Blanks

* Fix Ergodox lower layer

* Add suspend commands

* Add Maltron Layout

* Add additional layouts

* Finish adding gamepad to Iris

* Tweaks to iris gamepag layer

* make gaming layers more friendly

* minor gaming layer tweak

* Add Carplax

* Add modded key timer function

* Cleanup and macro documentation

* Add QMK DFU info

* Add 'old' keymap for 12 LED spare

* Update Pro Micro documentation

* Disable twinkling so it fits in firmware space

* Switch to QMK DFU bootloader, since it's better anyhow

* Write default layer state colors to EEPROM

Since we are writing to EEPROM anyways, and this way, it sticks on reboot

* Fix QMK DFU bootloader options

* More updates for QMK DFU support

* Use matrix scanning hack for startup_user until #3113 gets merged

* Fix indicator light consistency issue

* Add/readd ifdefs to indicators

* Add/readd alt indicator

* Remove RGB Twinkling from Viterbi macro pad

* Fix default layer color detection

* Fix rebase and detection issues

* Cleanup code so it will compile if RGBLIGHT is disabled

* Revert vsode settings

* Use Pragma Once instead of boilerplate code
2018-07-16 21:04:32 -04:00
Drashna Jaelre
e0c9cfad86 Fix sidebard doc 2018-07-16 21:04:12 -04:00
Konstantin Lepa
5a34ec7565 Keymap: Add satan keymap lepa (#3423) 2018-07-16 15:39:04 -07:00
MechMerlin
237da3ac8d E6V2 LE: Top Right Keys are Reversed (#3420) 2018-07-16 10:50:15 -07:00
Jack Humbert
ade22f8e2c Adds support for Planck Rev 6 (#2666)
* initial files for rev 6 with encoder

* music map init, dip scan added

* adds ws2812 driver for arm

* flesh out dip and encoder support

* adds default encoder res

* adds default encoder res

* start muse implementation

* muse working with encoder as control

* flip direction

* try mouse wheel again

* dont break other revs

* dont break other revs

* conditional autio

* pwm ws driver (not working)

* update build includes for chibios

* update ws2812 driver/config

* last commit for glasser code

* working example

* remove rgb for now

* finish up rev6

* working encoder keycodes

* add warnings to planck keymaps about the LAYOUT
2018-07-16 11:48:31 -04:00
Evan Travers
96cb9f4661 Update template config.h with #pragma once (#3415)
* Update template config.h with `#pragma once`

Making sure this is consistent with #3404

* Move to `#pragma once` for the other templates
2018-07-16 08:44:16 -07:00
MechMerlin
8f0ec565f4 E6V2 LE Caps Lock LED Fix (#3419) 2018-07-16 08:43:17 -07:00
noroadsleft
6a4a4a2875 Quefrency Configurator fix (#3418) 2018-07-16 08:42:38 -07:00
Ally Parker
5e463086cd General cleanup KBD75 keymap (#3410) 2018-07-16 08:41:53 -07:00
Damien
c37ce43437 Added dbroqua layout for Iris keyboard (#3414)
* - Fixed DK60 version in config.h

* - Updated dk60 readme with new QMK rules

* - Fixed wording in readme

* Added dbroqua layout for DZ60

I've also updated dz60.h to add "true HHKD" keymap definition (6U
spacebar).

With the default HHKB definition r_alt was not mapped and when I pressed
r_menu it was r_alt.

Regards

* Updated dbroqua layout for HHKB keyboard

Added default configuration and alternate (swap gui/alt keys).

Save user choice in keyboard memory (like plank, thanks for this
feature!).

* Added dbroqua layout for Iris keyboard

* Updated layout and fixed includes
2018-07-16 08:38:21 -07:00
Evan Travers
f2fcffab0d Docs: Adjust prompt to be more recognizable (#3417) 2018-07-15 21:23:22 -07:00
Andreuha
aa62b60eaf Updated keymap 'Andylikescandy' bfo9000 (#3413)
* initial keymap BFO9000 built as 6x18

* Updated 18x6 layout and added QWERTY layer

The southpaw idea didn't work so well...

* Swapped RALT and RGUI
2018-07-15 21:16:53 -07:00
ichi
612a418ce9 Add ichi-t's keymap for the Ergo42 (#3411)
* Add ichi-t's Keymap

* Delete rules.mk
2018-07-15 21:15:56 -07:00
Hannes Egler
6bdef6b8c2 Fixed kbd8x compile issues (#3409)
Fixed compile errors on some machines
2018-07-15 11:21:26 -07:00
TerryMathews
b292d30a25 TKC1800: Correct error on LED backlight support (#3408)
* Turn backlight support on by default

* Correct error on LED backlight support

Turns out, it doesn't work if you don't enable it in rules.mk. Who knew?
2018-07-15 11:20:40 -07:00
zjpxshade
7f0a205232 Added gentoo to installer (#3272)
* Added gentoo installer

* Remove comments

* Remove comments

* Updating the layout

* Revert "Remove comments"

This reverts commit e348afa41a470d4b8f1865d92b85acd32ab14074.

* Revert "Updating the layout"

This reverts commit 181822d195f722f4981825ded7dd85fa268c3c56.

* Undo erroneous revert
2018-07-15 14:14:47 -04:00
Jon Allen
1f5d5e5314 allow building with nix on darwin
add avrdude do dependency list
2018-07-15 13:58:50 -04:00
Drashna Jaelre
8ffeaec3aa Overhaul to keycode related docs
* Adds Audio Keycodes to both the feature page and master list
* Re-orders the keycode list, so it's alphabetical (mostly)
* Add additional (missing) sections to the keycode list
* Add and update links in the keycode page
* Add and reorder links in sidebar's keycode section
2018-07-15 13:40:18 -04:00
Max Audron
bbea9dadbc Integrating Peter Fleury's HD44780 LCD library (#3209)
* integrated Peter Fleury's LCD library for HD44780 LCDs

* fixed typo

* cleanup finished

* add documentation

* added HD44780 documentation

* removed keyboard from .gitmodules

* resolved merge conflict

* removed edit of kira75s rules.mk made by merge

* moved hd44780 to drivers/avr

* Added licence info to hd44780 files

* Added link to hd44780 docs.
2018-07-15 13:31:45 -04:00
Joe Wasson
81756d7b21 Fix tapdance when one-shot is disabled. 2018-07-15 13:29:59 -04:00
Evan Travers
c5c112ae29 Update config.h boilerplate to use #pragma once
According to @fredizzimo, this is a safer and easier way to handle the
boilerplate.
2018-07-15 13:21:20 -04:00
Evan Travers
3d7bfae232 Add Userspace mention
@drashna mentioned it'd be good to have a mention of the userspace in
the QMK structure section. Rather than rewrite the docs on userspace, I
chose to link to the existing documentation.
2018-07-15 13:21:20 -04:00
Evan Travers
b666921e25 Reword the config.h section
This section didn't include the possibility of a user `config.h`, and it
wasn't clear exactly how the settings override works.
2018-07-15 13:21:20 -04:00
Evan Travers
b4f4576631 Update docs: Makefile -> rules.mk
I think this was a typo, or perhaps an older way to handle it.
2018-07-15 13:21:20 -04:00
yiancar
60797c8439 Add I2C slave library
- Add I2C slave library for general use.
2018-07-15 13:00:50 -04:00
5638 changed files with 103110 additions and 401115 deletions

26
.clang-format Normal file
View File

@@ -0,0 +1,26 @@
---
BasedOnStyle: Google
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignOperands: 'true'
AllowAllParametersOfDeclarationOnNextLine: 'false'
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: 'false'
BinPackArguments: 'true'
BinPackParameters: 'true'
ColumnLimit: '1000'
IndentCaseLabels: 'true'
IndentPPDirectives: AfterHash
IndentWidth: '2'
MaxEmptyLinesToKeep: '1'
PointerAlignment: Right
SortIncludes: 'false'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: 'false'
TabWidth: '2'
UseTab: Never
...

View File

@@ -16,12 +16,18 @@ insert_final_newline = true
trim_trailing_whitespace = false
indent_size = 4
[{qmk,*.py}]
charset = utf-8
max_line_length = 200
# Make these match what we have in .gitattributes
[*.mk]
end_of_line = lf
indent_style = tab
[Makefile]
end_of_line = lf
indent_style = tab
[*.sh]
end_of_line = lf

5
.github/ISSUE_TEMPLATE/blank.md vendored Normal file
View File

@@ -0,0 +1,5 @@
---
name: Blank issue
about: If you're 100% sure that you don't need one of the other issue templates, use this one instead.
---

32
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve the QMK Firmware
---
<!-- Provide a general summary of the bug in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Describe the Bug
<!-- A clear and concise description of what the bug is. -->
## System Information
- Keyboard:
- Revision (if applicable):
- Operating system:
- AVR GCC version:
<!-- Run `avr-gcc --version` to find this out. -->
- ARM GCC version:
<!-- Run `arm-none-eabi-gcc --version` to find this out. -->
- QMK Firmware version:
<!-- Run `git describe --abbrev=0 --tags` to find this out. -->
- Any keyboard related software installed?
- [ ] AutoHotKey
- [ ] Karabiner
- [ ] Other:
## Additional Context
<!-- Add any other relevant information about the problem here. -->

View File

@@ -0,0 +1,19 @@
---
name: Feature request
about: Suggest a new feature or changes to existing features
---
<!--- Provide a general summary of the changes you want in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Feature Request Type
- [ ] Core functionality
- [ ] Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
- [ ] Alteration (enhancement/optimization) of existing feature(s)
- [ ] New behavior
## Description
<!-- A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful. -->

View File

@@ -0,0 +1,9 @@
---
name: Other issues
about: Anything else that doesn't fall into the above categories.
---
<!--- Provide a general summary of the changes you want in the title above. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
<!-- Please check https://docs.qmk.fm/#/support for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate. -->

34
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,34 @@
<!--- Provide a general summary of your changes in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Description
<!--- Describe your changes in detail here. -->
## Types of Changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply. -->
- [ ] Core
- [ ] Bugfix
- [ ] New feature
- [ ] Enhancement/optimization
- [ ] Keyboard (addition or update)
- [ ] Keymap/layout/userspace (addition or update)
- [ ] Documentation
## Issues Fixed or Closed by This PR
*
## Checklist
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).
- [ ] I have added tests to cover my changes.
- [ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

18
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.history/
.dep
*.o
*.bin
@@ -27,16 +28,11 @@ doxygen/
.DS_STORE
/util/wsl_downloaded
/util/win_downloaded
/users/
/layouts/
/keyboards/*/Makefile
/keyboards/*/*/Makefile
/keyboards/*/*/*/Makefile
/keyboards/*/*/*/*/Makefile
/keyboards/*/*/*/*/*/Makefile
/keyboards/*/keymaps/Makefile
/keyboards/*/*/keymaps/Makefile
/keyboards/*/*/*/keymaps/Makefile
/keyboards/*/*/*/*/keymaps/Makefile
/keyboards/*/*/*/*/*/keymaps/Makefile
!/keyboards/ergodox_ez/
!/keyboards/planck/
# Eclipse/PyCharm/Other IDE Settings
.cproject
@@ -62,9 +58,11 @@ util/Win_Check_Output.txt
*.gif
# Do not ignore MiniDox left/right hand eeprom files
!keyboards/minidox/*.eep
# things travis sees
secrets.tar
id_rsa_*
/.vs
# python things
__pycache__

View File

@@ -10,35 +10,19 @@ branches:
env:
global:
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
before_install:
- wget http://ww1.microchip.com/downloads/en/DeviceDoc/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz || wget http://qmk.fm/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
- MAKEFLAGS="-j3 --output-sync"
services:
- docker
install:
- tar -zxf avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
- export PATH="$PATH:$TRAVIS_BUILD_DIR/avr8-gnu-toolchain-linux_x86_64/bin"
- npm install -g moxygen
before_script:
- avr-gcc --version
script:
- make test:all AUTOGEN=false
- bash util/travis_build.sh
- bash util/travis_docs.sh
- git rev-parse --short HEAD
- bash util/travis_test.sh
- bash util/travis_build.sh
addons:
apt:
packages:
- dfu-programmer
- pandoc
- gcc-arm-none-eabi
- binutils-arm-none-eabi
- libnewlib-arm-none-eabi
- diffutils
- dos2unix
- doxygen
after_success:
bash util/travis_compiled_push.sh
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/afce403d65f143dfac09
on_success: always # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always

View File

@@ -1,6 +0,0 @@
// Suggested extensions
{
"recommendations": [
"EditorConfig.EditorConfig"
]
}

17
.vscode/settings.json vendored
View File

@@ -1,17 +0,0 @@
// Place your settings in this file to overwrite default and user settings.
{
// Unofficially, QMK uses spaces for indentation
"editor.insertSpaces": true,
// Configure glob patterns for excluding files and folders.
"files.exclude": {
"**/.build": true,
"**/*.hex": true
},
"files.associations": {
"*.h": "c",
"*.c": "c",
"*.cpp": "cpp",
"*.hpp": "cpp",
"xstddef": "c"
}
}

View File

@@ -1,10 +1,10 @@
# Code Of Conduct
QMK strives to be an inclusive and tolerant community. We welcome participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation.
QMK strives to be an inclusive, tolerant, and welcoming community. We encourage participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation.
> “A gentle word turns away wrath, but a harsh word stirs up anger.
> “A gentle word turns away wrath, but a harsh word stirs up anger."
Our users, contributors, and collaborators are expected to treat each other with respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. Some examples of behavior we will not tolerate include, but is not limited to:
Our users, contributors, and collaborators are expected to treat each other with kindness and respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. While our goal is to be as accurate as possible, kindness and understanding are more valuable than correctness. Some examples of behavior we will not tolerate include, but is not limited to:
* The use of sexualized language or imagery
* Unwelcome advances, sexual or otherwise

View File

@@ -1,28 +1,7 @@
FROM debian:jessie
MAINTAINER Erik Dasque <erik@frenchguys.com>
FROM qmkfm/base_container
RUN apt-get update && apt-get install --no-install-recommends -y build-essential \
gcc \
unzip \
wget \
zip \
gcc-avr \
binutils-avr \
avr-libc \
dfu-programmer \
dfu-util \
gcc-arm-none-eabi \
binutils-arm-none-eabi \
libnewlib-arm-none-eabi \
git \
software-properties-common \
avrdude \
&& rm -rf /var/lib/apt/lists/*
VOLUME /qmk_firmware
WORKDIR /qmk_firmware
COPY . .
ENV keyboard=ergodox
ENV subproject=ez
ENV keymap=default
VOLUME /qmk
WORKDIR /qmk
CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap}
CMD make all:all

View File

@@ -67,7 +67,7 @@ $(eval $(call NEXT_PATH_ELEMENT))
# It's really a very simple if else chain, if you squint enough,
# but the makefile syntax makes it very verbose.
# If we are in a subfolder of keyboards
#
#
# *** No longer needed **
#
# ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
@@ -112,23 +112,29 @@ $(eval $(call GET_KEYBOARDS))
# Only consider folders with makefiles, to prevent errors in case there are extra folders
#KEYBOARDS += $(patsubst $(ROOD_DIR)/keyboards/%/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
.PHONY: list-keyboards
list-keyboards:
echo $(KEYBOARDS)
exit 0
define PRINT_KEYBOARD
$(info $(PRINTING_KEYBOARD))
endef
.PHONY: generate-keyboards-file
generate-keyboards-file:
$(foreach PRINTING_KEYBOARD,$(KEYBOARDS),$(eval $(call PRINT_KEYBOARD)))
exit 0
.PHONY: clean
clean:
echo -n 'Deleting .build ... '
echo -n 'Deleting .build/ ... '
rm -rf $(BUILD_DIR)
echo 'done'
exit 0
echo 'done.'
.PHONY: distclean
distclean: clean
echo -n 'Deleting *.bin and *.hex ... '
rm -f *.bin *.hex
echo 'done.'
#Compatibility with the old make variables, anything you specify directly on the command line
# always overrides the detected folders
@@ -307,11 +313,6 @@ define PARSE_KEYBOARD
KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2)))
KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3)))
KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4)))
KEYBOARD_FOLDER_1 := $$(notdir $$(KEYBOARD_FOLDER_PATH_1))
KEYBOARD_FOLDER_2 := $$(notdir $$(KEYBOARD_FOLDER_PATH_2))
KEYBOARD_FOLDER_3 := $$(notdir $$(KEYBOARD_FOLDER_PATH_3))
KEYBOARD_FOLDER_4 := $$(notdir $$(KEYBOARD_FOLDER_PATH_4))
KEYBOARD_FOLDER_5 := $$(notdir $$(KEYBOARD_FOLDER_PATH_5))
KEYMAPS :=
# get a list of all keymaps
@@ -325,35 +326,35 @@ define PARSE_KEYBOARD
$$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS)))
KEYBOARD_LAYOUTS :=
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_5)/rules.mk)","")
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_5)/rules.mk)
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_4)/rules.mk)","")
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_4)/rules.mk)
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_3)/rules.mk)","")
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_3)/rules.mk)
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_2)/rules.mk)","")
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_2)/rules.mk)
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_1)/rules.mk)","")
ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)","")
LAYOUTS :=
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_1)/rules.mk)
$$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/rules.mk)
KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
endif
LAYOUT_KEYMAPS :=
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
# if the rule after removing the start of it is empty (we haven't specified a kemap or target)
@@ -533,11 +534,13 @@ endef
%:
# Check if we have the CMP tool installed
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
# Ensure that python3 is installed. This check can be removed after python is used in more places.
if ! python3 --version 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi
# Check if the submodules are dirty, and display a warning if they are
ifndef SKIP_GIT
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --init lib/chibios; fi
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --init lib/chibios-contrib; fi
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --init lib/ugfx; fi
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 1 --init lib/chibios; fi
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 1 --init lib/chibios-contrib; fi
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --depth 1 --init lib/ugfx; fi
git submodule status --recursive 2>/dev/null | \
while IFS= read -r x; do \
case "$$x" in \
@@ -553,9 +556,10 @@ endif
# it has to be there to allow parallel execution of the submake
# This always tries to compile everything, even if error occurs in the middle
# But we return the error code at the end, to trigger travis failures
$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND))
# The sort at this point is to remove duplicates
$(foreach COMMAND,$(sort $(COMMANDS)),$(RUN_COMMAND))
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
$(foreach TEST,$(TESTS),$(RUN_TEST))
$(foreach TEST,$(sort $(TESTS)),$(RUN_TEST))
if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
# These no longer work because of the colon system
@@ -581,9 +585,10 @@ lib/%:
git submodule sync $?
git submodule update --init $?
.PHONY: git-submodule
git-submodule:
git submodule sync --recursive
git submodule update --init --recursive
git submodule update --init --recursive --progress
ifdef SKIP_VERSION
SKIP_GIT := yes

56
Vagrantfile vendored
View File

@@ -2,8 +2,11 @@
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
# VMware/Virtualbox 64 bit
config.vm.box = "phusion/ubuntu-14.04-amd64"
# define a name instead of just 'default'
config.vm.define "qmk_firmware"
# VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit
config.vm.box = "generic/debian9"
# This section allows you to customize the Virtualbox VM
# settings, ie showing the GUI or upping the memory
@@ -15,13 +18,16 @@ Vagrant.configure(2) do |config|
# your Teensy via the VM rather than your host OS
#vb.customize ['modifyvm', :id, '--usb', 'on']
#vb.customize ['usbfilter', 'add', '0',
# '--target', :id,
# '--name', 'teensy',
# '--vendorid', '0x16c0',
# '--productid','0x0478'
# ]
# '--target', :id,
# '--name', 'teensy',
# '--vendorid', '0x16c0',
# '--productid','0x0478'
# ]
# Customize the amount of memory on the VM:
vb.memory = "512"
# Uncomment the below lines if you have time sync
# issues with make and incremental builds
#vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
end
# This section allows you to customize the VMware VM
@@ -44,31 +50,41 @@ Vagrant.configure(2) do |config|
end
# Docker provider pulls from hub.docker.com respecting docker.image if
# config.vm.box is nil. Note that this bind-mounts from the current dir to
# config.vm.box is nil. In this case, we adhoc build util/vagrant/Dockerfile.
# Note that this bind-mounts from the current dir to
# /vagrant in the guest, so unless your UID is 1000 to match vagrant in the
# image, you'll need to: chmod -R a+rw .
config.vm.provider "docker" do |docker, override|
override.vm.box = nil
docker.image = "jesselang/debian-vagrant:jessie"
docker.build_dir = "util/vagrant"
docker.has_ssh = true
end
# This script ensures the required packages for AVR programming are installed
# It also ensures the system always gets the latest updates when powered on
# If this causes issues you can run a 'vagrant destroy' and then
# add a # before ,args: and run 'vagrant up' to get a working
# non-updated box and then attempt to troubleshoot or open a Github issue
# Unless we are running the docker container directly
# 1. run container detached on vm
# 2. attach on 'vagrant ssh'
["virtualbox", "vmware_workstation", "vmware_fusion"].each do |type|
config.vm.provider type do |virt, override|
override.vm.provision "docker" do |d|
d.run "qmkfm/base_container",
cmd: "tail -f /dev/null",
args: "--privileged -v /dev:/dev -v '/vagrant:/vagrant'"
end
config.vm.provision "shell", run: "always", path: "./util/install_dependencies.sh", args: "-update"
override.vm.provision "shell", inline: <<-SHELL
echo 'docker restart qmkfm-base_container && exec docker exec -it qmkfm-base_container /bin/bash -l' >> ~vagrant/.bashrc
SHELL
end
end
config.vm.post_up_message = <<-EOT
Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is
located at /vagrant
To compile the .hex files use make command inside this directory.
Log into the environment using 'vagrant ssh'. QMK directory synchronized with
host is located at /vagrant
To compile the .hex files use make command inside this directory, e.g.
cd /vagrant
make <keyboard>:default
QMK's make format recently changed to use folder locations and colons:
make project_folder:keymap[:target]
Examples:
make planck/rev4:default:dfu
make planck:default

97
bin/qmk Executable file
View File

@@ -0,0 +1,97 @@
#!/usr/bin/env python3
"""CLI wrapper for running QMK commands.
"""
import os
import subprocess
import sys
from glob import glob
from time import strftime
from importlib import import_module
from importlib.util import find_spec
# Add the QMK python libs to our path
script_dir = os.path.dirname(os.path.realpath(__file__))
qmk_dir = os.path.abspath(os.path.join(script_dir, '..'))
python_lib_dir = os.path.abspath(os.path.join(qmk_dir, 'lib', 'python'))
sys.path.append(python_lib_dir)
# Change to the root of our checkout
os.environ['ORIG_CWD'] = os.getcwd()
os.chdir(qmk_dir)
# Make sure our modules have been setup
with open('requirements.txt', 'r') as fd:
for line in fd.readlines():
line = line.strip().replace('<', '=').replace('>', '=')
if line[0] == '#':
continue
if '#' in line:
line = line.split('#')[0]
module = line.split('=')[0] if '=' in line else line
if not find_spec(module):
print('Your QMK build environment is not fully setup!\n')
print('Please run `./util/qmk_install.sh` to setup QMK.')
exit(255)
# Figure out our version
command = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags']
result = subprocess.run(command, text=True, capture_output=True)
if result.returncode == 0:
os.environ['QMK_VERSION'] = 'QMK ' + result.stdout.strip()
else:
os.environ['QMK_VERSION'] = 'QMK ' + strftime('%Y-%m-%d-%H:%M:%S')
# Setup the CLI
import milc
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}ψ{style_reset_all}'
# If we were invoked as `qmk <cmd>` massage sys.argv into `qmk-<cmd>`.
# This means we can't accept arguments to the qmk script itself.
script_name = os.path.basename(sys.argv[0])
if script_name == 'qmk':
if len(sys.argv) == 1:
milc.cli.log.error('No subcommand specified!\n')
if len(sys.argv) == 1 or sys.argv[1] in ['-h', '--help']:
milc.cli.echo('usage: qmk <subcommand> [...]')
milc.cli.echo('\nsubcommands:')
subcommands = glob(os.path.join(qmk_dir, 'bin', 'qmk-*'))
for subcommand in sorted(subcommands):
subcommand = os.path.basename(subcommand).split('-', 1)[1]
milc.cli.echo('\t%s', subcommand)
milc.cli.echo('\nqmk <subcommand> --help for more information')
exit(1)
if sys.argv[1] in ['-V', '--version']:
milc.cli.echo(os.environ['QMK_VERSION'])
exit(0)
sys.argv[0] = script_name = '-'.join((script_name, sys.argv[1]))
del sys.argv[1]
# Look for which module to import
if script_name == 'qmk':
milc.cli.print_help()
exit(0)
elif not script_name.startswith('qmk-'):
milc.cli.log.error('Invalid symlink, must start with "qmk-": %s', script_name)
else:
subcommand = script_name.replace('-', '.').replace('_', '.').split('.')
subcommand.insert(1, 'cli')
subcommand = '.'.join(subcommand)
try:
import_module(subcommand)
except ModuleNotFoundError as e:
if e.__class__.__name__ != subcommand:
raise
milc.cli.log.error('Invalid subcommand! Could not import %s.', subcommand)
exit(1)
if __name__ == '__main__':
milc.cli()

1
bin/qmk-compile-json Symbolic link
View File

@@ -0,0 +1 @@
qmk

1
bin/qmk-doctor Symbolic link
View File

@@ -0,0 +1 @@
qmk

1
bin/qmk-hello Symbolic link
View File

@@ -0,0 +1 @@
qmk

1
bin/qmk-json-keymap Symbolic link
View File

@@ -0,0 +1 @@
qmk

View File

@@ -76,6 +76,10 @@ ifeq ($(strip $(BOOTLOADER)), bootloadHID)
OPT_DEFS += -DBOOTLOADER_BOOTLOADHID
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), USBasp)
OPT_DEFS += -DBOOTLOADER_USBASP
BOOTLOADER_SIZE = 4096
endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))

27
build_json.mk Normal file
View File

@@ -0,0 +1,27 @@
# Look for a json keymap file
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
endif
# Generate the keymap.c
ifneq ("$(KEYMAP_JSON)","")
_ = $(shell test -e $(KEYMAP_C) || bin/qmk-json-keymap $(KEYMAP_JSON) -o $(KEYMAP_C))
endif

View File

@@ -1,3 +1,9 @@
# Determine what keyboard we are building and setup the build environment.
#
# We support folders up to 5 levels deep below `keyboards/`. This file is
# responsible for determining which folder is being used and doing the
# corresponding environment setup.
ifndef VERBOSE
.SILENT:
endif
@@ -6,26 +12,16 @@ endif
include common.mk
# 5/4/3/2/1
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
KEYBOARD_FOLDER_PATH_3 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_2)))
KEYBOARD_FOLDER_PATH_4 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_3)))
KEYBOARD_FOLDER_PATH_5 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_4)))
KEYBOARD_FOLDER_1 := $(notdir $(KEYBOARD_FOLDER_PATH_1))
KEYBOARD_FOLDER_2 := $(notdir $(KEYBOARD_FOLDER_PATH_2))
KEYBOARD_FOLDER_3 := $(notdir $(KEYBOARD_FOLDER_PATH_3))
KEYBOARD_FOLDER_4 := $(notdir $(KEYBOARD_FOLDER_PATH_4))
KEYBOARD_FOLDER_5 := $(notdir $(KEYBOARD_FOLDER_PATH_5))
# Set the filename for the final firmware binary
KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
STM32_PATH := quantum/stm32
# Force expansion
TARGET := $(TARGET)
# For split boards we need to set a master half.
MASTER ?= left
ifdef master
MASTER = $(master)
@@ -39,35 +35,126 @@ $(error MASTER does not have a valid value(left/right))
endif
endif
KEYBOARD_PATHS :=
ifdef SKIP_VERSION
OPT_DEFS += -DSKIP_VERSION
endif
# Determine which subfolders exist.
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
KEYBOARD_FOLDER_PATH_3 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_2)))
KEYBOARD_FOLDER_PATH_4 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_3)))
KEYBOARD_FOLDER_PATH_5 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_4)))
KEYBOARD_FOLDER_1 := $(notdir $(KEYBOARD_FOLDER_PATH_1))
KEYBOARD_FOLDER_2 := $(notdir $(KEYBOARD_FOLDER_PATH_2))
KEYBOARD_FOLDER_3 := $(notdir $(KEYBOARD_FOLDER_PATH_3))
KEYBOARD_FOLDER_4 := $(notdir $(KEYBOARD_FOLDER_PATH_4))
KEYBOARD_FOLDER_5 := $(notdir $(KEYBOARD_FOLDER_PATH_5))
KEYBOARD_PATHS :=
KEYBOARD_PATH_1 := keyboards/$(KEYBOARD_FOLDER_PATH_1)
KEYBOARD_PATH_2 := keyboards/$(KEYBOARD_FOLDER_PATH_2)
KEYBOARD_PATH_3 := keyboards/$(KEYBOARD_FOLDER_PATH_3)
KEYBOARD_PATH_4 := keyboards/$(KEYBOARD_FOLDER_PATH_4)
KEYBOARD_PATH_5 := keyboards/$(KEYBOARD_FOLDER_PATH_5)
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_5)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_4)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_3)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_2)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_1)
endif
# Pull in rules.mk files from all our subfolders
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
include $(KEYBOARD_PATH_5)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_4)
include $(KEYBOARD_PATH_4)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_3)
include $(KEYBOARD_PATH_3)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_2)
include $(KEYBOARD_PATH_2)/rules.mk
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
KEYBOARD_PATHS += $(KEYBOARD_PATH_1)
include $(KEYBOARD_PATH_1)/rules.mk
endif
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
# Check for keymap.json first, so we can regenerate keymap.c
include build_json.mk
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
# Look through the possible keymap folders until we find a matching keymap.c
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ($(LAYOUTS),)
# If we haven't found a keymap yet fall back to community layouts
include build_layout.mk
else
$(error Could not find keymap)
# this state should never be reached
endif
endif
ifeq ($(strip $(CTPC)), yes)
CONVERT_TO_PROTON_C=yes
endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
TARGET := $(TARGET)_proton_c
include $(STM32_PATH)/proton_c.mk
OPT_DEFS += -DCONVERT_TO_PROTON_C
endif
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
include quantum/mcu_selection.mk
ifdef MCU_FAMILY
OPT_DEFS += -DQMK_STM32
KEYBOARD_PATHS += $(STM32_PATH)
endif
# Find all the C source files to be compiled in subfolders.
KEYBOARD_SRC :=
KEYBOARD_C_1 := $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).c
@@ -92,9 +179,38 @@ ifneq ("$(wildcard $(KEYBOARD_C_1))","")
KEYBOARD_SRC += $(KEYBOARD_C_1)
endif
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE)
# Generate KEYBOARD_name_subname for all levels of the keyboard folder
KEYBOARD_FILESAFE_1 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_1)))
KEYBOARD_FILESAFE_2 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_2)))
KEYBOARD_FILESAFE_3 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_3)))
KEYBOARD_FILESAFE_4 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_4)))
KEYBOARD_FILESAFE_5 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_5)))
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/)","")
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_5)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/)","")
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_4)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/)","")
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_3)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/)","")
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_2)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/)","")
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_1)
endif
# Setup the define for QMK_KEYBOARD_H. This is used inside of keymaps so
# that the same keymap may be used on multiple keyboards.
#
# We grab the most top-level include file that we can. That file should
# use #ifdef statements to include all the neccesary subfolder includes,
# as described here:
#
# https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic
#
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h
endif
@@ -111,13 +227,18 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
endif
# We can assume a ChibiOS target When MCU_FAMILY is defined , since it's not used for LUFA
# Determine and set parameters based on the keyboard's processor family.
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
# not used for LUFA
ifdef MCU_FAMILY
FIRMWARE_FORMAT=bin
FIRMWARE_FORMAT?=bin
PLATFORM=CHIBIOS
else ifdef ARM_ATSAM
PLATFORM=ARM_ATSAM
FIRMWARE_FORMAT=bin
else
PLATFORM=AVR
FIRMWARE_FORMAT=hex
FIRMWARE_FORMAT?=hex
endif
ifeq ($(PLATFORM),CHIBIOS)
@@ -148,6 +269,7 @@ ifeq ($(PLATFORM),CHIBIOS)
endif
endif
# Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H :=
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
CONFIG_H += $(KEYBOARD_PATH_5)/config.h
@@ -165,45 +287,29 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","")
CONFIG_H += $(KEYBOARD_PATH_1)/config.h
endif
POST_CONFIG_H :=
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_2)/post_config.h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_3)/post_config.h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_4)/post_config.h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
endif
# Save the defines and includes here, so we don't include any keymap specific ones
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
PROJECT_CONFIG := $(CONFIG_H)
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ($(LAYOUTS),)
include build_layout.mk
else
$(error Could not find keymap)
# this state should never be reached
endif
# User space stuff
# Userspace setup and definitions
ifeq ("$(USER_NAME)","")
USER_NAME := $(KEYMAP)
endif
@@ -214,7 +320,6 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h
endif
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
@@ -224,7 +329,7 @@ ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h
endif
# # project specific files
# project specific files
SRC += $(KEYBOARD_SRC) \
$(KEYMAP_C) \
$(QUANTUM_SRC)
@@ -243,6 +348,8 @@ include $(TMK_PATH)/protocol.mk
include $(TMK_PATH)/common.mk
include bootloader.mk
SRC += $(patsubst %.c,%.clib,$(LIB_SRC))
SRC += $(patsubst %.c,%.clib,$(QUANTUM_LIB_SRC))
SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
@@ -256,6 +363,11 @@ endif
include $(TMK_PATH)/avr.mk
endif
ifeq ($(PLATFORM),ARM_ATSAM)
include $(TMK_PATH)/arm_atsam.mk
include $(TMK_PATH)/protocol/arm_atsam.mk
endif
ifeq ($(PLATFORM),CHIBIOS)
include $(TMK_PATH)/protocol/chibios.mk
endif
@@ -266,6 +378,7 @@ ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
include $(VISUALIZER_PATH)/visualizer.mk
endif
CONFIG_H += $(POST_CONFIG_H)
ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H)
OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
@@ -283,11 +396,9 @@ $(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
# Default target.
all: build check-size
# Change the build target to build a HEX file or a library.
build: elf cpfirmware
#build: elf hex eep lss sym
#build: lib
check-size: build
objs-size: build
include show_options.mk
include $(TMK_PATH)/rules.mk

View File

@@ -15,4 +15,13 @@ define SEARCH_LAYOUTS
$$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
endef
ifneq ($(FORCE_LAYOUT),)
ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS)))
$(info Forcing layout: $(FORCE_LAYOUT))
LAYOUTS := $(FORCE_LAYOUT)
else
$(error Forced layout does not exist)
endif
endif
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))

View File

@@ -3,16 +3,16 @@ include message.mk
# Directory common source files exist
TOP_DIR = .
TMK_DIR = tmk_core
TMK_PATH = $(TOP_DIR)/$(TMK_DIR)
LIB_PATH = $(TOP_DIR)/lib
TMK_PATH = $(TMK_DIR)
LIB_PATH = lib
QUANTUM_DIR = quantum
QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
QUANTUM_PATH = $(QUANTUM_DIR)
DRIVER_DIR = drivers
DRIVER_PATH = $(TOP_DIR)/$(DRIVER_DIR)
DRIVER_PATH = $(DRIVER_DIR)
BUILD_DIR := $(TOP_DIR)/.build
BUILD_DIR := .build
COMMON_VPATH := $(TOP_DIR)
COMMON_VPATH += $(TMK_PATH)
@@ -21,4 +21,4 @@ COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
COMMON_VPATH += $(QUANTUM_PATH)/audio
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
COMMON_VPATH += $(QUANTUM_PATH)/api
COMMON_VPATH += $(DRIVER_PATH)
COMMON_VPATH += $(DRIVER_PATH)

View File

@@ -61,8 +61,8 @@ endif
ifeq ($(strip $(STENO_ENABLE)), yes)
OPT_DEFS += -DSTENO_ENABLE
VIRTSER_ENABLE := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c
VIRTSER_ENABLE := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
@@ -75,9 +75,9 @@ ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
endif
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
OPT_DEFS += -DPOINTING_DEVICE_ENABLE
OPT_DEFS += -DMOUSE_ENABLE
SRC += $(QUANTUM_DIR)/pointing_device.c
OPT_DEFS += -DPOINTING_DEVICE_ENABLE
OPT_DEFS += -DMOUSE_ENABLE
SRC += $(QUANTUM_DIR)/pointing_device.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
@@ -103,26 +103,90 @@ ifeq ($(strip $(UNICODE_COMMON)), yes)
endif
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight_post_config.h
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE = yes
LED_BREATHING_TABLE = yes
ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
else
SRC += ws2812.c
SRC += ws2812.c
endif
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 WS2812 custom
LED_MATRIX_ENABLE ?= no
ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
$(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type)
else
OPT_DEFS += -DLED_MATRIX_ENABLE -DBACKLIGHT_ENABLE -DBACKLIGHT_CUSTOM_DRIVER
SRC += $(QUANTUM_DIR)/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
endif
endif
ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731)
OPT_DEFS += -DIS31FL3731
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731-simple.c
QUANTUM_LIB_SRC += i2c_master.c
endif
RGB_MATRIX_ENABLE ?= no
ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
$(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
SRC += is31fl3731.c
SRC += i2c_master.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
CIE1931_CURVE = yes
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
RGB_MATRIX_ENABLE = IS31FL3731
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733)
OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3733.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737)
OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3737.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812)
OPT_DEFS += -DWS2812
SRC += ws2812.c
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
@@ -169,7 +233,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
endif
endif
@@ -191,18 +255,106 @@ endif
ifeq ($(strip $(TERMINAL_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_terminal.c
OPT_DEFS += -DTERMINAL_ENABLE
OPT_DEFS += -DUSER_PRINT
endif
ifeq ($(strip $(USB_HID_ENABLE)), yes)
include $(TMK_DIR)/protocol/usb_hid.mk
endif
ifeq ($(strip $(ENCODER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/encoder.c
OPT_DEFS += -DENCODER_ENABLE
endif
ifeq ($(strip $(HAPTIC_ENABLE)), DRV2605L)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
SRC += DRV2605L.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DHAPTIC_ENABLE
OPT_DEFS += -DDRV2605L
endif
ifeq ($(strip $(HAPTIC_ENABLE)), SOLENOID)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
SRC += solenoid.c
OPT_DEFS += -DHAPTIC_ENABLE
OPT_DEFS += -DSOLENOID_ENABLE
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
endif
ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
OPT_DEFS += -DVELOCIKEY_ENABLE
SRC += $(QUANTUM_DIR)/velocikey.c
endif
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
endif
ifeq ($(strip $(LEADER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
OPT_DEFS += -DLEADER_ENABLE
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
QUANTUM_SRC:= \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/process_keycode/process_leader.c
$(QUANTUM_DIR)/keycode_config.c
ifndef CUSTOM_MATRIX
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
# Include the standard or split matrix code if needed
ifneq ($(strip $(CUSTOM_MATRIX)), yes)
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c
else
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
endif
endif
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
# Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually.
DEBOUNCE_TYPE?= sym_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
POST_CONFIG_H += $(QUANTUM_DIR)/split_common/post_config.h
OPT_DEFS += -DSPLIT_KEYBOARD
# Include files used by all split keyboards
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_util.c
# Determine which (if any) transport files are required
ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/transport.c
# Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
# Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/serial.c \
i2c_master.c \
i2c_slave.c
endif
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
OPT_DEFS += -DOLED_DRIVER_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
QUANTUM_LIB_SRC += i2c_master.c
SRC += oled_driver.c
endif
SPACE_CADET_ENABLE ?= yes
ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
OPT_DEFS += -DSPACE_CADET_ENABLE
endif

View File

@@ -1 +0,0 @@
docs.qmk.fm

View File

@@ -1,32 +0,0 @@
# Quantum Mechanical Keyboard Firmware
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## What is QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains QMK Firmware, QMK Toolbox, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.
## How to Get It
If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is [fork the repo through Github](https://github.com/qmk/qmk_firmware#fork-destination-box), and clone your repo locally to make your changes, push them, then open a [Pull Request](https://github.com/qmk/qmk_firmware/pulls) from your fork.
Otherwise, you can either download it directly ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), or clone it via git (`git@github.com:qmk/qmk_firmware.git`), or https (`https://github.com/qmk/qmk_firmware.git`).
## How to Compile
Before you are able to compile, you'll need to [install an environment](getting_started_build_tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation:
make planck/rev4:default
This would build the `rev4` revision of the `planck` with the `default` keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:
make preonic:default
## How to Customize
QMK has lots of [features](features.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).

View File

@@ -1,100 +0,0 @@
* [Getting Started](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [Install Build Tools](getting_started_build_tools.md)
* Alternative: [Vagrant Guide](getting_started_vagrant.md)
* [Build/Compile Instructions](getting_started_make_guide.md)
* [Flashing Firmware](flashing.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
* [Getting Help](getting_started_getting_help.md)
* [Complete Newbs Guide](newbs.md)
* [Getting Started](newbs_getting_started.md)
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [FAQ](faq.md)
* [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Hardware](hardware.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [AVR Processors](hardware_avr.md)
* ARM Processors (TBD)
* [Drivers](hardware_drivers.md)
* [Features](features.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bootmagic](feature_bootmagic.md)
* [Command](feature_command.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Grave Escape](feature_grave_esc.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Space Cadet Shift](feature_space_cadet.md)
* [Space Cadet Shift Enter](feature_space_shift_cadet.md)
* [Stenography](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminal](feature_terminal.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [Keycodes](keycodes.md)
* [Backlight](feature_backlight.md#backlight-keycodes)
* [Basic](keycodes_basic.md)
* [Bluetooth](feature_bluetooth.md#bluetooth-keycodes)
* [Bootmagic](feature_bootmagic.md#bootmagic-keycodes)
* [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers)
* [Mod+Key](feature_advanced_keycodes.md#modifier-keys)
* [Mod Tap](feature_advanced_keycodes.md#mod-tap)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [Quantum](quantum_keycodes.md)
* [RGB Light](feature_rgblight.md#rgblight-keycodes)
* [Shifted Keys](feature_advanced_keycodes.md#shifted-keycodes)
* [Stenography](feature_stenography.md#keycode-reference)
* [Thermal Printer](feature_thermal_printer.md#thermal-printer-keycodes)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* Reference
* [Config Options](config_options.md)
* [Customizing Functionality](custom_quantum_functions.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Glossary](reference_glossary.md)
* [Keymap Overview](keymap.md)
* [Unit Testing](unit_testing.md)
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [Understanding QMK](understanding_qmk.md)
* Other Topics
* [Using Eclipse with QMK](eclipse.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)

View File

@@ -1,98 +0,0 @@
* [Getting Started](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [Install Build Tools](getting_started_build_tools.md)
* Alternative: [Vagrant Guide](getting_started_vagrant.md)
* [Build/Compile Instructions](getting_started_make_guide.md)
* [Flashing Firmware](flashing.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
* [Getting Help](getting_started_getting_help.md)
* [Complete Newbs Guide](newbs.md)
* [Getting Started](newbs_getting_started.md)
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [FAQ](faq.md)
* [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Hardware](hardware.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [AVR Processors](hardware_avr.md)
* ARM Processors (TBD)
* [Drivers](hardware_drivers.md)
* [Features](features.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bootmagic](feature_bootmagic.md)
* [Command](feature_command.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Grave Escape](feature_grave_esc.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md)
* [Space Cadet](feature_space_cadet.md)
* [Stenography](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminal](feature_terminal.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [Keycodes](keycodes.md)
* [Backlight](feature_backlight.md#backlight-keycodes)
* [Basic](keycodes_basic.md)
* [Bluetooth](feature_bluetooth.md#bluetooth-keycodes)
* [Bootmagic](feature_bootmagic.md#bootmagic-keycodes)
* [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers)
* [Mod+Key](feature_advanced_keycodes.md#modifier-keys)
* [Mod Tap](feature_advanced_keycodes.md#mod-tap)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [Quantum](quantum_keycodes.md)
* [RGB Light](feature_rgblight.md#rgblight-keycodes)
* [Shifted Keys](feature_advanced_keycodes.md#shifted-keycodes)
* [Stenography](feature_stenography.md#keycode-reference)
* [Thermal Printer](feature_thermal_printer.md#thermal-printer-keycodes)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* Reference
* [Config Options](config_options.md)
* [Customizing Functionality](custom_quantum_functions.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Glossary](reference_glossary.md)
* [Keymap Overview](keymap.md)
* [Unit Testing](unit_testing.md)
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [Understanding QMK](understanding_qmk.md)
* Other Topics
* [Using Eclipse with QMK](eclipse.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)

View File

@@ -1,7 +0,0 @@
A QMK collaborator is a keyboard maker/designer that is interested in helping QMK grow and fully support their keyboard(s), and encouraging their users/customers to submit features, ideas, and keymaps. We're always looking to add more keyboards and collaborators, but we ask that they fulfill these requirements:
* **Have a PCB available for sale** - unfortunately there's just too much variation and complications with handwired keyboards.
* **Maintain the your keyboard's directory** - this may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core.
* **Approve and merge your keyboard's keymap pull requests** - we like to encourage users to contribute their keymaps for others to see and work from when creating their own.
If you feel you meet these requirements, shoot us an email at hello@qmk.fm with an introduction and some links to your keyboard!

View File

@@ -1,25 +0,0 @@
# Atmel AVR
QMK should run on any Atmel AVR processor with enough Flash. It has been tested on the following:
* ATmega32U4 ([PJRC Teensy 2.0](http://www.pjrc.com/teensy/))
* AT90USB1286 ([PJRC Teensy++ 2.0](http://www.pjrc.com/teensy/))
* AT90USB1287 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx))
* ATmega168P with using [V-USB](http://www.obdev.at/products/vusb/index.html)
* ATmega328P with using [V-USB](http://www.obdev.at/products/vusb/index.html)
* ATmega32U2
* AT90USB1286, 646, 647 should work
* AT90USB162 testing...
NOTE: To enable full features of firmware you'll need 32KB flash size.
Please add any tested microcontrollers to this list.
# ARM
You can also use any ARM processor that [ChibiOS](http://www.chibios.org) supports. The following processors have been tested:
* [Kinetis MKL26Z64](http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/l-series-ultra-low-power-m0-plus/kinetis-kl2x-48-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
* [Kinetis MK20DX128](http://www.nxp.com/assets/documents/data/en/data-sheets/K20P64M50SF0.pdf)
* [Kinetis MK20DX128](http://www.nxp.com/assets/documents/data/en/data-sheets/K20P64M50SF0.pdf)
* [Kinetis MK20DX256](http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/k-series-performance-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)

View File

@@ -1,230 +0,0 @@
# Configuring QMK
QMK is nearly infinitely configurable. Wherever possible we err on the side of allowing users to customize their keyboard, even at the expense of code size. That level of flexibility makes for a daunting configuration experience, however.
There are two main types of configuration files in QMK- `config.h` and `rules.mk`. These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are:
* QMK Default
* Keyboard
* Folders (Up to 5 levels deep)
* Keymap
## QMK Default
Every available setting in QMK has a default. If that setting is not set at the Keyboard, Folder, or Keymap level this is the setting that will be used.
## Keyboard
This level contains config options that should apply to the whole keyboard. Some settings won't change in revisions, or most keymaps. Other settings are merely defaults for this keyboard and can be overridden by folders and/or keymaps.
## Folders
Some keyboards have folders and sub-folders to allow for different hardware configurations. Most keyboards only go 1 folder deep, but QMK supports structures up to 5 folders deep. Each folder can have its own `config.h` and `rules.mk` files that are incorporated into the final configuration.
## Keymap
This level contains all of the options for that particular keymap. If you wish to override a previous declaration, you can use `#undef <variable>` to undefine it, where you can then redefine it without an error.
# The `config.h` File
This is a C header file that is one of the first things included, and will persist over the whole project (if included). Lots of variables can be set here and accessed elsewhere. The `config.h` file shouldn't be including other `config.h` files, or anything besides this:
#include "config_common.h"
## Hardware Options
* `#define VENDOR_ID 0x1234`
* defines your VID, and for most DIY projects, can be whatever you want
* `#define PRODUCT_ID 0x5678`
* defines your PID, and for most DIY projects, can be whatever you want
* `#define DEVICE_VER 0`
* defines the device version (often used for revisions)
* `#define MANUFACTURER Me`
* generally who/whatever brand produced the board
* `#define PRODUCT Board`
* the name of the keyboard
* `#define DESCRIPTION a keyboard`
* a short description of what the keyboard is
* `#define MATRIX_ROWS 5`
* the number of rows in your keyboard's matrix
* `#define MATRIX_COLS 15`
* the number of columns in your keyboard's matrix
* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }`
* pins of the rows, from top to bottom
* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
* pins of the columns, from left to right
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
* pins unused by the keyboard for reference
* `#define MATRIX_HAS_GHOST`
* define is matrix has ghost (unlikely)
* `#define DIODE_DIRECTION COL2ROW`
* COL2ROW or ROW2COL - how your matrix is configured. COL2ROW means the black mark on your diode is facing to the rows, and between the switch and the rows.
* `#define AUDIO_VOICES`
* turns on the alternate audio voices (to cycle through)
* `#define C4_AUDIO`
* enables audio on pin C4
* `#define C5_AUDIO`
* enables audio on pin C5
* `#define C6_AUDIO`
* enables audio on pin C6
* `#define B5_AUDIO`
* enables audio on pin B5 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define B6_AUDIO`
* enables audio on pin B6 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define B7_AUDIO`
* enables audio on pin B7 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define BACKLIGHT_PIN B7`
* pin of the backlight - B5, B6, B7 use PWM, others use softPWM
* `#define BACKLIGHT_LEVELS 3`
* number of levels your backlight will have (maximum 15 excluding off)
* `#define BACKLIGHT_BREATHING`
* enables backlight breathing (only works with backlight pins B5, B6 and B7)
* `#define BREATHING_PERIOD 6`
* the length of one backlight "breath" in seconds
* `#define DEBOUNCING_DELAY 5`
* the delay when reading the value of the pin (5 is default)
* `#define LOCKING_SUPPORT_ENABLE`
* mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
* `#define LOCKING_RESYNC_ENABLE`
* tries to keep switch state consistent with keyboard LED state
* `#define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )`
* key combination that allows the use of magic commands (useful for debugging)
* `#define USB_MAX_POWER_CONSUMPTION`
* sets the maximum power (in mA) over USB for the device (default: 500)
## Features That Can Be Disabled
If you define these options you will disable the associated feature, which can save on code size.
* `#define NO_DEBUG`
* disable debugging
* `#define NO_PRINT`
* disable printing/debugging using hid_listen
* `#define NO_ACTION_LAYER`
* disable layers
* `#define NO_ACTION_TAPPING`
* disable tap dance and other tapping features
* `#define NO_ACTION_ONESHOT`
* disable one-shot modifiers
* `#define NO_ACTION_MACRO`
* disable all macro handling
* `#define NO_ACTION_FUNCTION`
* disable the action function (deprecated)
## Features That Can Be Enabled
If you define these options you will enable the associated feature, which may increase your code size.
* `#define FORCE_NKRO`
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
* `#define PREVENT_STUCK_MODIFIERS`
* stores the layer a key press came from so the same layer is used when the key is released, regardless of which layers are enabled
## Behaviors That Can Be Configured
* `#define TAPPING_TERM 200`
* how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too
* `#define RETRO_TAPPING`
* tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
* `#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
* `#define PERMISSIVE_HOLD`
* makes tap and hold keys work better for fast typers who don't want tapping term set above 500
* `#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold
* `#define TAPPING_FORCE_HOLD`
* makes it possible to use a dual role key as modifier shortly after having been tapped
* `#define LEADER_TIMEOUT 300`
* how long before the leader key times out
* `#define ONESHOT_TIMEOUT 300`
* how long before oneshot times out
* `#define ONESHOT_TAP_TOGGLE 2`
* how many taps before oneshot toggle is triggered
* `#define QMK_KEYS_PER_SCAN 4`
* Allows sending more than one key per scan. By default, only one key event gets
sent via `process_record()` per scan. This has little impact on most typing, but
if you're doing a lot of chords, or your scan rate is slow to begin with, you can
have some delay in processing key events. Each press and release is a separate
event. For a keyboard with 1ms or so scan times, even a very fast typist isn't
going to produce the 500 keystrokes a second needed to actually get more than a
few ms of delay from this. But if you're doing chording on something with 3-4ms
scan times? You probably want this.
## RGB Light Configuration
* `#define RGB_DI_PIN D7`
* pin the DI on the ws2812 is hooked-up to
* `#define RGBLIGHT_ANIMATIONS`
* run RGB animations
* `#define RGBLED_NUM 15`
* number of LEDs
* `#define RGBLIGHT_HUE_STEP 12`
* units to step when in/decreasing hue
* `#define RGBLIGHT_SAT_STEP 25`
* units to step when in/decreasing saturation
* `#define RGBLIGHT_VAL_STEP 12`
* units to step when in/decreasing value (brightness)
* `#define RGBW_BB_TWI`
* bit-bangs TWI to EZ RGBW LEDs (only required for Ergodox EZ)
## Mouse Key Options
* `#define MOUSEKEY_INTERVAL 20`
* `#define MOUSEKEY_DELAY 0`
* `#define MOUSEKEY_TIME_TO_MAX 60`
* `#define MOUSEKEY_MAX_SPEED 7`
* `#define MOUSEKEY_WHEEL_DELAY 0`
# The `rules.mk` File
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
## Build Options
* `DEFAULT_FOLDER`
* Used to specify a default folder when a keyboard has more than one sub-folder.
* `SRC`
* Used to add files to the compilation/linking list.
* `LAYOUTS`
* A list of [layouts](feature_layouts.md) this keyboard supports.
## AVR MCU Options
* `MCU = atmega32u4`
* `F_CPU = 16000000`
* `ARCH = AVR8`
* `F_USB = $(F_CPU)`
* `OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT`
* `BOOTLOADER = atmel-dfu` with the following options:
* `atmel-dfu`
* `lufa-dfu`
* `qmk-dfu`
* `halfkay`
* `caterina`
* `bootloadHID`
## Feature Options
Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU.
* `BOOTMAGIC_ENABLE`
* Virtual DIP switch configuration(+1000)
* `MOUSEKEY_ENABLE`
* Mouse keys(+4700)
* `EXTRAKEY_ENABLE`
* Audio control and System control(+450)
* `CONSOLE_ENABLE`
* Console for debug(+400)
* `COMMAND_ENABLE`
* Commands for debug and configuration
* `NKRO_ENABLE`
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `AUDIO_ENABLE`
* Enable the audio subsystem.
* `RGBLIGHT_ENABLE`
* Enable keyboard underlight functionality
* `MIDI_ENABLE`
* MIDI controls
* `UNICODE_ENABLE`
* Unicode
* `BLUETOOTH_ENABLE`
* Enable Bluetooth with the Adafruit EZ-Key HID

View File

@@ -1,152 +0,0 @@
# How to Contribute
👍🎉 First off, thanks for taking the time to read this and contribute! 🎉👍
Third-party contributions help us grow and improve QMK. We want to make the pull request and contribution process useful and easy for both contributors and maintainers. To this end we've put together some guidelines for contributors to help your pull request be accepted without major changes.
* [Project Overview](#project-overview)
* [Coding Conventions](#coding-conventions)
* [General Guidelines](#general-guidelines)
* [What does the Code of Conduct mean for me?](#what-does-the-code-of-conduct-mean-for-me)
## I Don't Want to Read This Whole Thing! I Just Have a Question!
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/Uq7gcHh).
Please keep these things in mind:
* It may take several hours for someone to respond to your question. Please be patient!
* Everyone involved with QMK is donating their time and energy. We don't get paid to work on or answer questions about QMK.
* Try to ask your question so it's as easy to answer as possible. If you're not sure how to do that these are some good guides:
* https://opensource.com/life/16/10/how-ask-technical-questions
* http://www.catb.org/esr/faqs/smart-questions.html
# Project Overview
QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](http://www.chibios.com)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK.
<!-- FIXME: We should include a list of resources for learning C here. -->
# Where Can I Go for Help?
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/Uq7gcHh).
# How Do I Make a Contribution?
Never made an open source contribution before? Wondering how contributions work in QMK? Here's a quick rundown!
0. Sign up for a [GitHub](https://github.com) account.
1. Put together a keymap to contribute, [find an issue](https://github.com/qmk/qmk_firmware/issues) you are interested in addressing, or [a feature](https://github.com/qmk/qmk_firmware/issues?q=is%3Aopen+is%3Aissue+label%3Afeature) you would like to add.
2. Fork the repository associated with the issue to your GitHub account. This means that you will have a copy of the repository under `your-GitHub-username/qmk_firmware`.
3. Clone the repository to your local machine using `git clone https://github.com/github-username/repository-name.git`.
4. If you're working on a new feature consider opening an issue to talk with us about the work you're about to undertake.
5. Create a new branch for your fix using `git checkout -b branch-name-here`.
6. Make the appropriate changes for the issue you are trying to address or the feature that you want to add.
7. Use `git add insert-paths-of-changed-files-here` to add the file contents of the changed files to the "snapshot" git uses to manage the state of the project, also known as the index.
8. Use `git commit -m "Insert a short message of the changes made here"` to store the contents of the index with a descriptive message.
9. Push the changes to your repository on GitHub using `git push origin branch-name-here`.
10. Submit a pull request to [QMK Firmware](https://github.com/qmk/qmk_firmware/pull/new/master).
11. Title the pull request with a short description of the changes made and the issue or bug number associated with your change. For example, you can title an issue like so "Added more log outputting to resolve #4352".
12. In the description of the pull request explain the changes that you made, any issues you think exist with the pull request you made, and any questions you have for the maintainer. It's OK if your pull request is not perfect (no pull request is), the reviewer will be able to help you fix any problems and improve it!
13. Wait for the pull request to be reviewed by a maintainer.
14. Make changes to the pull request if the reviewing maintainer recommends them.
15. Celebrate your success after your pull request is merged!
# Coding Conventions
Most of our style is pretty easy to pick up on, but right now it's not entirely consistent. You should match the style of the code surrounding your change, but if that code is inconsistent or unclear use the following guidelines:
* We indent using two spaces (soft tabs)
* We use One True Brace Style
* Opening Brace: At the end of the same line as the statement that opens the block
* Closing Brace: Lined up with the first character of the statement that opens the block
* Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line.
* Optional Braces: Always include optional braces.
* Good: if (condition) { return false; }
* Bad: if (condition) return false;
* We use C style comments: `/* */`
* Think of them as a story describing the feature
* Use them liberally to explain why particular decisions were made.
* Do not write obvious comments
* If you not sure if a comment is obvious, go ahead and include it.
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
# General Guidelines
We have a few different types of changes in QMK, each requiring a different level of rigor. We'd like you to keep the following guidelines in mind no matter what type of change you're making.
* Separate PR's into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature.
* Check for unnecessary whitespace with `git diff --check` before committing.
* Make sure your code change actually compiles.
* Keymaps: Make sure that `make keyboard:your_new_keymap` does not return an error
* Keyboards: Make sure that `make keyboard:all` does not return any errors
* Core: Make sure that `make all` does not return any errors.
* Make sure commit messages are understandable on their own. You should put a short description (no more than 70 characters) on the first line, the second line should be empty, and on the 3rd and later lines you should describe your commit in detail, if required. Example:
```
Adjust the fronzlebop for the kerpleplork
The kerpleplork was intermittently failing with error code 23. The root cause was the fronzlebop setting, which causes the kerpleplork to activate every N iterations.
Limited experimentation on the devices I have available shows that 7 is high enough to avoid confusing the kerpleplork, but I'd like to get some feedback from people with ARM devices to be sure.
```
## Documentation
Documentation is one of the easiest ways to get started contributing to QMK. Finding places where the documentation is wrong or incomplete and fixing those is easy! We also very badly need someone to edit our documentation, so if you have editing skills but aren't sure where or how to jump in please [reach out for help](#where-can-i-go-for-help)!
You'll find all our documentation in the `qmk_firmware/docs` directory, or if you'd rather use a web based workflow you can click "Suggest An Edit" at the top of each page on http://docs.qmk.fm/.
## Keymaps
Most first-time QMK contributors start with their personal keymaps. We try to keep keymap standards pretty casual (keymaps, after all, reflect the personality of their creators) but we do ask that you follow these guidelines to make it easier for others to discover and learn from your keymap.
* Write a `readme.md` using [the template](documentation_templates.md).
* All Keymap PR's are squashed, so if you care about how your commits are squashed you should do it yourself
* Do not lump features in with keymap PR's. Submit the feature first and then a second PR for the keymap.
* Do not include `Makefile`s in your keymap folder (they're no longer used)
* Update copyrights in file headers (look for `REPLACE_WITH_YOUR_NAME `)
## Keyboards
Keyboards are the raison d'être for QMK. Some keyboards are community maintained, while others are maintained by the people responsible for making a particular keyboard. The `readme.md` should tell you who maintains a particular keyboard. If you have questions relating to a particular keyboard you can [Open An Issue](https://github.com/qmk/qmk_firmware/issues) and tag the maintainer in your question.
We also ask that you follow these guidelines:
* Write a `readme.md` using [the template](documentation_templates.md).
* Keep the number of commits reasonable or we will squash your PR
* Do not lump core features in with new keyboards. Submit the feature first and then submit a separate PR for the keyboard.
* Name `.c`/`.h` file after the immediate parent folder, eg `/keyboards/<kb1>/<kb2>/<kb2>.[ch]`
* Do not include `Makefile`s in your keyboard folder (they're no longer used)
* Update copyrights in file headers (look for `REPLACE_WITH_YOUR_NAME `)
## Quantum/TMK Core
Before you put a lot of work into building your new feature you should make sure you are implementing it in the best way. You can get a basic understanding of QMK by reading [Understanding QMK](understanding_qmk.md), which will take you on a tour of the QMK program flow. From here you should talk to us to get a sense of the best way to implement your idea. There are two main ways to do this:
* [Chat on Discord](https://discord.gg/Uq7gcHh)
* [Open an Issue](https://github.com/qmk/qmk_firmware/issues/new)
Feature and Bug Fix PR's affect all keyboards. We are also in the process of restructuring QMK. For this reason it is especially important for significant changes to be discussed before implementation has happened. If you open a PR without talking to us first please be prepared to do some significant rework if your choices do not mesh well with our planned direction.
Here are some things to keep in mind when working on your feature or bug fix.
* **Disabled by default** - memory is a pretty limited on most chips QMK supports, and it's important that current keymaps aren't broken, so please allow your feature to be turned **on**, rather than being turned off. If you think it should be on by default, or reduces the size of the code, please talk with us about it.
* **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! Our Travis system will catch any issues, but it's generally faster for you to compile a few keyboards locally instead of waiting for the results to come back.
* **Consider revisions and different chip-bases** - there are several keyboards that have revisions that allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled on platforms it doesn't work on.
* **Explain your feature** - Document it in `docs/`, either as a new file or as part of an existing file. If you don't document it other people won't be able to benefit from your hard work.
We also ask that you follow these guidelines:
* Keep the number of commits reasonable or we will squash your PR
* Do not lump keyboards or keymaps in with core changes. Submit your core changes first.
* Write [Unit Tests](unit_testing.md) for your feature
* Follow the style of the file you are editing. If the style is unclear or there are mixed styles you should conform to the [coding conventions](#coding-conventions) above.
## Refactoring
To maintain a clear vision of how things are laid out in QMK we try to plan out refactors in-depth and have a collaborator make the changes. If you have an idea for refactoring, or suggestions, [open an issue](https://github.com/qmk/qmk_firmware/issues), we'd love to talk about how QMK can be improved.
# What Does the Code of Conduct Mean for Me?
Our [Code of Conduct](https://github.com/qmk/qmk_firmware/blob/master/CODE_OF_CONDUCT.md) means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.

View File

@@ -1,246 +0,0 @@
# How to Customize Your Keyboard's Behavior
For a lot of people a custom keyboard is about more than sending button presses to your computer. You want to be able to do things that are more complex than simple button presses and macros. QMK has hooks that allow you to inject code, override functionality, and otherwise customize how your keyboard behaves in different situations.
This page does not assume any special knowledge about QMK, but reading [Understanding QMK](understanding_qmk.md) will help you understand what is going on at a more fundamental level.
## A Word on Core vs Keyboards vs Keymap
We have structured QMK as a hierarchy:
* Core (`_quantum`)
* Keyboard/Revision (`_kb`)
* Keymap (`_user`)
Each of the functions described below can be defined with a `_kb()` suffix or a `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level.
When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` before executing anything else- otherwise the keymap level function will never be called.
# Custom Keycodes
By far the most common task is to change the behavior of an existing keycode or to create a new keycode. From a code standpoint the mechanism for each is very similar.
## Defining a New Keycode
The first step to creating your own custom keycode(s) is to enumerate them. This means both naming them and assigning a unique number to that keycode. Rather than limit custom keycodes to a fixed range of numbers QMK provides the `SAFE_RANGE` macro. You can use `SAFE_RANGE` when enumerating your custom keycodes to guarantee that you get a unique number.
Here is an example of enumerating 2 keycodes. After adding this block to your `keymap.c` you will be able to use `FOO` and `BAR` inside your keymap.
```
enum my_keycodes {
FOO = SAFE_RANGE,
BAR
};
```
## Programming the Behavior of Any Keycode
When you want to override the behavior of an existing key, or define the behavior for a new key, you should use the `process_record_kb()` and `process_record_user()` functions. These are called by QMK during key processing before the actual key event is handled. If these functions return `true` QMK will process the keycodes as usual. That can be handy for extending the functionality of a key rather than replacing it. If these functions return `false` QMK will skip the normal key handling, and it will be up to you to send any key up or down events that are required.
These function are called every time a key is pressed or released.
### Example `process_record_user()` Implementation
This example does two things. It defines the behavior for a custom keycode called `FOO`, and it supplements our Enter key by playing a tone whenever it is pressed.
```
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case FOO:
if (record->event.pressed) {
// Do something when pressed
} else {
// Do something else when release
}
return false; // Skip all further processing of this key
case KC_ENTER:
// Play a tone when enter is pressed
if (record->event.pressed) {
PLAY_NOTE_ARRAY(tone_qwerty);
}
return true; // Let QMK send the enter press/release events
default:
return true; // Process all other keycodes normally
}
}
```
### `process_record_*` Function Documentation
* Keyboard/Revision: `bool process_record_kb(uint16_t keycode, keyrecord_t *record)`
* Keymap: `bool process_record_user(uint16_t keycode, keyrecord_t *record)`
The `keycode` argument is whatever is defined in your keymap, eg `MO(1)`, `KC_L`, etc. You should use a `switch...case` block to handle these events.
The `record` argument contains information about the actual press:
```
keyrecord_t record {
+-keyevent_t event {
| +-keypos_t key {
| | +-uint8_t col
| | +-uint8_t row
| | }
| +-bool pressed
| +-uint16_t time
| }
}
```
# LED Control
This allows you to control the 5 LED's defined as part of the USB Keyboard spec. It will be called when the state of one of those 5 LEDs changes.
* `USB_LED_NUM_LOCK`
* `USB_LED_CAPS_LOCK`
* `USB_LED_SCROLL_LOCK`
* `USB_LED_COMPOSE`
* `USB_LED_KANA`
### Example `led_set_user()` Implementation
```
void led_set_user(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
PORTB |= (1<<0);
} else {
PORTB &= ~(1<<0);
}
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
PORTB |= (1<<1);
} else {
PORTB &= ~(1<<1);
}
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
PORTB |= (1<<2);
} else {
PORTB &= ~(1<<2);
}
if (usb_led & (1<<USB_LED_COMPOSE_LOCK)) {
PORTB |= (1<<3);
} else {
PORTB &= ~(1<<3);
}
if (usb_led & (1<<USB_LED_KANA_LOCK)) {
PORTB |= (1<<4);
} else {
PORTB &= ~(1<<4);
}
}
```
### `led_set_*` Function Documentation
* Keyboard/Revision: `void led_set_kb(uint8_t usb_led)`
* Keymap: `void led_set_user(uint8_t usb_led)`
# Matrix Initialization Code
Before a keyboard can be used the hardware must be initialized. QMK handles initialization of the keyboard matrix itself, but if you have other hardware like LED's or i&#xb2;c controllers you will need to set up that hardware before it can be used.
### Example `matrix_init_user()` Implementation
This example, at the keyboard level, sets up B1, B2, and B3 as LED pins.
```
void matrix_init_user(void) {
// Call the keymap level matrix init.
// Set our LED pins as output
DDRB |= (1<<1);
DDRB |= (1<<2);
DDRB |= (1<<3);
}
```
### `matrix_init_*` Function Documentation
* Keyboard/Revision: `void matrix_init_kb(void)`
* Keymap: `void matrix_init_user(void)`
# Matrix Scanning Code
Whenever possible you should customize your keyboard by using `process_record_*()` and hooking into events that way, to ensure that your code does not have a negative performance impact on your keyboard. However, in rare cases it is necessary to hook into the matrix scanning. Be extremely careful with the performance of code in these functions, as it will be called at least 10 times per second.
### Example `matrix_scan_*` Implementation
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/Uq7gcHh).
### `matrix_scan_*` Function Documentation
* Keyboard/Revision: `void matrix_scan_kb(void)`
* Keymap: `void matrix_scan_user(void)`
This function gets called at every matrix scan, which is basically as often as the MCU can handle. Be careful what you put here, as it will get run a lot.
You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LED's or a display) or other functionality that you want to trigger regularly even when the user isn't typing.
# Keyboard Idling/Wake Code
If the board supports it, it can be "idled", by stopping a number of functions. A good example of this is RGB lights or backlights. This can save on power consumption, or may be better behavior for your keyboard.
This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_init_*`, which are called when the system is board is idled and when it wakes up, respectively.
### Example suspend_power_down_user() and suspend_wakeup_init_user() Implementation
This example, at the keyboard level, sets up B1, B2, and B3 as LED pins.
```
void suspend_power_down_user(void)
{
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_user(void)
{
rgb_matrix_set_suspend_state(false);
}
```
### `keyboard_init_*` Function Documentation
* Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
* Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
# Layer Change Code
This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling.
### Example `layer_state_set_*` Implementation
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
```
uint32_t layer_state_set_user(uint32_t state) {
switch (biton32(state)) {
case _RAISE:
rgblight_setrgb (0x00, 0x00, 0xFF);
break;
case _LOWER:
rgblight_setrgb (0xFF, 0x00, 0x00);
break;
case _PLOVER:
rgblight_setrgb (0x00, 0xFF, 0x00);
break;
case _ADJUST:
rgblight_setrgb (0x7A, 0x00, 0xFF);
break;
default: // for any other layers, or the default layer
rgblight_setrgb (0x00, 0xFF, 0xFF);
break;
}
return state;
}
```
### `layer_state_set_*` Function Documentation
* Keyboard/Revision: `void uint32_t layer_state_set_kb(uint32_t state)`
* Keymap: `uint32_t layer_state_set_user(uint32_t state)`
The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)

View File

@@ -1,64 +0,0 @@
# Documentation Best Practices
This page exists to document best practices when writing documentation for QMK. Following these guidelines will help to keep a consistent tone and style, which will in turn help other people more easily understand QMK.
# Page Opening
Your documentation page should generally start with an H1 heading, followed by a 1 paragraph description of what the user will find on this page. Keep in mind that this heading and paragraph will sit next to the Table of Contents, so keep the heading short and avoid long strings with no whitespace.
Example:
```
# My Page Title
This page covers my super cool feature. You can use this feature to make coffee, squeeze fresh oj, and have an egg mcmuffin and hashbrowns delivered from your local macca's by drone.
```
# Headings
Your page should generally have multiple "H1" headings. Only H1 and H2 headings will included in the Table of Contents, so plan them out appropriately. Excess width should be avoided in H1 and H2 headings to prevent the Table of Contents from getting too wide.
# Styled Hint Blocks
You can have styled hint blocks drawn around text to draw attention to it.
### Important
```
!> This is important
```
Renders as:
!> This is important
### General Tips
```
?> This is a helpful tip.
```
Renders as:
?> This is a helpful tip.
# Documenting Features
If you create a new feature for QMK, create a documentation page for it. It doesn't have to be very long, a few sentences describing your feature and a table listing any relevant keycodes is enough. Here is a basic template:
```markdown
# My Cool Feature
This page describes my cool feature. You can use my cool feature to make coffee and order cream and sugar to be delivered via drone.
## My Cool Feature Keycodes
|Long Name|Short Name|Description|
|---------|----------|-----------|
|KC_COFFEE||Make Coffee|
|KC_CREAM||Order Cream|
|KC_SUGAR||Order Sugar|
```
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_sidebar.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.

View File

@@ -1,42 +0,0 @@
# Documentation Templates
This page documents the templates you should use when submitting new Keymaps and Keyboards to QMK.
## Keymap `readme.md` Template
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](http://imgur.com) or another hosting service, please do not include images in your Pull Request.
Below the image you should write a short description to help people understand your keymap.
```
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png)
# Default Clueboard Layout
This is the default layout that comes flashed on every Clueboard. For the most
part it's a straightforward and easy to follow layout. The only unusual key is
the key in the upper left, which sends Escape normally, but Grave when any of
the Ctrl, Alt, or GUI modifiers are held down.
```
## Keyboard `readme.md` Template
```
# Planck
![Planck](http://i.imgur.com/q2M3uEU.jpg)
A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0
Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
Make example for this keyboard (after setting up your build environment):
make planck/rev4:default
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
```
There needs to be two spaces at the end of the `Keyboard Maintainer` and `Hardware Supported` lines for it to render correctly with Markdown.

View File

@@ -1,88 +0,0 @@
# Setting up Eclipse for QMK Development
[Eclipse][1] is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages.
Using an IDE such as Eclipse provides many advantages over a plain text editor, such as:
* intelligent code completion
* convenient navigation in the code
* refactoring tools
* build automation (no need for the command-line)
* a GUI for GIT
* static code analysis
* many other tools such as debugging, code formatting, showing call hierarchies etc.
The purpose of the is page is to document how to set-up Eclipse for developing AVR software, and working on the QMK code base.
Note that this set-up has been tested on Ubuntu 16.04 only for the moment.
# Prerequisites
## Build Environment
Before starting, you must have followed the [Getting Started](README.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command).
## Java
Eclipse is a Java application, so you will need to install Java 8 or more recent to be able to run it. You may choose between the JRE or the JDK, the latter being useful if you intend to do Java development.
# Install Eclipse and Its Plugins
Eclipse comes in [several flavours](http://www.eclipse.org/downloads/eclipse-packages/) depending on the target usage that you will have. There is no package comprising the AVR stack, so we will need to start from Eclipse CDT (C/C++ Development Tooling) and install the necessary plugins.
## Download and Install Eclipse CDT
If you already have Eclipse CDT on your system, you can skip this step. However it is advised to keep it up-to-date for better support.
If you have another Eclipse package installed, it is normally possible to [install the CDT plugin over it](https://eclipse.org/cdt/downloads.php). However it is probably better to reinstall it from scratch to keep it light and avoid the clutter of tools that you don't need for the projects you will be working on.
Installation is very simple: follow the [5 Steps to Install Eclipse](https://eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE), and choose **Eclipse IDE for C/C++ Developers** at Step 3.
Alternatively, you can also directly [download Eclipse IDE for C/C++ Developers](http://www.eclipse.org/downloads/eclipse-packages/) ([direct link to current version](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr)) and extract the package to the location of your choice (this creates an `eclipse` folder).
## First Launch
When installation is complete, click the <kbd>Launch</kbd> button. (If you extracted the package manually, open the Eclipse installation folder and double-click the `eclipse` executable)
When you are prompted with the Workspace Selector, select a directory that will hold Eclipse metadata and usually your projects. **Do not select the `qmk_firmware` directory**, this will be the project directory. Select the parent folder instead, or another (preferably empty) folder of your choice (the default is fine if you do not use it yet).
Once started, click the <kbd>Workbench</kbd> button at the top right to switch to the workbench view (there is a also checkbox at the bottom to skip the welcome screen at startup).
## Install the Necessary Plugins
Note: you do not need to restart Eclipse after installing each plugin. Simply restart once all plugins are installed.
### [The AVR Plugin](http://avr-eclipse.sourceforge.net/)
This is the most important plugin as it will allow Eclipse to _understand_ AVR C code. Follow [the instructions for using the update site](http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site), and agree with the security warning for unsigned content.
### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console)
This plugin is necessary to properly display the colored build output generated by the QMK makefile.
1. Open <kbd><kbd>Help</kbd> > <kbd>Eclipse Marketplace…</kbd></kbd>
2. Search for _ANSI Escape in Console_
3. Click the <samp>Install</samp> button of the plugin
4. Follow the instructions and agree again with the security warning for unsigned content.
Once both plugins are installed, restart Eclipse as prompted.
# Configure Eclipse for QMK
## Importing the Project
1. Click <kbd><kbd>File</kbd> > <kbd>New</kbd> > <kbd>Makefile Project with Existing Code</kbd></kbd>
2. On the next screen:
* Select the directory where you cloned the repository as _Existing Code Location_;
* (Optional) Give a different name to the project¹, e.g. _QMK_ or _Quantum_;
* Select the _AVR-GCC Toolchain_;
* Keep the rest as-is and click <kbd>Finish</kbd>
![Importing QMK in Eclipse](http://i.imgur.com/oHYR1yW.png)
3. The project will now be loaded and indexed. Its files can be browsed easily through the _Project Explorer_ on the left.
¹ There might be issues for importing the project with a custom name. If it does not work properly, try leaving the default project name (i.e. the name of the directory, probably `qmk_firmware`).
## Build Your Keyboard
We will now configure a make target that cleans the project and builds the keymap of your choice.
1. On the right side of the screen, select the <kbd>Make Target</kbd> tab
2. Expand the folder structure to the keyboard of your choice, e.g. `qmk_firmware/keyboards/ergodox`
3. Right-click on the keyboard folder and select <kbd>New…</kbd> (or select the folder and click the <kbd>New Make Target</kbd> icon above the tree)
4. Choose a name for your build target, e.g. _clean \<your keymap\>_
5. Make Target: this is the arguments that you give to `make` when building from the command line. If your target name does not match these arguments, uncheck <kbd>Same as target name</kbd> and input the correct arguments, e.g. `clean <your keymap>`
6. Leave the other options checked and click <kbd>OK</kbd>. Your make target will now appear under the selected keyboard.
7. (Optional) Toggle the <kbd>Hide Empty Folders</kbd> icon button above the targets tree to only show your build target.
8. Double-click the build target you created to trigger a build.
9. Select the <kbd>Console</kbd> view at the bottom to view the running build.
[1]: https://en.wikipedia.org/wiki/Eclipse_(software)

View File

@@ -1,6 +0,0 @@
# Frequently Asked Questions
* [General](faq_general.md)
* [Building or Compiling QMK](faq_build.md)
* [Debugging and Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)

View File

@@ -1,120 +0,0 @@
# Frequently Asked Build Questions
This page covers questions about building QMK. If you haven't yet done so, you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](getting_started_make_guide.md) guides.
## Can't Program on Linux
You will need proper permissions to operate a device. For Linux users, see the instructions regarding `udev` rules, below. If you have issues with `udev`, a work-around is to use the `sudo` command. If you are not familiar with this command, check its manual with `man sudo` or [see this webpage](https://linux.die.net/man/8/sudo).
An example of using `sudo`, when your controller is ATMega32u4:
$ sudo dfu-programmer atmega32u4 erase --force
$ sudo dfu-programmer atmega32u4 flash your.hex
$ sudo dfu-programmer atmega32u4 reset
or just:
$ sudo make <keyboard>:<keymap>:dfu
Note that running `make` with `sudo` is generally *not* a good idea, and you should use one of the former methods, if possible.
## Linux `udev` Rules
On Linux, you'll need proper privileges to access the MCU. You can either use
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`.
**/etc/udev/rules.d/50-atmel-dfu.rules:**
```
# Atmel ATMega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE:="0666"
# Atmel USBKEY AT90USB1287
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE:="0666"
# Atmel ATMega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="0666"
```
**/etc/udev/rules.d/52-tmk-keyboard.rules:**
```
# tmk keyboard products https://github.com/tmk/tmk_keyboard
SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
```
## WINAVR is Obsolete
It is no longer recommended and may cause some problem.
See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
## USB VID and PID
You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID.
Also see this.
https://github.com/tmk/tmk_keyboard/issues/150
You can buy a really unique VID:PID here. I don't think you need this for personal use.
- http://www.obdev.at/products/vusb/license.html
- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
## Cortex: `cstddef: No such file or directory`
GCC 4.8 of Ubuntu 14.04 had this problem and had to update to 4.9 with this PPA.
https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded
https://github.com/tmk/tmk_keyboard/issues/212
https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef
https://developer.mbed.org/forum/mbed/topic/5205/
## `clock_prescale_set` and `clock_div_1` Not Available
Your toolchain is too old to support the MCU. For example WinAVR 20100110 doesn't support ATMega32u2.
```
Compiling C: ../../tmk_core/protocol/lufa/lufa.c
avr-gcc -c -mmcu=atmega32u2 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_ENDPOINT -DBOOTLOADER_SIZE=4096 -DF_USB=16000000UL -DARCH=ARCH_AVR8 -DUSB_DEVICE_ONLY -DUSE_FLASH_DESCRIPTORS -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DFIXED_NUM_CONFIGURATIONS=1 -DPROTOCOL_LUFA -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=unknown -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_alps64/protocol/lufa/lufa.lst -I. -I../../tmk_core -I../../tmk_core/protocol/lufa -I../../tmk_core/protocol/lufa/LUFA-git -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_alps64_protocol_lufa_lufa.o.d ../../tmk_core/protocol/lufa/lufa.c -o obj_alps64/protocol/lufa/lufa.o
../../tmk_core/protocol/lufa/lufa.c: In function 'setup_mcu':
../../tmk_core/protocol/lufa/lufa.c:575: warning: implicit declaration of function 'clock_prescale_set'
../../tmk_core/protocol/lufa/lufa.c:575: error: 'clock_div_1' undeclared (first use in this function)
../../tmk_core/protocol/lufa/lufa.c:575: error: (Each undeclared identifier is reported only once
../../tmk_core/protocol/lufa/lufa.c:575: error: for each function it appears in.)
make: *** [obj_alps64/protocol/lufa/lufa.o] Error 1
```
## BOOTLOADER_SIZE for AVR
Note that Teensy2.0++ bootloader size is 2048byte. Some Makefiles may have wrong comment.
```
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 2048
# Atmel DFU loader 4096 (TMK Alt Controller)
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=2048
```
## `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` on MacOS
This is an issue with updating on brew, causing symlinks that avr-gcc depend on getting mangled.
The solution is to remove and reinstall all affected modules.
```
brew rm avr-gcc
brew rm dfu-programmer
brew rm gcc-arm-none-eabi
brew rm avrdude
brew install avr-gcc
brew install dfu-programmer
brew install gcc-arm-none-eabi
brew install avrdude
```
### avr-gcc 8.1 and LUFA
If you updated your avr-gcc to above 7 you may see errors involving LUFA. For example:
`lib/lufa/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h:380:5: error: 'const' attribute on function returning 'void'`
For now, you need to rollback avr-gcc to 7 in brew.
```
brew uninstall --force avr-gcc
brew install avr-gcc@7
brew link avr-gcc@7
```

View File

@@ -1,243 +0,0 @@
# Debugging FAQ
This page details various common questions people have about troubleshooting their keyboards.
# Debug Console
## `hid_listen` Can't Recognize Device
When debug console of your device is not ready you will see like this:
```
Waiting for device:.........
```
once the device is plugged in then *hid_listen* finds it you will get this message:
```
Waiting for new device:.........................
Listening:
```
If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes` in [Makefile]
You may need privilege to access the device on OS like Linux.
- try `sudo hid_listen`
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
- set `debug_enable=true` usually in `matrix_init()` in **matrix.c**.
- try using 'print' function instead of debug print. See **common/print.h**.
- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
## Linux or UNIX Like System Requires Super User Privilege
Just use 'sudo' to execute *hid_listen* with privilege.
```
$ sudo hid_listen
```
Or add an *udev rule* for TMK devices with placing a file in rules directory. The directory may vary on each system.
File: /etc/udev/rules.d/52-tmk-keyboard.rules(in case of Ubuntu)
```
# tmk keyboard products https://github.com/tmk/tmk_keyboard
SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
```
***
# Miscellaneous
## Safety Considerations
You probably don't want to "brick" your keyboard, making it impossible
to rewrite firmware onto it. Here are some of the parameters to show
what things are (and likely aren't) too risky.
- If your keyboard map does not include RESET, then, to get into DFU
mode, you will need to press the reset button on the PCB, which
requires unscrewing the bottom.
- Messing with tmk_core / common files might make the keyboard
inoperable
- Too large a .hex file is trouble; `make dfu` will erase the block,
test the size (oops, wrong order!), which errors out, failing to
flash the keyboard, leaving it in DFU mode.
- To this end, note that the maximum .hex file size on Planck is
7000h (28672 decimal)
```
Linking: .build/planck_rev4_cbbrowne.elf [OK]
Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]
Size after:
text data bss dec hex filename
0 22396 0 22396 577c planck_rev4_cbbrowne.hex
```
- The above file is of size 22396/577ch, which is less than
28672/7000h
- As long as you have a suitable alternative .hex file around, you
can retry, loading that one
- Some of the options you might specify in your keyboard's Makefile
consume extra memory; watch out for BOOTMAGIC_ENABLE,
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE
- DFU tools do /not/ allow you to write into the bootloader (unless
you throw in extra fruit salad of options), so there is little risk
there.
- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**.
Try `Magic` **N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS.
If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic` **N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles.
https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
## TrackPoint Needs Reset Circuit (PS/2 Mouse Support)
Without reset circuit you will have inconsistent result due to improper initialize of the hardware. See circuit schematic of TPM754.
- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## Can't Read Column of Matrix Beyond 16
Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`.
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## Bootloader Jump Doesn't Work
Properly configure bootloader size in **Makefile**. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**.
```
# Size of Bootloaders in bytes:
# Atmel DFU loader(ATmega32U4) 4096
# Atmel DFU loader(AT90USB128) 8192
# LUFA bootloader(ATmega32U4) 4096
# Arduino Caterina(ATmega32U4) 4096
# USBaspLoader(ATmega***) 2048
# Teensy halfKay(ATmega32U4) 512
# Teensy++ halfKay(AT90USB128) 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096
```
AVR Boot section size are defined by setting **BOOTSZ** fuse in fact. Consult with your MCU datasheet.
Note that **Word**(2 bytes) size and address are used in datasheet while TMK uses **Byte**.
AVR Boot section is located at end of Flash memory like the followings.
```
byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286)
0x0000 +---------------+ 0x00000 +---------------+
| | | |
| | | |
| Application | | Application |
| | | |
= = = =
| | 32KB-4KB | | 128KB-8KB
0x6000 +---------------+ 0x1E000 +---------------+
| Bootloader | 4KB | Bootloader | 8KB
0x7FFF +---------------+ 0x1FFFF +---------------+
byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286)
0x0000 +---------------+ 0x00000 +---------------+
| | | |
| | | |
| Application | | Application |
| | | |
= = = =
| | 32KB-512B | | 128KB-2KB
0x7E00 +---------------+ 0x1FC00 +---------------+
| Bootloader | 512B | Bootloader | 2KB
0x7FFF +---------------+ 0x1FFFF +---------------+
```
And see this discussion for further reference.
https://github.com/tmk/tmk_keyboard/issues/179
If you are using a TeensyUSB, there is a [known bug](https://github.com/qmk/qmk_firmware/issues/164) in which the hardware reset button prevents the RESET key from working. Unplugging the keyboard and plugging it back in should resolve the problem.
## Special Extra Key Doesn't Work (System, Audio Control Keys)
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
```
EXTRAKEY_ENABLE = yes # Audio control and System control
```
## Wakeup from Sleep Doesn't Work
In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting.
Pressing any key during sleep should wake host.
## Using Arduino?
**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself.
- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Using PF4-7 Pins of USB AVR?
You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affected with this.
If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function.
See this code.
```
// JTAG disable for PORT F. write JTD bit twice within four cycles.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
```
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
And read **26.5.1 MCU Control Register MCUCR** of ATMega32U4 datasheet.
## Adding LED Indicators of Lock Keys
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
## Program Arduino Micro/Leonardo
Push reset button and then run command like this within 8 seconds.
```
avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0
```
Device name will vary depending on your system.
http://arduino.cc/en/Main/ArduinoBoardMicro
https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
## USB 3 Compatibility
I heard some people have a problem with USB 3 port, try USB 2 port.
## Mac Compatibility
### OS X 10.11 and Hub
https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
## Problem on BIOS (UEFI)/Resume (Sleep & Wake)/Power Cycles
Some people reported their keyboard stops working on BIOS and/or after resume(power cycles).
As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
## FLIP Doesn't Work
### `AtLibUsbDfu.dll` Not Found
Remove current driver and reinstall one FLIP provides from DeviceManager.
http://imgur.com/a/bnwzy

View File

@@ -1,19 +0,0 @@
# Frequently Asked Questions
## What is QMK?
[QMK](https://github.com/qmk), short for Quantum Mechanical Keyboard, is a group of people building tools for custom keyboards. We started with the [QMK firmware](https://github.com/qmk/qmk_firmware), a heavily modified fork of [TMK](https://github.com/tmk/tmk_keyboard).
### Why the Name Quantum?
<!-- FIXME -->
## What Differences Are There Between QMK and TMK?
TMK was originally designed and implemented by [Jun Wako](https://github.com/tmk). QMK started as [Jack Humbert](https://github.com/jackhumbert)'s fork of TMK for the Planck. After a while Jack's fork had diverged quite a bit from TMK, and in 2015 Jack decided to rename his fork to QMK.
From a technical standpoint QMK builds upon TMK by adding several new features. Most notably QMK has expanded the number of available keycodes and uses these to implement advanced features like `S()`, `LCTL()`, and `MO()`. You can see a complete list of these keycodes in [Keycodes](keycodes.md).
From a project and community management standpoint TMK maintains all the officially supported keyboards by himself, with a bit of community support. Separate community maintained forks exist or can be created for other keyboards. Only a few keymaps are provided by default, so users typically don't share keymaps with each other. QMK encourages sharing of both keyboards and keymaps through a centrally managed repository, accepting all pull requests that follow the quality standards. These are mostly community maintained, but the QMK team also helps when necessary.
Both approaches have their merits and their drawbacks, and code flows freely between TMK and QMK when it makes sense.

View File

@@ -1,231 +0,0 @@
# Keymap FAQ
This page covers questions people often have about keymaps. If you haven't you should read [Keymap Overview](keymap.md) first.
## What Keycodes Can I Use?
See [Keycodes](keycodes.md) for an index of keycodes available to you. These link to more extensive documentation when available.
Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h).
## What Are the Default Keycodes?
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/9ce023dc6caadc0cf11c88c782350a8c -->
![Keyboard Layout Image](https://i.imgur.com/45m4mRf.png)
## Some Of My Keys Are Swapped Or Not Working
QMK has two features, Bootmagic and Command, which allow you to change the behavior of your keyboard on the fly. This includes, but is not limited to, swapping Ctrl/Caps, disabling Gui, swapping Alt/Gui, swapping Backspace/Backslash, disabling all keys, and other behavioral modifications.
As a quick fix try holding down `Space`+`Backspace` while you plug in your keyboard. This will reset the stored settings on your keyboard, returning those keys to normal operation. If that doesn't work look here:
* [Bootmagic](feature_bootmagic.md)
* [Command](feature_command.md)
## The Menu Key Isn't Working
The key found on most modern keyboards that is located between `KC_RGUI` and `KC_RCTL` is actually called `KC_APP`. This is because when that key was invented there was already a key named `MENU` in the relevant standards, so MS chose to call that the `APP` key.
## `KC_SYSREQ` Isn't Working
Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'.
See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
* http://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request
## Power Key Doesn't Work
Use `KC_PWR` instead of `KC_POWER` or vice versa.
* `KC_PWR` works with Windows and Linux, not with OSX.
* `KC_POWER` works with OSX and Linux, not with Windows.
More info: http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264
## One Shot Modifier
Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. One Shot Shift mitigates this for me.
https://github.com/tmk/tmk_keyboard/issues/67
## Modifier/Layer Stuck
Modifier keys or layers can be stuck unless layer switching is configured properly.
For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event.
* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
* https://github.com/tmk/tmk_keyboard/issues/248
## Mechanical Lock Switch Support
This feature is for *mechanical lock switch* like [this Alps one](http://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
```
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
```
After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in your keymap instead.
Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ***You don't need this feature in most case and just use keycodes `KC_CAPS`, `KC_NLCK` and `KC_SLCK`.***
## Input Special Characters Other Than ASCII like Cédille 'Ç'
NO UNIVERSAL METHOD TO INPUT THOSE WORKS OVER ALL SYSTEMS. You have to define **MACRO** in way specific to your OS or layout.
See this post for example **MACRO** code.
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
On **Windows** you can use `AltGr` key or **Alt code**.
* http://en.wikipedia.org/wiki/AltGr_key
* http://en.wikipedia.org/wiki/Alt_code
On **Mac** OS defines `Option` key combinations.
* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
On **Xorg** you can use `compose` key, instead.
* http://en.wikipedia.org/wiki/Compose_key
And see this for **Unicode** input.
* http://en.wikipedia.org/wiki/Unicode_input
## Apple/Mac Keyboard `Fn`
Not supported.
Apple/Mac keyboard sends keycode for Fn unlike most of other keyboards.
I think you can send Apple Fn key using Apple venter specific Page 0xff01 and usage 0x0003. But you have to change HID Report Descriptor for this, of course.
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h
## Media Control Keys in Mac OSX
#### KC_MNXT and KC_MPRV Does Not Work on Mac
Use `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) and `KC_MRWD`(`KC_MEDIA_REWIND`) instead of `KC_MNXT` and `KC_MPRV`.
See https://github.com/tmk/tmk_keyboard/issues/195
## Keys Supported in Mac OSX?
You can know which keycodes are supported in OSX from this source code.
`usb_2_adb_keymap` array maps Keyboard/Keypad Page usages to ADB scancodes(OSX internal keycodes).
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/Cosmo_USB2ADB.c
And `IOHIDConsumer::dispatchConsumerEvent` handles Consumer page usages.
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp
## JIS Keys in Mac OSX
Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` are not recognized on OSX. You can use **Seil** to enable those keys, try following options.
* Enable NFER Key on PC keyboard
* Enable XFER Key on PC keyboard
* Enable KATAKANA Key on PC keyboard
https://pqrs.org/osx/karabiner/seil.html
## RN-42 Bluetooth Doesn't Work with Karabiner
Karabiner - Keymapping tool on Mac OSX - ignores inputs from RN-42 module by default. You have to enable this option to make Karabiner working with your keyboard.
https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237
See these for the detail of this problem.
https://github.com/tmk/tmk_keyboard/issues/213
https://github.com/tekezo/Karabiner/issues/403
## Esc and <code>&#96;</code> on a Single Key
See the [Grave Escape](feature_grave_esc.md) feature.
## Arrow on Right Modifier Keys with Dual-Role
This turns right modifier keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**.
```
#include "keymap_common.h"
/* Arrow keys on right modifier keys with TMK dual role feature
*
* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role
* https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
*/
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
[0] = KEYMAP( \
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS,BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \
LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, ESC, \
FN4, LGUI,LALT, SPC, APP, FN2, FN1, FN3),
[1] = KEYMAP( \
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,FN7, FN6, FN8),
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP),
[1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN),
[2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT),
[3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT),
[4] = ACTION_LAYER_MOMENTARY(1),
[5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP),
[6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN),
[7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME),
[8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END),
};
```
Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
## Eject on Mac OSX
`KC_EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250
It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mapping by default.
Not sure what keycode Eject is on genuine Apple keyboard actually. HHKB uses `F20` for Eject key(`Fn+f`) on Mac mode but this is not same as Apple Eject keycode probably.
## What's `weak_mods` and `real_mods` in `action_util.c`
___TO BE IMPROVED___
real_mods is intended to retains state of real/physical modifier key state, while
weak_mods retains state of virtual or temporary modifiers which should not affect state real modifier key.
Let's say you hold down physical left shift key and type ACTION_MODS_KEY(LSHIFT, KC_A),
with weak_mods,
* (1) hold down left shift: real_mods |= MOD_BIT(LSHIFT)
* (2) press ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods |= MOD_BIT(LSHIFT)
* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods &= ~MOD_BIT(LSHIFT)
real_mods still keeps modifier state.
without weak mods,
* (1) hold down left shift: real_mods |= MOD_BIT(LSHIFT)
* (2) press ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT)
* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT)
here real_mods lost state for 'physical left shift'.
weak_mods is ORed with real_mods when keyboard report is sent.
https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57
## Timer Functionality
It's possible to start timers and read values for time-specific events - here's an example:
```c
static uint16_t key_timer;
key_timer = timer_read();
if (timer_elapsed(key_timer) < 100) {
// do something if less than 100ms have passed
} else {
// do something if 100ms or more have passed
}
```
It's best to declare the `static uint16_t key_timer;` at the top of the file, outside of any code blocks you're using it in.

View File

@@ -1,205 +0,0 @@
# Advanced Keycodes
Your keymap can include keycodes that are more advanced than normal, for example shifted keys. This page documents the functions that are available to you.
### Assigning Custom Names
People often define custom names using `#define`. For example:
```c
#define FN_CAPS LT(_FL, KC_CAPSLOCK)
#define ALT_TAB LALT(KC_TAB)
```
This will allow you to use `FN_CAPS` and `ALT_TAB` in your `KEYMAP()`, keeping it more readable.
### Limits of These Aliases
Currently, the keycodes able to used with these functions are limited to the [Basic Keycodes](keycodes_basic.md), meaning you can't use keycodes like `KC_TILD`, or anything greater than 0xFF. For a full list of the keycodes able to be used see [Basic Keycodes](keycodes_basic.md).
# Switching and Toggling Layers
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. For a detailed explanation of layers, see [Keymap Overview](keymap.md#keymap-and-layers)
* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).)
* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers.
* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped.
* `TG(layer)` - toggles *layer*, activating it if it's inactive and vice versa
* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
# Working with Layers
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.
### Beginners
If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers:
* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number).
* Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer.
* In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone.
### Intermediate Users
Sometimes you need more than one base layer. For example, if you want to switch between QWERTY and Dvorak, switch between layouts for different countries, or switch your layout for different videogames. Your base layers should always be the lowest numbered layers. When you have multiple base layers you should always treat them as mutually exclusive. When one base layer is on the others are off.
### Advanced Users
Once you have a good feel for how layers work and what you can do, you can get more creative. The rules listed in the beginner section will help you be successful by avoiding some of the tricker details but they can be constraining, especially for ultra-compact keyboard users. Understanding how layers work will allow you to use them in more advanced ways.
Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem.
Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h).
# Modifier Keys
These functions allow you to combine a mod with a keycode. When pressed the keydown for the mod will be sent first, and then *kc* will be sent. When released the keyup for *kc* will be sent and then the mod will be sent.
* `LSFT(kc)` or `S(kc)` - applies left Shift to *kc* (keycode)
* `RSFT(kc)` - applies right Shift to *kc*
* `LCTL(kc)` - applies left Control to *kc*
* `RCTL(kc)` - applies right Control to *kc*
* `LALT(kc)` - applies left Alt to *kc*
* `RALT(kc)` - applies right Alt to *kc*
* `LGUI(kc)` - applies left GUI (command/win) to *kc*
* `RGUI(kc)` - applies right GUI (command/win) to *kc*
* `HYPR(kc)` - applies Hyper (all modifiers) to *kc*
* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc*
* `LCAG(kc)` - applies CtrlAltGui to *kc*
You can also chain these, like this:
LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress.
# Shifted Keycodes
The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols.
|Key |Aliases |Description |
|------------------------|------------------|-------------------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |<code>&#124;</code>|
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
# Mod Tap
`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down.
These are the values you can use for the `mod` in `MT()` and `OSM()`:
* MOD_LCTL
* MOD_LSFT
* MOD_LALT
* MOD_LGUI
* MOD_RCTL
* MOD_RSFT
* MOD_RALT
* MOD_RGUI
* MOD_HYPR
* MOD_MEH
These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped.
We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact:
* `CTL_T(kc)` - is LCTL when held and *kc* when tapped
* `SFT_T(kc)` - is LSFT when held and *kc* when tapped
* `ALT_T(kc)` - is LALT when held and *kc* when tapped
* `ALGR_T(kc)` - is AltGr when held and *kc* when tapped
* `GUI_T(kc)` - is LGUI when held and *kc* when tapped
* `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)
* `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped
* `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift.
?> Due to the way that keycodes are structured, any modifiers specified as part of `kc`, such as `LCTL()` or `KC_LPRN`, will only activate when held instead of tapped.
?> Additionally, if there is at least one right modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two.
# One Shot Keys
One shot keys are keys that remain active until the next key is pressed, and then are released. This allows you to type keyboard combinations without pressing more than one key at a time. These keys are usually called "Sticky keys" or "Dead keys".
For example, if you define a key as `OSM(MOD_LSFT)`, you can type a capital A character by first pressing and releasing shift, and then pressing and releasing A. Your computer will see the shift key being held the moment shift is pressed, and it will see the shift key being released immediately after A is released.
One shot keys also work as normal modifiers. If you hold down a one shot key and type other keys, your one shot will be released immediately after you let go of the key.
You can control the behavior of one shot keys by defining these in `config.h`:
```c
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
```
* `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](#mod-tap), not the `KC_*` codes.
* `OSL(layer)` - momentary switch to *layer*.
Sometimes, you want to activate a one-shot layer as part of a macro or tap dance routine. To do this, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. For more complicated actions, take a look at the oneshot implementation in [`process_record`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action.c#L429).
If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop.
# Permissive Hold
As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option:
```
#define PERMISSIVE_HOLD
```
This makes it easier for fast typists to use dual-function keys. Without this, if you let go of a held key inside the tapping term, it won't register.
Example: (Tapping Term = 200ms)
- SHFT_T(KC_A) Down
- KC_X Down
- KC_X Up
- SHFT_T(KC_A) Up
With defaults, if above is typed within tapping term, this will emit `ax`. With permissive hold, if above is typed within tapping term, this will emit `X` (so, Shift+X).
# Mod tap interrupt
When a dual role key used for a modifier is quickly followed by another keys, it is interpreted as held even before the tapping term elapsed. This is a problem if a key is used for example inside a rolling combo because the second key will be pressed before the first key is released.
For example, when trying to type the rolling combo "zx" and z being configured to send Ctrl when hold, z rapidly followed by x actually sends Ctrl-x. That's bad.
You can disable this behavior by defining `IGNORE_MOD_TAP_INTERRUPT` in `config.h`.
Note that this only concerns modifiers and not layer switching keys.
# Hold after tap
When the user holds a key after tap, this repeats the tapped key rather to hold a modifier key. This allows to use auto repeat for the tapped key. If you prefer to hold a modifier instead, define `TAPPING_FORCE_HOLD` in `config.h`.
Example:
- SHFT_T(KC_A) Down
- SHFT_T(KC_A) Up
- SHFT_T(KC_A) Down
- wait more than tapping term...
- SHFT_T(KC_A) Up
With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function.
With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allowing to use it as a modifier shortly after having used it as a tap.
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).

View File

@@ -1,263 +0,0 @@
# Audio
Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to certain PWM-capable pins, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
Up to two simultaneous audio voices are supported, one driven by timer 1 and another driven by timer 3. The following pins can be defined as audio outputs in config.h:
Timer 1:
`#define B5_AUDIO`
`#define B6_AUDIO`
`#define B7_AUDIO`
Timer 3:
`#define C4_AUDIO`
`#define C5_AUDIO`
`#define C6_AUDIO`
If you add `AUDIO_ENABLE = yes` to your `rules.mk`, there's a couple different sounds that will automatically be enabled without any other configuration:
```
STARTUP_SONG // plays when the keyboard starts up (audio.c)
GOODBYE_SONG // plays when you press the RESET key (quantum.c)
AG_NORM_SONG // plays when you press AG_NORM (quantum.c)
AG_SWAP_SONG // plays when you press AG_SWAP (quantum.c)
MUSIC_ON_SONG // plays when music mode is activated (process_music.c)
MUSIC_OFF_SONG // plays when music mode is deactivated (process_music.c)
CHROMATIC_SONG // plays when the chromatic music mode is selected (process_music.c)
GUITAR_SONG // plays when the guitar music mode is selected (process_music.c)
VIOLIN_SONG // plays when the violin music mode is selected (process_music.c)
MAJOR_SONG // plays when the major music mode is selected (process_music.c)
```
You can override the default songs by doing something like this in your `config.h`:
```c
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(STARTUP_SOUND)
#endif
```
A full list of sounds can be found in [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) - feel free to add your own to this list! All available notes can be seen in [quantum/audio/musical_notes.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/musical_notes.h).
To play a custom sound at a particular time, you can define a song like this (near the top of the file):
```c
float my_song[][2] = SONG(QWERTY_SOUND);
```
And then play your song like this:
```c
PLAY_SONG(my_song);
```
Alternatively, you can play it in a loop like this:
```c
PLAY_LOOP(my_song);
```
It's advised that you wrap all audio features in `#ifdef AUDIO_ENABLE` / `#endif` to avoid causing problems when audio isn't built into the keyboard.
## Music Mode
The music mode maps your columns to a chromatic scale, and your rows to octaves. This works best with ortholinear keyboards, but can be made to work with others. All keycodes less than `0xFF` get blocked, so you won't type while playing notes - if you have special keys/mods, those will still work. A work-around for this is to jump to a different layer with KC_NOs before (or after) enabling music mode.
Recording is experimental due to some memory issues - if you experience some weird behavior, unplugging/replugging your keyboard will fix things.
Keycodes available:
* `MU_ON` - Turn music mode on
* `MU_OFF` - Turn music mode off
* `MU_TOG` - Toggle music mode
* `MU_MOD` - Cycle through the music modes:
* `CHROMATIC_MODE` - Chromatic scale, row changes the octave
* `GUITAR_MODE` - Chromatic scale, but the row changes the string (+5 st)
* `VIOLIN_MODE` - Chromatic scale, but the row changes the string (+7 st)
* `MAJOR_MODE` - Major scale
In music mode, the following keycodes work differently, and don't pass through:
* `LCTL` - start a recording
* `LALT` - stop recording/stop playing
* `LGUI` - play recording
* `KC_UP` - speed-up playback
* `KC_DOWN` - slow-down playback
By default, `MUSIC_MASK` is set to `keycode < 0xFF` which means keycodes less than `0xFF` are turned into notes, and don't output anything. You can change this by defining this in your `config.h` like this:
#define MUSIC_MASK keycode != KC_NO
Which will capture all keycodes - be careful, this will get you stuck in music mode until you restart your keyboard!
For a more advanced way to control which keycodes should still be processed, you can use `music_mask_kb(keycode)` in `<keyboard>.c` and `music_mask_user(keycode)` in your `keymap.c`:
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}
Things that return false are not part of the mask, and are always processed.
The pitch standard (`PITCH_STANDARD_A`) is 440.0f by default - to change this, add something like this to your `config.h`:
#define PITCH_STANDARD_A 432.0f
You can completely disable Music Mode as well. This is useful, if you're pressed for space on your controller. To disable it, add this to your `config.h`:
#define NO_MUSIC_MODE
## Faux Click
This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly.
* `CK_TOGG` - Toggles the status (will play sound if enabled)
* `CK_RST` - Resets the frequency to the default state
* `CK_UP` - Increases the frequency of the clicks
* `CK_DOWN` - Decreases the frequency of the clicks
The feature is disabled by default, to save space. To enable it, add this to your `config.h`:
#define AUDIO_CLICKY
Additionally, even when enabled, the feature is not enabled by default, so you would need to turn it on first. And since we don't use EEPROM to store the setting (yet), you can default this to on by adding this to your `config.h`:
#define AUDIO_CLICKY_ON
You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values:
| Option | Default Value | Description |
|--------|---------------|-------------|
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical. |
## MIDI Functionality
This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile.
<!-- FIXME: this formatting needs work
## Audio
```c
#ifdef AUDIO_ENABLE
AU_ON,
AU_OFF,
AU_TOG,
#ifdef FAUXCLICKY_ENABLE
FC_ON,
FC_OFF,
FC_TOG,
#endif
// Music mode on/off/toggle
MU_ON,
MU_OFF,
MU_TOG,
// Music voice iterate
MUV_IN,
MUV_DE,
#endif
```
### Midi
#if !MIDI_ENABLE_STRICT || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
MI_ON, // send midi notes when music mode is enabled
MI_OFF, // don't send midi notes when music mode is enabled
#endif
MIDI_TONE_MIN,
MIDI_TONE_MAX
MI_C = MIDI_TONE_MIN,
MI_Cs,
MI_Db = MI_Cs,
MI_D,
MI_Ds,
MI_Eb = MI_Ds,
MI_E,
MI_F,
MI_Fs,
MI_Gb = MI_Fs,
MI_G,
MI_Gs,
MI_Ab = MI_Gs,
MI_A,
MI_As,
MI_Bb = MI_As,
MI_B,
MIDI_TONE_KEYCODE_OCTAVES > 1
where x = 1-5:
MI_C_x,
MI_Cs_x,
MI_Db_x = MI_Cs_x,
MI_D_x,
MI_Ds_x,
MI_Eb_x = MI_Ds_x,
MI_E_x,
MI_F_x,
MI_Fs_x,
MI_Gb_x = MI_Fs_x,
MI_G_x,
MI_Gs_x,
MI_Ab_x = MI_Gs_x,
MI_A_x,
MI_As_x,
MI_Bb_x = MI_As_x,
MI_B_x,
MI_OCT_Nx 1-2
MI_OCT_x 0-7
MIDI_OCTAVE_MIN = MI_OCT_N2,
MIDI_OCTAVE_MAX = MI_OCT_7,
MI_OCTD, // octave down
MI_OCTU, // octave up
MI_TRNS_Nx 1-6
MI_TRNS_x 0-6
MIDI_TRANSPOSE_MIN = MI_TRNS_N6,
MIDI_TRANSPOSE_MAX = MI_TRNS_6,
MI_TRNSD, // transpose down
MI_TRNSU, // transpose up
MI_VEL_x 1-10
MIDI_VELOCITY_MIN = MI_VEL_1,
MIDI_VELOCITY_MAX = MI_VEL_9,
MI_VELD, // velocity down
MI_VELU, // velocity up
MI_CHx 1-16
MIDI_CHANNEL_MIN = MI_CH1
MIDI_CHANNEL_MAX = MI_CH16,
MI_CHD, // previous channel
MI_CHU, // next channel
MI_ALLOFF, // all notes off
MI_SUS, // sustain
MI_PORT, // portamento
MI_SOST, // sostenuto
MI_SOFT, // soft pedal
MI_LEG, // legato
MI_MOD, // modulation
MI_MODSD, // decrease modulation speed
MI_MODSU, // increase modulation speed
#endif // MIDI_ADVANCED
-->

View File

@@ -1,167 +0,0 @@
# Auto Shift: Why Do We Need a Shift Key?
Tap a key and you get its character. Tap a key, but hold it *slightly* longer
and you get its shifted state. Voilà! No shift key needed!
## Why Auto Shift?
Many people suffer from various forms of RSI. A common cause is stretching your
fingers repetitively long distances. For us on the keyboard, the pinky does that
all too often when reaching for the shift key. Auto Shift looks to alleviate that
problem.
## How Does It Work?
When you tap a key, it stays depressed for a short period of time before it is
then released. This depressed time is a different length for everyone. Auto Shift
defines a constant `AUTO_SHIFT_TIMEOUT` which is typically set to twice your
normal pressed state time. When you press a key, a timer starts and then stops
when you release the key. If the time depressed is greater than or equal to the
`AUTO_SHIFT_TIMEOUT`, then a shifted version of the key is emitted. If the time
is less than the `AUTO_SHIFT_TIMEOUT` time, then the normal state is emitted.
## Are There Limitations to Auto Shift?
Yes, unfortunately.
1. Key repeat will cease to work. For example, before if you wanted 20 'a'
characters, you could press and hold the 'a' key for a second or two. This no
longer works with Auto Shift because it is timing your depressed time instead
of emitting a depressed key state to your operating system.
2. You will have characters that are shifted when you did not intend on shifting, and
other characters you wanted shifted, but were not. This simply comes down to
practice. As we get in a hurry, we think we have hit the key long enough
for a shifted version, but we did not. On the other hand, we may think we are
tapping the keys, but really we have held it for a little longer than
anticipated.
## How Do I Enable Auto Shift?
Add to your `rules.mk` in the keymap folder:
AUTO_SHIFT_ENABLE = yes
If no `rules.mk` exists, you can create one.
Then compile and install your new firmware with Auto Key enabled! That's it!
## Modifiers
By default, Auto Shift is disabled for any key press that is accompanied by one or more
modifiers. Thus, Ctrl+A that you hold for a really long time is not the same
as Ctrl+Shift+A.
You can re-enable Auto Shift for modifiers by adding another rule to your `rules.mk`
AUTO_SHIFT_MODIFIERS = yes
In which case, Ctrl+A held past the `AUTO_SHIFT_TIMEOUT` will be sent as Ctrl+Shift+A
## Configuring Auto Shift
If desired, there is some configuration that can be done to change the
behavior of Auto Shift. This is done by setting various variables the
`config.h` file located in your keymap folder. If no `config.h` file exists, you can create one.
A sample is
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#define AUTO_SHIFT_TIMEOUT 150
#define NO_AUTO_SHIFT_SPECIAL
#endif
### AUTO_SHIFT_TIMEOUT (Value in ms)
This controls how long you have to hold a key before you get the shifted state.
Obviously, this is different for everyone. For the common person, a setting of
135 to 150 works great. However, one should start with a value of at least 175, which
is the default value. Then work down from there. The idea is to have the shortest time required to get the shifted state without having false positives.
Play with this value until things are perfect. Many find that all will work well
at a given value, but one or two keys will still emit the shifted state on
occasion. This is simply due to habit and holding some keys a little longer
than others. Once you find this value, work on tapping your problem keys a little
quicker than normal and you will be set.
?> Auto Shift has three special keys that can help you get this value right very quick. See "Auto Shift Setup" for more details!
### NO_AUTO_SHIFT_SPECIAL (simple define)
Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
and /?
### NO_AUTO_SHIFT_NUMERIC (simple define)
Do not Auto Shift numeric keys, zero through nine.
### NO_AUTO_SHIFT_ALPHA (simple define)
Do not Auto Shift alpha characters, which include A through Z.
## Using Auto Shift Setup
This will enable you to define three keys temporarily to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`.
### Setup
Map three keys temporarily in your keymap:
| Key Name | Description |
|----------|-----------------------------------------------------|
| KC_ASDN | Lower the Auto Shift timeout variable (down) |
| KC_ASUP | Raise the Auto Shift timeout variable (up) |
| KC_ASRP | Report your current Auto Shift timeout value |
| KC_ASON | Turns on the Auto Shift Function |
| KC_ASOFF | Turns off the Auto Shift Function |
| KC_ASTG | Toggles the state of the Auto Shift feature |
Compile and upload your new firmware.
### Use
It is important to note that during these tests, you should be typing
completely normal and with no intention of shifted keys.
1. Type multiple sentences of alphabetical letters.
2. Observe any upper case letters.
3. If there are none, press the key you have mapped to `KC_ASDN` to decrease
time Auto Shift timeout value and go back to step 1.
4. If there are some upper case letters, decide if you need to work on tapping
those keys with less down time, or if you need to increase the timeout.
5. If you decide to increase the timeout, press the key you have mapped to
`KC_ASUP` and go back to step 1.
6. Once you are happy with your results, press the key you have mapped to
`KC_ASRP`. The keyboard will type by itself the value of your
`AUTO_SHIFT_TIMEOUT`.
7. Update `AUTO_SHIFT_TIMEOUT` in your `config.h` with the value reported.
8. Remove `AUTO_SHIFT_SETUP` from your `config.h`.
9. Remove the key bindings `KC_ASDN`, `KC_ASUP` and `KC_ASRP`.
10. Compile and upload your new firmware.
#### An Example Run
hello world. my name is john doe. i am a computer programmer playing with
keyboards right now.
[PRESS KC_ASDN quite a few times]
heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
KEYboArDS RiGHT NOw.
[PRESS KC_ASUP a few times]
hello world. my name is john Doe. i am a computer programmer playing with
keyboarDs right now.
[PRESS KC_ASRP]
115
The keyboard typed `115` which represents your current `AUTO_SHIFT_TIMEOUT`
value. You are now set! Practice on the *D* key a little bit that showed up
in the testing and you'll be golden.

View File

@@ -1,39 +0,0 @@
# Backlighting
<!-- FIXME: Describe how backlighting works in QMK -->
## Backlight Keycodes
These keycodes control the backlight. Most keyboards use this for single color in-switch lighting.
|Key |Description |
|---------|------------------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness |
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
Note that for backlight breathing, you need to have `#define BACKLIGHT_BREATHING` in your config.h.
## Configuration Options in `config.h`
* `BACKLIGHT_PIN B7` defines the pin that controlls the LEDs. Unless you design your own keyboard, you don't need to set this.
* `BACKLIGHT_LEVELS 3` defines the number of brightness levels (maximum 15 excluding off).
* `BACKLIGHT_BREATHING` if defined, enables backlight breathing. Note that this is only available if `BACKLIGHT_PIN` is B5, B6 or B7.
* `BREATHING_PERIOD 6` defines the length of one backlight "breath" in seconds.
## Notes on Implementation
To change the brightness when using pins B5, B6 or B7, the PWM (Pulse Width Modulation) functionality of the on-chip timer is used.
The timer is a counter that counts up to a certain TOP value (`0xFFFF` set in ICR1) before resetting to 0.
We also set an OCR1x register.
When the counter reaches the value stored in that register, the PWM pin drops to low.
The PWM pin is pulled high again when the counter resets to 0.
Therefore, OCR1x basically sets the duty cycle of the LEDs and as such the brightness where `0` is the darkest and `0xFFFF` the brightest setting.
To enable the breathing effect, we register an interrupt handler to be called whenever the counter resets (with `ISR(TIMER1_OVF_vect)`).
In this handler, which gets called roughly 244 times per second, we compute the desired brightness using a precomputed brightness curve.
To disable breathing, we can just disable the respective interrupt vector and reset the brightness to the desired level.

View File

@@ -1,17 +0,0 @@
# Bluetooth
## Bluetooth Functionality
This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will.
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth Keycodes
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
|Name |Description |
|----------|----------------------------------------------|
|`OUT_AUTO`|Automatically switch between USB and Bluetooth|
|`OUT_USB` |USB only |
|`OUT_BT` |Bluetooth only |

View File

@@ -1,89 +0,0 @@
# Bootmagic and Magic Keycodes
There are 3 separate but related features that allow you to change the behavior of your keyboard without reflashing. While each of them have similar functionality you access that functionality in different ways depending on how your keyboard is configured.
Bootmagic is a system for configuring your keyboard while it initializes. To trigger a Bootmagic command you hold down the bootmagic key (`KC_SPACE` on most keyboards) and one or more command keys.
Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the [Command](feature_command.md) documentation page.
## Enabling Bootmagic
Bootmagic is disabled by default. To use Bootmagic you need to enable it in your `rules.mk` file:
BOOTMAGIC_ENABLE = yes
## Bootmagic Hotkeys and Keycodes
This table describes the default Hotkeys for Bootmagic and the Keycodes for Magic. These may be overriden at the Keyboard or Keymap level. Some functionality is not available in both methods.
To use the Hotkey hold down `BOOTMAGIC_KEY_SALT` (`KC_SPACE` by default) and the Hotkey while plugging in your keyboard. To use the Keycode assign that keycode to a layer. For example, if you hold down Space+B while plugging in most keyboards, you will enter bootloader mode.
|Hotkey |Keycode |Description |
|-----------|----------------------------------|--------------------------------------------------------|
|`ESC` | |Skip bootmagic and saved eeprom configuration |
|`B` |`RESET` |Enter bootloader instead of firmware |
|`D` |`DEBUG` |Enable debugging (writes messages to serial) |
|`X` | |Enable matrix debugging |
|`K` | |Enable keyboard debugging |
|`M` | |Enable mouse debugging |
|`BACKSPACE`| |Clear the saved settings from flash |
|`CAPSLOCK` |`MAGIC_CAPSLOCK_TO_CONTROL` |Treat `Capslock` as `Control` |
| |`MAGIC_UNCAPSLOCK_TO_CONTROL` |Stop treating CapsLock as Control |
|`LCTRL` |`MAGIC_SWAP_CONTROL_CAPSLOCK` |Swap `Control` and `Capslock` |
| |`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |Unswap Left Control and Caps Lock |
| |`MAGIC_SWAP_ALT_GUI` |Swap Alt and GUI on both sides |
| |`MAGIC_UNSWAP_ALT_GUI` |Unswap Left Alt and GUI |
|`LALT` |`MAGIC_SWAP_LALT_LGUI` |Swap Left `Alt` and `GUI`, e.g. for OSX Opt and Cmd |
| |`MAGIC_UNSWAP_LALT_LGUI` |Unswap Left Alt and GUI |
|`RALT` |`MAGIC_SWAP_RALT_RGUI` |Swap Right `Alt` and `GUI` |
| |`MAGIC_UNSWAP_RALT_RGUI` |Unswap Right Alt and GUI |
|`LGUI` |`MAGIC_NO_GUI` |Disable GUI key - e.g. disable Windows key during gaming|
| |`MAGIC_UNNO_GUI` |Enable the GUI key |
|`GRAVE` |`MAGIC_SWAP_GRAVE_ESC` |Swap `\`~` and `ESC` |
| |`MAGIC_UNSWAP_GRAVE_ESC` |Unswap `\`~` and Escape |
|`BACKSLASH`|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |Swap Blackslash and Backspace |
| |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|Unswap Backslash and Backspace |
|`N` |`MAGIC_HOST_NKRO` |Force N-Key Rollover (NKRO) on |
| |`MAGIC_UNHOST_NKRO` |Force NKRO off |
| |`MAGIC_TOGGLE_NKRO` |Toggle NKRO on or off |
|`0` |`DF(0)` |Make Layer 0 the default layer at bootup |
|`1` |`DF(1)` |Make Layer 1 the default layer at bootup |
|`2` |`DF(2)` |Make Layer 2 the default layer at bootup |
|`3` |`DF(3)` |Make Layer 3 the default layer at bootup |
|`4` |`DF(4)` |Make Layer 4 the default layer at bootup |
|`5` |`DF(5)` |Make Layer 5 the default layer at bootup |
|`6` |`DF(6)` |Make Layer 6 the default layer at bootup |
|`7` |`DF(7)` |Make Layer 7 the default layer at bootup |
## Bootmagic Configuration
When setting up your keyboard and/or keymap there are a number of `#define`s that control the behavior of Bootmagic. To use these put them in your `config.h`, either at the keyboard or keymap level.
|Define |Default|Description |
|-------|-------|------------|
|`BOOTMAGIC_KEY_SALT`|`KC_SPACE`|The key to hold down to trigger Bootmagic during initialization.|
|`BOOTMAGIC_KEY_SKIP`|`KC_ESC`|The Hotkey to ignore saved eeprom configuration.|
|`BOOTMAGIC_KEY_EEPROM_CLEAR`|`KC_BSPACE`|The hotkey to clear the saved eeprom configuration.|
|`BOOTMAGIC_KEY_BOOTLOADER`|`KC_B`|The hotkey to enter the bootloader.|
|`BOOTMAGIC_KEY_DEBUG_ENABLE`|`KC_D`|The hotkey to enable debug mode.|
|`BOOTMAGIC_KEY_DEBUG_MATRIX`|`KC_X`|The hotkey to enable matrix debugging mode.|
|`BOOTMAGIC_KEY_DEBUG_KEYBOARD`|`KC_K`|The hotkey to enable keyboard debugging mode.|
|`BOOTMAGIC_KEY_DEBUG_MOUSE`|`KC_M`|The hotkey to enable mouse debugging mode.|
|`BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK`|`KC_LCTRL`||
|`BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL`|`KC_CAPSLOCK`||
|`BOOTMAGIC_KEY_SWAP_LALT_LGUI`|`KC_LALT`||
|`BOOTMAGIC_KEY_SWAP_RALT_RGUI`|`KC_RALT`||
|`BOOTMAGIC_KEY_NO_GUI`|`KC_LGUI`||
|`BOOTMAGIC_KEY_SWAP_GRAVE_ESC`|`KC_GRAVE`||
|`BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE`|`KC_BSLASH`||
|`BOOTMAGIC_HOST_NKRO`|`KC_N`||
|`BOOTMAGIC_KEY_DEFAULT_LAYER_0`|`KC_0`|Hotkey to set Layer 0 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_1`|`KC_1`|Hotkey to set Layer 1 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_2`|`KC_2`|Hotkey to set Layer 2 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_3`|`KC_3`|Hotkey to set Layer 3 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_4`|`KC_4`|Hotkey to set Layer 4 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_5`|`KC_5`|Hotkey to set Layer 5 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_6`|`KC_6`|Hotkey to set Layer 6 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_7`|`KC_7`|Hotkey to set Layer 7 as the default layer|

View File

@@ -1,52 +0,0 @@
# Command (Formerly known as Magic)
Command is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](feature_bootmagic.md). There is a lot of overlap between this functionality and the [Bootmagic Keycodes](feature_bootmagic.md). Whenever possible we encourage you to use that functionality instead of Command.
## Enabling Command
By default Command is disabled. You can enable it in your `rules.mk` file:
COMMAND_ENABLE = yes
## Usage
To use Command you hold down the key combination defined by `IS_COMMAND`. By default that combination is both shift keys. While holding the key combination press the key corresponding to the command you want.
For example, to write the current QMK version to the QMK Toolbox console, you can press `Left Shift`+`Right Shift`+`V`.
## Configuration
The following values can be defined in `config.h` to control the behavior of Command.
|Define |Default | Description |
|-------|--------|-------------|
|`IS_COMMAND()` |`(keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))`|Key combination to activate Command|
|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Do layer switching with Function row|
|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Do layer switching with number keys.|
|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Do layer switching with custom keys (`MAGIC_KEY_LAYER0..9` below.)|
|`MAGIC_KEY_HELP1` |`H` |Show help.|
|`MAGIC_KEY_HELP2` |`SLASH` |Show help.|
|`MAGIC_KEY_DEBUG` |`D` |Turn on debug mode.|
|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Turn on matrix debugging.|
|`MAGIC_KEY_DEBUG_KBD` |`K` |Turn on keyboard debugging.|
|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Turn on mouse debugging.|
|`MAGIC_KEY_VERSION` |`V` |Write the QMK version to the console|
|`MAGIC_KEY_STATUS` |`S` |Show the current keyboard status|
|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command Console|
|`MAGIC_KEY_LAYER0_ALT1` |`ESC` |Alternate access to layer 0|
|`MAGIC_KEY_LAYER0_ALT2` |`GRAVE` |Alternate access to layer 0|
|`MAGIC_KEY_LAYER0` |`0` |Change default layer to 0|
|`MAGIC_KEY_LAYER1` |`1` |Change default layer to 1|
|`MAGIC_KEY_LAYER2` |`2` |Change default layer to 2|
|`MAGIC_KEY_LAYER3` |`3` |Change default layer to 3|
|`MAGIC_KEY_LAYER4` |`4` |Change default layer to 4|
|`MAGIC_KEY_LAYER5` |`5` |Change default layer to 5|
|`MAGIC_KEY_LAYER6` |`6` |Change default layer to 6|
|`MAGIC_KEY_LAYER7` |`7` |Change default layer to 7|
|`MAGIC_KEY_LAYER8` |`8` |Change default layer to 8|
|`MAGIC_KEY_LAYER9` |`9` |Change default layer to 9|
|`MAGIC_KEY_BOOTLOADER` |`PAUSE` |Exit keyboard and enter bootloader|
|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed|
|`MAGIC_KEY_EEPROM` |`E` |Erase EEPROM settings|
|`MAGIC_KEY_NKRO` |`N` |Toggle NKRO on/off|
|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping on/off|

View File

@@ -1,63 +0,0 @@
# Dynamic Macros: Record and Replay Macros in Runtime
QMK supports temporary macros created on the fly. We call these Dynamic Macros. They are defined by the user from the keyboard and are lost when the keyboard is unplugged or otherwise rebooted.
You can store one or two macros and they may have a combined total of 128 keypresses. You can increase this size at the cost of RAM.
To enable them, first add a new element to the `planck_keycodes` enum — `DYNAMIC_MACRO_RANGE`:
```c
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
PLOVER,
LOWER,
RAISE,
BACKLIT,
EXT_PLV,
DYNAMIC_MACRO_RANGE,
};
```
It must be the last element because `dynamic_macros.h` will add some more keycodes after it.
Below it, include the `dynamic_macro.h` header:
```c
#include "dynamic_macro.h"`
```
Add the following keys to your keymap:
* `DYN_REC_START1` — start recording the macro 1,
* `DYN_REC_START2` — start recording the macro 2,
* `DYN_MACRO_PLAY1` — replay the macro 1,
* `DYN_MACRO_PLAY2` — replay the macro 2,
* `DYN_REC_STOP` — finish the macro that is currently being recorded.
Add the following code to the very beginning of your `process_record_user()` function:
```c
if (!process_record_dynamic_macro(keycode, record)) {
return false;
}
```
That should be everything necessary. To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `DYN_REC_STOP` layer button. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
Note that it's possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again.
For users of the earlier versions of dynamic macros: It is still possible to finish the macro recording using just the layer modifier used to access the dynamic macro keys, without a dedicated `DYN_REC_STOP` key. If you want this behavior back, use the following snippet instead of the one above:
```c
uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
if (!process_record_dynamic_macro(macro_kc, record)) {
return false;
}
```
If the LEDs start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 128; please read the comments for it in the header).
For the details about the internals of the dynamic macros, please read the comments in the `dynamic_macro.h` header.

View File

@@ -1,17 +0,0 @@
# Grave Escape
Grave Escape is a feature that allows you to share the grave key (<code>&#96;</code> and `~`) on the same key as Escape. When `KC_GESC` is used it will act as `KC_ESC`, unless Shift or GUI is pressed, in which case it will act as `KC_GRAVE`.
|Key |Aliases |Description |
|---------|-----------|------------------------------------------------------------------|
|`KC_GESC`|`GRAVE_ESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
There are several possible key combinations this will break, among them Ctrl+Shift+Esc on Windows and Cmd+Opt+Esc on macOS. You can use these options in your `config.h` to work around this:
| Option | Description |
|--------|-------------|
| `GRAVE_ESC_ALT_OVERRIDE` | Always send Escape if Alt is pressed. |
| `GRAVE_ESC_CTRL_OVERRIDE` | Always send Escape if Ctrl is pressed. |
| `GRAVE_ESC_GUI_OVERRIDE` | Always send Escape if GUI is pressed. |
| `GRAVE_ESC_SHIFT_OVERRIDE` | Always send Escape if SHIFT is pressed. |

View File

@@ -1,11 +0,0 @@
## Key Lock: Holding Down Keys for You
Sometimes, you need to hold down a specific key for a long period of time. Whether this is while typing in ALL CAPS, or playing a video game that hasn't implemented auto-run, Key Lock is here to help. Key Lock adds a new keycode, `KC_LOCK`, that will hold down the next key you hit for you. The key is released when you hit it again. Here's an example: let's say you need to type in all caps for a few sentences. You hit KC_LOCK, and then shift. Now, shift will be considered held until you hit it again. You can think of key lock as caps lock, but supercharged.
Here's how to use it:
1. Pick a key on your keyboard. This will be the key lock key. Assign it the keycode `KC_LOCK`. This will be a single-action key: you won't be able to use it for anything else.
2. Enable key lock by including `KEY_LOCK_ENABLE = yes` in your Makefile.
3. That's it!
Important: switching layers does not cancel the key lock. Additionally, key lock is only able to hold standard action keys and One Shot modifier keys (for example, if you have your shift defined as `OSM(KC_LSFT)`; see [One Shot Keys](quantum_keycodes.md#one-shot-keys)). This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as KC_LPRN. If it's in the [Basic Keycodes](keycodes_basic.md) list, it can be held. If it's not, then it can't be.

View File

@@ -1,74 +0,0 @@
# Layouts: Using a Keymap with Multiple Keyboards
The `layouts/` folder contains different physical key layouts that can apply to different keyboards.
```
layouts/
+ default/
| + 60_ansi/
| | + readme.md
| | + layout.json
| | + a_good_keymap/
| | | + keymap.c
| | | + readme.md
| | | + config.h
| | | + rules.mk
| | + <keymap folder>/
| | + ...
| + <layout folder>/
+ community/
| + <layout folder>/
| + ...
```
The `layouts/default/` and `layouts/community/` are two examples of layout "repositories" - currently `default` will contain all of the information concerning the layout, and one default keymap named `default_<layout>`, for users to use as a reference. `community` contains all of the community keymaps, with the eventual goal of being split-off into a separate repo for users to clone into `layouts/`. QMK searches through all folders in `layouts/`, so it's possible to have multiple repositories here.
Each layout folder is named (`[a-z0-9_]`) after the physical aspects of the layout, in the most generic way possible, and contains a `readme.md` with the layout to be defined by the keyboard:
```md
# 60_ansi
LAYOUT_60_ansi
```
New names should try to stick to the standards set by existing layouts, and can be discussed in the PR/Issue.
## Supporting a Layout
For a keyboard to support a layout, the variable must be defined in it's `<keyboard>.h`, and match the number of arguments/keys (and preferably the physical layout):
#define LAYOUT_60_ansi KEYMAP_ANSI
The name of the layout must match this regex: `[a-z0-9_]+`
The folder name must be added to the keyboard's `rules.mk`:
LAYOUTS = 60_ansi
`LAYOUTS` can be set in any keyboard folder level's `rules.mk`:
LAYOUTS = 60_iso
but the `LAYOUT_<layout>` variable must be defined in `<folder>.h` as well.
## Tips for Making Layouts Keyboard-Agnostic
Instead of using `#include "planck.h"`, you can use this line to include whatever `<keyboard>.h` (`<folder>.h` should not be included here) file that is being compiled:
#include QMK_KEYBOARD_H
If you want to keep some keyboard-specific code, you can use these variables to escape it with an `#ifdef` statement:
* `KEYBOARD_<folder1>_<folder2>`
For example:
```c
#ifdef KEYBOARD_planck
#ifdef KEYBOARD_planck_rev4
planck_rev4_function();
#endif
#endif
```
Note that the names are lowercase and match the folder/file names for the keyboard/revision exactly.

View File

@@ -1,41 +0,0 @@
# The Leader Key: A New Kind of Modifier
If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen.
That's what `KC_LEAD` does. Here's an example:
1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else.
2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course.
3. Within your `matrix_scan_user` function, do something like this:
```
LEADER_EXTERNS();
void matrix_scan_user(void) {
LEADER_DICTIONARY() {
leading = false;
leader_end();
SEQ_ONE_KEY(KC_F) {
// Anything you can do in a macro.
SEND_STRING("QMK is awesome.");
}
SEQ_TWO_KEYS(KC_D, KC_D) {
SEND_STRING(SS_LCTRL("a")SS_LCTRL("c"));
}
SEQ_THREE_KEYS(KC_D, KC_D, KC_S) {
SEND_STRING("https://start.duckduckgo.com"SS_TAP(X_ENTER));
}
SEQ_TWO_KEYS(KC_A, KC_S) {
register_code(KC_LGUI);
register_code(KC_S);
unregister_code(KC_S);
unregister_code(KC_LGUI);
}
}
}
```
As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously.

View File

@@ -1,261 +0,0 @@
# Macros
Macros allow you to send multiple keystrokes when pressing just one key. QMK has a number of ways to define and use macros. These can do anything you want: type common phrases for you, copypasta, repetitive game movements, or even help you code.
!> **Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor.
## The New Way: `SEND_STRING()` & `process_record_user`
Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string (i.e. a sequence of characters) for you. All ASCII characters that are easily translated to a keycode are supported (e.g. `\n\t`).
Here is an example `keymap.c` for a two-key keyboard:
```c
enum custom_keycodes {
MY_CUSTOM_MACRO = SAFE_RANGE
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case MY_CUSTOM_MACRO:
SEND_STRING("QMK is the best thing ever!"); // this is our macro!
return false;
}
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{MY_CUSTOM_MACRO, KC_ESC}
}
};
```
What happens here is this:
We first define a new custom keycode in the range not occupied by any other keycodes.
Then we use the `process_record_user` function, which is called whenever a key is pressed or released, to check if our custom keycode has been activated.
If yes, we send the string `"QMK is the best thing ever!"` to the computer via the `SEND_STRING` macro (this is a C preprocessor macro, not to be confused with QMK macros).
We return `false` to indicate to the caller that the key press we just processed need not be processed any further.
Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button.
You might want to add more than one macro.
You can do that by adding another keycode and adding another case to the switch statement, like so:
```c
enum custom_keycodes {
MY_CUSTOM_MACRO = SAFE_RANGE,
MY_OTHER_MACRO
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case MY_CUSTOM_MACRO:
SEND_STRING("QMK is the best thing ever!");
return false;
case MY_OTHER_MACRO:
SEND_STRING(SS_LCTRL("ac")); // selects all and copies
return false;
}
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO}
}
};
```
### TAP, DOWN and UP
You may want to use keys in your macros that you can't write down, such as `Ctrl` or `Home`.
You can send arbitrary keycodes by wrapping them in:
* `SS_TAP()` presses and releases a key.
* `SS_DOWN()` presses (but does not release) a key.
* `SS_UP()` releases a key.
For example:
SEND_STRING(SS_TAP(X_HOME));
Would tap `KC_HOME` - note how the prefix is now `X_`, and not `KC_`. You can also combine this with other strings, like this:
SEND_STRING("VE"SS_TAP(X_HOME)"LO");
Which would send "VE" followed by a `KC_HOME` tap, and "LO" (spelling "LOVE" if on a newline).
There's also a couple of mod shortcuts you can use:
* `SS_LCTRL(string)`
* `SS_LGUI(string)`
* `SS_LALT(string)`
* `SS_LSFT(string)`
* `SS_RALT(string)`
These press the respective modifier, send the supplied string and then release the modifier.
They can be used like this:
SEND_STRING(SS_LCTRL("a"));
Which would send LCTRL+a (LCTRL down, a, LCTRL up) - notice that they take strings (eg `"k"`), and not the `X_K` keycodes.
### Alternative Keymaps
By default, it assumes a US keymap with a QWERTY layout; if you want to change that (e.g. if your OS uses software Colemak), include this somewhere in your keymap:
#include <sendstring_colemak.h>
### Strings in Memory
If for some reason you're manipulating strings and need to print out something you just generated (instead of being a literal, constant string), you can use `send_string()`, like this:
```c
char my_str[4] = "ok.";
send_string(my_str);
```
The shortcuts defined above won't work with `send_string()`, but you can separate things out to different lines if needed:
```c
char my_str[4] = "ok.";
SEND_STRING("I said: ");
send_string(my_str);
SEND_STRING(".."SS_TAP(X_END));
```
## The Old Way: `MACRO()` & `action_get_macro`
?> This is inherited from TMK, and hasn't been updated - it's recommend that you use `SEND_STRING` and `process_record_user` instead.
By default QMK assumes you don't have any macros. To define your macros you create an `action_get_macro()` function. For example:
```c
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
if (record->event.pressed) {
switch(id) {
case 0:
return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END);
case 1:
return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END);
}
}
return MACRO_NONE;
};
```
This defines two macros which will be run when the key they are assigned to is pressed. If instead you'd like them to run when the key is released you can change the if statement:
if (!record->event.pressed) {
### Macro Commands
A macro can include the following commands:
* I() change interval of stroke in milliseconds.
* D() press key.
* U() release key.
* T() type key(press and release).
* W() wait (milliseconds).
* END end mark.
### Mapping a Macro to a Key
Use the `M()` function within your `KEYMAP()` to call a macro. For example, here is the keymap for a 2-key keyboard:
```c
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(
M(0), M(1)
),
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
if (record->event.pressed) {
switch(id) {
case 0:
return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END);
case 1:
return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END);
}
}
return MACRO_NONE;
};
```
When you press the key on the left it will type "Hi!" and when you press the key on the right it will type "Bye!".
### Naming Your Macros
If you have a bunch of macros you want to refer to from your keymap while keeping the keymap easily readable you can name them using `#define` at the top of your file.
```c
#define M_HI M(0)
#define M_BYE M(1)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(
M_HI, M_BYE
),
};
```
## Advanced Macro Functions
There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple.
### `record->event.pressed`
This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is
```c
if (record->event.pressed) {
// on keydown
} else {
// on keyup
}
```
### `register_code(<kc>);`
This sends the `<kc>` keydown event to the computer. Some examples would be `KC_ESC`, `KC_C`, `KC_4`, and even modifiers such as `KC_LSFT` and `KC_LGUI`.
### `unregister_code(<kc>);`
Parallel to `register_code` function, this sends the `<kc>` keyup event to the computer. If you don't use this, the key will be held down until it's sent.
### `clear_keyboard();`
This will clear all mods and keys currently pressed.
### `clear_mods();`
This will clear all mods currently pressed.
### `clear_keyboard_but_mods();`
This will clear all keys besides the mods currently pressed.
## Advanced Example: Single-Key Copy/Paste
This example defines a macro which sends `Ctrl-C` when pressed down, and `Ctrl-V` when released.
```c
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) {
case 0: {
if (record->event.pressed) {
return MACRO( D(LCTL), T(C), U(LCTL), END );
} else {
return MACRO( D(LCTL), T(V), U(LCTL), END );
}
break;
}
}
return MACRO_NONE;
};
```

View File

@@ -1,81 +0,0 @@
# Mousekeys
Mousekeys is a feature that allows you to emulate a mouse using your keyboard. You can move the pointer around, click up to 5 buttons, and even scroll in all 4 directions. QMK uses the same algorithm as the X Window System MouseKeysAccel feature. You can read more about it [on Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys).
## Adding Mousekeys to a Keymap
There are two steps to adding Mousekeys support to your keyboard. You must enable support in the `rules.mk` file and you must map mouse actions to keys on your keyboard.
### Adding Mousekeys Support in the `rules.mk`
To add support for Mousekeys you simply need to add a single line to your keymap's `rules.mk`:
```
MOUSEKEY_ENABLE = yes
```
You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/keymaps/mouse_keys/rules.mk
### Mapping Mouse Actions to Keyboard Keys
You can use these keycodes within your keymap to map button presses to mouse actions:
|Key |Aliases |Description |
|----------------|---------|---------------------------|
|`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
|`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
|`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
|`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
|`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
|`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
|`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
|`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
|`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
|`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
|`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
|`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
|`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
|`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
|`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/keymaps/mouse_keys/keymap.c#L46
## Configuring the Behavior of Mousekeys
The default speed for controlling the mouse with the keyboard is intentionally slow. You can adjust these parameters by adding these settings to your keymap's `config.h` file. All times are specified in milliseconds (ms).
```
#define MOUSEKEY_DELAY 300
#define MOUSEKEY_INTERVAL 50
#define MOUSEKEY_MAX_SPEED 10
#define MOUSEKEY_TIME_TO_MAX 20
#define MOUSEKEY_WHEEL_MAX_SPEED 8
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
```
### `MOUSEKEY_DELAY`
When one of the mouse movement buttons is pressed this setting is used to define the delay between that button press and the mouse cursor moving. Some people find that small movements are impossible if this setting is too low, while settings that are too high feel sluggish.
### `MOUSEKEY_INTERVAL`
When a movement key is held down this specifies how long to wait between each movement report. Lower settings will translate into an effectively higher mouse speed.
### `MOUSEKEY_MAX_SPEED`
As a movement key is held down the speed of the mouse cursor will increase until it reaches `MOUSEKEY_MAX_SPEED`.
### `MOUSEKEY_TIME_TO_MAX`
How long you want to hold down a movement key for until `MOUSEKEY_MAX_SPEED` is reached. This controls how quickly your cursor will accelerate.
### `MOUSEKEY_WHEEL_MAX_SPEED`
The top speed for scrolling movements.
### `MOUSEKEY_WHEEL_TIME_TO_MAX`
How long you want to hold down a scroll key for until `MOUSEKEY_WHEEL_MAX_SPEED` is reached. This controls how quickly your scrolling will accelerate.

View File

@@ -1,47 +0,0 @@
## Pointing Device
Pointing Device is a generic name for a feature intended to be generic: moving the system pointer around. There are certainly other options for it - like mousekeys - but this aims to be easily modifiable and lightweight. You can implement custom keys to control functionality, or you can gather information from other peripherals and insert it directly here - let QMK handle the processing for you.
To enable Pointing Device, uncomment the following line in your rules.mk:
```
POINTING_DEVICE_ENABLE = yes
```
To manipulate the mouse report, you can use the following functions:
* `pointing_device_get_report()` - Returns the current report_mouse_t that represents the information sent to the host computer
* `pointing_device_set_report(report_mouse_t newMouseReport)` - Overrides and saves the report_mouse_t to be sent to the host computer
Keep in mind that a report_mouse_t (here "mouseReport") has the following properties:
* `mouseReport.x` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing movement (+ to the right, - to the left) on the x axis.
* `mouseReport.y` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing movement (+ upward, - downward) on the y axis.
* `mouseReport.v` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing vertical scrolling (+ upward, - downward).
* `mouseReport.h` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing horizontal scrolling (+ right, - left).
* `mouseReport.buttons` - this is a uint8_t in which the last 5 bits are used. These bits represent the mouse button state - bit 3 is mouse button 5, and bit 7 is mouse button 1.
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in "pointing_device_send()", which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example:
```
case MS_SPECIAL:
report_mouse_t currentReport = pointing_device_get_report();
if (record->event.pressed)
{
currentReport.v = 127;
currentReport.h = 127;
currentReport.buttons |= MOUSE_BTN1; //this is defined in report.h
}
else
{
currentReport.v = -127;
currentReport.h = -127;
currentReport.buttons &= ~MOUSE_BTN1;
}
pointing_device_set_report(currentReport);
break;
```
Recall that the mouse report is set to zero (except the buttons) whenever it is sent, so the scrolling would only occur once in each case.

View File

@@ -1,258 +0,0 @@
## PS/2 Mouse Support
Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device.
To hook up a Trackpoint, you need to obtain a Trackpoint module (i.e. harvest from a Thinkpad keyboard), identify the function of each pin of the module, and make the necessary circuitry between controller and Trackpoint module. For more information, please refer to [Trackpoint Hardware](https://deskthority.net/wiki/TrackPoint_Hardware) page on Deskthority Wiki.
There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
### Busywait Version
Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible.
In rules.mk:
```
PS2_MOUSE_ENABLE = yes
PS2_USE_BUSYWAIT = yes
```
In your keyboard config.h:
```
#ifdef PS2_USE_BUSYWAIT
# define PS2_CLOCK_PORT PORTD
# define PS2_CLOCK_PIN PIND
# define PS2_CLOCK_DDR DDRD
# define PS2_CLOCK_BIT 1
# define PS2_DATA_PORT PORTD
# define PS2_DATA_PIN PIND
# define PS2_DATA_DDR DDRD
# define PS2_DATA_BIT 2
#endif
```
### Interrupt Version
The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data.
In rules.mk:
```
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
```
In your keyboard config.h:
```
#ifdef PS2_USE_INT
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
#define PS2_CLOCK_DDR DDRD
#define PS2_CLOCK_BIT 2
#define PS2_DATA_PORT PORTD
#define PS2_DATA_PIN PIND
#define PS2_DATA_DDR DDRD
#define PS2_DATA_BIT 5
#define PS2_INT_INIT() do { \
EICRA |= ((1<<ISC21) | \
(0<<ISC20)); \
} while (0)
#define PS2_INT_ON() do { \
EIMSK |= (1<<INT2); \
} while (0)
#define PS2_INT_OFF() do { \
EIMSK &= ~(1<<INT2); \
} while (0)
#define PS2_INT_VECT INT2_vect
#endif
```
### USART Version
To use USART on the ATMega32u4, you have to use PD5 for clock and PD2 for data. If one of those are unavailable, you need to use interrupt version.
In rules.mk:
```
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
```
In your keyboard config.h:
```
#ifdef PS2_USE_USART
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
#define PS2_CLOCK_DDR DDRD
#define PS2_CLOCK_BIT 5
#define PS2_DATA_PORT PORTD
#define PS2_DATA_PIN PIND
#define PS2_DATA_DDR DDRD
#define PS2_DATA_BIT 2
/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
/* set DDR of CLOCK as input to be slave */
#define PS2_USART_INIT() do { \
PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \
PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \
UCSR1C = ((1 << UMSEL10) | \
(3 << UPM10) | \
(0 << USBS1) | \
(3 << UCSZ10) | \
(0 << UCPOL1)); \
UCSR1A = 0; \
UBRR1H = 0; \
UBRR1L = 0; \
} while (0)
#define PS2_USART_RX_INT_ON() do { \
UCSR1B = ((1 << RXCIE1) | \
(1 << RXEN1)); \
} while (0)
#define PS2_USART_RX_POLL_ON() do { \
UCSR1B = (1 << RXEN1); \
} while (0)
#define PS2_USART_OFF() do { \
UCSR1C = 0; \
UCSR1B &= ~((1 << RXEN1) | \
(1 << TXEN1)); \
} while (0)
#define PS2_USART_RX_READY (UCSR1A & (1<<RXC1))
#define PS2_USART_RX_DATA UDR1
#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
#define PS2_USART_RX_VECT USART1_RX_vect
#endif
```
### Additional Settings
#### PS/2 Mouse Features
These enable settings supported by the PS/2 mouse protocol: http://www.computer-engineering.org/ps2mouse/
```
/* Use remote mode instead of the default stream mode (see link) */
#define PS2_MOUSE_USE_REMOTE_MODE
/* Enable the scrollwheel or scroll gesture on your mouse or touchpad */
#define PS2_MOUSE_ENABLE_SCROLLING
/* Some mice will need a scroll mask to be configured. The default is 0xFF. */
#define PS2_MOUSE_SCROLL_MASK 0x0F
/* Applies a transformation to the movement before sending to the host (see link) */
#define PS2_MOUSE_USE_2_1_SCALING
/* The time to wait after initializing the ps2 host */
#define PS2_MOUSE_INIT_DELAY 1000 /* Default */
```
You can also call the following functions from ps2_mouse.h
```
void ps2_mouse_disable_data_reporting(void);
void ps2_mouse_enable_data_reporting(void);
void ps2_mouse_set_remote_mode(void);
void ps2_mouse_set_stream_mode(void);
void ps2_mouse_set_scaling_2_1(void);
void ps2_mouse_set_scaling_1_1(void);
void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution);
void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
```
#### Fine Control
Use the following defines to change the sensitivity and speed of the mouse.
Note: you can also use `ps2_mouse_set_resolution` for the same effect (not supported on most touchpads).
```
#define PS2_MOUSE_X_MULTIPLIER 3
#define PS2_MOUSE_Y_MULTIPLIER 3
#define PS2_MOUSE_V_MULTIPLIER 1
```
#### Scroll Button
If you're using a trackpoint, you will likely want to be able to use it for scrolling.
Its possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
To enable the feature, you must set a scroll button mask as follows:
```
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */
```
To disable the scroll button feature:
```
#define PS2_MOUSE_SCROLL_BTN_MASK 0
```
The available buttons are:
```
#define PS2_MOUSE_BTN_LEFT 0
#define PS2_MOUSE_BTN_RIGHT 1
#define PS2_MOUSE_BTN_MIDDLE 2
```
You can also combine buttons in the mask by `|`ing them together.
Once you've configured your scroll button mask, you must configure the scroll button send interval.
This is the interval before which if the scroll buttons were released they would be sent to the host.
After this interval, they will cause the mouse to scroll and will not be sent.
```
#define PS2_MOUSE_SCROLL_BTN_SEND 300 /* Default */
```
To disable sending the scroll buttons:
```
#define PS2_MOUSE_SCROLL_BTN_SEND 0
```
Fine control over the scrolling is supported with the following defines:
```
#define PS2_MOUSE_SCROLL_DIVISOR_H 2
#define PS2_MOUSE_SCROLL_DIVISOR_V 2
```
#### Invert Mouse and Scroll Axes
To invert the X and Y axes you can put:
```
#define PS2_MOUSE_INVERT_X
#define PS2_MOUSE_INVERT_Y
```
into config.h.
To reverse the scroll axes you can put:
```
#define PS2_MOUSE_INVERT_H
#define PS2_MOUSE_INVERT_V
```
into config.h.
#### Debug Settings
To debug the mouse, add `debug_mouse = true` or enable via bootmagic.
```
/* To debug the mouse reports */
#define PS2_MOUSE_DEBUG_HID
#define PS2_MOUSE_DEBUG_RAW
```

View File

@@ -1,144 +0,0 @@
# RGB Matrix Lighting
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
RGB_MATRIX_ENABLE = yes
Configure the hardware via your `config.h`:
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0b1110100 AD <-> GND
// 0b1110111 AD <-> VCC
// 0b1110101 AD <-> SCL
// 0b1110110 AD <-> SDA
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110110
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 25
#define DRIVER_2_LED_TOTAL 24
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL
Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, C1_3, C2_3, C3_3},
....
}
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf). The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now).
const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
/* {row | col << 4}
* | {x=0..224, y=0..64}
* | | modifier
* | | | */
{{0|(0<<4)}, {20.36*0, 21.33*0}, 1},
{{0|(1<<4)}, {20.36*1, 21.33*0}, 1},
....
}
The format for the matrix position used in this array is `{row | (col << 4)}`. The `x` is between (inclusive) 0-224, and `y` is between (inclusive) 0-64. The easiest way to calculate these positions is:
x = 224 / ( NUMBER_OF_ROWS - 1 ) * ROW_POSITION
y = 64 / (NUMBER_OF_COLS - 1 ) * COL_POSITION
Where all variables are decimels/floats.
`modifier` is a boolean, whether or not a certain key is considered a modifier (used in some effects).
## Keycodes
All RGB keycodes are currently shared with the RGBLIGHT system:
* `RGB_TOG` - toggle
* `RGB_MOD` - cycle through modes
* `RGB_HUI` - increase hue
* `RGB_HUD` - decrease hue
* `RGB_SAI` - increase saturation
* `RGB_SAD` - decrease saturation
* `RGB_VAI` - increase value
* `RGB_VAD` - decrease value
* `RGB_SPI` - increase speed effect (no EEPROM support)
* `RGB_SPD` - decrease speed effect (no EEPROM support)
* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system
## RGB Matrix Effects
These are the effects that are currently available:
enum rgb_matrix_effects {
RGB_MATRIX_SOLID_COLOR = 1,
RGB_MATRIX_ALPHAS_MODS,
RGB_MATRIX_DUAL_BEACON,
RGB_MATRIX_GRADIENT_UP_DOWN,
RGB_MATRIX_RAINDROPS,
RGB_MATRIX_CYCLE_ALL,
RGB_MATRIX_CYCLE_LEFT_RIGHT,
RGB_MATRIX_CYCLE_UP_DOWN,
RGB_MATRIX_RAINBOW_BEACON,
RGB_MATRIX_RAINBOW_PINWHEELS,
RGB_MATRIX_RAINBOW_MOVING_CHEVRON,
RGB_MATRIX_JELLYBEAN_RAINDROPS,
#ifdef RGB_MATRIX_KEYPRESSES
RGB_MATRIX_SOLID_REACTIVE,
RGB_MATRIX_SPLASH,
RGB_MATRIX_MULTISPLASH,
RGB_MATRIX_SOLID_SPLASH,
RGB_MATRIX_SOLID_MULTISPLASH,
#endif
RGB_MATRIX_EFFECT_MAX
};
## Custom layer effects
Custom layer effects can be done by defining this in your `<keyboard>.c`:
void rgb_matrix_indicators_kb(void) {
// rgb_matrix_set_color(index, red, green, blue);
}
A similar function works in the keymap as `rgb_matrix_indicators_user`.
## Additional `config.h` Options
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
## EEPROM storage
The EEPROM for it is currently shared with the RGBLIGHT system (it's generally assumed only one RGB would be used at a time), but could be configured to use its own 32bit address with:
#define EECONFIG_RGB_MATRIX (uint32_t *)16
Where `16` is an unused index from `eeconfig.h`.
## Suspended state
To use the suspend feature, add this to your `<keyboard>.c`:
void suspend_power_down_kb(void)
{
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_kb(void)
{
rgb_matrix_set_suspend_state(false);
}

View File

@@ -1,170 +0,0 @@
# RGB Lighting
If you've installed addressable RGB lights on your keyboard you can control them with QMK. Currently we support the following addressable LEDs on Atmel AVR processors:
* WS2811 and variants (WS2812, WS2812B, WS2812C, etc)
* SK6812RGBW
Some keyboards come with RGB LEDs pre-installed. Others have to have LEDs installed after the fact. See below for information on modifying your keyboard.
## Selecting Colors
QMK uses Hue, Saturation, and Value to set color rather than using RGB. You can use the color wheel below to see how this works. Changing the Hue will cycle around the circle. Saturation will affect the intensity of the color, which you can see as you move from the inner part to the outer part of the wheel. Value sets the overall brightness.
<img src="gitbook/images/color-wheel.svg" alt="HSV Color Wheel" width="250">
If you would like to learn more about HSV you can start with the [Wikipedia article](https://en.wikipedia.org/wiki/HSL_and_HSV).
## Configuration
Before RGB Lighting can be used you have to enable it in `rules.mk`:
RGBLIGHT_ENABLE = yes
You can configure the behavior of the RGB lighting by defining values inside `config.h`.
### Required Configuration
At minimum you have to define the pin your LED strip is connected to and the number of LEDs connected.
```c
#define RGB_DI_PIN D7 // The pin the LED strip is connected to
#define RGBLED_NUM 14 // Number of LEDs in your strip
```
### Optional Configuration
You can change the behavior of the RGB Lighting by setting these configuration values. Use `#define <Option> <Value>` in a `config.h` at the keyboard, revision, or keymap level.
| Option | Default Value | Description |
|--------|---------------|-------------|
| `RGBLIGHT_HUE_STEP` | 10 | How many hues you want to have available. |
| `RGBLIGHT_SAT_STEP` | 17 | How many steps of saturation you'd like. |
| `RGBLIGHT_VAL_STEP` | 17 | The number of levels of brightness you want. |
| `RGBLIGHT_LIMIT_VAL` | 255 | Limit the val of HSV to limit the maximum brightness simply. |
| `RGBLIGHT_SLEEP` | | `#define` this will shut off the lights when the host goes to sleep |
### Animations
If you have `#define RGBLIGHT_ANIMATIONS` in your `config.h` you will have a number of animation modes you can cycle through using the `RGB_MOD` key. You can also `#define` other options to tweak certain animations.
| Option | Default Value | Description |
|--------|---------------|-------------|
| `RGBLIGHT_ANIMATIONS` | | `#define` this to enable animation modes. |
| `RGBLIGHT_EFFECT_BREATHE_CENTER` | 1.85 | Used to calculate the curve for the breathing animation. Valid values 1.0-2.7. |
| `RGBLIGHT_EFFECT_BREATHE_MAX` | 255 | The maximum brightness for the breathing mode. Valid values 1-255. |
| `RGBLIGHT_EFFECT_SNAKE_LENGTH` | 4 | The number of LEDs to light up for the "snake" animation. |
| `RGBLIGHT_EFFECT_KNIGHT_LENGTH` | 3 | The number of LEDs to light up for the "knight" animation. |
| `RGBLIGHT_EFFECT_KNIGHT_OFFSET` | 0 | Start the knight animation this many LEDs from the start of the strip. |
| `RGBLIGHT_EFFECT_KNIGHT_LED_NUM` | RGBLED_NUM | The number of LEDs to have the "knight" animation travel. |
| `RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL` | 1000 | How long to wait between light changes for the "christmas" animation. Specified in ms. |
| `RGBLIGHT_EFFECT_CHRISTMAS_STEP` | 2 | How many LED's to group the red/green colors by for the christmas mode. |
You can also tweak the behavior of the animations by defining these consts in your `keymap.c`. These mostly affect the speed different modes animate at.
```c
// How long (in ms) to wait between animation steps for the breathing mode
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
// How long (in ms) to wait between animation steps for the rainbow mode
const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
// How long (in ms) to wait between animation steps for the swirl mode
const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
// How long (in ms) to wait between animation steps for the snake mode
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
// How long (in ms) to wait between animation steps for the knight modes
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
// These control which colors are selected for the gradient mode
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
```
### LED Control
Look in `rgblights.h` for all available functions, but if you want to control all or some LEDs your goto functions are:
```c
// turn all lights off (stored in EEPROM)
rgblight_disable();
// turn lights on, based on their previous state (stored in EEPROM)
rgblight_enable();
// turn all lights off (not stored in EEPROM)
rgblight_disable_noeeprom();
// turn lights on, based on their previous state (not stored in EEPROM)
rgblight_enable_noeeprom();
// where r/g/b is a number from 0..255. Turns all the LEDs to this color (ignores mode, not stored in EEPROM).
rgblight_setrgb(r, g, b);
// HSV color control - h is a value from 0..360 and s/v is a value from 0..255 (stored in EEPROM)
rgblight_sethsv(h, s, v);
// HSV color control - h is a value from 0..360 and s/v is a value from 0..255 (not stored in EEPROM)
rgblight_sethsv_noeeprom(h, s, v);
// Sets the mode, if rgb animations are enabled (stored in eeprom)
rgblight_mode(x);
// Sets the mode, if rgb animations are enabled (not stored in eeprom)
rgblight_mode_noeeprom(x);
// MODE 1, solid color
// MODE 2-5, breathing
// MODE 6-8, rainbow mood
// MODE 9-14, rainbow swirl
// MODE 15-20, snake
// MODE 21-23, knight
// MODE 24, xmas
// MODE 25-34, static rainbow
rgblight_setrgb_at(r,g,b, LED); // control a single LED. 0 <= LED < RGBLED_NUM
rgblight_sethsv_at(h,s,v, LED); // control a single LED. 0 <= LED < RGBLED_NUM
```
You can find a list of predefined colors at [`quantum/rgblight_list.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h). Free to add to this list!
## RGB Lighting Keycodes
These control the RGB Lighting functionality.
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue |
|`RGB_HUD` | |Decrease hue |
|`RGB_SAI` | |Increase saturation |
|`RGB_SAD` | |Decrease saturation |
|`RGB_VAI` | |Increase value (brightness) |
|`RGB_VAD` | |Decrease value (brightness) |
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST `|`RGB_M_T` |Red,Green,Blue test animation mode |
note: for backwards compatibility, `RGB_SMOD` is an alias for `RGB_MOD`.
## Hardware Modification
![Planck with RGB Underglow](https://raw.githubusercontent.com/qmk/qmk_firmware/3774a7fcdab5544fc787f4c200be05fcd417e31f/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg)
Here is a quick demo on Youtube (with NPKC KC60) (https://www.youtube.com/watch?v=VKrpPAHlisY).
For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring the VCC, GND, and DI, you can enable the underglow in your Makefile.
RGBLIGHT_ENABLE = yes
In order to use the underglow animation functions, you need to have `#define RGBLIGHT_ANIMATIONS` in your `config.h`.
Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default:
#define RGB_DI_PIN F4 // The pin your RGB strip is wired to
#define RGBLED_NUM 14 // Number of LEDs
You'll need to edit `RGB_DI_PIN` to the pin you have your `DI` on your RGB strip wired to.

View File

@@ -1,24 +0,0 @@
## Space Cadet Shift: The Future, Built In
Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds.
To use it, use `KC_LSPO` (Left Shift, Parenthesis Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parenthesis Close) for your right Shift.
It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this:
#define LSPO_KEY KC_9
#define RSPC_KEY KC_0
You can also choose between different rollover behaviors of the shift keys by defining:
#define DISABLE_SPACE_CADET_ROLLOVER
in your `config.h`. Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event of an erroneous press instead of emitting a pair of parentheses when the keys are released.
The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following:
```
COMMAND_ENABLE = no # Commands for debug and configuration
```
This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time.

View File

@@ -1,26 +0,0 @@
## Space Cadet Shift Enter: The future, built in
Based on the Space Cadet Shift by Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/)
Essentially, you hit the Shift on its own, and it acts as the enter key. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. This solution works better than using a macro since the timers defined in quantum allow us to tell when another key is pressed, rather than just having a janky timer than results in accidental endlines.
To use it, use `KC_SFTENT` (Shift, Enter) for any Shift on your keymap.
It's defaulted to work on US keyboards, but if you'd like to use a different key for Enter, you can define those in your `config.h` like this:
#define SFTENT_KEY KC_ENT
The only other thing you're going to want to do is create a `rules.mk` in your keymap directory and set the following:
```
COMMAND_ENABLE = no # Commands for debug and configuration
```
This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time.
PLEASE NOTE: this feature uses the same timers as the Space Cadet Shift feature, so using them in tandem may produce unwanted results.

View File

@@ -1,132 +0,0 @@
# Stenography in QMK
[Stenography](https://en.wikipedia.org/wiki/Stenotype) is a method of writing most often used by court reports, closed-captioning, and real-time transcription for the deaf. In stenography words are chorded syllable by syllable with a mixture of spelling, phonetic, and shortcut (briefs) strokes. Professional stenographers can reach 200-300 WPM without any of the strain usually found in standard typing and with far fewer errors (>99.9% accuracy).
The [Open Steno Project](http://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports
## Plover with QWERTY Keyboard
Plover can work with any standard QWERTY keyboard, although it is more efficient if the keyboard supports NKRO (n-key rollover) to allow Plover to see all the pressed keys at once. An example keymap for Plover can be found in `planck/keymaps/default`. Switching to the `PLOVER` layer adjusts the position of the keyboard to support the number bar.
To use Plover with QMK just enable NKRO and optionally adjust your layout if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys.
## Plover with Steno Protocol
Plover also understands the language of several steno machines. QMK can speak a couple of these languages, TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`.
When QMK speaks to Plover over a steno protocol Plover will not use the keyboard as input. This means that you can switch back and forth between a standard keyboard and your steno keyboard, or even switch layers from Plover to standard and back without needing to activate/deactivate Plover.
In this mode Plover expects to speak with a steno machine over a serial port so QMK will present itself to the operating system as a virtual serial port in addition to a keyboard. By default QMK will speak the TX Bolt protocol but can be switched to GeminiPR; the last protocol used is stored in non-volatile memory so QMK will use the same protocol on restart.
> Note: Due to hardware limitations you may not be able to run both a virtual serial port and mouse emulation at the same time.
### TX Bolt
TX Bolt communicates the status of 24 keys over a very simple protocol in variable-sized (1-5 byte) packets.
### GeminiPR
GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything that is necessary for standard stenography, GeminiPR opens up many more options, including supporting non-English theories.
## Configuring QMK for Steno
Firstly, enable steno in your keymap's Makefile. You may also need disable mousekeys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them.
```Makefile
STENO_ENABLE = yes
MOUSEKEY_ENABLE = no
```
In your keymap create a new layer for Plover. You will need to include `keymap_steno.h`. See `planck/keymaps/steno/keymap.c` for an example. Remember to create a key to switch to the layer as well as a key for exiting the layer. If you would like to switch modes on the fly you can use the keycodes `QK_STENO_BOLT` and `QK_STENO_GEMINI`. If you only want to use one of the protocols you may set it up in your initialization function:
```C
void matrix_init_user() {
steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT
}
```
Once you have your keyboard flashed launch Plover. Click the 'Configure...' button. In the 'Machine' tab select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control).
On the display tab click 'Open stroke display'. With Plover disabled you should be able to hit keys on your keyboard and see them show up in the stroke display window. Use this to make sure you have set up your keymap correctly. You are now ready to steno!
## Learning Stenography
* [Learn Plover!](https://sites.google.com/site/ploverdoc/)
* [QWERTY Steno](http://qwertysteno.com/Home/)
* [Steno Jig](https://joshuagrams.github.io/steno-jig/)
* More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki
## Interfacing with the code
The steno code has three interceptible hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
```C
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]);
```
This function is called when a chord is about to be sent. Mode will be one of `STENO_MODE_BOLT` or `STENO_MODE_GEMINI`. This represents the actual chord that would be sent via whichever protocol. You can modify the chord provided to alter what gets sent. Remember to return true if you want the regular sending process to happen.
```C
bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
```
This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values.
```C
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
```
This function is called after a key has been processed, but before any decision about whether or not to send a chord. If `IS_PRESSED(record->event)` is false, and `pressed` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This is where to put hooks for things like, say, live displays of steno chords or keys.
## Keycode Reference
As defined in `keymap_steno.h`.
> Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both.
|GeminiPR|TX Bolt|Steno Key|
|--------|-------|-----------|
|`STN_N1`|`STN_NUM`|Number bar #1|
|`STN_N2`|`STN_NUM`|Number bar #2|
|`STN_N3`|`STN_NUM`|Number bar #3|
|`STN_N4`|`STN_NUM`|Number bar #4|
|`STN_N5`|`STN_NUM`|Number bar #5|
|`STN_N6`|`STN_NUM`|Number bar #6|
|`STN_N7`|`STN_NUM`|Number bar #7|
|`STN_N8`|`STN_NUM`|Number bar #8|
|`STN_N9`|`STN_NUM`|Number bar #9|
|`STN_NA`|`STN_NUM`|Number bar #A|
|`STN_NB`|`STN_NUM`|Number bar #B|
|`STN_NC`|`STN_NUM`|Number bar #C|
|`STN_S1`|`STN_SL`| `S-` upper|
|`STN_S2`|`STN_SL`| `S-` lower|
|`STN_TL`|`STN_TL`| `T-`|
|`STN_KL`|`STN_KL`| `K-`|
|`STN_PL`|`STN_PL`| `P-`|
|`STN_WL`|`STN_WL`| `W-`|
|`STN_HL`|`STN_HL`| `H-`|
|`STN_RL`|`STN_RL`| `R-`|
|`STN_A`|`STN_A`| `A` vowel|
|`STN_O`|`STN_O`| `O` vowel|
|`STN_ST1`|`STN_STR`| `*` upper-left |
|`STN_ST2`|`STN_STR`| `*` lower-left|
|`STN_ST3`|`STN_STR`| `*` upper-right|
|`STN_ST4`|`STN_STR`| `*` lower-right|
|`STN_E`|`STN_E`| `E` vowel|
|`STN_U`|`STN_U`| `U` vowel|
|`STN_FR`|`STN_FR`| `-F`|
|`STN_PR`|`STN_PR`| `-P`|
|`STN_RR`|`STN_RR`| `-R`|
|`STN_BR`|`STN_BR`| `-B`|
|`STN_LR`|`STN_LR`| `-L`|
|`STN_GR`|`STN_GR`| `-G`|
|`STN_TR`|`STN_TR`| `-T`|
|`STN_SR`|`STN_SR`| `-S`|
|`STN_DR`|`STN_DR`| `-D`|
|`STN_ZR`|`STN_ZR`| `-Z`|
|`STN_FN`|| (GeminiPR only)|
|`STN_RES1`||(GeminiPR only)|
|`STN_RES2`||(GeminiPR only)|
|`STN_PWR`||(GeminiPR only)|

View File

@@ -1,30 +0,0 @@
# Swap-Hands Action
The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `SWAP_HANDS_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd`
## Configuration
The configuration table is a simple 2-dimensional array to map from column/row to new column/row. Example `hand_swap_config` for Planck:
```C
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
{{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
{{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
{{11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
};
```
Note that the array indices are reversed same as the matrix and the values are of type `keypos_t` which is `{col, row}` and all values are zero-based. In the example above, `hand_swap_config[2][4]` (third row, fifth column) would return `{7, 2}` (third row, eighth column). Yes, this is confusing.
## Swap Keycodes
|Key |Description |
|-----------|-------------------------------------------------------------------------|
|`SH_T(key)`|Sends `key` with a tap; momentary swap when held. |
|`SW_ON` |Turns on swapping and leaves it on. |
|`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.|
|`SW_MON` |Swaps hands when pressed, returns to normal when released (momentary). |
|`SW_MOFF` |Momentarily turns off swap. |
|`SH_TG` |Toggles swap on and off with every key press. |
|`SH_TT` |Toggles with a tap; momentary when held. |

View File

@@ -1,338 +0,0 @@
# Tap Dance: A Single Key Can Do 3, 5, or 100 Different Things
<!-- FIXME: Break this up into multiple sections -->
Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/qmk/qmk_firmware/pull/451). Here's how algernon describes the feature:
With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter.
To make it clear how this is different from `ACTION_FUNCTION_TAP`, let's explore a certain setup! We want one key to send `Space` on single tap, but `Enter` on double-tap.
With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be sent first. Thus, `SPC a` will result in `a SPC` being sent, if they are typed within `TAPPING_TERM`. With the tap dance feature, that'll come out as `SPC a`, correctly.
The implementation hooks into two parts of the system, to achieve this: into `process_record_quantum()`, and the matrix scan. We need the latter to be able to time out a tap sequence even when a key is not being pressed, so `SPC` alone will time out and register after `TAPPING_TERM` time.
But lets start with how to use it, first!
First, you will need `TAP_DANCE_ENABLE=yes` in your `rules.mk`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()`, takes a number, which will later be used as an index into the `tap_dance_actions` array.
This array specifies what actions shall be taken when a tap-dance key is in action. Currently, there are five possible options:
* `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held.
* `ACTION_TAP_DANCE_DUAL_ROLE(kc, layer)`: Sends the `kc` keycode when tapped once, or moves to `layer`. (this functions like the `TO` layer keycode).
* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action.
* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets.
* `ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`.
The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise.
And that's the bulk of it!
And now, on to the explanation of how it works!
The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and the timer.
This means that you have `TAPPING_TERM` time to tap the key again, you do not have to input all the taps within that timeframe. This allows for longer tap counts, with minimal impact on responsiveness.
Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys.
For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros.
# Examples
## Simple Example
Here's a simple example for a single definition:
1. In your `rules.mk`, add `TAP_DANCE_ENABLE = yes`
2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200`
3. In your `keymap.c` file, define the variables and definitions, then add to your keymap:
```c
//Tap Dance Declarations
enum {
TD_ESC_CAPS = 0
};
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Esc, twice for Caps Lock
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS)
// Other declarations would go here, separated by commas, if you have them
};
//In Layer declaration, add tap dance item in place of a key code
TD(TD_ESC_CAPS)
```
## Complex Examples
This section details several complex tap dance examples.
All the enums used in the examples are declared like this:
```c
// Enums defined for all examples:
enum {
CT_SE = 0,
CT_CLN,
CT_EGG,
CT_FLSH,
X_TAP_DANCE
};
```
### Example 1: Send `:` on Single Tap, `;` on Double Tap
```c
void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_RSFT);
register_code (KC_SCLN);
} else {
register_code (KC_SCLN);
}
}
void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_RSFT);
unregister_code (KC_SCLN);
} else {
unregister_code (KC_SCLN);
}
}
//All tap dance functions would go here. Only showing this one.
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset)
};
```
### Example 2: Send "Safety Dance!" After 100 Taps
```c
void dance_egg (qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 100) {
SEND_STRING ("Safety dance!");
reset_tap_dance (state);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
};
```
### Example 3: Turn LED Lights On Then Off, One at a Time
```c
// on each tap, light up one led, from right to left
// on the forth tap, turn them off from right to left
void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1:
ergodox_right_led_3_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_1_on();
break;
case 4:
ergodox_right_led_3_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_1_off();
}
}
// on the fourth tap, set the keyboard on flash state
void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 4) {
reset_keyboard();
reset_tap_dance(state);
}
}
// if the flash state didn't happen, then turn off LEDs, left to right
void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) {
ergodox_right_led_1_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_3_off();
}
//All tap dances now put together. Example 3 is "CT_FLASH"
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT)
,[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset)
,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
,[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset)
};
```
### Example 4: 'Quad Function Tap-Dance'
By [DanielGGordon](https://github.com/danielggordon)
Allow one key to have 4 (or more) functions, depending on number of presses, and if the key is held or tapped.
Below is a specific example:
* Tap = Send `x`
* Hold = Send `Control`
* Double Tap = Send `Escape`
* Double Tap and Hold = Send `Alt`
## Setup
You will need a few things that can be used for 'Quad Function Tap-Dance'. The suggested setup is to create a user directory for yourself. This directory will contain rules.mk `<your_name>.c` and `<your_name>.h`. This directory should be called `<your_name>`, and located in the top level `users` directory. There should already be a few examples to look at there.
### In `/qmk_firmware/users/<your_name>/rules.mk`
Put the following:
```c
TAP_DANCE_ENABLE = yes
SRC += your_name.c
```
Pretty simple. It is a nice way to keep some rules common on all your keymaps.
### In `/qmk_firmware/users/<your_name>/<you_name>.h`
You will need a few things in this file:
```c
#ifndef YOUR_NAME
#define YOUR_NAME
#include "quantum.h"
#include "process_keycode/process_tap_dance.h"
typedef struct {
bool is_press_action;
int state;
} xtap;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD = 2,
DOUBLE_TAP = 3,
DOUBLE_HOLD = 4,
DOUBLE_SINGLE_TAP = 5, //send two single taps
TRIPLE_TAP = 6,
TRIPLE_HOLD = 7
};
//Tap dance enums
enum {
CTL_X = 0,
SOME_OTHER_DANCE
}
int cur_dance (qk_tap_dance_state_t *state);
//for the x tap dance. Put it here so it can be used in any keymap
void x_finished (qk_tap_dance_state_t *state, void *user_data);
void x_reset (qk_tap_dance_state_t *state, void *user_data);
```
### In `/qmk_firmware/users/<your_name>/<your_name>.c`
And then in your user's `.c` file you implement the functions above:
```c
#include "gordon.h"
#include "quantum.h"
#include "action.h"
#include "process_keycode/process_tap_dance.h"
/* Return an integer that corresponds to what kind of tap dance should be executed.
*
* How to figure out tap dance state: interrupted and pressed.
*
* Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit
* under the tapping term. This is typically indicitive that you are trying to "tap" the key.
*
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term
* has ended, but the key is still being pressed down. This generally means the key is being "held".
*
* One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters.
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters.
*
* Good places to put an advanced tap dance:
* z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon
*
* Criteria for "good placement" of a tap dance key:
* Not a key that is hit frequently in a sentence
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or
* in a web form. So 'tab' would be a poor choice for a tap dance.
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
* letter 'p', the word 'pepper' would be quite frustating to type.
*
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
*
*/
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
//key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
else return SINGLE_HOLD;
}
else if (state->count == 2) {
/*
* DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
* action when hitting 'pp'. Suggested use case for this return value is when you want to send two
* keystrokes of the key, and not the 'double tap' action/macro.
*/
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
//Assumes no one is trying to type the same letter three times (at least not quickly).
//If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
//an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
}
else return 8; //magic number. At some point this method will expand to work for more presses
}
//instanalize an instance of 'tap' for the 'x' tap dance.
static tap xtap_state = {
.is_press_action = true,
.state = 0
};
void x_finished (qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state);
switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break;
case DOUBLE_SINGLE_TAP: register_code(KC_X); unregister_code(KC_X); register_code(KC_X);
//Last case is for fast typing. Assuming your key is `f`:
//For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
//In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
}
}
void x_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
}
xtap_state.state = 0;
}
qk_tap_dance_action_t tap_dance_actions[] = {
[X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,x_finished, x_reset)
};
```
And then simply use TD(X_CTL) anywhere in your keymap.

View File

@@ -1,107 +0,0 @@
# Terminal
> This feature is currently *huge* at 4400 bytes, and should probably only be put on boards with a lot of memory, or for fun.
The terminal feature is a command-line-like interface designed to communicate through a text editor with keystrokes. It's beneficial to turn off auto-indent features in your editor.
To enable, stick this in your `rules.mk` or `Makefile`:
TERMINAL_ENABLE = yes
And use the `TERM_ON` and `TERM_OFF` keycodes to turn it on or off.
When enabled, a `> ` prompt will appear, where you'll be able to type, backspace (a bell will ding if you reach the beginning and audio is enabled), and hit enter to send the command. Arrow keys are currently disabled so it doesn't get confused. Moving your cursor around with the mouse is discouraged.
`#define TERMINAL_HELP` enables some other output helpers that aren't really needed with this page.
Pressing "up" and "down" will allow you to cycle through the past 5 commands entered.
## Future Ideas
* Keyboard/user-extensible commands
* Smaller footprint
* Arrow key support
* Command history - Done
* SD card support
* LCD support for buffer display
* Keycode -> name string LUT
* Layer status
* *Analog/digital port read/write*
* RGB mode stuff
* Macro definitions
* EEPROM read/write
* Audio control
## Current Commands
### `about`
Prints out the current version of QMK with a build date:
```
> about
QMK Firmware
v0.5.115-7-g80ed73-dirty
Built: 2017-08-29-20:24:44
```
### `print-buffer`
Outputs the last 5 commands entered
```
> print-buffer
0. print-buffer
1. help
2. about
3. keymap 0
4. help
5. flush-buffer
```
### `flush-buffer`
Clears command buffer
```
> flush-buffer
Buffer cleared!
```
### `help`
Prints out the available commands:
```
> help
commands available:
about help keycode keymap exit print-buffer flush-buffer
```
### `keycode <layer> <row> <col>`
Prints out the keycode value of a certain layer, row, and column:
```
> keycode 0 1 0
0x29 (41)
```
### `keymap <layer>`
Prints out the entire keymap for a certain layer
```
> keymap 0
0x002b, 0x0014, 0x001a, 0x0008, 0x0015, 0x0017, 0x001c, 0x0018, 0x000c, 0x0012, 0x0013, 0x002a,
0x0029, 0x0004, 0x0016, 0x0007, 0x0009, 0x000a, 0x000b, 0x000d, 0x000e, 0x000f, 0x0033, 0x0034,
0x00e1, 0x001d, 0x001b, 0x0006, 0x0019, 0x0005, 0x0011, 0x0010, 0x0036, 0x0037, 0x0038, 0x0028,
0x5cd6, 0x00e0, 0x00e2, 0x00e3, 0x5cd4, 0x002c, 0x002c, 0x5cd5, 0x0050, 0x0051, 0x0052, 0x004f,
>
```
### `exit`
Exits the terminal - same as `TERM_OFF`.

View File

@@ -1,10 +0,0 @@
# Thermal Printer
<!-- FIXME: Describe thermal printers support here. -->
## Thermal Printer Keycodes
|Key |Description |
|-----------|----------------------------------------|
|`PRINT_ON` |Start printing everything the user types|
|`PRINT_OFF`|Stop printing everything the user types |

View File

@@ -1,54 +0,0 @@
# Unicode Support
There are three Unicode keymap definition method available in QMK:
## UNICODE_ENABLE
Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in
keymap file, where *n* is a 4 digit hexadecimal.
## UNICODEMAP_ENABLE
Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping
table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file.
The keycode function is `X(n)` where *n* is the array index of the mapping
table.
## UCIS_ENABLE
TBD
Unicode input in QMK works by inputing a sequence of characters to the OS,
sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted.
This is the current list of Unicode input method in QMK:
* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex.
* UC_OSX_RALT: Same as UC_OSX, but sends the Right Alt key for unicode input
* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else.
* UC_WIN: (not recommended) Windows built-in Unicode input. To enable: create registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad`, set its value to 1, and reboot. This method is not recommended because of reliability and compatibility issue, use WinCompose method below instead.
* UC_WINC: Windows Unicode input using WinCompose. Requires [WinCompose](https://github.com/samhocevar/wincompose). Works reliably under many (all?) variations of Windows.
# Additional Language Support
In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware.
# International Characters on Windows
[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others.
The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background.
First you need to select a modifier combination that is not in use by any of your programs.
CtrlAltWin is not used very widely and should therefore be perfect for this.
There is a macro defined for a mod-tab combo `LCAG_T`.
Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`.
This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key.
In the default script of AutoHotkey you can define custom hotkeys.
<^<!<#a::Send, ä
<^<!<#<+a::Send, Ä
The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a.
AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.

View File

@@ -1,125 +0,0 @@
# Userspace: Sharing Code Between Keymaps
If you use more than one keyboard with a similar keymap, you might see the benefit in being able to share code between them. Create your own folder in `users/` named the same as your keymap (ideally your github username, `<name>`) with the following structure:
* `/users/<name>/` (added to the path automatically)
* `readme.md` (optional, recommended)
* `rules.mk` (included automatically)
* `<name>.h` (optional)
* `<name>.c` (optional)
* `config.h` (optional)
`<name>.c` will need to be added to the SRC in `rules.mk` like this:
SRC += <name>.c
Additional files may be added in the same way - it's recommended you have one named `<name>`.c/.h though.
All this only happens when you build a keymap named `<name>`, like this:
make planck:<name>
For example,
make planck:jack
Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`.
Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `<name>.h` file.
The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues.
So you should use the `config.h` for QMK settings, and the `<name>.h` file for user or keymap specific settings.
## Readme
Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses).
## `Config.h`
If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this:
```c
#ifndef USERSPACE_CONFIG_H
#define USERSPACE_CONFIG_H
// Put normal config.h settings here:
#endif // !USERSPACE_CONFIG_H
```
You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md).
## Example
For a brief example, checkout `/users/_example/` , or for a more detailed examples check out [`template.h`](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/template.h) and [`template.c`](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/template.c) in `/users/drashna/` .
### Consolidated Macros
If you wanted to consolidate macros and other functions into your userspace for all of your keymaps, you can do that. The issue is that you then cannot call any function defined in your userspace, or it gets complicated. To better handle this, you can call the functions here and create new functions to use in individual keymaps.
First, you'd want to go through all of your `keymap.c` files and replace `process_record_user` with `process_record_keymap` instead. This way, you can still use keyboard specific codes on those boards, and use your custom "global" keycodes as well. You'll also want to replace `SAFE_RANGE` with `NEW_SAFE_RANGE` so that you wont have any overlapping keycodes
Then add `#include <name.h>` to all of your keymap.c files. This allows you to use these new keycodes without having to redefine them in each keymap.
Once you've done that, you'll want to set the keycode definitions that you need to the `<name>.h` file. For instance:
```
#ifndef USERSPACE
#define USERSPACE
#include "quantum.h"
// Define all of
enum custom_keycodes {
KC_MAKE = SAFE_RANGE,
NEW_SAFE_RANGE //use "NEW_SAFE_RANGE" for keymap specific codes
};
#endif
```
Now you want to create the `<name>.c` file, and add this content to it:
```
#include "<name>.h"
#include "quantum.h"
#include "action.h"
#include "version.h"
__attribute__ ((weak))
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
return true;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_MAKE:
if (!record->event.pressed) {
SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
":dfu "
#elif defined(BOOTLOADER_HALFKAY)
":teensy "
#elif defined(BOOTLOADER_CATERINA)
":avrdude "
#endif
SS_TAP(X_ENTER));
}
return false;
break;
}
return process_record_keymap(keycode, record);
}
```
This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make <keyboard>:<keymap">`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time.
Additionally, this should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely (and will dump the HEX in the ".build" folder instead).
## Override default userspace
By default the userspace used will be the same as the keymap name. In some situations this isn't desirable. For instance, if you use the [layout](feature_layouts.md) feature you can't use the same name for different keymaps (e.g. ANSI and ISO). You can name your layouts `mylayout-ansi` and `mylayout-iso` and add the following line to your layout's `rules.mk`:
```
USER_NAME := mylayout
```

View File

@@ -1,28 +0,0 @@
# QMK Features
QMK has a staggering number of features for building your keyboard. It can take some time to understand all of them and determine which one will achieve your goal.
* [Advanced Keycodes](feature_advanced_keycodes.md) - Change layers, type shifted keys, and more. Go beyond typing simple characters.
* [Audio](feature_audio.md) - Connect a speaker to your keyboard for audio feedback, midi support, and music mode.
* [Auto Shift](feature_auto_shift.md) - Tap for the normal key, hold slightly longer for its shifted state.
* [Backlight](feature_backlight.md) - LED lighting support for your keyboard.
* [Bootmagic](feature_bootmagic.md) - Adjust the behavior of your keyboard using hotkeys.
* [Dynamic Macros](feature_dynamic_macros.md) - Record and playback macros from the keyboard itself.
* [Key Lock](feature_key_lock.md) - Lock a key in the "down" state.
* [Layouts](feature_layouts.md) - Use one keymap with any keyboard that supports your layout.
* [Leader Key](feature_leader_key.md) - Tap the leader key followed by a sequence to trigger custom behavior.
* [Macros](feature_macros.md) - Send multiple key presses when pressing only one physical key.
* [Mouse keys](feature_mouse_keys.md) - Control your mouse pointer from your keyboard.
* [Pointing Device](feature_pointing_device.md) - Framework for connecting your custom pointing device to your keyboard.
* [PS2 Mouse](feature_ps2_mouse.md) - Driver for connecting a PS/2 mouse directly to your keyboard.
* [RGB Light](feature_rgblight.md) - RGB lighting for your keyboard.
* [RGB Matrix](feature_rgb_matrix.md) - RGB Matrix lights for per key lighting.
* [Space Cadet](feature_space_cadet.md) - Use your left/right shift keys to type parenthesis and brackets.
* [Stenography](feature_stenography.md) - Put your keyboard into Plover mode for stenography use.
* [Swap Hands](feature_swap_hands.md) - Mirror your keyboard for one handed usage.
* [Tap Dance](feature_tap_dance.md) - Make a single key do as many things as you want.
* [Terminal](feature_terminal.md) - CLI interface to the internals of your keyboard.
* [Thermal Printer](feature_thermal_printer.md) - Connect a thermal printer to your keyboard to be able to toggle on a printed log of everything you type.
* [Unicode](feature_unicode.md) - Unicode input support.
* [Userspace](feature_userspace.md) - Share code between different keymaps and keyboards.

View File

@@ -1,104 +0,0 @@
# Flashing Instructions and Bootloader Information
There are quite a few different types of bootloaders that keyboards use, and just about all of the use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them.
If you have a bootloader selected with the `BOOTLOADER` variable in your `rules.mk`, QMK will automatically calculate if your .hex file is the right size to be flashed to the device, and output the total size it bytes (along with the max). To run this process manually, compile with the target `check-size`, eg `make planck/rev4:default:check-size`.
## DFU
Atmel's DFU bootloader comes on all atmega32u4 chips by default, and is used by many keyboards that have their own ICs on their PCBs (Older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader (or QMK's fork) (Newer OLKB boards) that adds in additional features specific to that hardware.
To ensure compatibility with the DFU bootloader, make sure this block is present your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead):
# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = atmel-dfu
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line)
* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (not recommended)
Flashing sequence:
1. Press the `RESET` keycode, or tap the RESET button (or short RST to GND).
2. Wait for the OS to detect the device
3. Erase the memory (may be done automatically)
4. Flash a .hex file
5. Reset the device into application mode (may be done automatically)
or:
make <keyboard>:<keymap>:dfu
### QMK DFU
QMK has a fork of the LUFA DFU bootloader that allows for a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, use this block in your `config.h` (The key that exits the bootloader needs to be hooked-up to the INPUT and OUTPUT defined here):
#define QMK_ESC_OUTPUT F1 // usually COL
#define QMK_ESC_INPUT D5 // usually ROW
#define QMK_LED E6
#define QMK_SPEAKER C6
The Manufacturer and Product names are automatically pulled from your `config.h`, and "Bootloader" is added to the product.
To generate this bootloader, use the `bootloader` target, eg `make planck/rev4:default:bootloader`.
To generate a production-ready .hex file (containing the application and the bootloader), use the `production` target, eg `make planck/rev4:default:production`.
## Caterina
Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/bootloaders/caterina) (any keyboard built with a Pro Micro, or clone), and uses the avr109 protocol to communicate through virtual serial. Bootloaders like [A-Star](https://www.pololu.com/docs/0J61/9) are based on Caterina.
To ensure compatibility with the Caterina bootloader, make sure this block is present your `rules.mk`:
# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = caterina
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](http://www.nongnu.org/avrdude/) with avr109 / `:avrdude` (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
Flashing sequence:
1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters)
2. Wait for the OS to detect the device
4. Flash a .hex file
5. Wait for the device to reset automatically
or
make <keyboard>:<keymap>:avrdude
## Halfkay
Halfkay is a super-slim protocol developed by PJRC that uses HID, and come on all Teensys (namely the 2.0).
To ensure compatibility with the Halfkay bootloader, make sure this block is present your `rules.mk`:
# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = halfkay
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) (recommended command line)
Flashing sequence:
1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters)
2. Wait for the OS to detect the device
4. Flash a .hex file
5. Reset the device into application mode (may be done automatically)

View File

@@ -1,50 +0,0 @@
Atmega32u4 Fuse/Lock Bits for Planck/Atomic/Preonic
=========================
Low Fuse: 0x5E
High Fuse: 0x99
Extended Fuse: 0xF3
Lock Byte: 0xFF
ATMega168P Fuse/Lock Bits
=========================
This configuration is from usbasploader's Makefile.
HFUSE 0xD6
LFUSE 0xDF
EFUSE 0x00
LOCK 0x3F(intact)
#---------------------------------------------------------------------
# ATMega168P
#---------------------------------------------------------------------
# Fuse extended byte:
# 0x00 = 0 0 0 0 0 0 0 0 <-- BOOTRST (boot reset vector at 0x1800)
# \+/
# +------- BOOTSZ (00 = 2k bytes)
# Fuse high byte:
# 0xd6 = 1 1 0 1 0 1 1 0
# ^ ^ ^ ^ ^ \-+-/
# | | | | | +------ BODLEVEL 0..2 (110 = 1.8 V)
# | | | | + --------- EESAVE (preserve EEPROM over chip erase)
# | | | +-------------- WDTON (if 0: watchdog always on)
# | | +---------------- SPIEN (allow serial programming)
# | +------------------ DWEN (debug wire enable)
# +-------------------- RSTDISBL (reset pin is enabled)
# Fuse low byte:
# 0xdf = 1 1 0 1 1 1 1 1
# ^ ^ \ / \--+--/
# | | | +------- CKSEL 3..0 (external >8M crystal)
# | | +--------------- SUT 1..0 (crystal osc, BOD enabled)
# | +------------------ CKOUT (if 0: Clock output enabled)
# +-------------------- CKDIV8 (if 0: divide by 8)
# Lock Bits
# 0x3f = - - 1 1 1 1 1 1
# \ / \-/ \-/
# | | +----- LB 2..1 (No memory lock features enabled)
# | +--------- BLB0 2..1 (No restrictions for SPM or LPM accessing the Application section)
# +--------------- BLB1 2..1 (No restrictions for SPM or LPM accessing the Boot Loader section)

View File

@@ -1,144 +0,0 @@
# Installing Build Tools
This page describes setting up the build environment for QMK. These instructions cover AVR processors (such as the atmega32u4).
<!-- FIXME: We should have ARM instructions somewhere. -->
Note: If it is your first time here, Check out the "Complete Newbs guide" instead
## Linux
To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. **This will run `apt-get upgrade`.**
You can also install things manually, but this documentation might not be always up to date with all requirements.
The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently.
```
build-essential
gcc
unzip
wget
zip
gcc-avr
binutils-avr
avr-libc
dfu-programmer
dfu-util
gcc-arm-none-eabi
binutils-arm-none-eabi
libnewlib-arm-none-eabi
git
```
Install the dependencies with your favorite package manager.
Debian / Ubuntu example:
sudo apt-get update
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
Fedora / Red Hat example:
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
## Nix
If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment.
By default, this will download compilers for both AVR and ARM. If you don't need both, disable the `avr` or `arm` arguments, e.g.:
nix-shell --arg arm false
## macOS
If you're using [homebrew,](http://brew.sh/) you can use the following commands:
brew tap osx-cross/avr
brew tap PX4/homebrew-px4
brew update
brew install avr-gcc@7
brew install dfu-programmer
brew install gcc-arm-none-eabi
brew install avrdude
This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of avr-libc can take over 20 minutes and exhibit high CPU usage.
## Windows with msys2 (recommended)
The best environment to use, for Windows Vista through any later version (tested on 7 and 10), is [msys2](http://www.msys2.org).
* Install msys2 by downloading it and following the instructions here: http://www.msys2.org
* Open the ``MSYS2 MingGW 64-bit`` shortcut
* Navigate to your qmk checkout. For example, if it's in the root of your c drive:
* `$ cd /c/qmk_firmware`
* Run `util/msys2_install.sh` and follow the prompts
## Windows 10 (deprecated)
These are the old instructions for Windows 10. We recommend you use [MSYS2 as outlined above](#windows-with-msys2-recommended).
### Creators Update
If you have Windows 10 with Creators Update or later, you can build and flash the firmware directly. Before the Creators Update, only building was possible. If you don't have it yet or if are unsure, follow [these instructions](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update).
### Windows Subsystem for Linux
In addition to the Creators Update, you need Windows 10 Subystem for Linux, so install it following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). If you already have the Windows 10 Subsystem for Linux from the Anniversary update it's recommended that you [upgrade](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) it to 16.04LTS, because some keyboards don't compile with the toolchains included in 14.04LTS. Note that you need to know what your are doing if you chose the `sudo do-release-upgrade` method.
### Git
If you already have cloned the repository on your Windows file system you can ignore this section.
You will need to clone the repository to your Windows file system using the normal Git for Windows and **not** the WSL Git. So if you haven't installed Git before, [download](https://git-scm.com/download/win) and install it. Then [set it up](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup), it's important that you setup the e-mail and user name, especially if you are planning to contribute.
Once Git is installed, open the Git Bash command and change the directory to where you want to clone QMK; note that you have to use forward slashes, and that your c drive is accessed like this `/c/path/to/where/you/want/to/go`. Then run `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`, this will create a new folder `qmk_firmware` as a subfolder of the current one.
### Toolchain Setup
The Toolchain setup is done through the Windows Subsystem for Linux, and the process is fully automated. If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information.
1. Open "Bash On Ubuntu On Windows" from the start menu.
2. Go to the directory where you cloned `qmk_firmware`. Note that the paths start with `/mnt/` in the WSL, so you have to write for example `cd /mnt/c/path/to/qmk_firmware`.
3. Run `util/wsl_install.sh` and follow the on-screen instructions.
4. Close the Bash command window, and re-open it.
5. You are ready to compile and flash the firmware!
### Some Important Things to Keep in Mind
* You can run `util/wsl_install.sh` again to get all the newest updates.
* Your QMK repository need to be on a Windows file system path, since WSL can't run executables outside it.
* The WSL Git is **not** compatible with the Windows Git, so use the Windows Git Bash or a windows Git GUI for all Git operations
* You can edit files either inside WSL or normally using Windows, but note that if you edit makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work.
## Windows (Vista and Later) (Deprecated)
These are the old instructions for Windows Vista and later. We recommend you use [MSYS2 as outlined above](#windows-with-msys2-recommended).
1. If you have ever installed WinAVR, uninstall it.
2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
3. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware).
4. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location.
5. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
6. Open the `\util` folder.
7. Double-click on the `1-setup-path-win` batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
8. Right-click on the `2-setup-environment-win` batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete!
If you have trouble and want to ask for help, it is useful to generate a *Win_Check_Output.txt* file by running `Win_Check.bat` in the `\util` folder.
## Docker
If this is a bit complex for you, Docker might be the turn-key solution you need. After installing [Docker](https://www.docker.com/products/docker), run the following command at the root of the QMK folder to build a keyboard/keymap:
```bash
# You'll run this every time you want to build a keymap
# modify the keymap and keyboard assignment to compile what you want
# defaults are ergodox/default
docker run -e keymap=gwen -e keyboard=ergodox_ez --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware
```
On Windows Docker seems to have issues with the VOLUME tag in Dockerfile, and `$('pwd')` won't print a Windows compliant path; use full path instead, like this:
```bash
docker run -e keymap=default -e keyboard=ergodox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
```
This will compile the targeted keyboard/keymap and leave it in your QMK directory for you to flash.
## Vagrant
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [vagrant guide](getting_started_vagrant.md).

View File

@@ -1,15 +0,0 @@
# Getting Help
There are a lot of resources for getting help with QMK.
## Realtime Chat
You can find QMK developers and users on our main [Discord server](https://discord.gg/Uq7gcHh). There are specific channels in the server for chatting about the firmware, Toolbox, hardware, and configurator.
## OLKB Subreddit
The official QMK forum is [/r/olkb](https://reddit.com/r/olkb) on [reddit.com](https://reddit.com).
## Github Issues
You can open an [issue on GitHub](https://github.com/qmk/qmk_firmware/issues). This is especially handy when your issue will require long-term discussion or debugging.

View File

@@ -1,61 +0,0 @@
# How to Use Github with QMK
Github can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK.
?> This guide assumes you're somewhat comfortable with running things at the command line, and have git installed on your system.
Start on the [QMK Github page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":
![Fork on Github](http://i.imgur.com/8Toomz4.jpg)
If you're apart of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button:
![Download from Github](http://i.imgur.com/N1NYcSz.jpg)
And be sure to select "HTTPS", and select the link and copy it:
![HTTPS link](http://i.imgur.com/eGO0ohO.jpg)
From here, enter `git clone ` into the command line, and then paste your link:
```
**[terminal]
**[prompt you@computer]**[path ~]**[delimiter $ ]**[command git clone https://github.com/whoeveryouare/qmk_firmware.git]
Cloning into 'qmk_firmware'...
remote: Counting objects: 46625, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 46625 (delta 0), reused 0 (delta 0), pack-reused 46623
Receiving objects: 100% (46625/46625), 84.47 MiB | 3.14 MiB/s, done.
Resolving deltas: 100% (29362/29362), done.
Checking out files: 100% (2799/2799), done.
```
You now have your QMK fork on your local machine, and you can add your keymap, compile it and flash it to your board. Once you're happy with your changes, you can add, commit, and push them to your fork like this:
```
**[terminal]
**[prompt you@computer]**[path ~/qmk_firmware]**[delimiter $ ]**[command git add .]
**[prompt you@computer]**[path ~/qmk_firmware]**[delimiter $ ]**[command git commit -m "adding my keymap"]
[master cccb1608] adding my keymap
1 file changed, 1 insertion(+)
create mode 100644 keyboards/planck/keymaps/mine/keymap.c
**[prompt you@computer]**[path ~/qmk_firmware]**[delimiter $ ]**[command git push]
Counting objects: 1, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (1/1), 1.64 KiB | 0 bytes/s, done.
Total 1 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local objects.
To https://github.com/whoeveryouare/qmk_firmware.git
+ 20043e64...7da94ac5 master -> master
```
Your changes now exist on your fork on Github - if you go back there (`https://github.com/<whoeveryouare>/qmk_firmware`), you can create a "New Pull Request" by clicking this button:
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg)
Here you'll be able to see exactly what you've committed - if it all looks good, you can finalize it by clicking "Create Pull Request":
![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg)
After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :)

View File

@@ -1,47 +0,0 @@
# Introduction
This page attempts to explain the basic information you need to know to work with the QMK project. It assumes that you are familiar with navigating a Unix shell, but does not assume you are familiar with C or with compiling using make.
## Basic QMK Structure
QMK is a fork of [Jun Wako](https://github.com/tmk)'s [tmk_keyboard](https://github.com/tmk/tmk_keyboard) project. The original TMK code, with modifications, can be found in the `tmk` folder. The QMK additions to the project may be found in the `quantum` folder. Keyboard projects may be found in the `handwired` and `keyboard` folders.
### Keyboard Project Structure
Within the folder `keyboards` and its subfolder `handwired` is a directory for each keyboard project, for example `qmk_firmware/keyboards/clueboard`. Within it you'll find the following structure:
* `keymaps/`: Different keymaps that can be built
* `rules.mk`: The file that sets the default "make" options. Do not edit this file directly, instead use a keymap specific `Makefile`
* `config.h`: The file that sets the default compile time options. Do not edit this file directly, instead use a keymap specific `config.h`.
### Keymap Structure
In every keymap folder, the following files may be found. Only `keymap.c` is required, and if the rest of the files are not found the default options will be chosen.
* `config.h`: the options to configure your keymap
* `keymap.c`: all of your keymap code, required
* `rules.mk`: the features of QMK that are enabled
* `readme.md`: a description of your keymap, how others might use it, and explanations of features. Please upload images to a service like imgur.
# The `config.h` File
There are 2 `config.h` locations:
* keyboard (`/keyboards/<keyboard>/config.h`)
* keymap (`/keyboards/<keyboard>/keymaps/<keymap>/config.h`)
If the keymap `config.h` exists, that file is included by the build system and the keyboard `config.h` is not included. If you wish to override settings in your keymap's `config.h` you will need to include some glue code:
```
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
```
If you want to override a setting from the parent `config.h` file, you need to `#undef` and then `#define` the setting again, like this:
```c
#undef MY_SETTING
#define MY_SETTING 4
```

View File

@@ -1,140 +0,0 @@
# More Detailed `make` Instructions
The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`, where:
* `<keyboard_folder>` is the path of the keyboard, for example `planck`
* Use `all` to compile all keyboards
* Specify the path to compile a revision, for example `planck/rev4` or `planck/rev3`
* If the keyboard doesn't have any folders, it can be left out
* To compile the default folder, you can leave it out
* `<keymap>` is the name of the keymap, for example `algernon`
* Use `all` to compile all keymaps
* `<target>` will be explained in more detail below.
The `<target>` means the following
* If no target is given, then it's the same as `all` below
* `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck.
* `dfu`, `teensy`, `avrdude` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme.
* **Note**: some operating systems need root access for these commands to work, so in that case you need to run for example `sudo make planck/rev4:default:dfu`.
* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems.
You can also add extra options at the end of the make command line, after the target
* `make COLOR=false` - turns off color output
* `make SILENT=true` - turns off output besides errors/warnings
* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug)
* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands)
The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option.
Here are some examples commands
* `make all:all` builds everything (all keyboard folders, all keymaps). Running just `make` from the `root` will also run this.
* `make ergodox_infinity:algernon:clean` will clean the build output of the Ergodox Infinity keyboard.
* `make planck/rev4:default:dfu COLOR=false` builds and uploads the keymap without color output.
## `rules.mk` Options
Set these variables to `no` to disable them, and `yes` to enable them.
`BOOTMAGIC_ENABLE`
This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions.
Consumes about 1000 bytes.
`MOUSEKEY_ENABLE`
This gives you control over cursor movements and clicks via keycodes/custom functions.
`EXTRAKEY_ENABLE`
This allows you to use the system and audio control key codes.
`CONSOLE_ENABLE`
This allows you to print messages that can be read using [`hid_listen`](https://www.pjrc.com/teensy/hid_listen.html).
By default, all debug (*dprint*) print (*print*, *xprintf*), and user print (*uprint*) messages will be enabled. This will eat up a significant portion of the flash and may make the keyboard .hex file too big to program.
To disable debug messages (*dprint*) and reduce the .hex file size, include `#define NO_DEBUG` in your `config.h` file.
To disable print messages (*print*, *xprintf*) and user print messages (*uprint*) and reduce the .hex file size, include `#define NO_PRINT` in your `config.h` file.
To disable print messages (*print*, *xprintf*) and **KEEP** user print messages (*uprint*), include `#define USER_PRINT` in your `config.h` file.
To see the text, open `hid_listen` and enjoy looking at your printed messages.
**NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files.
Consumes about 400 bytes.
`COMMAND_ENABLE`
This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`).
`SLEEP_LED_ENABLE`
Enables your LED to breath while your computer is sleeping. Timer1 is being used here. This feature is largely unused and untested, and needs updating/abstracting.
`NKRO_ENABLE`
This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if `NKRO_ENABLE` is set. NKRO can be forced by adding `#define FORCE_NKRO` to your config.h or by binding `MAGIC_TOGGLE_NKRO` to a key and then hitting the key.
`BACKLIGHT_ENABLE`
This enables your backlight on Timer1 and ports B5, B6, or B7 (for now). You can specify your port by putting this in your `config.h`:
#define BACKLIGHT_PIN B7
`MIDI_ENABLE`
This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode `MI_ON`, and `MI_OFF` to turn it off. This is a largely untested feature, but more information can be found in the `quantum/quantum.c` file.
`UNICODE_ENABLE`
This allows you to send unicode symbols via `UC(<unicode>)` in your keymap. Only codes up to 0x7FFF are currently supported.
`UNICODEMAP_ENABLE`
This allows sending unicode symbols using `X(<unicode>)` in your keymap. Codes
up to 0xFFFFFFFF are supported, including emojis. You will need to maintain
a separate mapping table in your keymap file.
Known limitations:
- Under Mac OS, only codes up to 0xFFFF are supported.
- Under Linux ibus, only codes up to 0xFFFFF are supported (but anything important is still under this limit for now).
Characters out of range supported by the OS will be ignored.
`BLUETOOTH_ENABLE`
This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins.
`AUDIO_ENABLE`
This allows you output audio on the C6 pin (needs abstracting). See the [audio page](feature_audio.md) for more information.
`FAUXCLICKY_ENABLE`
Uses buzzer to emulate clicky switches. A cheap imitation of the Cherry blue switches. By default, uses the C6 pin, same as AUDIO_ENABLE.
`VARIABLE_TRACE`
Use this to debug changes to variable values, see the [tracing variables](unit_testing.md#tracing-variables) section of the Unit Testing page for more information.
`API_SYSEX_ENABLE`
This enables using the Quantum SYSEX API to send strings (somewhere?)
This consumes about 5390 bytes.
`KEY_LOCK_ENABLE`
This enables [key lock](feature_key_lock.md). This consumes an additional 260 bytes.
## Customizing Makefile Options on a Per-Keymap Basis
If your keymap directory has a file called `rules.mk` any options you set in that file will take precedence over other `rules.mk` options for your particular keyboard.
So let's say your keyboard's `rules.mk` has `BACKLIGHT_ENABLE = yes`. You want your particular keyboard to not have the backlight, so you make a file called `rules.mk` and specify `BACKLIGHT_ENABLE = no`.

View File

@@ -1,21 +0,0 @@
# Vagrant Quick Start
This project includes a Vagrantfile that will allow you to build a new firmware for your keyboard very easily without major changes to your primary operating system. This also ensures that when you clone the project and perform a build, you have the exact same environment as anyone else using the Vagrantfile to build. This makes it much easier for people to help you troubleshoot any issues you encounter.
## Requirements
Using the `/Vagrantfile` in this repository requires you have [Vagrant](http://www.vagrantup.com/) as well as [VirtualBox](https://www.virtualbox.org/) (or [VMware Workstation](https://www.vmware.com/products/workstation) and [Vagrant VMware plugin](http://www.vagrantup.com/vmware) but the (paid) VMware plugin requires a licensed copy of VMware Workstation/Fusion).
*COMPATIBILITY NOTICE* Certain versions of Virtualbox 5 appear to have an incompatibility with the Virtualbox extensions installed in the boxes in this Vagrantfile. If you encounter any issues with the /vagrant mount not succeeding, please upgrade your version of Virtualbox to at least 5.0.12. **Alternately, you can try running the following command:** `vagrant plugin install vagrant-vbguest`
Other than having Vagrant and Virtualbox installed and possibly a restart of your computer afterwards, you can simple run a 'vagrant up' anywhere inside the folder where you checked out this project and it will start a Linux virtual machine that contains all the tools required to build this project. There is a post Vagrant startup hint that will get you off on the right foot, otherwise you can also reference the build documentation below.
# Flashing the Firmware
The "easy" way to flash the firmware is using a tool from your host OS:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox) (recommended)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
* [Atmel FLIP](http://www.atmel.com/tools/flip.aspx)
If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version.

View File

@@ -1,441 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:ns1="http://sozi.baierouge.fr"
xmlns:cc="http://web.resource.org/cc/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
id="Layer_1"
enable-background="new 0 0 360 360"
xml:space="preserve"
viewBox="0 0 360 360"
version="1.1"
y="0px"
x="0px"
>
<g
>
</g
>
<g
>
<g
>
<path
d="m193.8 167.46l113.52-113.89c-23.457-23.36-50.2-38.727-82.193-47.23l-41.313 155.45c3.15 0.84 7.66 3.37 9.98 5.67z"
fill="#E0C3D3"
/>
<path
d="m209.95 151.26l97.367-97.688c-23.457-23.36-50.2-38.727-82.193-47.23l-35.43 133.29c7.71 1.86 14.76 5.91 20.25 11.63z"
fill="#E0A0C3"
/>
<path
d="m225.94 135.21l81.375-81.643c-23.457-23.36-50.2-38.727-82.193-47.23l-29.61 111.4c11.55 2.89 22.11 8.95 30.42 17.47z"
fill="#E080B5"
/>
<path
d="m241.95 119.15l65.369-65.585c-23.457-23.36-50.2-38.727-82.193-47.23l-23.784 89.491c15.38 3.919 29.46 12.004 40.6 23.324z"
fill="#E061A7"
/>
<path
d="m257.95 103.1l49.371-49.533c-23.457-23.36-50.2-38.727-82.193-47.23l-17.962 67.589c19.22 4.944 36.82 15.052 50.78 29.174z"
fill="#E04198"
/>
<path
d="m273.95 87.05l33.373-33.482c-23.457-23.36-50.2-38.727-82.193-47.23l-12.142 45.687c23.07 5.968 44.18 18.099 60.96 35.025z"
fill="#E0228B"
/>
<path
d="m289.94 70.999l17.375-17.431c-23.457-23.36-50.2-38.728-82.193-47.231l-6.321 23.784c26.91 6.994 51.54 21.148 71.13 40.878z"
fill="#E10071"
/>
</g
>
<g
>
<path
d="m174.73 162.13c2.934-0.792 6.094-0.876 8.876-0.292l41-155.36c-31.994-8.502-61.625-8.332-93.483 0.274l42.101 155.85c-0.01-0.02 1.13-0.37 1.5-0.47z"
fill="#FFD9D9"
/>
<path
d="m168.93 139.99c6.926-1.871 14.036-1.906 20.556-0.349l35.12-133.16c-31.994-8.502-61.625-8.332-93.483 0.274l36.127 133.73c0.95-0.27 1.19-0.36 1.67-0.49z"
fill="#FFB6B6"
/>
<path
d="m163.03 118.12c10.904-2.946 22.03-2.917 32.267-0.373l29.31-111.27c-31.994-8.502-61.625-8.332-93.483 0.274l30.218 111.86c0.96-0.27 1.19-0.36 1.68-0.49z"
fill="#FF8F8F"
/>
<path
d="m157.12 96.243c14.884-4.021 30.029-3.944 43.982-0.413l23.51-89.354c-31.994-8.502-61.625-8.332-93.483 0.274l24.304 89.968c0.96-0.268 1.2-0.344 1.69-0.475z"
fill="#FF6E6E"
/>
<path
d="m151.21 74.369c18.863-5.096 38.024-4.964 55.695-0.446l17.71-67.447c-31.994-8.502-61.625-8.332-93.483 0.274l18.395 68.094c0.96-0.267 1.2-0.344 1.69-0.475z"
fill="#FF4848"
/>
<path
d="m145.06 52.56c22.919-6.191 46.298-6.016 67.745-0.456l11.81-45.628c-31.994-8.502-61.625-8.332-93.483 0.274l12.484 46.214c0.97-0.263 1.13-0.317 1.45-0.404z"
fill="#FF2424"
/>
<path
d="m139.15 30.685c26.906-7.269 54.312-7.036 79.48-0.483l5.978-23.726c-31.994-8.502-61.625-8.332-93.483 0.274l6.575 24.34c0.97-0.262 1.13-0.318 1.45-0.405z"
fill="#FF0000"
/>
</g
>
<g
>
<path
d="m173.23 162.6l-42.1-155.85c-31.858 8.606-56.824 23.185-80.185 46.64l114.57 114.36c2.08-2.33 4.86-4.17 7.71-5.15z"
fill="#FFEBD9"
/>
<path
d="m167.25 140.48l-36.12-133.73c-31.858 8.606-56.824 23.185-80.185 46.64l98.442 98.288c4.77-5.09 11.17-9.11 17.86-11.2z"
fill="#FFD7B3"
/>
<path
d="m161.34 118.61l-30.21-111.86c-31.858 8.606-56.824 23.185-80.185 46.64l82.386 82.283c7.49-7.82 17.47-13.93 28.01-17.06z"
fill="#FFC48F"
/>
<path
d="m155.43 96.719l-24.3-89.969c-31.858 8.606-56.824 23.185-80.185 46.64l66.336 66.282c10.2-10.55 23.74-18.78 38.15-22.951z"
fill="#FFB26C"
/>
<path
d="m149.52 74.845l-18.39-68.095c-31.858 8.606-56.824 23.185-80.185 46.64l50.287 50.283c12.91-13.273 30.02-23.612 48.29-28.825z"
fill="#FF9F48"
/>
<path
d="m143.61 52.964l-12.48-46.214c-31.858 8.606-56.824 23.185-80.185 46.64l34.05 34.204c15.705-16.028 35.495-28.198 58.615-34.63z"
fill="#FF8C24"
/>
<path
d="m137.7 31.091l-6.575-24.34c-31.858 8.606-56.824 23.185-80.185 46.64l17.99 18.216c18.435-18.762 41.795-33.041 68.775-40.516z"
fill="#FF8000"
/>
</g
>
<g
>
<path
d="m166.24 167.56l-114.82-114.3c-23.36 23.457-36.884 48.514-45.386 80.507l155.98 41.453c0.85-3.15 1.92-5.35 4.23-7.66z"
fill="#FFFED9"
/>
<path
d="m149.96 151.35l-98.535-98.09c-23.36 23.457-36.884 48.514-45.386 80.507l133.85 35.573c1.8-6.74 5.26-12.94 10.07-17.99z"
fill="#FFFDB3"
/>
<path
d="m133.9 135.37l-82.475-82.11c-23.36 23.457-36.884 48.514-45.386 80.507l111.95 29.753c2.82-10.58 8.31-20.29 15.91-28.15z"
fill="#FFFC8F"
/>
<path
d="m117.84 119.37l-66.415-66.11c-23.36 23.457-36.884 48.514-45.386 80.507l90.037 23.929c3.845-14.42 11.364-27.64 21.764-38.33z"
fill="#FFFB6C"
/>
<path
d="m101.78 103.39l-50.355-50.13c-23.36 23.457-36.884 48.514-45.386 80.507l68.136 18.108c4.869-18.26 14.403-34.99 27.605-48.49z"
fill="#FFFA48"
/>
<path
d="m85.716 87.398l-34.291-34.138c-23.36 23.457-36.884 48.514-45.386 80.507l46.235 12.288c5.893-22.09 17.445-42.34 33.442-58.662z"
fill="#FFF924"
/>
<path
d="m69.657 71.411l-18.232-18.151c-23.36 23.457-36.884 48.514-45.386 80.507l24.334 6.468c6.917-25.93 20.488-49.694 39.284-68.829z"
fill="#FFFF00"
/>
</g
>
<g
>
<path
d="m162.13 185.27c-0.792-2.934-0.647-7.06-0.061-9.842l-155.89-41.15c-8.503 31.994-8.034 62.733 0.572 94.591l155.85-42.1c-0.02 0.01-0.37-1.13-0.47-1.5z"
fill="#EBFFD9"
/>
<path
d="m139.99 191.07c-1.963-7.268-1.891-14.725-0.095-21.517l-133.72-35.27c-8.503 31.994-8.034 62.733 0.572 94.591l133.73-36.127c-0.27-0.96-0.36-1.19-0.49-1.67z"
fill="#D8FFB6"
/>
<path
d="m118.12 196.98c-3.039-11.249-2.905-22.722-0.121-33.231l-111.82-29.47c-8.503 31.994-8.034 62.733 0.572 94.591l111.86-30.218c-0.27-0.96-0.36-1.19-0.49-1.67z"
fill="#C5FF92"
/>
<path
d="m96.244 202.89c-4.114-15.228-3.942-30.725-0.169-44.949l-89.897-23.66c-8.503 31.994-8.034 62.733 0.572 94.591l89.968-24.304c-0.268-0.97-0.343-1.2-0.474-1.68z"
fill="#B1FF6C"
/>
<path
d="m74.371 208.8c-5.189-19.208-4.962-38.724-0.201-56.666l-67.992-17.85c-8.503 31.994-8.034 62.733 0.572 94.591l68.094-18.395c-0.267-0.96-0.343-1.2-0.473-1.68z"
fill="#9DFF48"
/>
<path
d="m52.563 214.95c-6.285-23.265-6.011-46.996-0.205-68.714l-46.18-11.96c-8.503 31.994-8.034 62.733 0.572 94.591l46.214-12.484c-0.263-0.97-0.315-1.12-0.401-1.44z"
fill="#8AFF24"
/>
<path
d="m30.688 220.86c-7.362-27.251-7.029-55.011-0.229-80.452l-24.28-6.125c-8.503 31.994-8.034 62.733 0.572 94.591l24.34-6.575c-0.264-0.97-0.317-1.12-0.403-1.44z"
fill="#71FF00"
/>
</g
>
<g
>
<path
d="m162.6 186.77l-155.85 42.1c8.606 31.857 23.185 56.824 46.641 80.185l114.36-114.57c-2.33-2.09-4.17-4.87-5.15-7.72z"
fill="#DCFFDC"
/>
<path
d="m140.48 192.75l-133.73 36.12c8.606 31.857 23.185 56.824 46.641 80.185l98.286-98.442c-5.1-4.78-9.11-11.18-11.2-17.87z"
fill="#B6FFB6"
/>
<path
d="m118.61 198.66l-111.86 30.21c8.606 31.857 23.185 56.824 46.641 80.185l82.281-82.387c-7.82-7.49-13.93-17.47-17.06-28.01z"
fill="#92FF92"
/>
<path
d="m96.719 204.57l-89.969 24.3c8.606 31.857 23.185 56.824 46.641 80.185l66.28-66.336c-10.55-10.2-18.78-23.74-22.951-38.15z"
fill="#6EFF6E"
/>
<path
d="m74.845 210.48l-68.095 18.39c8.606 31.857 23.185 56.824 46.641 80.185l50.281-50.287c-13.274-12.92-23.614-30.02-28.825-48.29z"
fill="#4AFF4A"
/>
<path
d="m52.964 216.39l-46.214 12.48c8.606 31.857 23.185 56.824 46.641 80.185l34.202-34.049c-16.028-15.71-28.198-35.5-34.629-58.62z"
fill="#27FF27"
/>
<path
d="m31.091 222.3l-24.34 6.575c8.606 31.857 23.185 56.824 46.641 80.185l18.214-17.989c-18.763-18.43-33.043-41.79-40.515-68.77z"
fill="#00FF00"
/>
</g
>
<g
>
<path
d="m167.59 193.87l-114.31 114.78c23.455 23.359 47.388 37.112 79.381 45.616l41.606-156.55c-3.16-0.85-4.37-1.55-6.68-3.85z"
fill="#DCFFED"
/>
<path
d="m151.42 210.11l-98.14 98.54c23.455 23.359 47.388 37.112 79.381 45.616l35.721-134.41c-6.34-1.86-12.17-5.21-16.96-9.75z"
fill="#B6FFD9"
/>
<path
d="m135.43 226.16l-82.15 82.49c23.455 23.359 47.388 37.112 79.381 45.616l29.9-112.51c-10.18-2.89-19.52-8.26-27.13-15.6z"
fill="#92FFC6"
/>
<path
d="m119.43 242.22l-66.15 66.43c23.456 23.359 47.388 37.112 79.381 45.616l24.079-90.603c-14.02-3.92-26.87-11.31-37.31-21.45z"
fill="#6EFFB3"
/>
<path
d="m103.44 258.28l-50.16 50.37c23.455 23.359 47.388 37.112 79.381 45.616l18.258-68.701c-17.86-4.95-34.22-14.35-47.48-27.29z"
fill="#4AFFA0"
/>
<path
d="m87.451 274.34l-34.17 34.31c23.455 23.359 47.388 37.112 79.381 45.616l12.438-46.801c-21.69-5.97-41.58-17.4-57.649-33.13z"
fill="#27FF8D"
/>
<path
d="m71.459 290.39l-18.179 18.26c23.455 23.359 47.388 37.112 79.381 45.616l6.618-24.9c-25.53-6.99-48.93-20.44-67.821-38.98z"
fill="#00FF80"
/>
</g
>
<g
>
<path
d="m173.85 197.82l-41.812 156.61c31.993 8.501 61.11 8.47 92.969-0.136l-42.101-155.85c-2.95 0.59-6.08 0.35-9.06-0.62z"
fill="#DCFFFE"
/>
<path
d="m167.98 219.87l-35.941 134.56c31.993 8.501 61.11 8.47 92.969-0.136l-36.127-133.73c-6.82 1.57-14.22 1.29-20.9-0.69z"
fill="#B6FFFD"
/>
<path
d="m162.15 241.77l-30.107 112.65c31.993 8.501 61.11 8.47 92.969-0.136l-30.219-111.86c-10.69 2.62-22.24 2.33-32.64-0.65z"
fill="#92FFFC"
/>
<path
d="m156.32 263.68l-24.276 90.754c31.993 8.501 61.11 8.47 92.969-0.136l-24.305-89.969c-14.54 3.66-30.26 3.33-44.38-0.64z"
fill="#6EFFFB"
/>
<path
d="m150.49 285.57l-18.446 68.856c31.993 8.501 61.11 8.47 92.969-0.136l-18.396-68.095c-18.41 4.7-38.28 4.34-56.12-0.63z"
fill="#4AFFFA"
/>
<path
d="m144.7 307.61l-12.655 46.815c31.993 8.501 61.11 8.47 92.969-0.136l-12.484-46.215c-23.22 6.1-46.19 5.49-67.83-0.45z"
fill="#27FFF9"
/>
<path
d="m138.88 329.52l-6.839 24.913c31.994 8.501 61.11 8.47 92.969-0.136l-6.575-24.341c-27.08 7.13-54.2 6.49-79.56-0.43z"
fill="#00FFFF"
/>
</g
>
<g
>
<path
d="m192.47 193.82c-2.109 1.906-5.088 3.48-8.022 4.273-0.373 0.101-1.527 0.377-1.533 0.354l42.101 155.85c31.857-8.606 57.647-23.407 81.009-46.862l-113.56-113.61z"
fill="#DCEFFF"
/>
<path
d="m208.69 210.01c-4.857 4.652-11.156 8.255-18.107 10.133-0.485 0.131-0.729 0.176-1.699 0.42l36.127 133.73c31.857-8.606 57.647-23.407 81.009-46.862l-97.33-97.42z"
fill="#B6DEFF"
/>
<path
d="m224.73 226.01c-7.572 7.374-17.307 13.052-28.233 16.004-0.486 0.131-0.732 0.17-1.701 0.42l30.219 111.86c31.857-8.606 57.647-23.407 81.009-46.862l-81.3-81.42z"
fill="#92CEFF"
/>
<path
d="m240.78 242.02c-10.285 10.097-23.467 17.838-38.372 21.864-0.484 0.131-0.729 0.186-1.696 0.438l24.305 89.969c31.857-8.606 57.647-23.407 81.009-46.862l-65.25-65.41z"
fill="#6EBEFF"
/>
<path
d="m208.31 285.76c-0.485 0.132-0.731 0.185-1.698 0.439l18.396 68.095c31.857-8.606 57.647-23.407 81.009-46.862l-49.444-49.336c-13 12.81-29.38 22.56-48.27 27.66z"
fill="#4AADFF"
/>
<path
d="m213.98 307.7c-0.324 0.088-0.49 0.122-1.456 0.38l12.484 46.215c31.857-8.606 57.647-23.407 81.009-46.862l-33.533-33.371c-15.72 15.59-35.58 27.44-58.5 33.63z"
fill="#279EFF"
/>
<path
d="m219.89 329.57c-0.325 0.088-0.491 0.121-1.457 0.38l6.575 24.341c31.857-8.606 57.647-23.407 81.009-46.862l-17.47-17.385c-18.43 18.34-41.75 32.27-68.65 39.53z"
fill="#0080FF"
/>
</g
>
<g
>
<path
d="m197.71 185.73c-0.843 3.153-2.941 5.768-5.242 8.083l113.97 113.5c23.359-23.456 39.325-47.987 47.829-79.98l-156.56-41.6z"
fill="#DCDCFF"
/>
<path
d="m219.85 191.62c-2.041 6.976-5.889 13.329-11.148 18.372l97.727 97.328c23.359-23.456 39.325-47.987 47.829-79.98l-134.41-35.72z"
fill="#B6B6FF"
/>
<path
d="m241.75 197.44c-3.064 10.814-8.936 20.677-16.995 28.538l81.675 81.342c23.359-23.456 39.325-47.987 47.829-79.98l-112.52-29.9z"
fill="#9292FF"
/>
<path
d="m263.66 203.26c-4.089 14.652-11.976 28.037-22.837 38.716l65.61 65.343c23.359-23.456 39.325-47.987 47.829-79.98l-90.6-24.08z"
fill="#6E6EFF"
/>
<path
d="m285.56 209.08c-5.112 18.491-15.019 35.392-28.682 48.887l49.554 49.352c23.359-23.456 39.325-47.987 47.829-79.98l-68.7-18.26z"
fill="#4A4AFF"
/>
<path
d="m307.46 214.9c-6.137 22.329-18.063 42.745-34.525 59.06l33.496 33.358c23.359-23.456 39.325-47.987 47.829-79.98l-46.81-12.44z"
fill="#2727FF"
/>
<path
d="m329.36 220.72c-7.161 26.167-21.104 50.1-40.368 69.23l17.438 17.366c23.359-23.456 39.325-47.987 47.829-79.98l-24.9-6.62z"
fill="#0000FF"
/>
</g
>
<g
>
<path
d="m198.44 177.09c0.588 2.949 0.342 6.08-0.624 9.056l156.61 41.813c8.501-31.994 8.47-61.111-0.136-92.969l-155.85 42.1z"
fill="#ECDCFF"
/>
<path
d="m220.56 171.12c1.57 6.827 1.293 14.228-0.688 20.901l134.56 35.941c8.501-31.994 8.47-61.111-0.136-92.969l-133.73 36.13z"
fill="#D8B6FF"
/>
<path
d="m242.43 165.21c2.612 10.689 2.32 22.245-0.657 32.643l112.65 30.108c8.501-31.994 8.47-61.111-0.136-92.969l-111.85 30.22z"
fill="#C492FF"
/>
<path
d="m264.32 159.29c3.655 14.55 3.324 30.265-0.649 44.388l90.754 24.277c8.501-31.994 8.47-61.111-0.136-92.969l-89.96 24.3z"
fill="#B16EFF"
/>
<path
d="m286.2 153.38c4.699 18.412 4.345 38.281-0.625 56.128l68.855 18.446c8.501-31.994 8.47-61.111-0.136-92.969l-68.1 18.39z"
fill="#9E4AFF"
/>
<path
d="m308.08 147.47c6.088 23.216 5.471 46.185-0.464 67.83l46.814 12.655c8.501-31.994 8.47-61.111-0.136-92.969l-46.21 12.48z"
fill="#8B27FF"
/>
<path
d="m329.95 141.56c7.131 27.078 6.49 54.192-0.435 79.554l24.911 6.84c8.501-31.994 8.47-61.111-0.136-92.969l-24.34 6.58z"
fill="#8000FF"
/>
</g
>
<g
>
<path
d="m198.09 175.56c0.101 0.374 0.377 1.528 0.354 1.534l155.85-42.101c-8.606-31.858-23.408-57.649-46.862-81.009l-113.63 113.48c1.9 2.11 3.5 5.16 4.29 8.1z"
fill="#FEDCFF"
/>
<path
d="m220.14 169.42c0.131 0.486 0.176 0.729 0.42 1.699l133.73-36.126c-8.606-31.858-23.407-57.648-46.862-81.009l-97.479 97.275c4.61 4.84 8.32 11.25 10.19 18.16z"
fill="#FDB6FF"
/>
<path
d="m242.01 163.51c0.131 0.484 0.169 0.729 0.419 1.697l111.86-30.218c-8.606-31.858-23.408-57.649-46.862-81.009l-81.486 81.231c7.34 7.56 13.13 17.41 16.07 28.3z"
fill="#FC92FF"
/>
<path
d="m263.89 157.6c0.13 0.484 0.185 0.725 0.438 1.692l89.969-24.304c-8.606-31.858-23.408-57.649-46.862-81.009l-65.48 65.173c10.06 10.28 17.91 23.57 21.93 38.45z"
fill="#FB6EFF"
/>
<path
d="m285.76 151.69c0.131 0.483 0.183 0.724 0.438 1.69l68.095-18.395c-8.606-31.858-23.408-57.649-46.862-81.009l-49.482 49.121c12.79 13 22.71 29.74 27.8 48.6z"
fill="#FA4AFF"
/>
<path
d="m307.7 146.03c0.087 0.321 0.12 0.48 0.378 1.447l46.215-12.484c-8.606-31.858-23.408-57.649-46.862-81.009l-33.484 33.07c15.59 15.719 27.55 36.039 33.74 58.969z"
fill="#F927FF"
/>
<path
d="m329.58 140.12c0.086 0.321 0.118 0.48 0.377 1.446l24.341-6.575c-8.606-31.858-23.52-58.061-46.974-81.421l-17.375 17.432c18.32 18.435 32.35 42.199 39.62 69.109z"
fill="#FF00FF"
/>
</g
>
</g
>
<metadata
><rdf:RDF
><cc:Work
><dc:format
>image/svg+xml</dc:format
><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
/><cc:license
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
/><dc:publisher
><cc:Agent
rdf:about="http://openclipart.org/"
><dc:title
>Openclipart</dc:title
></cc:Agent
></dc:publisher
></cc:Work
><cc:License
rdf:about="http://creativecommons.org/licenses/publicdomain/"
><cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction"
/><cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution"
/><cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
/></cc:License
></rdf:RDF
></metadata
></svg
>

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

View File

@@ -1,331 +0,0 @@
# Quantum Hand-Wiring Guide
Parts list:
* *x* keyswitches (MX, Matias, Gateron, etc)
* *x* diodes
* Keyboard plate (metal, plastic, cardboard, etc)
* Wire (strained for wiring to the Teensy, anything for the rows/columns)
* Soldering iron set at 600ºF or 315ºC (if temperature-controlled)
* Rosin-cored solder (leaded or lead-free)
* Adequate ventilation/a fan
* Tweezers (optional)
* Wire cutters/snippers
## How the Matrix Works (Why We Need Diodes)
The microcontroller (in this case, the Teensy 2.0) will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
row0 ---(key0)---(key1) row0 ---(key0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
The `x` represents that the column/row associated has a value of 1, or is HIGH. Here, we see that no keys are being pressed, so no rows get an `x`. For one keyswitch, keep in mind that one side of the contacts is connected to its row, and the other, its column.
When we press `key0`, `col0` gets connected to `row0`, so the values that the firmware receives for that row is `0b01` (the `0b` here means that this is a bit value, meaning all of the following digits are bits - 0 or 1 - and represent the keys in that column). We'll use this notation to show when a keyswitch has been pressed, to show that the column and row are being connected:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
We can now see that `row0` has an `x`, so has the value of 1. As a whole, the data the firmware receives when `key0` is pressed is
col0: 0b01
col1: 0b00
│└row0
└row1
A problem arises when you start pressing more than one key at a time. Looking at our matrix again, it should become pretty obvious:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1)
| | | |
x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3)
Remember that this ^ is still connected to row1
The data we get from that is:
col0: 0b11
col1: 0b11
│└row0
└row1
Which isn't accurate, since we only have 3 keys pressed down, not all 4. This behavior is called ghosting, and only happens in odd scenarios like this, but can be much more common on a bigger keyboard. The way we can get around this is by placing a diode after the keyswitch, but before it connects to its row. A diode only allows current to pass through one way, which will protect our other columns/rows from being activated in the previous example. We'll represent a dioded matrix like this;
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
│ │ | │
(key0) (key1) (key0) (key1)
! │ ! │ ! | ! │
row0 ─────┴────────┘ │ row0 ─────┴────────┘ │
│ │ | │
(key2) (key3) (key2) (key3)
! ! ! !
row1 ─────┴────────┘ row1 ─────┴────────┘
In practical applications, the black line of the diode will be placed facing the row, and away from the keyswitch - the `!` in this case is the diode, where the gap represents the black line. A good way to remember this is to think of this symbol: `>|`
Now when we press the three keys, invoking what would be a ghosting scenario:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
│ │ │ │
(┌─┤0) (┌─┤1) (┌─┤0) (┌─┤1)
! │ ! │ ! │ ! │
x row0 ─────┴────────┘ │ x row0 ─────┴────────┘ │
│ │ │ │
(key2) (┌─┘3) (key2) (┌─┘3)
! ! ! !
row1 ─────┴────────┘ x row1 ─────┴────────┘
Things act as they should! Which will get us the following data:
col0: 0b01
col1: 0b11
│└row0
└row1
The firmware can then use this correct data to detect what it should do, and eventually, what signals it needs to send to the OS.
# The Actual Hand-Wiring
## Getting Things in Place
When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards.
To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns.
Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps.
Before continuing, plan out where you're going to place your Teensy. If you're working with a board that has a large (6.25u) spacebar, it may be a good idea to place it in-between switches against the plate. Otherwise, you may want to trim some of the leads on the keyswitches where you plan on putting it - this will make it a little harder to solder the wire/diodes, but give you more room to place the Teensy.
## Preparing the Diodes
It's a little easier to solder the diodes in place if you bend them at a 90º angle immediately after the black line - this will help to make sure you put them on the right way (direction matters), and in the correct position. The diodes will look like this when bent (with longer leads):
```
┌─────┬─┐
───┤ │ ├─┐
└─────┴─┘ │
```
We'll be using the long lead at the bent end to connect it to the elbow (bent part) of the next diode, creating the row.
## Soldering the Diodes
Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The straight end of the diode should be touching the left contact on the switch, and the bent end should be facing to the right and resting on the switch there, like this:
```
│o
┌┴┐ o
│ │ O
├─┤
└┬┘
└─────────────
```
Letting the diode rest, grab your solder, and touch both it and the soldering iron to the left contact at the same time - the rosin in the solder should make it easy for the solder to flow over both the diode and the keyswitch contact. The diode may move a little, and if it does, carefully position it back it place by grabbing the bent end of the diode - the other end will become hot very quickly. If you find that it's moving too much, using needle-nose pliers of some sort may help to keep the diode still when soldering.
The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face.
After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process.
When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this:
```
│o │o
┌┴┐ o ┌┴┐ o
│ │ O │ │ O
├─┤ ├─┤
└┬┘ └┬┘
└────────────────┴─────────────
```
After completing a row, use the wire cutters to trim the excess wire from the tops of the diodes, and from the right side on the final switch. This process will need to completed for each row you have.
When all of the diodes are completely soldered, it's a good idea to quickly inspect each one to ensure that your solder joints are solid and sturdy - repairing things after this is possible, but more difficult.
## Soldering the Columns
You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch.
If you're using stranded wire, it's probably easiest to just use a lot of small wires to connect each keyswitch along the column. It's possible to use one and melt through the insulation, but this isn't recommended, will produce even more harmful fumes, and can ruin your soldering iron.
Before beginning to solder, it helps to have your wire pre-bent (if using single-cored), or at least have an idea of how you're going to route the column (especially if you're making a staggered board). Where you go in particular doesn't matter too much, as we'll be basing our keymap definitions on how it was wired - just make sure every key in a particular row is in a unique column, and that they're in order from left to right.
If you're not using any insulation, you can try to keep the column wires elevated, and solder them near the tips of the keyswitch contacts - if the wires are sturdy enough, they won't short out to the row wiring an diodes.
## Wiring Things to the Teensy
Now that the matrix itself is complete, it's time to connect what you've done to the Teensy. You'll be needing the number of pins equal to your number of columns + your number of rows. There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple.
The pins you'll absolutely have to avoid are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware.
Place the Teensy where you plan to put it - you'll have to cut wires to length in the next step, and you'll want to make sure they reach.
Starting with the first column on the right side, measure out how much wire you'll need to connect it to the first pin on the Teensy - it helps to pick a side that you'll be able to work down, to keep the wires from overlapping too much. It may help to leave a little bit of slack so things aren't too tight. Cut the piece of wire, and solder it to the Teensy, and then the column - you can solder it anywhere along the column, but it may be easiest at the keyswitch. Just be sure the wire doesn't separate from the keyswitch when soldering.
As you move from column to column, it'll be helpful to write the locations of the pins down. We'll use this data to setup the matrix in the future.
When you're done with the columns, start with the rows in the same process, from top to bottom, and write them all down. Again, you can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work.
As you move along, be sure that the Teensy is staying in place - recutting and soldering the wires is a pain!
# Getting Some Basic Firmware Set Up
From here, you should have a working keyboard once you program a firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch.
To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/).
The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `<project_name>` replaced by the name of your project - it'll need to be different from any other project in the `keyboards/` folder:
```
util/new_project.sh <project_name>
```
You'll want to navigate to the `keyboards/<project_name>/` folder by typing, like the print-out from the script specifies:
cd keyboards/<project_name>
### `config.h`
The first thing you're going to want to modify is the `config.h` file. Find `MATRIX_ROWS` and `MATRIX_COLS` and change their definitions to match the dimensions of your keyboard's matrix.
Farther down are `MATRIX_ROW_PINS` and `MATRIX_COL_PINS`. Change their definitions to match how you wired up your matrix (looking from the top of the keyboard, the rows run top-to-bottom and the columns run left-to-right). Likewise, change the definition of `UNUSED_PINS` to match the pins you did not use (this will save power).
### `<project_name>.h`
The next file you'll want to look at is `<project_name>.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix.
We'll dive into how this will work with the following example. Say we have a keyboard like this:
```
┌───┬───┬───┐
│ │ │ │
├───┴─┬─┴───┤
│ │ │
└─────┴─────┘
```
This can be described by saying the top row is 3 1u keys, and the bottom row is 2 1.5u keys. The difference between the two rows is important, because the bottom row has an unused column spot (3 v 2). Let's say that this is how we wired the columns:
```
┌───┬───┬───┐
│ ┋ │ ┋ │ ┋ │
├─┋─┴─┬─┴─┋─┤
│ ┋ │ ┋ │
└─────┴─────┘
```
The middle column is unused on the bottom row in this example. Our `KEYMAP` definition would look like this:
```
#define KEYMAP( \
k00, k01, k02, \
k10, k11, \
) \
{ \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
}
```
Notice how the top half is spaced to resemble our physical layout - this helps us understand which keys are associated with which columns. The bottom half uses the keycode `KC_NO` where there is no keyswitch wired in. It's easiest to keep the bottom half aligned in a grid to help us make sense of how the firmware actually sees the wiring.
Let's say that instead, we wired our keyboard like this (a fair thing to do):
```
┌───┬───┬───┐
│ ┋ │ ┋│ ┋ │
├─┋─┴─┬┋┴───┤
│ ┋ │┋ │
└─────┴─────┘
```
This would require our `KEYMAP` definition to look like this:
```
#define KEYMAP( \
k00, k01, k02, \
k10, k11, \
) \
{ \
{ k00, k01, k02 }, \
{ k10, k11, KC_NO }, \
}
```
Notice how the `k11` and `KC_NO` switched places to represent the wiring, and the unused final column on the bottom row. Sometimes it'll make more sense to put a keyswitch on a particular column, but in the end, it won't matter, as long as all of them are accounted for. You can use this process to write out the `KEYMAP` for your entire keyboard - be sure to remember that your keyboard is actually backwards when looking at the underside of it.
### `keymaps/<variant>/default.c`
This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make handwired/<keyboard>:<variant>`, which will pull `keymaps/<variant>/keymap.c`.
The basis of a keymap is its layers - by default, layer 0 is active. You can activate other layers, the highest of which will be referenced first. Let's start with our base layer.
Using our previous example, let's say we want to create the following layout:
```
┌───┬───┬───┐
│ A │ 1 │ H │
├───┴─┬─┴───┤
│ TAB │ SPC │
└─────┴─────┘
```
This can be accomplished by using the following `keymaps` definition:
```
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP( /* Base */
KC_A, KC_1, KC_H, \
KC_TAB, KC_SPC \
),
};
```
Note that the layout of the keycodes is similar to the physical layout of our keyboard - this make it much easier to see what's going on. A lot of the keycodes should be fairly obvious, but for a full list of them, check out [Keycodes](keycodes.md) - there are also a lot of aliases to condense your keymap file.
It's also important to use the `KEYMAP` function we defined earlier - this is what allows the firmware to associate our intended readable keymap with the actual wiring.
## Compiling Your Firmware
After you've written out your entire keymap, you're ready to get the firmware compiled and onto your Teensy. Before compiling, you'll need to get your [development environment set-up](getting_started_build_tools.md) - you can skip the dfu-programmer instructions, but you'll need to download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) to get the firmware on your Teensy.
Once everything is installed, running `make` in the terminal should get you some output, and eventually a `<project_name>.hex` file in that folder. If you're having trouble with this step, see the end of the guide for the trouble-shooting section.
Once you have your `<project_name>.hex` file, open up the Teensy loader application, and click the file icon. From here, navigate to your `QMK/keyboards/<project_name>/` folder, and select the `<project_name>.hex` file. Plug in your keyboard and press the button on the Teensy - you should see the LED on the device turn off once you do. The Teensy Loader app will change a little, and the buttons should be clickable - click the download button (down arrow), and then the reset button (right arrow), and your keyboard should be ready to go!
## Testing Your Firmware
Carefully flip your keyboard over, open up a new text document, and try typing - you should get the characters that you put into your keymap. Test each key, and note the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys:
0. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced.
1. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough.
2. Check the solder joints on the diode - if the diode is loose, part of your row may register, while the other may not.
3. Check the solder joints on the columns - if your column wiring is loose, part or all of the column may not work.
4. Check the solder joints on both sides of the wires going to/from the Teensy - the wires need to be fully soldered and connect to both sides.
5. Check the <project_name>.h file for errors and incorrectly placed `KC_NO`s - if you're unsure where they should be, instead duplicate a k*xy* variable.
6. Check to make sure you actually compiled the firmware and flashed the Teensy correctly. Unless you got error messages in the terminal, or a pop-up during flashing, you probably did everything correctly.
If you've done all of these things, keep in mind that sometimes you might have had multiple things affecting the keyswitch, so it doesn't hurt to test the keyswitch by shorting it out at the end.
# Securing the Teensy, Finishing Your Hardware, Getting Fancier Firmware
Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out.
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](http://docs.qmk.fm) for a full feature list, and dive into the different project (Planck, Clueboard, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb)

View File

@@ -1,8 +0,0 @@
# Hardware
QMK runs on a variety of hardware. If your processor can be targeted by [LUFA](http://www.fourwalledcubicle.com/LUFA.php) or [ChibiOS](http://www.chibios.com) you can probably get QMK running on it. This section explores getting QMK running on, and communicating with, hardware of all kinds.
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [AVR Processors](hardware_avr.md)
* ARM Processors (TBD)
* [Drivers](hardware_drivers.md)

View File

@@ -1,155 +0,0 @@
# Keyboards with AVR Processors
This page describes the support for for AVR processors in QMK. AVR processors include the atmega32u4, atmega32u2, at90usb1286, and other processors from Atmel Corporation. AVR processors are 8-bit MCU's that are designed to be easy to work with. The most common AVR processors in keyboards have on-board USB and plenty of GPIO for supporting large keyboard matrices. They are the most popular MCU for use in keyboards today.
If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines.md) to get a sense of how keyboards fit into QMK.
## Adding Your AVR Keyboard to QMK
QMK has a number of features to simplify working with AVR keyboards. For most keyboards you don't have to write a single line of code. To get started run the `util/new_project.sh` script:
```
$ util/new_project.sh my_awesome_keyboard
######################################################
# /keyboards/my_awesome_keyboard project created. To start
# working on things, cd into keyboards/my_awesome_keyboard
######################################################
```
This will create all the files needed to support your new keyboard, and populate the settings with default values. Now you just need to customize it for your keyboard.
## `readme.md`
This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](http://imgur.com) to host the images.
## `<keyboard>.c`
This is where all the custom logic for your keyboard goes. Many keyboards do not need to put anything at all in here. You can learn more about writing custom logic in [Custom Quantum Functions](custom_quantum_functions.md).
## `<keyboard>.h`
This is the file you define your [Layout Macro(s)](feature_layouts.md) in. At minimum you should have a `#define LAYOUT` for your keyboard that looks something like this:
```
#define LAYOUT( \
k00, k01, k02, \
k10, k11 \
) { \
{ k00, k01, k02 }, \
{ k10, KC_NO, k11 }, \
}
```
The first half of the `LAYOUT` pre-processor macro defines the physical arrangement of keys. The second half of the macro defines the matrix the switches are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix.
Each of the `k__` variables needs to be unique, and typically they follow the format `k<row><col>`.
The physical matrix (the second half) must have a number of rows equaling `MATRIX_ROWS`, and each row must have exactly `MATRIX_COLS` elements in it. If you do not have this many physical keys you can use `KC_NO` to fill in the blank spots.
## `config.h`
The `config.h` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list there. For a complete overview of available options see the [Config Options](config_options.md) page.
### Hardware Configuration
At the top of the `config.h` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `VENDOR_ID` as `0xFEED`. For the `PRODUCT_ID` you should pick a number that is not yet in use.
Do change the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` lines to accurately reflect your keyboard.
```
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER You
#define PRODUCT my_awesome_keyboard
#define DESCRIPTION A custom keyboard
```
?> Note: On Windows and macOS the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` fields will be displayed in the list of USB devices. On Linux these values will not be visible in `lsusb`, since Linux takes that information from the list published by the USB-IF.
### Keyboard Matrix Configuration
The next section of the `config.h` file deals with your keyboard's matrix. The first thing you should set is the matrix's size. This is usually, but not always, the same number of rows and columns as the physical key arrangement.
```
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
```
Once you've defined the size of your matrix you need to define which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins:
```
#define MATRIX_ROW_PINS { D0, D5 }
#define MATRIX_COL_PINS { F1, F0, B0 }
#define UNUSED_PINS
```
The number of `MATRIX_ROW_PINS` entries must be the same as the number you assigned to `MATRIX_ROWS`, and likewise for `MATRIX_COL_PINS` and `MATRIX_COLS`. You do not have to specify `UNUSED_PINS`, but you can if you want to document what pins are open.
Finally, you can specify the direction your diodes point. This can be `COL2ROW`, `ROW2COL`, or `CUSTOM_MATRIX`.
```
#define DIODE_DIRECTION COL2ROW
```
### Backlight Configuration
By default QMK supports backlighting on pins `B5`, `B6`, and `B7`. If you are using one of those you can simply enable it here. For more details see the [Backlight Documentation](feature_backlight.md).
```
#define BACKLIGHT_PIN B7
#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 6
```
{% hint style='info' %}
You can use backlighting on any pin you like, but you will have to do more work to support that. See the [Backlight Documentation](feature_backlight.md) for more details.
{% endhint %}
### Other Configuration Options
There are a lot of features that can be configured or tuned in `config.h`. You should see the [Config Options](config_options.md) page for more details.
## `rules.mk`
You use the `rules.mk` file to tell QMK what files to build and what features to enable. If you are building around an atmega32u4 you can largely leave these defaults alone. If you are using another MCU you may have to tweak some parameters.
### MCU Options
These options tell the build system what CPU to build for. Be very careful if you change any of these settings, you can render your keyboard inoperable.
```
MCU = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
```
### Bootloader Size
The bootloader is a special section of your MCU that allows you to upgrade the code stored on the MCU. Think of it like a Rescue Partition for your keyboard. If you are using a teensy 2.0, or a device like the Ergodox EZ that uses the teensy bootloader you should set this to `512`. Most other bootloaders should be set to `4096`, but `1024` and `2048` are other possible values you may encounter.
#### Teensy 2.0 Bootloader Example
```
OPT_DEFS += -DBOOTLOADER_SIZE=512
```
#### Teensy 2.0++ Bootloader Example
```
OPT_DEFS += -DBOOTLOADER_SIZE=1024
```
#### Atmel DFU Loader Example
```
OPT_DEFS += -DBOOTLOADER_SIZE=4096
```
### Build Options
There are a number of features that can be turned on or off in `rules.mk`. See the [Config Options](config_options.md#feature-options) page for a detailed list and description.

View File

@@ -1,27 +0,0 @@
# QMK Hardware Drivers
QMK is used on a lot of different hardware. While support for the most common MCU's and matrix configurations is built-in there are a number of drivers that can be added to a keyboard to support additional hardware. Examples include mice and other pointing devices, i/o expanders for split keyboards, bluetooth modules, and LCD, OLED, and TFT screens.
<!-- FIXME: This should talk about how drivers are integrated into QMK and how you can add your own driver.
# Driver System Overview
-->
# Available Drivers
## ProMicro (AVR Only)
Support for addressing pins on the ProMicro by their Arduino name rather than their AVR name. This needs to be better documented, if you are trying to do this and reading the code doesn't help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) and we can help you through the process.
## SSD1306 (AVR Only)
Support for SSD1306 based OLED displays. This needs to be better documented, if you are trying to do this and reading the code doesn't help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) and we can help you through the process.
## uGFX
You can make use of uGFX within QMK to drive character and graphic LCD's, LED arrays, OLED, TFT, and other display technologies. This needs to be better documented, if you are trying to do this and reading the code doesn't help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) and we can help you through the process.
## WS2812 (AVR Only)
Support for WS2811/WS2812{a,b,c} LED's. For more information see the [RGB Light](feature_rgblight.md) page.

View File

@@ -1,136 +0,0 @@
# QMK Keyboard Guidelines
We welcome all keyboard projects into QMK, but ask that you try to stick to a couple guidelines that help us keep things organised and consistent.
## Naming Your Keyboard/Project
All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Your directory and your `.h` and `.c` files should have exactly the same name. All folders should follow the same format. `test`, `keyboard`, and `all` are reserved by make and are not a valid name for a keyboard.
## `readme.md`
All projects need to have a `readme.md` file that explains what the keyboard is, who made it, where it is available, and links to more information. Please follow the [published template](documentation_templates.md#keyboard-readmemd-template).
## Image/Hardware Files
In an effort to keep the repo size down, we're no longer accepting images of any format in the repo, with few exceptions. Hosting them elsewhere (imgur) and linking them in the `readme.md` is the preferred method.
Any sort of hardware file (plate, case, pcb) can't be stored in qmk_firmware, but we have the [qmk.fm repo](https://github.com/qmk/qmk.fm) where such files (as well as in-depth info) can be stored and viewed on [qmk.fm](http://qmk.fm). Downloadable files are stored in `/<keyboard>/` (name follows the same format as above) which are served at `http://qmk.fm/<keyboard>/`, and pages are generated from `/_pages/<keyboard>/` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` directory for an example.
## Keyboard Defaults
Given the amount of functionality that QMK exposes it's very easy to confuse new users. When putting together the default firmware for your keyboard we recommend limiting your enabled features and options to the minimal set needed to support your hardware. Recommendations for specific features follow.
### Bootmagic and Command
[Bootmagic](feature_bootmagic.md) and [Command](feature_command.md) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board.
By far the most common problem new users encounter is accidentally triggering Bootmagic while they're plugging in their keyboard. They're holding the keyboard by the bottom, unknowingly pressing in alt and spacebar, and then they find that these keys have been swapped on them. We recommend leaving this feature disabled by default, but if you do turn it on consider setting `BOOTMAGIC_KEY_SALT` to a key that is hard to press while plugging your keyboard in.
If your keyboard does not have 2 shift keys you should provide a working default for `IS_COMMAND`, even when you have set `COMMAND_ENABLE = no`. This will give your users a default to conform to if they do enable Command.
## Custom Keyboard Programming
As documented on [Customizing Functionality](custom_quantum_functions.md) you can define custom functions for your keyboard. Please keep in mind that your users may want to customize that behavior as well, and make it possible for them to do that. If you are providing a custom function, for example `process_record_kb()`, make sure that your function calls the `_user()` version of the call too. You should also take into account the return value of the `_user()` version, and only run your custom code if the user returns `true`.
## Keyboard Metadata
As QMK grows so does the ecosystem surrounding QMK. To make it easier for projects in that ecosystem to tie into QMK as we make changes we are developing a metadata system to expose information about keyboards in QMK.
You can create `info.json` files at every level under `qmk_firmware/keyboards/<name>` to specify this metadata. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%.
### `info.json` Format
The `info.json` file is a JSON formatted dictionary with the following keys available to be set. You do not have to set all of them, merely the keys that apply to your keyboard.
* `keyboard_name`
* A free-form text string describing the keyboard.
* Example: `Clueboard 66%`
* `url`
* A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard.
* `maintainer`
* GitHub username of the maintainer, or `qmk` for community maintained boards
* `width`
* Width of the board in Key Units
* `height`
* Height of the board in Key Units
* `layouts`
* Physical Layout representations. See the next section for more detail.
#### Layout Format
Within our `info.json` file the `layouts` portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout macros, for example `LAYOUT_ansi` or `LAYOUT_iso`. Within each layout macro are keys for `width`, `height`, and `key_count`, each of which should be self-explanatory.
* `width`
* Optional: The width of the layout in Key Units
* `height`
* Optional: The height of the layout in Key Units
* `key_count`
* **Required**: The number of keys in this layout
* `layout`
* A list of Key Dictionaries describing the physical layout. See the next section for more details.
#### Key Dictionary Format
Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for <http://keyboard-layout-editor.com> you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it.
All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key.
* `X`
* **Required**: The absolute position of the key in the horizontal axis, in Key Units.
* `Y`
* **Required**: The absolute position of the key in the vertical axis, in Key Units.
* `W`
* The width of the key, in Key Units. Ignored if `ks` is provided. Default: `1`
* `H`
* The height of the key, in Key Units. Ignored if `ks` is provided. Default: `1`
* `R`
* How many degrees clockwise to rotate the key.
* `RX`
* The absolute position of the point to rotate the key around in the horizontal axis. Default: `x`
* `RY`
* The absolute position of the point to rotate the key around in the vertical axis. Default: `y`
* `KS`
* Key Shape: define a polygon by providing a list of points, in Key Units.
* **Important**: These are relative to the top-left of the key, not absolute.
* Example ISO Enter: `[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]`
### How is the Metadata Exposed?
This metadata is primarily used in two ways:
* To allow web-based configurators to dynamically generate UI
* To support the new `make keyboard:keymap:qmk` target, which bundles this metadata up with the firmware to allow QMK Toolbox to be smarter.
Configurator authors can see the [QMK Compiler](https://docs.compile.qmk.fm/api_docs.html) docs for more information on using the JSON API.
## Non-Production/Handwired Projects
We're happy to accept any project that uses QMK, including prototypes and handwired ones, but we have a separate `/keyboards/handwired/` folder for them, so the main `/keyboards/` folder doesn't get overcrowded. If a prototype project becomes a production project at some point in the future, we'd be happy to move it to the main `/keyboards/` folder!
## Warnings as Errors
When developing your keyboard, keep in mind that all warnings will be treated as errors - these small warnings can build-up and cause larger errors down the road (and keeping them is generally a bad practice).
## Copyright Blurb
If you're adapting your keyboard's setup from another project, but not using the same code, but sure to update the copyright header at the top of the files to show your name, in this format:
Copyright 2017 Your Name <your@email.com>
If you are modifying someone else's code and have made only trivial changes you should leave their name in the copyright statement. If you have done significant work on the file you should add your name to theirs, like so:
Copyright 2017 Their Name <original_author@example.com> Your Name <you@example.com>
The year should be the first year the file is created. If work was done to that file in later years you can reflect that by appending the second year to the first, like so:
Copyright 2015-2017 Your Name <you@example.com>
## License
The core of QMK is licensed under the [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). If you are shipping binaries for AVR processors you may choose either [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or [GPLv3](https://www.gnu.org/licenses/gpl.html). If you are shipping binaries for ARM processors you must choose [GPL Version 3](https://www.gnu.org/licenses/gpl.html) to comply with the [ChibiOS](http://www.chibios.org) GPLv3 license.
If your keyboard makes use of the [uGFX](https://ugfx.io) features within QMK you must comply with the [uGFX License](https://ugfx.io/license.html), which requires a separate commercial license before selling a device containing uGFX.
## Technical Details
If you're looking for more information on making your keyboard work with QMK, [check out the hardware section](hardware.md)!

View File

@@ -1,72 +0,0 @@
# How Keys Are Registered, and Interpreted by Computers
In this file, you can will learn the concepts of how keyboards work over USB,
and you'll be able to better understand what you can expect from changing your
firmware directly.
## Schematic View
Whenever you type on 1 particular key, here is the chain of actions taking
place:
``` text
+------+ +-----+ +----------+ +----------+ +----+
| User |-------->| Key |------>| Firmware |----->| USB wire |---->| OS |
+------+ +-----+ +----------+ +----------+ |----+
```
This scheme is a very simple view of what's going on, and more details follow
in the next sections.
## 1. You Press a Key
Whenever you press a key, the firmware of your keyboard can register this event.
It can register when the key is pressed, held and released.
This usually happens with a periodic scan of key presses. This speed often is limited by the mechanical key response time, the protocol to transfer those key presses (here USB HID), and by the software it is used in.
## 2. What the Firmware Sends
The [HID specification](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) tells what a keyboard can actually send through USB to have a chance to be properly recognised. This includes a pre-defined list of scancodes which are simple numbers from `0x00` to `0xE7`. The firmware assigns a scancode to each key of the keyboard.
The firmware does not send actually letters or characters, but only scancodes.
Thus, by modifying the firmware, you only can modify what scancode is sent over
USB for a given key.
## 3. What the Operating System Does
Once the keycode reaches the operating system, a piece of software has to have
it match an actual character thanks to a keyboard layout. For example, if your
layout is set to QWERTY, a sample of the matching table is as follow:
| keycode | character |
|---------|-----------|
| 0x04 | a/A |
| 0x05 | b/B |
| 0x06 | c/C |
| ... | ... |
| 0x1C | y/Y |
| 0x1D | z/Z |
| ... | ... |
## Back to the Firmware
As the layout is generally fixed (unless you create your own), the firmware can actually call a keycode by its layout name directly to ease things for you. This is exactly what is done here with `KC_A` actually representing `0x04` in QWERTY. The full list can be found in [keycodes](keycodes.md).
## List of Characters You Can Send
Putting aside shortcuts, having a limited set of keycodes mapped to a limited layout means that **the list of characters you can assign to a given key only is the ones present in the layout**.
For example, this means that if you have a QWERTY US layout, and you want to assign 1 key to produce `€` (euro currency symbol), you are unable to do so, because the QWERTY US layout does not have such mapping. You could fix that by using a QWERTY UK layout, or a QWERTY US International.
You may wonder why a keyboard layout containing all of Unicode is not devised then? The limited number of keycode available through USB simply disallow such a thing.
## How to (Maybe) Enter Unicode Characters
You can have the firmware send *sequences of keys* to use the [software Unicode Input Method](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input) of the target operating system, thus effectively entering characters independently of the layout defined in the OS.
Yet, it does come with multiple disadvantages:
- Tied to a specific OS a a time (need recompilation when changing OS);
- Within a given OS, does not work in all software;
- Limited to a subset of Unicode on some systems.

View File

@@ -1,46 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QMK Firmware</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css" title="light">
<link rel="stylesheet" href="qmk.css" title="dark" disabled>
<link rel="stylesheet" href="sidebar.css" />
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: 'QMK Firmware',
nameLink: 'https://qmk.fm/',
repo: 'qmk/qmk_firmware',
loadSidebar: true,
auto2top: true,
formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}',
search: {
paths: 'auto',
placeholder: 'Search Documentation...',
noData: 'We could not find any documents matching your search.',
depth: 6
}
}
</script>
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/emoji.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-bash.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-c.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-cpp.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-json.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-makefile.min.js"></script>
<script>
// Register the offline cache worker
if (typeof navigator.serviceWorker !== 'undefined') {
navigator.serviceWorker.register('sw.js')
}
</script>
</body>
</html>

View File

@@ -1,78 +0,0 @@
# group `defines` {#group__defines}
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) |
`define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) |
`define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) |
`define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) |
`define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) |
`define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) |
`define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) |
`define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) |
`define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) |
`define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) |
`define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) |
`define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) |
`define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) |
`define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) |
`define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) |
`define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) |
`define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) |
`define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) |
`define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) |
`define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) |
`define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) |
`define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) |
`define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) |
## Members
#### `define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) {#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79}
#### `define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) {#group__defines_1ga753706d1d28e6f96d7caf1973e80feed}
#### `define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) {#group__defines_1gab78a1c818a5f5dab7a8946543f126c69}
#### `define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) {#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909}
#### `define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) {#group__defines_1ga45f116a1daab76b3c930c2cecfaef215}
#### `define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) {#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7}
#### `define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) {#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc}
#### `define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) {#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f}
#### `define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) {#group__defines_1gabcc799504e8064679bca03f232223af4}
#### `define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) {#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42}
#### `define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) {#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe}
#### `define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) {#group__defines_1gafa5e4e295aafd15ab7893344599b3b89}
#### `define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) {#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7}
#### `define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) {#group__defines_1ga8233631c85823aa546f932ad8975caa4}
#### `define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) {#group__defines_1gab24430f0081e27215b0da84dd0ee745c}
#### `define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) {#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62}
#### `define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) {#group__defines_1gacd88ed42dba52bb4b2052c5656362677}
#### `define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) {#group__defines_1ga02947f30ca62dc332fdeb10c5868323b}
#### `define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) {#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31}
#### `define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) {#group__defines_1ga412f6ed33a2150051374bee334ee1705}
#### `define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) {#group__defines_1gafcab254838b028365ae0259729e72c4e}
#### `define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) {#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795}
#### `define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) {#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f}

View File

@@ -1,169 +0,0 @@
# group `input_callback_reg` {#group__input__callback__reg}
These are the functions you use to register your input callbacks.
The functions are called when the appropriate midi message is matched on the associated device's input.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a control change message (cc) callback.
`public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a note on callback.
`public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a note off callback.
`public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register an after touch callback.
`public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a pitch bend callback.
`public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a song position callback.
`public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a program change callback.
`public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a channel pressure callback.
`public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a song select callback.
`public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a tc quarter frame callback.
`public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` | Register a realtime callback.
`public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` | Register a tune request callback.
`public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_sysex_func_t func)` | Register a sysex callback.
`public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` | Register fall through callback.
`public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` | Register a catch all callback.
## Members
#### `public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718}
Register a control change message (cc) callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga3962f276c17618923f1152779552103e}
Register a note on callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d}
Register a note off callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f}
Register an after touch callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48}
Register a pitch bend callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6}
Register a song position callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127}
Register a program change callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5}
Register a channel pressure callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72}
Register a song select callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e}
Register a tc quarter frame callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` {#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a}
Register a realtime callback.
The callback will be called for all of the real time message types.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` {#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1}
Register a tune request callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_sysex_func_t func)` {#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48}
Register a sysex callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` {#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94}
Register fall through callback.
This is only called if a more specific callback is not matched and called. For instance, if you don't register a note on callback but you get a note on message the fall through callback will be called, if it is registered.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` {#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99}
Register a catch all callback.
If registered, the catch all callback is called for every message that is matched, even if a more specific or the fallthrough callback is registered.
#### Parameters
* `device` the device associate with
* `func` the callback function to register

View File

@@ -1,143 +0,0 @@
# group `midi_device` {#group__midi__device}
You use the functions when you are implementing your own midi device.
You set a send function to actually send bytes via your device, this method is called when you call a send function with this device, for instance midi_send_cc
You use the midi_device_input to process input data from the device and pass it through the device's associated callbacks.
You use the midi_device_set_pre_input_process_func if you want to have a function called at the beginning of the device's process function, generally to poll for input and pass that into midi_device_input
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) |
`enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) |
`public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` | Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input.
`public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` | Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking.
`public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` | Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device.
`struct `[`_midi_device`](docs/api_midi_device.md#struct__midi__device) | This structure represents the input and output functions and processing data for a midi device.
## Members
#### `define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) {#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8}
#### `enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) {#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621}
Values | Descriptions
--------------------------------|---------------------------------------------
IDLE |
ONE_BYTE_MESSAGE |
TWO_BYTE_MESSAGE |
THREE_BYTE_MESSAGE |
SYSEX_MESSAGE |
#### `public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` {#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db}
Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input.
#### Parameters
* `device` the midi device to associate the input with
* `cnt` the number of bytes you are processing
* `input` the bytes to process
#### `public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` {#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673}
Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking.
#### Parameters
* `device` the midi device to associate this callback with
* `send_func` the callback function that will do the sending
#### `public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` {#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69}
Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device.
#### Parameters
* `device` the midi device to associate this callback with
* `midi_no_byte_func_t` the actual callback function
# struct `_midi_device` {#struct__midi__device}
This structure represents the input and output functions and processing data for a midi device.
A device can represent an actual physical device [serial port, usb port] or something virtual. You should not need to modify this structure directly.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) |
`public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) |
`public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) |
`public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) |
`public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) |
`public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) |
`public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) |
`public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) |
`public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) |
`public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) |
`public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) |
`public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) |
`public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) |
`public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) |
`public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) |
`public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) |
`public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) |
`public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) |
`public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) |
`public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) |
`public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) |
`public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) |
## Members
#### `public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) {#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9}
#### `public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) {#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1}
#### `public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) {#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c}
#### `public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) {#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84}
#### `public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) {#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f}
#### `public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) {#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18}
#### `public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) {#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586}
#### `public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) {#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da}
#### `public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) {#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7}
#### `public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) {#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f}
#### `public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) {#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0}
#### `public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) {#struct__midi__device_1a9448eba4afb7e43650434748db3777be}
#### `public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) {#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d}
#### `public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) {#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2}
#### `public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) {#struct__midi__device_1abb974ec6d734001b4a0e370f292be503}
#### `public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) {#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8}
#### `public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) {#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754}
#### `public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) {#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a}
#### `public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) {#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39}
#### `public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) {#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d}
#### `public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) {#struct__midi__device_1ada41de021135dc423abedcbb30f366ff}
#### `public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) {#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f}

View File

@@ -1,31 +0,0 @@
# group `midi_device_setup_process` {#group__midi__device__setup__process}
These are method that you must use to initialize and run a device.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Initialize a device.
`public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Process input data.
## Members
#### `public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9}
Initialize a device.
You must call this before using the device in question.
#### Parameters
* `device` the device to initialize
#### `public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b}
Process input data.
This method drives the input processing, you must call this method frequently if you expect to have your input callbacks called.
#### Parameters
* `device` the device to process

View File

@@ -1,54 +0,0 @@
# group `midi_util` {#group__midi__util}
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) | An enumeration of the possible packet length values.
`public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` | Test to see if the byte given is a status byte.
`public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` | Test to see if the byte given is a realtime message.
`public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` | Find the length of the packet associated with the status byte given.
## Members
#### `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) {#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e}
Values | Descriptions
--------------------------------|---------------------------------------------
UNDEFINED |
ONE |
TWO |
THREE |
An enumeration of the possible packet length values.
#### `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` {#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5}
Test to see if the byte given is a status byte.
#### Parameters
* `theByte` the byte to test
#### Returns
true if the byte given is a midi status byte
#### `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` {#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7}
Test to see if the byte given is a realtime message.
#### Parameters
* `theByte` the byte to test
#### Returns
true if it is a realtime message, false otherwise
#### `public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` {#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175}
Find the length of the packet associated with the status byte given.
#### Parameters
* `status` the status byte
#### Returns
the length of the packet, will return UNDEFINED if the byte is not a status byte or if it is a sysex status byte

View File

@@ -1,241 +0,0 @@
# group `send_functions` {#group__send__functions}
These are the functions you use to send midi data through a device.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` | Send a control change message (cc) via the given device.
`public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | Send a note on message via the given device.
`public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | Send a note off message via the given device.
`public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` | Send an after touch message via the given device.
`public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` | Send a pitch bend message via the given device.
`public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` | Send a program change message via the given device.
`public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` | Send a channel pressure message via the given device.
`public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a clock message via the given device.
`public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a tick message via the given device.
`public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a start message via the given device.
`public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a continue message via the given device.
`public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a stop message via the given device.
`public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send an active sense message via the given device.
`public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a reset message via the given device.
`public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` | Send a tc quarter frame message via the given device.
`public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` | Send a song position message via the given device.
`public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` | Send a song select message via the given device.
`public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` | Send a tune request message via the given device.
`public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` | Send a byte via the given device.
`public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` | Send up to 3 bytes of data.
`public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` | Send an array of formatted midi data.
## Members
#### `public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` {#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960}
Send a control change message (cc) via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the cc num
* `val` the value of that cc num
#### `public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775}
Send a note on message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the note number
* `vel` the note velocity
#### `public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49}
Send a note off message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the note number
* `vel` the note velocity
#### `public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` {#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f}
Send an after touch message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `note_num` the note number
* `amt` the after touch amount
#### `public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` {#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491}
Send a pitch bend message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `amt` the bend amount range: -8192..8191, 0 means no bend
#### `public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` {#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86}
Send a program change message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the program to change to
#### `public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` {#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b}
Send a channel pressure message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `amt` the amount of channel pressure
#### `public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa}
Send a clock message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga2b43c7d433d940c5b907595aac947972}
Send a tick message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc}
Send a start message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120}
Send a continue message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988}
Send a stop message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37}
Send an active sense message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b}
Send a reset message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` {#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a}
Send a tc quarter frame message via the given device.
#### Parameters
* `device` the device to use for sending
* `time` the time of this quarter frame, range 0..16383
#### `public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` {#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f}
Send a song position message via the given device.
#### Parameters
* `device` the device to use for sending
* `pos` the song position
#### `public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` {#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50}
Send a song select message via the given device.
#### Parameters
* `device` the device to use for sending
* `song` the song to select
#### `public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656}
Send a tune request message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` {#group__send__functions_1ga857e85eb90b288385642d4d991e09881}
Send a byte via the given device.
This is a generic method for sending data via the given midi device. This would be useful for sending sysex data or messages that are not implemented in this API, if there are any. Please contact the author if you find some so we can add them.
#### Parameters
* `device` the device to use for sending
* `b` the byte to send
#### `public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` {#group__send__functions_1ga36e2f2e45369d911b76969361679054b}
Send up to 3 bytes of data.
% 4 is applied to count so that you can use this to pass sysex through
#### Parameters
* `device` the device to use for sending
* `count` the count of bytes to send, %4 is applied
* `byte0` the first byte
* `byte1` the second byte, ignored if cnt % 4 != 2
* `byte2` the third byte, ignored if cnt % 4 != 3
#### `public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` {#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead}
Send an array of formatted midi data.
Can be used for sysex.
#### Parameters
* `device` the device to use for sending
* `count` the count of bytes to send
* `array` the array of bytes

View File

@@ -1,61 +0,0 @@
# group `sysex_tools` {#group__sysex__tools}
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` | Compute the length of a message after it is encoded.
`public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` | Compute the length of a message after it is decoded.
`public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` | Encode data so that it can be transmitted safely in a sysex message.
`public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` | Decode encoded data.
## Members
#### `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` {#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a}
Compute the length of a message after it is encoded.
#### Parameters
* `decoded_length` The length, in bytes, of the message to encode.
#### Returns
The length, in bytes, of the message after encodeing.
#### `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` {#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0}
Compute the length of a message after it is decoded.
#### Parameters
* `encoded_length` The length, in bytes, of the encoded message.
#### Returns
The length, in bytes, of the message after it is decoded.
#### `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742}
Encode data so that it can be transmitted safely in a sysex message.
#### Parameters
* `encoded` The output data buffer, must be at least sysex_encoded_length(length) bytes long.
* `source` The input buffer of data to be encoded.
* `length` The number of bytes from the input buffer to encode.
#### Returns
number of bytes encoded.
#### `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229}
Decode encoded data.
#### Parameters
* `decoded` The output data buffer, must be at least sysex_decoded_length(length) bytes long.
* `source` The input buffer of data to be decoded.
* `length` The number of bytes from the input buffer to decode.
#### Returns
number of bytes decoded.

View File

@@ -1,106 +0,0 @@
# ISP Flashing Guide
If you're having trouble flashing/erasing your board, and running into cryptic error messages like any of the following:
libusb: warning [darwin_transfer_status] transfer error: timed out
dfu.c:844: -ETIMEDOUT: Transfer timed out, NAK 0xffffffc4 (-60)
atmel.c:1627: atmel_flash: flash data dfu_download failed.
atmel.c:1629: Expected message length of 1072, got -60.
atmel.c:1434: Error flashing the block: err -2.
ERROR
Memory write error, use debug for more info.
commands.c:360: Error writing memory data. (err -4)
dfu.c:844: -EPIPE: a) Babble detect or b) Endpoint stalled 0xffffffe0 (-32)
Device is write protected.
dfu.c:252: dfu_clear_status( 0x7fff4fc2ea80 )
atmel.c:1434: Error flashing the block: err -2.
ERROR
Memory write error, use debug for more info.
commands.c:360: Error writing memory data. (err -4)
You're likely going to need to ISP flash your board/device to get it working again. Luckily, this process is pretty straight-forward, provided you have any extra programmable keyboard, Arduino, or Teensy 2.0/Teensy 2.0++. There are also dedicated ISP flashers available for this, but most cost >$15, and it's assumed that if you are googling this error, this is the first you've heard about ISP flashing, and don't have one readily available (whereas you might have some other AVR board). __We'll be using a Teensy 2.0 with Windows 10 in this guide__ - if you are comfortable doing this on another system, please consider editing this guide and contributing those instructions!
## Software Needed
* [The Arduino IDE](https://www.arduino.cc/en/Main/Software)
* [Teensyduino](https://www.pjrc.com/teensy/td_download.html) (if you're using a Teensy)
* [WinAVR](http://www.ladyada.net/learn/avr/setup-win.html) (Windows)
## Wiring
This is pretty straight-forward - we'll be connecting like-things to like-things in the following manner:
Flasher B0 <-> Keyboard RESET
Flasher B1 <-> Keyboard B1 (SCLK)
Flasher B2 <-> Keyboard B2 (MOSI)
Flasher B3 <-> Keyboard B3 (MISO)
Flasher VCC <-> Keyboard VCC
Flasher GND <-> Keyboard GND
## The ISP Firmware
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
1. Run Arduino after you have everything installed
2. Select `Tools > Board * > Teensy 2.0`
3. Click `File > Examples > 11.ArduinoISP > ArduinoISP`
Then scroll down until you see something that looks like this block of code:
// Configure which pins to use:
// The standard pin configuration.
#ifndef ARDUINO_HOODLOADER2
#define RESET 0 // Use 0 (B0) instead of 10
#define LED_HB 11 // Use 11 (LED on the Teensy 2.0)
#define LED_ERR 8 // This won't be used unless you have an LED hooked-up to 8 (D3)
#define LED_PMODE 7 // This won't be used unless you have an LED hooked-up to 7 (D2)
And make the changes in the last four lines. If you're using something besides the Teensy 2.0, you'll want to choose something else that makes sense for `LED_HB`. We define `RESET` as `0`/`B0` because that's what's close - if you want to use another pin for some reason, [you can use the pinouts to choose something else](https://www.pjrc.com/teensy/pinout.html).
Once you've made your changes, you can click the Upload button (right arrow), which will open up the Teensy flasher app - you'll need to press the reset button on the Teensy the first time, but after that, it's automatic (you shouldn't be flashing this more than once, though). Once flashed, the orange LED on the Teensy will flash on and off, indicating it's ready for some action.
## The `.hex` File
Before flashing your firmware, you're going to need to and do a little preparation. We'll be appending [this bootloader (also a .hex file)](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) to the end of our firmware by opening the original .hex file in a text editor, and removing the last line, which should be `:00000001FF` (this is an EOF message). After that's been removed, copy the entire bootloader's contents and paste it at the end of the original file, and save it.
It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to ISP to write new firmware to your keyboard.
## Flashing Your Firmware
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
Open `cmd` and navigate to your where your modified .hex file is. We'll pretend this file is called `main.hex`, and that your Teensy 2.0 is on the `COM3` port - if you're unsure, you can open your Device Manager, and look for `Ports > USB Serial Device`. Use that COM port here. You can confirm it's the right port with:
avrdude -c avrisp -P COM3 -p atmega32u4
and you should get something like the following output:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Since our keyboard uses an `atmega32u4` (common), that is the chip we'll specify. This is the full command:
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i
You should see a couple of progress bars, then you should see:
avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Which means everything should be ok! Your board may restart automatically, otherwise, unplug your Teensy and plug in your keyboard - you can leave your Teensy wired to your keyboard while testing things, but it's recommended that you desolder it/remove the wiring once you're sure everything works.
If you have any questions/problems, feel free to [open an issue](https://github.com/qmk/qmk_firmware/issues/new)!

View File

@@ -1,261 +0,0 @@
Keycode Symbol Table
====================
Keycodes are defined in `common/keycode.h`.
Range of 00-A4 and E0-E7 are identical with HID Usage:
<http://www.usb.org/developers/hidpage/Hut1_12v2.pdf>
Virtual keycodes are defined out of above range to support special actions.
Keycode Symbol Short name Description
--------------------------------------------------------------------------------
KC_NO 00 Reserved (no event indicated)
KC_ROLL_OVER 01 Keyboard ErrorRollOver
KC_POST_FAIL 02 Keyboard POSTFail
KC_UNDEFINED 03 Keyboard ErrorUndefined
KC_A 04 Keyboard a and A
KC_B 05 Keyboard b and B
KC_C 06 Keyboard c and C
KC_D 07 Keyboard d and D
KC_E 08 Keyboard e and E
KC_F 09 Keyboard f and F
KC_G 0A Keyboard g and G
KC_H 0B Keyboard h and H
KC_I 0C Keyboard i and I
KC_J 0D Keyboard j and J
KC_K 0E Keyboard k and K
KC_L 0F Keyboard l and L
KC_M 10 Keyboard m and M
KC_N 11 Keyboard n and N
KC_O 12 Keyboard o and O
KC_P 13 Keyboard p and P
KC_Q 14 Keyboard q and Q
KC_R 15 Keyboard r and R
KC_S 16 Keyboard s and S
KC_T 17 Keyboard t and T
KC_U 18 Keyboard u and U
KC_V 19 Keyboard v and V
KC_W 1A Keyboard w and W
KC_X 1B Keyboard x and X
KC_Y 1C Keyboard y and Y
KC_Z 1D Keyboard z and Z
KC_1 1E Keyboard 1 and !
KC_2 1F Keyboard 2 and @
KC_3 20 Keyboard 3 and #
KC_4 21 Keyboard 4 and $
KC_5 22 Keyboard 5 and %
KC_6 23 Keyboard 6 and ^
KC_7 24 Keyboard 7 and &
KC_8 25 Keyboard 8 and *
KC_9 26 Keyboard 9 and (
KC_0 27 Keyboard 0 and )
KC_ENTER KC_ENT 28 Keyboard Return (ENTER)
KC_ESCAPE KC_ESC 29 Keyboard ESCAPE
KC_BSPACE KC_BSPC 2A Keyboard DELETE (Backspace)
KC_TAB 2B Keyboard Tab
KC_SPACE KC_SPC 2C Keyboard Spacebar
KC_MINUS KC_MINS 2D Keyboard - and (underscore)
KC_EQUAL KC_EQL 2E Keyboard = and +
KC_LBRACKET KC_LBRC 2F Keyboard [ and {
KC_RBRACKET KC_RBRC 30 Keyboard ] and }
KC_BSLASH KC_BSLS 31 Keyboard \ and |
KC_NONUS_HASH KC_NUHS 32 Keyboard Non-US # and ~
KC_SCOLON KC_SCLN 33 Keyboard ; and :
KC_QUOTE KC_QUOT 34 Keyboard and “
KC_GRAVE KC_GRV 35 Keyboard Grave Accent and Tilde
KC_COMMA KC_COMM 36 Keyboard , and <
KC_DOT 37 Keyboard . and >
KC_SLASH KC_SLSH 38 Keyboard / and ?
KC_CAPSLOCK KC_CAPS 39 Keyboard Caps Lock
KC_F1 3A Keyboard F1
KC_F2 3B Keyboard F2
KC_F3 3C Keyboard F3
KC_F4 3D Keyboard F4
KC_F5 3E Keyboard F5
KC_F6 3F Keyboard F6
KC_F7 40 Keyboard F7
KC_F8 41 Keyboard F8
KC_F9 42 Keyboard F9
KC_F10 43 Keyboard F10
KC_F11 44 Keyboard F11
KC_F12 45 Keyboard F12
KC_PSCREEN KC_PSCR 46 Keyboard PrintScreen
KC_SCROLLLOCK KC_SLCK 47 Keyboard Scroll Lock
KC_PAUSE KC_PAUS 48 Keyboard Pause
KC_INSERT KC_INS 49 Keyboard Insert
KC_HOME 4A Keyboard Home
KC_PGUP 4B Keyboard PageUp
KC_DELETE KC_DEL 4C Keyboard Delete Forward
KC_END 4D Keyboard End
KC_PGDOWN KC_PGDN 4E Keyboard PageDown
KC_RIGHT KC_RGHT 4F Keyboard RightArrow
KC_LEFT 50 Keyboard LeftArrow
KC_DOWN 51 Keyboard DownArrow
KC_UP 52 Keyboard UpArrow
KC_NUMLOCK KC_NLCK 53 Keypad Num Lock and Clear
KC_KP_SLASH KC_PSLS 54 Keypad /
KC_KP_ASTERISK KC_PAST 55 Keypad *
KC_KP_MINUS KC_PMNS 56 Keypad -
KC_KP_PLUS KC_PPLS 57 Keypad +
KC_KP_ENTER KC_PENT 58 Keypad ENTER
KC_KP_1 KC_P1 59 Keypad 1 and End
KC_KP_2 KC_P2 5A Keypad 2 and Down Arrow
KC_KP_3 KC_P3 5B Keypad 3 and PageDn
KC_KP_4 KC_P4 5C Keypad 4 and Left Arrow
KC_KP_5 KC_P5 5D Keypad 5
KC_KP_6 KC_P6 5E Keypad 6 and Right Arrow
KC_KP_7 KC_P7 5F Keypad 7 and Home
KC_KP_8 KC_P8 60 Keypad 8 and Up Arrow
KC_KP_9 KC_P9 61 Keypad 9 and PageUp
KC_KP_0 KC_P0 62 Keypad 0 and Insert
KC_KP_DOT KC_PDOT 63 Keypad . and Delete
KC_NONUS_BSLASH KC_NUBS 64 Keyboard Non-US \ and |
KC_APPLICATION KC_APP 65 Keyboard Application
KC_POWER 66 Keyboard Power
KC_KP_EQUAL KC_PEQL 67 Keypad =
KC_F13 68 Keyboard F13
KC_F14 69 Keyboard F14
KC_F15 6A Keyboard F15
KC_F16 6B Keyboard F16
KC_F17 6C Keyboard F17
KC_F18 6D Keyboard F18
KC_F19 6E Keyboard F19
KC_F20 6F Keyboard F20
KC_F21 70 Keyboard F21
KC_F22 71 Keyboard F22
KC_F23 72 Keyboard F23
KC_F24 73 Keyboard F24
KC_EXECUTE 74 Keyboard Execute
KC_HELP 75 Keyboard Help
KC_MENU 76 Keyboard Menu
KC_SELECT 77 Keyboard Select
KC_STOP 78 Keyboard Stop
KC_AGAIN 79 Keyboard Again
KC_UNDO 7A Keyboard Undo
KC_CUT 7B Keyboard Cut
KC_COPY 7C Keyboard Copy
KC_PASTE 7D Keyboard Paste
KC_FIND 7E Keyboard Find
KC__MUTE 7F Keyboard Mute
KC__VOLUP 80 Keyboard Volume Up
KC__VOLDOWN 81 Keyboard Volume Down
KC_LOCKING_CAPS 82 Keyboard Locking Caps Lock
KC_LOCKING_NUM 83 Keyboard Locking Num Lock
KC_LOCKING_SCROLL 84 Keyboard Locking Scroll Lock
KC_KP_COMMA KC_PCMM 85 Keypad Comma
KC_KP_EQUAL_AS400 86 Keypad Equal Sign
KC_INT1 KC_RO 87 Keyboard International115
KC_INT2 KC_KANA 88 Keyboard International216
KC_INT3 KC_JYEN 89 Keyboard International317
KC_INT4 KC_HENK 8A Keyboard International418
KC_INT5 KC_MHEN 8B Keyboard International519
KC_INT6 8C Keyboard International620
KC_INT7 8D Keyboard International721
KC_INT8 8E Keyboard International822
KC_INT9 8F Keyboard International922
KC_LANG1 90 Keyboard LANG125
KC_LANG2 91 Keyboard LANG226
KC_LANG3 92 Keyboard LANG330
KC_LANG4 93 Keyboard LANG431
KC_LANG5 94 Keyboard LANG532
KC_LANG6 95 Keyboard LANG68
KC_LANG7 96 Keyboard LANG78
KC_LANG8 97 Keyboard LANG88
KC_LANG9 98 Keyboard LANG98
KC_ALT_ERASE 99 Keyboard Alternate Erase
KC_SYSREQ 9A Keyboard SysReq/Attention
KC_CANCEL 9B Keyboard Cancel
KC_CLEAR 9C Keyboard Clear
KC_PRIOR 9D Keyboard Prior
KC_RETURN 9E Keyboard Return
KC_SEPARATOR 9F Keyboard Separator
KC_OUT A0 Keyboard Out
KC_OPER A1 Keyboard Oper
KC_CLEAR_AGAIN A2 Keyboard Clear/Again
KC_CRSEL A3 Keyboard CrSel/Props
KC_EXSEL A4 Keyboard ExSel
/* Modifiers */
KC_LCTRL KC_LCTL E0 Keyboard LeftControl
KC_LSHIFT KC_LSFT E1 Keyboard LeftShift
KC_LALT E2 Keyboard LeftAlt
KC_LGUI E3 Keyboard Left GUI(Windows/Apple/Meta key)
KC_RCTRL KC_RCTL E4 Keyboard RightControl
KC_RSHIFT KC_RSFT E5 Keyboard RightShift
KC_RALT E6 Keyboard RightAlt
KC_RGUI E7 Keyboard Right GUI(Windows/Apple/Meta key)
/*
* Virtual keycodes
*/
/* System Control */
KC_SYSTEM_POWER KC_PWR System Power Down
KC_SYSTEM_SLEEP KC_SLEP System Sleep
KC_SYSTEM_WAKE KC_WAKE System Wake
/* Consumer Page */
KC_AUDIO_MUTE KC_MUTE
KC_AUDIO_VOL_UP KC_VOLU
KC_AUDIO_VOL_DOWN KC_VOLD
KC_MEDIA_NEXT_TRACK KC_MNXT
KC_MEDIA_PREV_TRACK KC_MPRV
KC_MEDIA_STOP KC_MSTP
KC_MEDIA_PLAY_PAUSE KC_MPLY
KC_MEDIA_SELECT KC_MSEL
KC_MAIL KC_MAIL
KC_CALCULATOR KC_CALC
KC_MY_COMPUTER KC_MYCM
KC_WWW_SEARCH KC_WSCH
KC_WWW_HOME KC_WHOM
KC_WWW_BACK KC_WBAK
KC_WWW_FORWARD KC_WFWD
KC_WWW_STOP KC_WSTP
KC_WWW_REFRESH KC_WREF
KC_WWW_FAVORITES KC_WFAV
/* Mousekey */
KC_MS_UP KC_MS_U Mouse Cursor Up
KC_MS_DOWN KC_MS_D Mouse Cursor Down
KC_MS_LEFT KC_MS_L Mouse Cursor Left
KC_MS_RIGHT KC_MS_R Mouse Cursor Right
KC_MS_BTN1 KC_BTN1 Mouse Button 1
KC_MS_BTN2 KC_BTN2 Mouse Button 2
KC_MS_BTN3 KC_BTN3 Mouse Button 3
KC_MS_BTN4 KC_BTN4 Mouse Button 4
KC_MS_BTN5 KC_BTN5 Mouse Button 5
KC_MS_WH_UP KC_WH_U Mouse Wheel Up
KC_MS_WH_DOWN KC_WH_D Mouse Wheel Down
KC_MS_WH_LEFT KC_WH_L Mouse Wheel Left
KC_MS_WH_RIGHT KC_WH_R Mouse Wheel Right
KC_MS_ACCEL0 KC_ACL0 Mouse Acceleration 0
KC_MS_ACCEL1 KC_ACL1 Mouse Acceleration 1
KC_MS_ACCEL2 KC_ACL2 Mouse Acceleration 2
/* Fn key */
KC_FN0
KC_FN1
KC_FN2
KC_FN3
KC_FN4
KC_FN5
KC_FN6
KC_FN7
KC_FN8
KC_FN9
KC_FN10
KC_FN11
KC_FN12
KC_FN13
KC_FN14
KC_FN15
KC_FN16
KC_FN17
KC_FN18
KC_FN19
KC_FN20
KC_FN21
KC_FN22
KC_FN23
KC_FN24
KC_FN25
KC_FN26
KC_FN27
KC_FN28
KC_FN29
KC_FN30
KC_FN31

View File

@@ -1,423 +0,0 @@
# Keycodes Overview
When defining a [keymap](keymap.md) each key needs a valid key definition. This page documents the symbols that correspond to keycodes that are available to you in QMK.
This is a reference only. Each group of keys links to the page documenting their functionality in more detail.
## [Basic Keycodes](keycodes_basic.md)
|Key |Aliases |Description |
|-----------------------|--------------------|-----------------------------------------------|
|`KC_1` | |`1` and `!` |
|`KC_2` | |`2` and `@` |
|`KC_3` | |`3` and `#` |
|`KC_4` | |`4` and `$` |
|`KC_5` | |`5` and `%` |
|`KC_6` | |`6` and `^` |
|`KC_7` | |`7` and `&` |
|`KC_8` | |`8` and `*` |
|`KC_9` | |`9` and `(` |
|`KC_0` | |`0` and `)` |
|`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_F13` | | |
|`KC_F14` | | |
|`KC_F15` | | |
|`KC_F16` | | |
|`KC_F17` | | |
|`KC_F18` | | |
|`KC_F19` | | |
|`KC_F20` | | |
|`KC_F21` | | |
|`KC_F22` | | |
|`KC_F23` | | |
|`KC_F24` | | |
|`KC_A` | |`a` and `A` |
|`KC_B` | |`b` and `B` |
|`KC_C` | |`c` and `C` |
|`KC_D` | |`d` and `D` |
|`KC_E` | |`e` and `E` |
|`KC_F` | |`f` and `F` |
|`KC_G` | |`g` and `G` |
|`KC_H` | |`h` and `H` |
|`KC_I` | |`i` and `I` |
|`KC_J` | |`j` and `J` |
|`KC_K` | |`k` and `K` |
|`KC_L` | |`l` and `L` |
|`KC_M` | |`m` and `M` |
|`KC_N` | |`n` and `N` |
|`KC_O` | |`o` and `O` |
|`KC_P` | |`p` and `P` |
|`KC_Q` | |`q` and `Q` |
|`KC_R` | |`r` and `R` |
|`KC_S` | |`s` and `S` |
|`KC_T` | |`t` and `T` |
|`KC_U` | |`u` and `U` |
|`KC_V` | |`v` and `V` |
|`KC_W` | |`w` and `W` |
|`KC_X` | |`x` and `X` |
|`KC_Y` | |`y` and `Y` |
|`KC_Z` | |`z` and `Z` |
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|`KC_ESCAPE` |`KC_ESC` |Escape |
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
|`KC_TAB` | |Tab |
|`KC_SPACE` |`KC_SPC` |Spacebar |
|`KC_MINUS` |`KC_MINS` |`-` and `_` |
|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |
|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
|`KC_BSLASH` |`KC_BSLS` |`\` and <code>&#124;</code> |
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>&#124;</code> |
|`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
|`KC_INT3` |`KC_JYEN` |JIS `¥` |
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
|`KC_COMMA` |`KC_COMM` |`,` and `<` |
|`KC_DOT` | |`.` and `>` |
|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
|`KC_CAPSLOCK` |`KC_CAPS` |Caps Lock |
|`KC_LCTRL` |`KC_LCTL` |Left Control |
|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
|`KC_LALT` | |Left Alt |
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
|`KC_RCTRL` |`KC_RCTL` |Right Control |
|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
|`KC_RALT` | |Right Alt |
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |
|`KC_INT4` |`KC_HENK` |JIS Henkan |
|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
|`KC_PAUSE` |`KC_PAUS` |Pause |
|`KC_INSERT` |`KC_INS` |Insert |
|`KC_HOME` | |Home |
|`KC_PGUP` | |Page Up |
|`KC_DELETE` |`KC_DEL` |Forward Delete |
|`KC_END` | |End |
|`KC_PGDOWN` |`KC_PGDN` |Page Down |
|`KC_RIGHT` |`KC_RGHT` |Right Arrow |
|`KC_LEFT` | |Left Arrow |
|`KC_DOWN` | |Down Arrow |
|`KC_UP` | |Up Arrow |
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
|`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.|
|`KC_EXECUTE` | |Execute |
|`KC_HELP` | |Help |
|`KC_MENU` | |Menu |
|`KC_SELECT` | |Select |
|`KC_AGAIN` | |Again |
|`KC_UNDO` | |Undo |
|`KC_CUT` | |Cut |
|`KC_COPY` | |Copy |
|`KC_PASTE` | |Paste |
|`KC_FIND` | |Find |
|`KC_ALT_ERASE` | |Alternate Erase |
|`KC_SYSREQ` | |SysReq/Attention |
|`KC_CANCEL` | |Cancel |
|`KC_CLEAR` | |Clear |
|`KC_PRIOR` | |Prior |
|`KC_RETURN` | |Return |
|`KC_SEPARATOR` | |Separator |
|`KC_OUT` | |Out |
|`KC_OPER` | |Oper |
|`KC_CLEAR_AGAIN` | |Clear/Again |
|`KC_CRSEL` | |CrSel/Props |
|`KC_EXSEL` | |ExSel |
|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down. Recommended over `KC_POWER`.|
|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |
|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake |
|`KC_MAIL` |`KC_MAIL` | |
|`KC_CALCULATOR` |`KC_CALC` | |
|`KC_MY_COMPUTER` |`KC_MYCM` | |
|`KC_WWW_SEARCH` |`KC_WSCH` | |
|`KC_WWW_HOME` |`KC_WHOM` | |
|`KC_WWW_BACK` |`KC_WBAK` | |
|`KC_WWW_FORWARD` |`KC_WFWD` | |
|`KC_WWW_STOP` |`KC_WSTP` | |
|`KC_WWW_REFRESH` |`KC_WREF` | |
|`KC_WWW_FAVORITES` |`KC_WFAV` | |
|`KC_STOP` | |Stop |
|`KC__MUTE` | |Mute (macOS) |
|`KC__VOLUP` | |Volume Up (macOS) |
|`KC__VOLDOWN` | |Volume Down (macOS) |
|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute (Windows/macOS/Linux) |
|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up (Windows/macOS/Linux) |
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down (Windows/macOS/Linux) |
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) |
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) |
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|`KC_MEDIA_SELECT` |`KC_MSEL` | |
|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject (macOS) |
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |
|`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` |
|`KC_KP_ENTER` |`KC_PENT` |Keypad Enter |
|`KC_KP_1` |`KC_P1` |Keypad `1` and End |
|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |
|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |
|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |
|`KC_KP_5` |`KC_P5` |Keypad `5` |
|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |
|`KC_KP_7` |`KC_P7` |Keypad `7` and Home |
|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |
|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |
|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |
|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` |
|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards |
|`KC_NO` | |Ignore this key (NOOP) |
|`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key |
## [Mouse Keys](feature_mouse_keys.md)
|Key |Aliases |Description |
|----------------|---------|---------------------------|
|`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
|`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
|`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
|`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
|`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
|`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
|`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
|`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
|`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
|`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
|`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
|`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
|`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
|`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
|`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|Key |Aliases |Description |
|-------------|-----------|---------------------------------------------------------------------|
|`RESET` | |Put the keyboard into DFU mode for flashing |
|`DEBUG` | |Toggle debug mode |
|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
|`KC_LSPO` | |Left Shift when held, `(` when tapped |
|`KC_RSPC` | |Right Shift when held, `)` when tapped |
|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
|`M(n)` | |Call macro `n` |
|`MACROTAP(n)`| |Macro-tap `n` idk FIXME |
## [Bootmagic](feature_bootmagic.md)
|Key |Aliases |Description |
|----------------------------------|---------|------------------------------------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Caps Lock and Left Control |
|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
|`MAGIC_NO_GUI` | |Disable the GUI key |
|`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|`MAGIC_HOST_NKRO` | |Force NKRO on |
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Caps Lock and Left Control |
|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Control |
|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
|`MAGIC_UNNO_GUI` | |Enable the GUI key |
|`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape|
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
## [Backlighting](feature_backlight.md)
|Key |Description |
|---------|------------------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness |
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
## [RGB Lighting](feature_rgblight.md)
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue |
|`RGB_HUD` | |Decrease hue |
|`RGB_SAI` | |Increase saturation |
|`RGB_SAD` | |Decrease saturation |
|`RGB_VAI` | |Increase value (brightness) |
|`RGB_VAD` | |Decrease value (brightness) |
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red,Green,Blue test animation mode |
## [RGB Matrix Lighting](feature_rgb_matrix.md)
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue |
|`RGB_HUD` | |Decrease hue |
|`RGB_SAI` | |Increase saturation |
|`RGB_SAD` | |Decrease saturation |
|`RGB_VAI` | |Increase value (brightness) |
|`RGB_VAD` | |Decrease value (brightness) |
|`RGB_SPI` | |Increase effect speed (does no support eeprom yet) |
|`RGB_SPD` | |Decrease effect speed (does no support eeprom yet) |
## [Thermal Printer](feature_thermal_printer.md)
|Key |Description |
|-----------|----------------------------------------|
|`PRINT_ON` |Start printing everything the user types|
|`PRINT_OFF`|Stop printing everything the user types |
## [Bluetooth](feature_bluetooth.md)
|Key |Description |
|----------|----------------------------------------------|
|`OUT_AUTO`|Automatically switch between USB and Bluetooth|
|`OUT_USB` |USB only |
|`OUT_BT` |Bluetooth only |
## [Modifiers](quantum_keycodes.md#modifiers)
|Key |Aliases |Description |
|----------|---------- |----------------------------------------------------|
|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI |
|`KC_MEH` | |Hold Left Control, Shift and Alt |
|`LCTL(kc)`| |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`| |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`| |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)`|Hold Right GUI and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`ALTG(kc)`| |Hold Right Control and Alt and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
## [Mod-Tap Keys](quantum_keycodes.md#mod-tap-keys)
|Key |Aliases |Description |
|------------|---------------------------------------|-------------------------------------------------------|
|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`LCMD_T(kc)`, `RWIN_T(kc)`, `GUI_T(kc)`|Left GUI when held, `kc` when tapped |
|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`ALL_T(kc)` | |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
|`SCMD_T(kc)`|`SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
## [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
|Key |Aliases |Description |
|------------------------|------------------|-------------------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |<code>&#124;</code>|
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers)
|Key |Description |
|----------------|----------------------------------------------------------------------------------|
|`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped |
|`TO(layer)` |Turn on `layer` when pressed |
|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)|
|`DF(layer)` |Set the base (default) layer |
|`TG(layer)` |Toggle `layer` on or off |
|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on |
|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. |
## [One Shot Keys](quantum_keycodes.md#one-shot-keys)
|Key |Description |
|------------|----------------------------------|
|`OSM(mod)` |Hold `mod` for one keypress |
|`OSL(layer)`|Switch to `layer` for one keypress|
## [Unicode Support](feature_unicode.md)
|Key |Aliases| |
|------------|-------|-------------------------------------------------|
|`UNICODE(n)`|`UC(n)`|Send Unicode character `n` |
|`X(n)` | |Send Unicode character `n` via a different method|
## [Swap Hands](feature_swap_hands.md)
|Key |Description |
|-----------|-------------------------------------------------------------------------|
|`SH_T(key)`|Sends `key` with a tap; momentary swap when held. |
|`SW_ON` |Turns on swapping and leaves it on. |
|`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.|
|`SH_MON` |Swaps hands when pressed, returns to normal when released (momentary). |
|`SH_MOFF` |Momentarily turns off swap. |
|`SH_TG` |Toggles swap on and off with every key press. |
|`SH_TT` |Toggles with a tap; momentary when held. |

View File

@@ -1,231 +0,0 @@
# Basic Keycodes
The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07)](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) with the exception of `KC_NO`, `KC_TRNS` and keycodes in the `0xA5-DF` range. See below for more details.
## Letters and Numbers
|Key |Description|
|------|-----------|
|`KC_A`|`a` and `A`|
|`KC_B`|`b` and `B`|
|`KC_C`|`c` and `C`|
|`KC_D`|`d` and `D`|
|`KC_E`|`e` and `E`|
|`KC_F`|`f` and `F`|
|`KC_G`|`g` and `G`|
|`KC_H`|`h` and `H`|
|`KC_I`|`i` and `I`|
|`KC_J`|`j` and `J`|
|`KC_K`|`k` and `K`|
|`KC_L`|`l` and `L`|
|`KC_M`|`m` and `M`|
|`KC_N`|`n` and `N`|
|`KC_O`|`o` and `O`|
|`KC_P`|`p` and `P`|
|`KC_Q`|`q` and `Q`|
|`KC_R`|`r` and `R`|
|`KC_S`|`s` and `S`|
|`KC_T`|`t` and `T`|
|`KC_U`|`u` and `U`|
|`KC_V`|`v` and `V`|
|`KC_W`|`w` and `W`|
|`KC_X`|`x` and `X`|
|`KC_Y`|`y` and `Y`|
|`KC_Z`|`z` and `Z`|
|`KC_1`|`1` and `!`|
|`KC_2`|`2` and `@`|
|`KC_3`|`3` and `#`|
|`KC_4`|`4` and `$`|
|`KC_5`|`5` and `%`|
|`KC_6`|`6` and `^`|
|`KC_7`|`7` and `&`|
|`KC_8`|`8` and `*`|
|`KC_9`|`9` and `(`|
|`KC_0`|`0` and `)`|
## F Keys
|Key |Description|
|--------|-----------|
|`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_F13`| |
|`KC_F14`| |
|`KC_F15`| |
|`KC_F16`| |
|`KC_F17`| |
|`KC_F18`| |
|`KC_F19`| |
|`KC_F20`| |
|`KC_F21`| |
|`KC_F22`| |
|`KC_F23`| |
|`KC_F24`| |
## Punctuation
|Key |Aliases |Description |
|-----------------|---------|----------------------------------|
|`KC_ENTER` |`KC_ENT` |Return (Enter) |
|`KC_ESCAPE` |`KC_ESC` |Escape |
|`KC_BSPACE` |`KC_BSPC`|Delete (Backspace) |
|`KC_TAB` | |Tab |
|`KC_SPACE` |`KC_SPC` |Spacebar |
|`KC_MINUS` |`KC_MINS`|`-` and `_` |
|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|`KC_LBRACKET` |`KC_LBRC`|`[` and `{` |
|`KC_RBRACKET` |`KC_RBRC`|`]` and `}` |
|`KC_BSLASH` |`KC_BSLS`|`\` and <code>&#124;</code> |
|`KC_NONUS_HASH` |`KC_NUHS`|Non-US `#` and `~` |
|`KC_NONUS_BSLASH`|`KC_NUBS`|Non-US `\` and <code>&#124;</code>|
|`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
|`KC_INT3` |`KC_JYEN`|JIS `¥` |
|`KC_SCOLON` |`KC_SCLN`|`;` and `:` |
|`KC_QUOTE` |`KC_QUOT`|`'` and `"` |
|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
|`KC_COMMA` |`KC_COMM`|`,` and `<` |
|`KC_DOT` | |`.` and `>` |
|`KC_SLASH` |`KC_SLSH`|`/` and `?` |
|`KC_CAPSLOCK` |`KC_CAPS`|Caps Lock |
## Modifiers
|Key |Aliases |Description |
|-------------------|--------------------|------------------------------------|
|`KC_LCTRL` |`KC_LCTL` |Left Control |
|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
|`KC_LALT` | |Left Alt |
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
|`KC_RCTRL` |`KC_RCTL` |Right Control |
|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
|`KC_RALT` | |Right Alt |
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)|
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll Lock |
|`KC_INT4` |`KC_HENK` |JIS Henkan |
|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
## Commands
|Key |Aliases |Description |
|------------------|---------|------------------------------|
|`KC_PSCREEN` |`KC_PSCR`|Print Screen |
|`KC_SCROLLLOCK` |`KC_SLCK`|Scroll Lock |
|`KC_PAUSE` |`KC_PAUS`|Pause |
|`KC_INSERT` |`KC_INS` |Insert |
|`KC_HOME` | |Home |
|`KC_PGUP` | |Page Up |
|`KC_DELETE` |`KC_DEL` |Forward Delete |
|`KC_END` | |End |
|`KC_PGDOWN` |`KC_PGDN`|Page Down |
|`KC_RIGHT` |`KC_RGHT`|Right Arrow |
|`KC_LEFT` | |Left Arrow |
|`KC_DOWN` | |Down Arrow |
|`KC_UP` | |Up Arrow |
|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)|
|`KC_POWER` | |Power |
|`KC_EXECUTE` | |Execute |
|`KC_HELP` | |Help |
|`KC_MENU` | |Menu |
|`KC_SELECT` | |Select |
|`KC_AGAIN` | |Again |
|`KC_UNDO` | |Undo |
|`KC_CUT` | |Cut |
|`KC_COPY` | |Copy |
|`KC_PASTE` | |Paste |
|`KC_FIND` | |Find |
|`KC_ALT_ERASE` | |Alternate Erase |
|`KC_SYSREQ` | |SysReq/Attention |
|`KC_CANCEL` | |Cancel |
|`KC_CLEAR` | |Clear |
|`KC_PRIOR` | |Prior |
|`KC_RETURN` | |Return |
|`KC_SEPARATOR` | |Separator |
|`KC_OUT` | |Out |
|`KC_OPER` | |Oper |
|`KC_CLEAR_AGAIN` | |Clear/Again |
|`KC_CRSEL` | |CrSel/Props |
|`KC_EXSEL` | |ExSel |
## Media Keys
These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` keycodes are found in the Generic Desktop page, and the rest are located in the Consumer page.
Windows and macOS use different keycodes for "next track" and "previous track". Make sure you choose the keycode that corresponds to your OS.
|Key |Aliases |Description |
|-----------------------|---------|---------------------------------|
|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |
|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep |
|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake |
|`KC_MAIL` |`KC_MAIL`| |
|`KC_CALCULATOR` |`KC_CALC`| |
|`KC_MY_COMPUTER` |`KC_MYCM`| |
|`KC_WWW_SEARCH` |`KC_WSCH`| |
|`KC_WWW_HOME` |`KC_WHOM`| |
|`KC_WWW_BACK` |`KC_WBAK`| |
|`KC_WWW_FORWARD` |`KC_WFWD`| |
|`KC_WWW_STOP` |`KC_WSTP`| |
|`KC_WWW_REFRESH` |`KC_WREF`| |
|`KC_STOP` | |Stop |
|`KC_WWW_FAVORITES` |`KC_WFAV`| |
|`KC__MUTE` | |Mute (macOS) |
|`KC__VOLUP` | |Volume Up (macOS) |
|`KC__VOLDOWN` | |Volume Down (macOS) |
|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute (Windows/macOS/Linux) |
|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up (Windows/macOS/Linux) |
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down (Windows/macOS/Linux)|
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track (Windows) |
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track (Windows) |
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|`KC_MEDIA_SELECT` |`KC_MSEL`| |
|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) |
## Number Pad
|Key |Aliases |Description |
|-------------------|---------|------------------------------|
|`KC_NUMLOCK` |`KC_NLCK`|Keypad Num Lock and Clear |
|`KC_KP_SLASH` |`KC_PSLS`|Keypad `/` |
|`KC_KP_ASTERISK` |`KC_PAST`|Keypad `*` |
|`KC_KP_MINUS` |`KC_PMNS`|Keypad `-` |
|`KC_KP_PLUS` |`KC_PPLS`|Keypad `+` |
|`KC_KP_ENTER` |`KC_PENT`|Keypad Enter |
|`KC_KP_1` |`KC_P1` |Keypad `1` and End |
|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |
|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |
|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |
|`KC_KP_5` |`KC_P5` |Keypad `5` |
|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |
|`KC_KP_7` |`KC_P7` |Keypad `7` and Home |
|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |
|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|`KC_KP_DOT` |`KC_PDOT`|Keypad `.` and Delete |
|`KC_KP_EQUAL` |`KC_PEQL`|Keypad `=` |
|`KC_KP_COMMA` |`KC_PCMM`|Keypad `,` |
|`KC_KP_EQUAL_AS400`| |Keypad `=` on AS/400 keyboards|
## Special Keys
In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK.
|Key |Aliases |Description |
|----------------|---------|---------------------------------------|
|`KC_NO` | |Ignore this key (NOOP) |
|`KC_TRANSPARENT`|`KC_TRNS`|Use the next lowest non-transparent key|

Some files were not shown because too many files have changed in this diff Show More