Compare commits

...

652 Commits

Author SHA1 Message Date
QMK Bot
31aadc8725 format code according to conventions [skip ci] 2020-02-13 20:09:39 +00:00
Joel Challis
014ad1d747 Fix RESET keycode on some STM32F072 keyboards (#8134)
* Add f072 board files with 'enter_bootloader_mode_if_requested' support

* rename default f072 board file to GENERIC_STM32_F072XB

* Remove board files

* Add bootloader def

* Update generic f072 board paths

* Revert wrong deletion
2020-02-13 19:39:22 +00:00
fauxpark
1a77abfe64 Define backlight pin for Quefrency Rev2 (#8141) 2020-02-13 19:36:21 +00:00
Joel Challis
667b29b77c Align split_common/matrix.c with matrix.c (#8153) 2020-02-12 11:54:05 +01:00
QMK Bot
7740470a94 format code according to conventions [skip ci] 2020-02-12 06:50:23 +00:00
fauxpark
eaf32621aa Align VUSB HID descriptors with LUFA/ChibiOS (#7675)
* Align VUSB HID descriptors with LUFA/ChibiOS

* Wrap send_system and send_consumer in ifdefs too

* Offset system usages to match LUFA/ChibiOS
2020-02-12 17:19:39 +11:00
Rys Sommefeldt
f318d6fffc VIA support for the Think6.5 (#8118)
* VIA support for Think6.5

* VIA support for Think6.5 Hotswap

* VIA works better with separate layout options

* Remove the colours used to help develop it in KLE

* Pay better attention to the JSON linter

* Update Think6.5 PRODUCT and remove VIA JSON defs
2020-02-12 15:33:29 +11:00
Rys Sommefeldt
177666cbc8 VIA support for Graystudio Space65 (#8126)
* VIA support for Graystudio Space65

* Update Space65 PRODUCT and remove VIA JSON def
2020-02-12 15:33:05 +11:00
Ted M Lin
9456832a3b Fix out of bound OLED font access (#8145)
* Fix out of bound OLED font access

The default font is 1344 bytes, or a total of 224 glyphs (each 6-bytes wide).
OLED_FONT_END defaults to 224, which if used will then index off the end of
the font array. So either the documentation or code is wrong.

Instead of figuring out the rewording of the documentation, just change
the OLED_FONT_END default value to 223, to match the documentation and code.

* Add static assert to check array size

Build bomb if the font array size doesn't match to the defines.
2020-02-11 21:38:20 +00:00
IFo Hancroft
78e060f55a VIA Support for the Idobo (ID75) (#8146)
* VIA Support for the Idobo (ID75)

* Implemented the requested PR changes

* Readme was pointing to the wrong board

* Fixed Product ID

* Fixed Manufacturer name

* Better Vendor ID

Using the two 8-bit ASCII values from the keyboard name.

* Removed Bootmagic Lite as enabled anyway by VIA
2020-02-11 12:44:09 -08:00
MechMerlin
c53d4ecf32 VIA Support: Duck Eagle V2 (#8133)
* add via keymap

* Update keyboards/duck/eagle_viper/v2/keymaps/via/keymap.c
2020-02-11 10:07:06 -08:00
ymzcdg
6a165c41cb [Docs] doc update zh-cn (#8147)
* update zh-cn translate

Timestamp was added at the end of the document, it can help me manage version easier.

* fix _summary.md to utf-8

* fix _summary.md with vscode
2020-02-11 10:05:23 -08:00
Jonathan Rascher
387c486e57 Rename Polaris Tsangan layout to 60_tsangan_hhkb and enable community layout support (#8144)
* Rename Polaris Tsangan layout to 60_tsangan_hhkb
2020-02-11 09:47:16 -08:00
a_p_u_r_o
a624c439a4 [Keyboard] Fixed inconsistent MATRIX_ROWS and MATRIX_COLS: wsk/gothic50 (#8150) 2020-02-11 15:02:18 +00:00
Joel Challis
fba9971555 Align max backlight level in docs (#8142) 2020-02-11 14:59:58 +00:00
Mikkel Jeppesen
310b2f1be4 use replace() over rename() to have cross-platform overwriting (#8148) 2020-02-11 10:37:15 +01:00
Jonathan Rascher
1fed214490 Tweak my TAPPING_TERM and be more futureproof (#8143)
* Explicitly undef things I override in keymaps

* Reduce TAPPING_TERM back to default
2020-02-11 03:11:09 +00:00
dnsnrk
f4c1e066ba [Keymap] User keymap for KBDfans KBD67 MKII RGB (hot-swap) (#7697)
* initial custom keymap

* initial code for caps lock LED

* added debounce overrides

* override caps lock handler

* finished up on CAPS LOCK LED customization

* lowered debounce

* layer lightning fx

* Added layer tap-toggle

* reformatting

* refined keymap

* copyright and more clean-up

* increased DEBOUNCE

* initial custom keymap

* initial code for caps lock LED

* added debounce overrides

* override caps lock handler

* finished up on CAPS LOCK LED customization

* lowered debounce

* layer lightning fx

* Added layer tap-toggle

* reformatting

* refined keymap

* copyright and more clean-up

* increased DEBOUNCE

* added readme and some more clean-up

* incorporated pull request feedback
2020-02-10 18:05:25 -08:00
a_p_u_r_o
4b7d46ced0 [Keyboard] Use DIRECT_PINS instead of empty MATRIX_ROW_PINS: sixshooter (#8130)
* [Keyboard] Use DIRECT_PINS instead of empty MATRIX_ROW_PINS: sixshooter

* [Keyboard] Reform the matrix into 2x3: sixshooter
2020-02-10 17:22:37 -08:00
James Young
cabe4dfa72 [Keyboard] VIA Support for Boardwalk (#8124)
* initial commit of VIA Support

* update PRODUCT (and MANUFACTURER) per VIA docs

Reference: https://caniusevia.com/docs/configuring_qmk#change-product

Updated MANUFACTURER so it matches what the PRODUCT says.

* enable Link Time Optimization per mechmerlin

* revert change to USB Product Name

* add two empty layers to via keymap

VIA keymaps need four layers in flash.

* correct the layer indexes

Start from 0, not 1.
2020-02-10 17:14:19 -08:00
Joel Challis
5279571e41 Remove zvecr dz60 keymap (#8140) 2020-02-10 12:58:55 -08:00
Nick Brassel
9398c11b51 Remove tzarc's Luddite keymap. (#8139) 2020-02-10 12:52:40 -08:00
Josh Johnson
89c528e443 [Keyboard] Add support for Hub16 (#7794)
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: fauxpark <fauxpark@gmail.com>
2020-02-10 14:16:27 +01:00
ai03
8f333138f5 [Keyboard] Add support for Polaris (#8123)
* Drop in old files

* Make a blank template keyboard to refresh ancient files to latest config

* Update keymaps files to new format

* Remove chunks of config asked for removal in previous pullreqs

* Remove split pin option from config

* Update rules.mk to latest version

* Remove unused functions from polaris.c

* Add via keymap

* Build basic tsangan keymap; add QMK configurator info

* Remove temporary template

* Update keyboards/ai03/polaris/config.h

* Update keyboards/ai03/polaris/readme.md

* Update keyboards/ai03/polaris/readme.md

* Update keyboards/ai03/polaris/readme.md

* Update rules.mk

* Fixes as per pullreq

* Update keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c

* Update keyboards/ai03/polaris/polaris.h

* Update keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c

* Update keyboards/ai03/polaris/info.json

* Update keyboards/ai03/polaris/keymaps/testing/readme.md
2020-02-10 00:53:16 -08:00
madhogs
35c4dbe688 New iso layout and keymap for dz60 with 4th row all 1u (#7830)
* Added new iso layout and keymap for dz60 with all 4th row keys 1u in size
2020-02-09 23:53:12 -08:00
Ted Lin
c3200aa8fc Compile error if ONESHOT_TIMEOUT defined but oneshot disabled (#8100)
* Compile error if ONESHOT_TIMEOUT defined but oneshot disabled

When ONESHOT_TIMEOUT and NO_ACTION_ONESHOT are both defined, this code
fails to compile.

Wrap the one usage of ONESHOT_TIMEOUT that is inconsistent with the
rest so all usages are properly wrapped by a check of NO_ACTION_ONESHOT.

* Run file through clang-format

Co-authored-by: Ted M Lin <tedmlin@gmail.com>
2020-02-10 04:50:45 +00:00
fauxpark
6052aa499e Use FIRMWARE_FORMAT for "Checking file size" message (#8121) 2020-02-10 04:19:08 +11:00
nopunin10did
2fe288d01d [Keymap] Adding ergodash/rev1:nopunin10did (#8098)
* Adding ergodash/rev1:nopunin10did

* Update keyboards/ergodash/rev1/keymaps/nopunin10did/keymap.c

* Update keyboards/ergodash/rev1/keymaps/nopunin10did/keymap.c

* Update keyboards/ergodash/rev1/keymaps/nopunin10did/readme.md
2020-02-08 19:54:10 -08:00
Erovia
b6e23f974b Update the flash cli command to use the user config (#8125) 2020-02-08 23:58:28 +01:00
fauxpark
174a15d07d Remove PJRC USB stack 2020-02-08 11:07:43 -08:00
James Young
5ab0eeb513 [Keyboard] Boardwalk Refactor (#8122)
* refactor keymaps

Create one keymap for each layout macro.

* remove config.h for default keymap

There's nothing in it.

* update readme

- use the new list format
- use a smaller version of the keyboard photo (does the readme really need a 14MP image on it?)
2020-02-08 10:25:50 -08:00
Joel Challis
75e7018f72 CI: Add workflow for CLI testing (#7357)
Create GitHub Actions cli test workflow and remove travis runs of 'qmk pytest'
2020-02-08 13:43:55 +01:00
holtenc
8fe29f2784 Add Prime_L V2 and Prime_EXL Plus (#8111)
* correct indicator light states.

function of indicator lights was inverted. these changes correct that.

* flesh out keymaps pre production

* Enable extrakey in rules

* Prime_BLE initial commit

* Initial commit for Prime_L V2

* Update info.json

correct key spacing.

* update copyright

* Update readme.md

* Inital commit

* updates before PR into QMK master

* Drop Prime_EXL Plus from PR. Make requested changes to Prime_L V2

* Rename keyboards/primekb/Prime_l_v2/config.h to keyboards/primekb/prime_l_v2/config.h

* Rename keyboards/primekb/prime_l_v2/config.h to keyboards/primekb/Prime_l_v2/config.h

* remove directory Prime_l_v2

* re-submit with proper folder name.
2020-02-08 15:03:44 +11:00
worldspawn00
dd6f92541d [Keyboard] adding keyboard: neuron (#7980)
* neuron

* Update keyboards/walletburner/neuron/neuron.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/neuron.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/walletburner/neuron/readme.md

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

* Update keyboards/walletburner/neuron/readme.md

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

* Update keyboards/walletburner/neuron/readme.md

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

* Committed review suggestions

* Corrected bootloader to use atmel-dfu

* One last tweak to correct MANUFACTURER

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-07 19:42:29 -08:00
worldspawn00
610cf729af [Keyboard] adding keyboard: pain27 (#7977)
* pain27

* Applied review suggestions

* Correct DEBOUNCE verbiage, remove .ini files

* Readme tweaks

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:42:03 -08:00
worldspawn00
96a4388c43 [Keyboard] adding keyboard: sl40 (#7978)
* sl40

* Amended with collaborator suggestions

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:39:44 -08:00
worldspawn00
a86a8a236a [Keyboard] adding keyboard: houndstooth (#7981)
* houndstooth

* Amended with collaborator suggestions

* LAYOUT fixup, left crud in keymap

* Fix missing comma in keymap.c

* Correct RGBLIGHT_ENABLE to no

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:38:20 -08:00
worldspawn00
f44a89ca77 [Keyboard] adding keyboard: kodachi50 (#7976)
* kodachi50

* Amendeded with collaborator suggestions

* Add a missing key to layer 2 top row

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-02-07 19:37:46 -08:00
worldspawn00
a1a88b8ac7 [Keyboard] adding keyboard: gothic70 (#7982)
* gothic70

* Update keyboards/wsk/gothic70/readme.md

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

* Update keyboards/wsk/gothic70/readme.md

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

* Update keyboards/wsk/gothic70/readme.md

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

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

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

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/config.h

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Update keyboards/wsk/gothic70/keymaps/default/keymap.c

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Committed review suggestions

* Small indicator LED layer function tweak

* Fixing layout for configurator

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>
2020-02-07 19:34:37 -08:00
worldspawn00
df029f9660 [Keyboard] adding keyboard: gothic50 (#7983)
* gothic50

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/config.h

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/wsk/gothic50/keymaps/default/keymap.c

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

* Update keyboards/wsk/gothic50/readme.md

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

* Update keyboards/wsk/gothic50/readme.md

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

* Update keyboards/wsk/gothic50/readme.md

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

* Update keyboards/wsk/gothic50/rules.mk

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* Updated with collaborator suggestions

* Fixing layout for configurator

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-02-07 19:32:14 -08:00
James Young
b62829031d [Keyboard] YMDK NP21: matrix and keymap refactor (#8112)
* YMDK NP21: matrix and keymap refactor

- refactored layout macros
  - LAYOUT_ortho_6x4 orients the keyboard with the USB port to the back instead of to the right
  - LAYOUT uses the previous sideways orientation (included for backwards compatibility)
- removed redundant includes from ymdk_np21.h
- added a readme for the default keymap

* add Configurator layout support
2020-02-07 19:15:35 -08:00
Mehmet Denizhan Erdem
43c0a9293e [Keymap] Added keymap for keebio/nyquist (#8108)
* my custom keymap for nyquist rev3

* Formatted keymap and added readme
2020-02-07 19:07:04 -08:00
Joel Challis
4962b743d2 [Keyboard] Port SPLIT_USB_DETECT to lily58 (#8107)
* remove unused files

* Port SPLIT_USB_DETECT to lily58
2020-02-07 19:03:51 -08:00
Max Rumpf
ea2fcb5b08 [Keymap] Phoebe/Maxr1998 keymap: enable space cadet with curly braces (#8096)
* Phoebe/Maxr1998 keymap: enable space cadet with curly braces

* Revert space cadet for left shift, open curly brace on right shift
2020-02-07 18:54:41 -08:00
Yasuhiro SHIMIZU
fd2ac4b4d5 [Keymap] add lily58 yshrsmz keymap (#8095)
* add lily58 yshrsmz keymap

* apply requested changes

* remove more backslashes

* remove more backslashes

* update rules.mk
2020-02-07 18:53:53 -08:00
esinlayo
7182e9a8ad [Keyboard] Remove i2c write command when reading columns on Ergodox EZ (#8092)
* Remove i2c write command when reading cols on Ergodox EZ

* Comment on mcp23018 address state during read_cols
2020-02-07 18:52:02 -08:00
fauxpark
3b1f29a5d6 [Keyboard] Misc tidyups for Chidori (#8091) 2020-02-07 18:50:42 -08:00
Alfred Maler
707c04b4ab [Keymap] Add users/alfrdmalr and switch to layouts (#8030)
* WIP do not merge

* first pass at custom preonic layout

* add auto shift and reset via leader key

* Update readme

* update copyright notice

* formatting changes

* fix: use MO instead of process_record_user

* added backslash and moved grave position

* remove extraneous 'j' characer in NUMPAD template

* update template formatting

* remove process_record_user

* swap "!" with "@"

* fix readme formatting

* update readme layout image

* restore settings layer

* add windows minimize sequence

* fix: switch to correct seq function for three-key sequence

* fix: missing semicolon

* refactor: move keymap to userspace and generic 5x12 layout

* add numlock to numpad layer

* add readme

* update readme formatting

* remove unused wrappers from layout keymap

* update readme title to reflect new location

* remove alfrdmalr directory from preonic/keymaps

* clean up user config
2020-02-07 18:42:04 -08:00
James Young
be05de6a3d XD84: Configurator bugfix for ISO layout (#8117)
* switch to debug linting

* move ISO Enter to its proper location
2020-02-07 18:16:44 -08:00
James Young
889eb51fb5 ZJ68: complete Configurator layout support (#8116)
Only LAYOUT_all had its layout data present; the data for LAYOUT_65_ansi and LAYOUT_65_ansi_split_bs was missing.
2020-02-07 18:09:55 -08:00
Cody Bender
e77188458f Add QMK Compile Context Sensitivity (#6884)
* Add context sensitive compile, without config check

* Initial full working state. Plan to refactor

* Refactor loop for simplicity, add comments

* Update docs/cli.md with qmk compile examples

* Simplify path for keyboard derivation

* Update path to use path.join instead of concat

* Refactor keyboard path, the skully way

* Add in keymap folder support

* Add /layouts compile support

* Update docs/cli.md with empty compile in layouts

* Add comments to compile.py

* Update docs for clarity, and fix compile error typo

* Fix config option compile

* Fix layout compile and failure mode

* Add rules.mk check

* Fix variable names for global config

* Add in_layout priority

* Remove default fallback in favor of throw, update docs

* Add keymap folder context

* Fix formatting

* Add os import

* Convert to create_make_command

* Fix Travis lint errors

* Remove blank line with whitespace

* Add blank lines for readability

* Remove unnecessary config logic

* Update Docs to add flash

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

* Shift config precedence to MILC

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-02-07 21:48:37 +01:00
Joel Challis
774cbbf879 Refactor ergo42 to use split_common (#7925)
* Initial refactor of ergo42 to split common

* Prevent fallthrough for DIODE_DIRECTION
2020-02-07 13:59:18 +00:00
Joel Challis
c93093569e Refactor mint60 to use split_common (#8084) 2020-02-07 13:58:55 +00:00
Marius Rugan
fb6f581157 jj4x4: README update (#7854)
* Updates README jj4x4

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md

* Update keyboards/jj4x4/README.md
2020-02-07 02:13:53 -08:00
worldspawn00
e43d143ab0 [Keyboard] adding keyboard: tkl30 (#7979)
* tkl30

* Amended with collaborator suggestions

* s/DEBOUNCING_DELAY/DEBOUNCE/

* Used noroadsleft's PID suggestion

* Committed noroadsleft's keymap formatting and rules.mk suggestions

* LAYOUT formatting and readme suggestions
2020-02-06 21:28:08 -08:00
fauxpark
a73c38112d Move Grave Escape, Lock and Leader keycodes into their own sect… (#8093) 2020-02-07 15:54:14 +11:00
ridingqwerty
e3444084fb Committing fix to info.json for wsk/jerkin (#8110) 2020-02-06 21:58:16 -05:00
Ted M Lin
d84eb14b3a Use function for KEYCODE2 routines instead of macro. (#8101)
* Option to use function for KEYCODE2 routines.

Convert the KEYCODE2SYSTEM and KEYCODE2CONSUMER macros to functions,
defaulting to using the macros.  The function form allows the compiler
to optimize the switch statement itself, over the macro nested
ternaries.

To enable this feature, #define USE_KEYCODE2_FUNCTION.

Testing against a random selection of avr-based keyboards, this
increased available flash by ~500 bytes. For arm-based keyboards,
the available flash increased by ~400 bytes.

* Replace macro with function entirely.

As zvecr states, go bold and just commit to using the function instead
of the macro.

* Reformat whitespace now that functional review is done

Verified against clang-format output.
2020-02-07 12:53:43 +11:00
worldspawn00
fe814be287 [keyboard] adding keyboard: jerkin (#7975)
* jerkin

* Update config.h

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>
Co-Authored-By: Akaash Suresh <casa.akaash@gmail.com>

* Update rules.mk

* Apply suggestions from code review

* Missing closing parenthesis in one of the suggestions.

* Finalize collaborator suggestions

* One final tweak to standardize MANUFACTURER

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Akaash Suresh <casa.akaash@gmail.com>
2020-02-06 10:55:55 -05:00
James Young
6a0e155afe Ergosaurus Configurator support bugfix (#8104)
Corrected the layout macro name in `info.json`.
2020-02-06 13:38:41 +00:00
James Young
917eebcfac Xelus Dawn60: layout macro update and Configurator layout support (#8102)
* fix layout macro and update keymaps

K2D switch position is actually physically on the top row, as the right half of a split Backspace.

* add QMK Configurator layout support
2020-02-06 13:33:43 +00:00
MechMerlin
de288adb97 VIA Support: 1upkeyboards 1up60rgb (#8097)
* add VIA keymap to 1up60rgb

* change VID to align with other 1up boards
2020-02-05 14:51:58 -08:00
plikki
78ae77f307 [Keymap] User keymap for AKB/Raine (#8081)
* Adding my keymap

Adding a personalized keymap to the Raine keyboard. This diffirentiates itself by being useble with nordic characters even when the bottom row has blockers. Also added ASCII art to help visualize what you are doing when programming the board.

* Update Readme.md

Ned image of the board

* Update Readme.md

Forgot a space in Readme

* Update Readme.md

And another missed space

* Update keymap.c

Renoved Definetion that is not used

* Update Readme.md

* Remove files for renaming

* Adding files after renaming

Was unable to get Girthub to push renamed files/folders. Therefore removeing and adding them again.
2020-02-05 12:42:22 -08:00
MechMerlin
b015c37922 VIA Support: KBD67 mkii v1/v2 (#8085)
* add the via keymap

* get an appropriate unused VID

* fix formatting up a bit

* Update keyboards/kbdfans/kbd67/mkiirgb/v1/config.h

* Update keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
2020-02-05 12:34:08 -08:00
MechMerlin
ae7b208d32 fixup keymap for 65_ansi_blocker (#8099) 2020-02-05 18:29:52 +00:00
KamoNanban
9fe0c87e9a [Keyboard] manta60 (#8068)
* manta60_update

* Update config.h

* Update config.h

* Update config.h

* Fixed info and readme

* Fixed config.h

* Fixed rules.mk

* Fixed keymap.c

* Update keyboards/manta60/rules.mk

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

* Fixed keymap.c

* Fixed rules.mk

* Update rules.mk

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

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

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

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

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

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

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

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-02-05 09:14:00 -08:00
mechlovin
b32a9a201d [Keyboard] add Infinity CE (#8067)
* add new pcb Inffinity CE

* update

* Update config.h

PID change, rgb version will be release

* Update config.h

* Update infinityce.c
2020-02-05 09:12:53 -08:00
Ibnu Daru Aji
fb980cf032 [Keyboard] Added Atreus Pro Micro variant (#8059)
* new alternative controller.

* following suggestions at qmk's 8059.

* forgot to replace some underscores and keycodes.

* following drashna's suggestions at qmk's 8059.

* following zvecr's suggestion in qmk's 8059.

* following noroadsleft's suggestion at qmk's 8059.
2020-02-05 08:53:28 -08:00
Daniel H Klein
d3286af398 Add Uni660 Keyboard (#8018)
* 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

* add uni660 keyboard

* remove zip

* remove redundant rules.mk

* remove redundant via keymap

* Update keyboards/sirius/uni660/config.h

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

* Update keyboards/sirius/uni660/config.h

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

* remove unnecessary functions

* fix if

* add back via keymap, remove old eeprom code

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/rules.mk

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

* Update keyboards/sirius/uni660/rules.mk

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

* changes requested for qmk

* Update keyboards/sirius/uni660/rules.mk

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

* Update keyboards/sirius/uni660/rules.mk

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

* Update keyboards/sirius/uni660/rules.mk

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

* debouncing and other minor changes

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.c

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

* Update keyboards/sirius/uni660/uni660.h

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-02-05 16:30:31 +11:00
ENDO Katsuhiro
aed18a5ff3 [Keyboard] Add a new keyboard Chidori. (#7496)
* [Keyboard] Add a new keyboard Chidori.

* Update keyboards/chidori/info.json

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

* Update keyboards/chidori/chidori.h

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/keymaps/extended/keymap.c

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/readme.md

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update keyboards/chidori/rules.mk

* Update rules.mk

* Delete unnecesarry lines.

* Changes layer keys handing.
2020-02-04 20:47:59 -08:00
Joel Challis
307be48de9 Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)
* Update SPLIT_USB_TIMEOUT -500ms

* Align keyboard level SPLIT_USB_TIMEOUT defaults

* Align keyboard level SPLIT_USB_TIMEOUT_POLL

* Review fixes
2020-02-04 19:37:04 -08:00
Joel Challis
a557a5b2c5 [Keyboard] Refactor deltasplit75 to use split_common (#8083)
* Refactor deltasplit75 to use split_common

* Refactor deltasplit75 to use split_common - small tidy up
2020-02-04 18:59:20 -08:00
MechMerlin
a6b0a74d95 Add RESET key for default keymap in Satisfaction 75 (#8088) 2020-02-05 13:51:09 +11:00
Joel Challis
393937b43f Relocate grave keycode processing (#8082)
* Relocate grave keycode processing

* Tidy up code

* Refactor grave -> grave_esc
2020-02-04 18:49:10 -08:00
fauxpark
efe8bd8e92 [Keyboard] LFKPad refactor (#8079) 2020-02-04 18:41:19 -08:00
fauxpark
74e3cad728 Remove entries for Minidox eep files from gitignore (#8077) 2020-02-04 18:30:57 -08:00
Drashna Jaelre
0010d0c45e Add Midi Endpoint task to ChibiOS main (#8071) 2020-02-04 18:28:47 -08:00
Jesse Leventhal
8a749a7a8e Encoder brush size (#8087)
* Added brush size to encoder knob as new keymap

* Encoder keymap added
2020-02-05 12:56:50 +11:00
ridingqwerty
964ed17716 ridingqwerty: userspace update (#8076)
* Userspace overhaul

* Remove testing directory

* Minorca keymap tweaks
2020-02-04 20:17:10 +01:00
Jonas Avellana
50554ca270 Ninjonas userspace (#8070)
* [keymap(kyria)] moved OLED & encoder implementation to separate classes

* [feat] created logic to cycle through hue wheel when starting keyboard

* [feat] created logic to cycle through hue wheel and return to user's default color

* [refactor] updating OLED layout for crkbd & lily58

* [refactor] updating OLED layout for crkbd & lily58

* [fix(8070)] updating encoder.c logic based off drashna's code review

* [refactor(8070)] added key to send  + Shift + M
2020-02-04 12:50:50 +11:00
MechMerlin
c6f389b527 Merlin's userspace updates (#8074) 2020-02-03 22:37:01 +01:00
skullydazed
5780c94423 Improve the functionality of qmk.questions (#8020)
* wip

* tested and working

* remove unused import

* Update lib/python/qmk/questions.py

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

* fix flake8 errors

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-02-03 09:04:58 -08:00
Mike Rix Wolfe
acef512730 [Keymap] Add User Keymap for FC660C (#8062)
* add my keymaps

* tri layer keymap

* update tri layer

* update tri layer

* cleaning up

* formatting

* move to correct location

* lily58: move caps off mod key in sublayer

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

* remove unnecessary trailing whacks

* remove unneeded file

* swap spacebar

* update code for comments in PR

* add fc660c keymap

* rm readme

* move layer key

* remove inconvenient alternate keys

* swap format

* add them media keys

* add rules mk

* swap caps and ctrl

* remove unneeded config

* use gesc instead of esc
2020-02-02 13:11:17 -08:00
QMK Bot
fa9c74c6a2 format code according to conventions [skip ci] 2020-02-02 20:47:40 +00:00
fauxpark
b2ce2f8a34 Dedupe extrakey report struct, and send functions in V-USB & LUFA (#7993)
* Dedupe extrakey report struct, and send functions in V-USB & LUFA

* Doc comment for consistency

* Wrap it in ifdef to prevent unused function error

* Do the same for ATSAM
2020-02-02 12:17:05 -08:00
Joel Challis
5b91c3e0a0 Fix cformat processing files within ignore folders (#8063) 2020-02-02 16:33:17 +00:00
fauxpark
1877736fa4 Update dirty submodule make message (#8065) 2020-02-02 13:24:29 +00:00
James Young
c096be3831 [Docs] future branch housekeeping 2020-02-01 21:36:59 -08:00
QMK Bot
4888a118c3 format code according to conventions [skip ci] 2020-02-02 02:40:30 +00:00
fauxpark
e036b94a21 Align ATSAM HID descriptors with LUFA/ChibiOS (#7651)
* Align ATSAM HID descriptors with LUFA/ChibiOS

* Don't hardcode raw endpoint size
2020-02-02 13:10:57 +11:00
QMK Bot
1a79f14e43 format code according to conventions [skip ci] 2020-02-01 09:46:34 +00:00
Pavel Župa
4e6d1ae0ea Fix timer_elapsed() overflow issue for STM32F103 and other ChibiOS boards (#7595)
* fixed strange space cadet timer owerflow on STM32F103

* Moved elapsed time fix to timer.c
2020-02-01 20:17:28 +11:00
James Young
1858c3ed11 Skog Lite: disable Console; update info.json (#8058)
* disable Console to save firmware space

* rules.mk templating

Add comments regarding the rules, to more closely match the ps2avrgb template.

* update info.json

This board has a quite interesting take on the standard TKL; why not show it off?
2020-02-01 00:42:42 -08:00
Nick Brassel
8e550fc11a Add thread safety around i2c_master for ChibiOS/ARM. 2020-02-01 17:44:39 +11:00
Jonas Avellana
1aee492c0f [keymap(kyria), refactor] created kyria keymap. refactored ninjonas userspace (#8053)
* [keymap(kyria), refactor] created kyria keymap. refactored ninjonas userspace and keyboards

* [fix(#8053)] removed redundant code based off Duckle29's code review

* [fix(#8053)] fixing typos

* [refactor(#8053)] updating oled timeout

* [fix(8053) resolved code review issues identified by noroadsleft
2020-01-31 22:38:05 -08:00
mechlovin
fdabf524f2 [Keyboard] add Hannah910 V2 PCB and VIA support (#8024)
* add Hannah910 V2 and VIA support

add rev.2 pcb and via support

* Update config.h

* update

* Create config.h

* Update

* update

* update

* Move keymap folder

* add more layer and edit readme.md

* readme.md update

* update

* update

* Update hannah910.h
2020-01-31 19:02:29 -08:00
MechMerlin
e565948ffd Noxary 280 Backwards LED Fix (#8057)
* fix logic and update to newest led_update_kb routine
2020-01-31 12:33:08 -08:00
MechMerlin
5c5a05212e [Keyboard] VIA Support: 1upkeyboards 1up60hte (#8052)
* update the vendor id for 1upkeyboards 1up60hte

* add the via keymap and rules file

* fix typo

* move the LTO to the keyboard's rules.mk

* Update keyboards/1upkeyboards/1up60hte/config.h
2020-01-31 11:55:11 -08:00
Nick Brassel
b28ee6b039 Fix misunderstanding of CPPFLAGS and CXXFLAGS. 2020-01-31 15:29:23 +11:00
Jorge Noguera
6544bd2e65 [Keymap] Customized layouts for the Keebio/Quefrency65 (#7947)
* Created the yoryer layout for the Quefrency 65%

* added rgb control layer

* Required changes to resolve PR #7947 issues

* - Updated the layer list as an enum
- Removed .gitignore file from keymap folder

* Removed the .gitignore from keymap folder
2020-01-30 20:22:25 -08:00
takashiski
f31411af17 [Keymap] add new keymap (xd75 atomic style japanese layout) (#7944)i
* init jp

* update

* update

* update

* update

* Update keyboards/xd75/keymaps/atomic_style_jp/keymap.c

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

* remove config.h

* remove ____T___

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-01-30 20:21:33 -08:00
ai03
479c6a68cf [Keyboard] Add support for Southpaw Full Size (#8029)
* Begin work on spfs, migrating ancient config

* QMK breaks if there's a dash in the board name

* Update info.json

* Make indicator LEDs work

* Build a readme

* Change title to match official GB thread name

* Add an ANSI WKL layout for simplicity

* Adjustments as per pullreq recommendations

* Remove unused functions from other keymap
2020-01-30 21:14:19 -05:00
xyzz
eb309be6f0 Improve VIRTSER performance (#7528) 2020-01-31 11:30:41 +11:00
Joel Challis
4139de3cc9 Fix AVR boards which were overriding backlight without setting… (#8044)
* Add backlight custom driver to all boards not declaring it but overriding backlight

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Remove old tmk references from show_options.mk

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-31 10:44:40 +11:00
Jason Dunsmore
7514f5124a [Keymap] Update keymap for user jasondunsmore (#8047) 2020-01-30 15:25:16 -08:00
Yatara
31e4583f4a [Keyboard] Add support for Drink Me (#8039)
* Add initial configuration and keymaps for Yatara Drink Me.

* Apply suggestions from code review

* Apply suggestions from code review

* Add transparent layers in VIA layout so there are four layers in total. Amend closing bracket indentation in keymap.c files.
2020-01-30 14:37:23 -08:00
ridingqwerty
17a089d21b Trim firmware size changes from default rules.mk, part 4 (#8046)
* Trim firmware size changes from default-ish rules.mk files

* Trim sizes from westfoxtrot boards
2020-01-31 09:10:23 +11:00
MechMerlin
db2f187493 Documentation: KBD75 (#8038)
* update kbd75 readme

* update bmini readme

* update wkl.kr readme

* Update keyboards/kbdfans/kbd75/readme.md

* Update keyboards/kbdfans/kbd75/readme.md
2020-01-30 11:37:00 -08:00
ridingqwerty
d2e1cc4d48 Trim firmware sizes from default rules.mk, part 3 (#8045) 2020-01-30 11:13:49 -08:00
ridingqwerty
0f7d294ac3 Remove filesize changes from default-ish rules.mk files, sans handwired (#8040) 2020-01-30 13:47:48 -05:00
Alberto Grespan
c66a4a9831 [Keyboard] WhiteFox vanilla layout (#8043)
* Add the Whitefox vanilla layout

Initial commit for whitefox vanilla keymap

Fix the mapped layout to match vanilla

Cleanup vanilla default

Rework the info file

Remove vanilla keymap as we don't really need this
2020-01-30 02:52:35 -08:00
Joel Challis
e57af8db0d Fix 'Makefile:560: keyboards/<keyboard>/rev1/rules.mk: No such file or directory' (#8042) 2020-01-30 02:48:30 -08:00
Addison Cole
0968cf8b00 Updates cKeys/theDora README with explicit flashing instructions (#8016)
* adds to theDora readme for more explicit directions on flashing,
with links and how to enter bootloader mode.

* fmt

* Corrects language of steps for loading firmware

* Update keyboards/ckeys/thedora/readme.md
2020-01-30 01:45:27 -08:00
Bryan Arendt
0f9982c53e [Keyboard] Adds ogre ergo single (#8012)
* Adds ogre ergo single (non-split) version

* use generic pids
2020-01-30 01:18:44 -08:00
Cody Bender
6d5812a86c [Keyboard] Add Ergosaurus Support (#8013)
Initialize config

* Update matrix size

* Update Keymap

* Rename files to remove hyphen

* Rename board and folders

* Fix ergosaurus.h typo

* Fix ergosaurus.h layout matrix

* Update column pins

* Fixed ergosaurus

* Add Reggie layout

* Update Ergo keymap

* Update with fixes from PR #8013

* Fix KeyHive link

* Remove config.h and extra whitespace from README

* Update PID, README and rules spacing

* Update rules.mk
2020-01-30 01:16:11 -08:00
Joel Challis
1249594cf0 Refactor minidox to use split_common (#7924)
* Initial refactor of minidox to split_common

* post rebase fixes
2020-01-29 17:33:15 -05:00
stanrc85
e04c5edaae Userspace and keymap updates (#8037)
* Add PGUP,PGDN to keymaps

* Enable VIA support on userspace for 1up60hse

* Enable DZ60 VIA in rules

* Enable Romac VIA in rules
2020-01-29 17:23:55 -05:00
ridingqwerty
66fe3001e4 Trim firmware sizes from default rules.mk, part 1 (#8027)
* Removed reference to firmware size in 0-9,a-f board-level and default keymap 'rules.mk' files

* Correct some 'rules.mk' in boards buried under vendor folders

* PR8027 patch

Co-authored-by: GeorgeKoenig <35542036+GeorgeKoenig@users.noreply.github.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-29 12:51:25 -05:00
moseschmiedel
7149557bb4 Add German programming layout for Lets Split (#8014)
* Add German programming layout for Lets Split

* Update copyright in config.h

* Add Hash-Symbol to keymap

* Change to fit suggestions in PR

* Changes as requested, but broken.

* Fix layer switching issue
2020-01-29 10:17:45 -05:00
Danny
2abc0e17e7 [Keyboard] Add Quefrency Rev 2 (#8001)
* Add Quefrency Rev. 2

* Add encoder support

* Add RGB LED mapping info

* Add diode direction

* Revert removal of default folder for CI purposes

* Remove unneeded lines

* Rename ISO layout macros
2020-01-28 14:13:57 -08:00
Mikkel Jeppesen
197a401be6 Qmk doctor os check to support newer msys2/w10 installations (#8031)
* Fixed OS detection on newer MSYS installations

* made OS sting lower case
2020-01-28 22:21:00 +01:00
MechMerlin
4a208b8951 [Keyboard] 1up60hse VIA Support (#7992)
* add VIA support for 1up60hse

* choose a vendor and product id that is not taken

* add mousekey_enable set to no as per Wilba's recommendation

* Update keyboards/1upkeyboards/1up60hse/keymaps/via/readme.md

* Update keyboards/1upkeyboards/1up60hse/keymaps/via/readme.md

* add a fourth layer

* might as well remove the config file as we are not including the one thing that was in it
2020-01-28 13:04:50 -08:00
coseyfannitutti
1e90f5c71c Mysterium firmware fix (#8032)
* Update config.h

* Update rules.mk

* Update usbconfig.h

* Update config.h

* Update rules.mk

* Update usbconfig.h
2020-01-29 07:38:27 +11:00
Max Rumpf
0d80c7bd59 [Keyboard] Fix Pulse4k info.json LAYOUT name (#7965)
* Fix Pulse4k info.json LAYOUT name

* Add missing functions to fix configurator

Add empty encoder functions to the keyboard code, as the configurator doesn't see the keymap defined functions at first.
To be able to override these functions, they are marked as 'weak'.

* Rework encoder functions another time

Default implementation is now provided as part of the keyboard, but they can still be overriden within the keymap (template is commented out by default)
2020-01-28 09:08:39 -08:00
Nick Brassel
4d06d2835c Move CORTEX_ENABLE_WFI_IDLE=TRUE to rules.mk files. 2020-01-28 23:45:42 +11:00
Samuel Jahnke
92c62352cf [Keymap] Finalize Keymap Planck/Samuel (#8005)
* indent and layout changes

* finalizations

* use layout macros here instead of the raw matrix arrays
2020-01-27 17:47:36 -08:00
Rafael Azevedo
1f0404e3c5 [Keymap] Added gaming layout and read me (#7996)
* Added gaming layout and read me

* Code format changes and spelling fixes for PR

* Moved keymap to different folder
2020-01-27 17:42:46 -08:00
shela
ee88feb759 [Docs] Update Japanese translation (#8015) 2020-01-27 17:18:12 -08:00
Flexerm
eb5e513d26 [Keyboard] FLX Virgo, cleaned up layouts and added VIA keymap (#7997)
* Reworked for VIA support

Reworked for VIA support and tidying up of older code.

* Fixed naming issues, and prepared for VIA compat

Via compat added

* Improve layouts, tidy code, via keymap

Added support for VIA and cleaned up some code and layouts.

* Implimented suggestions by MechMerlin

* Fix capitalisation 

Mistake raised by Drashna now fixed.

* Tidy comments as requested by noroadsleft

* Tidy comments as requested by fauxpark
2020-01-27 17:05:29 -08:00
dohq
a539bd63fe Fix/remove missing package (#7897)
* [fix] yay instead pacman install bootloadhid

* [fix] add needed option

* [mod] output red color

* [fix] overwrite avr-gcc package

* [mod] disable install bootloadhid from aur and check already installed

* Apply suggestions from code review

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

* Update util/linux_install.sh

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-01-28 00:23:24 +00:00
Daniel Rodríguez Rivero
1b7a003d84 [Keymap] update to Danielo515 keymaps (#8004)
* feat(build): added script for compiling with docker easily

* chore: bring my own build with docker to master

* feat: merge ergodox ez into latest maste

* chore: remove my build with docker file

* chore: remove my changes to process_leader

* feat: more modular user danielo515

* Apply suggestions from @ridingqwerty

Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>

* chore: more suggestions implemented

* chore: add my basic details

* Apply suggestions from @drashna

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

* fix: more @drashna fixes

* feat: @fauxpark optimization

* fix: some more @drashna improvements

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

* chore: small improvement on layout

* fix: some more @drashna improvements

* chore: remove some F dance

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-01-27 14:42:38 -08:00
Joel Challis
0804f0a5dd Merge pull request #7995 from zvecr/feature/split_arm_i2c_remove
Remove compilation of i2c for arm split
2020-01-27 22:40:32 +00:00
Joel Challis
7342c335d2 Refactor stm32duino f103 keyboards to use new central board config files (#7706)
* Create central board for bluepill

* Remove duplicate board files

* Refactor to use new central board config files

* Fix cannonkeys f103 boards
2020-01-27 22:39:30 +00:00
Joel Challis
50855593ff Migrate common ld scripts to common location (#7887)
* Migrate common ld scripts to common location

* Remove duplicate ld scripts

* Update build to look at common ld location
2020-01-27 22:38:55 +00:00
Joel Challis
9a0245b778 Fix boards which were overriding backlight without setting custom (#7970) 2020-01-27 22:31:54 +00:00
Bryan Arendt
43d2a0e167 [Keyboard] Adds ogre ergo split (#8011)
* Adds ogre ergo split

* remove uneeded line breaks
2020-01-27 10:14:50 -08:00
skullydazed
212aeee202 Revert "Clueboard Rev4 Updates aka Volcano 660 (#7942)"
This reverts commit e0a0430c31.
2020-01-27 17:38:47 +11:00
Michael F. Lamb
5fb95c5f94 create users/datagrok (#7653)
* users/datagrok: add shared functions

* users/datagrok: improve base-layer selection feature

* users/datagrok: add README.md
2020-01-26 23:26:40 -05:00
Mikkel Jeppesen
05d6e6ca78 Ensure setPinInput actually sets input high-Z (#6237)
* Ensure setPinInput actually sets input high-z

* Fixed _PIN_ADDRESS Macro arguments
as recommended by vomindoraan

* Fixed instances of setInput to use new behavour

* Changed kmac matrix to use input with pullups

* Update keyboards/gh60/revc/revc.h

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

* Fixed input state for unselect_rows

* fixed merge conflict

* Updated all instances of older uses of setPinInput()

* Fixed naming mistake

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-26 23:04:38 -05:00
zvecr
992656e753 Fix cannonkeys f103 boards 2020-01-26 23:35:57 +00:00
zvecr
ee86be9dca Refactor to use new central board config files 2020-01-26 23:35:57 +00:00
zvecr
98e5555705 Remove duplicate board files 2020-01-26 23:33:03 +00:00
zvecr
d3abebb601 Create central board for bluepill 2020-01-26 23:33:03 +00:00
Jumail Mundekkat
645c5fabf2 Add VIA support to MxSS, plus minor tweaks (#7809)
* Add VIA support to mxss and general cleanup

* Add support for RGB test for FLEDs

* Add LAYOUT_all to allow for more configuration

* Remove blank layers

* Updated readme

* Improve use of EEPROM

* Credit where its due

* Use the latest iteration of rgblight code

* Keep the RGB timer running if the front LED is in RGB mode

* Fix RGB breathing animation

* Better supported RGB animation
Only thing not working is alternating, but that's not too important

* Abstract front LED handlers from main kb code

* Add support for indicator LED color changing

* Remove debug statement

* Persist indicator LED colors

* Mark custom sections in rgblight.c

* Light commenting

* Fix up keymaps

* Add/update comments

* Remove bloat from default hex

* Tidy a stray tab

* Out with the old, in with the new

* Out with the old, in with the new

* Add LAYER_STATE_8BIT for VIA keymap
2020-01-26 17:06:56 -05:00
yiancar
7f7b6b08e8 [Keyboard] Initial commit for mc76k (#8000)
* Initial commit for mc76k

* Update config.h
2020-01-25 23:05:22 -08:00
James Young
72d7661b30 suggestions by skullydazed 2020-01-25 18:15:07 -08:00
James Young
d0d106cef7 change Instructions listing in Docs summary 2020-01-25 18:15:07 -08:00
James Young
d603e94f68 add Breaking Change PR Instructions doc 2020-01-25 18:15:07 -08:00
Lucas Moreira
9ff61601e3 [Keymap] crkbd/kidbrazil adding layer dependent RGB & better idle timeout. (#7901)
* Added KidBrazil custom keymap for CRKBD
-Custom Font
-Custom OLED output

* Added missing readme

* Oled Timeout Update for KidBrazil Keymap (#1)

* Setup Oled timeout based on simple timer

* Cleaned up comments and added timeout for LEDs

* Fixed some small errors

* Updated oled timout with matrix scan

* Updated oled timout with matrix scan

* Update withou eeprom

* Update timer code

* Use process user instead of keymap

* Added ifdef to protect oledtimer

* Updated with half timeout state for logo

* Removed middle tier timer

* Final cleanup of unused files

* Updated code as per suggestions & requests

* Second round of revisions

* Updated keymap to better handle LED timeout
- Added boolean to hold LED state
- Added init function to set rgb to known state
- Modified RGB_TOG to work with noeeprom commands

* Finished adding the timeout for OLED and testing on CRKBD

* Updated documentation

* fixed the timeout logic so it works as intended

* Added initial limits to color settings

* Added layer reset as part of the iddle timeout process

* Split Keymap into more manageable files

* Finalizing RGB Layer status on CRKBD
- Refactored OLED timeout to deal only with oled
- If user remains iddle on game layer for too long it will switch to
default
- LED / OLED iddle working
- Minor changes to _SYM layer
- Removed some rgb controls from keyboard due to layer dependent RGB
colors

* Update keyboards/crkbd/keymaps/kidbrazil/keymap.c

Used suggestion from Drashna to replace EEPROM_RESET with shorter version.

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

* Update keyboards/crkbd/keymaps/kidbrazil/keymap.c

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

* Implemented drashna's comment

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-01-25 14:43:57 -08:00
QMK Bot
09370a95db format code according to conventions [skip ci] 2020-01-25 22:04:42 +00:00
George Harris
e9ffc53476 Fix unaligned access with LTO (#7801)
Forces 4 byte alignment for USB input & output buffers to prevent unaligned accesses by chibios with LTO enabled
2020-01-25 13:35:39 -08:00
fauxpark
480a391929 [Keyboard] Daisy refactor (#7985) 2020-01-25 12:43:43 -08:00
yohewi
154336ee27 [Keyboard] numatreus (#7929)
* Add files via upload

* Delete NumAtreus

* 20190405

* 20190405

* Delete keymap.c

* Delete config.h

* Delete keymap.c

* Delete rules.mk

* Delete rules_default.mk

* Delete readme.md

* Delete NumAtreus.c

* Delete NumAtreus.h

* Delete config.h

* Delete info.json

* 20190404

* Add files via upload

* Add files via upload

* 20190405

* Delete NumAtreus

* 20190406

* 20190407

* 20190408

* 20190408

* 20190410

* Update readme.md

* Update readme.md

* Add files via upload

大文字小文字の修正をしました。

* Update readme.md

* Update readme.md

* Update readme.md

* Delete NumAtreus.c

* Delete NumAtreus.h

* Add files via upload

* 20200118

* 20200118_default

* update

* readme

* Delete rules.mk

* Delete readme.md

* Delete numatreus.h

* Delete config.h

* Delete info.json

* Delete info.json_txt

* Delete numatreus.c

* Delete config.h

* Delete keymap.c

* Delete rules.mk

* Delete keymap.c

* Delete keymap.c

* del

* update

* update

* Update keyboards/numatreus/config.h

* Update keyboards/numatreus/config.h

* Update keyboards/numatreus/config.h

* Update keyboards/numatreus/keymaps/hdbx/keymap.c

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/keymaps/hdbx/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/config.h

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* Update keyboards/numatreus/readme.md

* 20190119_Modified

* 20200119_Modified

* 20200119_uranuma

* Update keyboards/numatreus/keymaps/hdbx/keymap.c

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

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

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Update keyboards/numatreus/rules.mk

* Delete info.json_txt

* 20200121_Modified

* 20200121_Modified

* 20200121_Modified

* 20200121_Modified

* 20200122

* Update keyboards/numatreus/config.h

* 20200122_Modified

* Update keyboards/uranuma/rules.mk

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/uranuma/rules.mk

* Update keyboards/uranuma/rules.mk

* Update keyboards/uranuma/rules.mk

* Update keyboards/uranuma/rules.mk

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/numatreus/keymaps/like_jis/keymap.c

* Update keyboards/uranuma/config.h

* Update keyboards/uranuma/readme.md

* Update keyboards/uranuma/readme.md

* Update keyboards/uranuma/readme.md

* 20200122

* Delete config.h

* Delete uranuma.h

* Delete uranuma.c

* Delete rules.mk

* Delete readme.md

* Delete keymap.c

* Delete info.json

* Update keyboards/numatreus/rules.mk
2020-01-24 19:33:04 -08:00
Joel Challis
d4ccb2e0e6 Fix printf buffer overflow when cols>16 (#7998) 2020-01-24 21:57:30 -05:00
skullydazed
5e65af3a76 Beef up how qmk doctor works. (#7375)
* Beef up how `qmk doctor` works.

* improve the `git submodule status` parsing. h/t @erovia

* Fix whitespace and imports

* yapf

* Add documentation for the new doctor functionality

* Replace type_unchanged() with str()

* remove unused modules

* Update lib/python/qmk/cli/doctor.py

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

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-01-24 20:31:16 +01:00
zvecr
6efcfaa264 Remove compilation of i2c for arm split 2020-01-24 14:11:01 +00:00
Joel Challis
e4a0f841e1 Update split serial code to use driver pattern (#7990)
* Move avr serial code to drivers

* Update src+= serial.c to driver pattern
2020-01-24 13:50:51 +00:00
James Young
4867a9b1e6 [Keyboard] HS60 v2 ISO: fix Configurator key ordering (#7958)
* white-space formatting

* reorder the objects
2020-01-24 01:09:55 -08:00
Wilba
9a9eaa8100 Added VIA support to Noxary 280 (#7960)
* Added VIA support to Noxary 280

* Added VIA support to Noxary 280

* Review changes
2020-01-23 21:03:04 -08:00
Xelus22
339e29d5af Add VIA support to TMO50 (#7986)
* via compatible

* disable mousekey

* remove unnecessary space
2020-01-23 19:28:25 -08:00
fauxpark
b568999769 Fix LED configuration for PS2AVRGB boards (#7989)
* Fix LED configuration for PS2AVRGB boards

* Undo backlight on state changes
2020-01-23 19:24:10 -08:00
QMK Bot
fe50883c15 format code according to conventions [skip ci] 2020-01-24 02:15:29 +00:00
Nick Brassel
d13ada1162 Add customisable EEPROM driver selection (#7274)
- uprintf -> dprintf
- Fix atsam "vendor" eeprom.
- Bump Kinetis K20x to 64 bytes, too.
- Rollback Kinetis to 32 bytes as partitioning can only be done once. Add warning about changing the value.
- Change RAM-backed "fake" EEPROM implementations to match eeconfig's current usage.
- Add 24LC128 by request.
2020-01-24 12:45:58 +11:00
Akaash Suresh
6ff093efbe Local Changes 2020-01-23 22:41:15 +11:00
Max Rumpf
c3835262d8 [Keymap] Phoebe keymap improvements (#7963)
* [Phoebe] Allow to input pipe characters with only one modifier

* [Phoebe] Update RGB animations
2020-01-22 14:46:00 -08:00
yiancar
1a40af74da HS60 EEPROM size fix (#7968) 2020-01-23 08:28:42 +11:00
yiancar
9e6e01cabb eeprom size fix (#7969) 2020-01-22 12:44:12 -08:00
Cable Car Designs
a561443fca [Keyboard] added support for new rev of cypher PCB (#7636)
* cleanup of existing branches to resync with upstream. removed old cyp…

…her files, added new cypher files.
2020-01-22 09:45:32 -08:00
MechMerlin
e0a0430c31 Clueboard Rev4 Updates aka Volcano 660 (#7942)
* fix audio enable repetition

* remove RGB LED support as this board has no RGB LB LEDs

* use pragma once

* this board has no backlight support

* enable COMMAND_ENABLE

* comment cleanups

* setting bootmagic to lite as the first board thathat has this PCB has a solid bottom. If someone forgets to put in a RESET key on their keymap, they are not going to have fun resetting the board

* Update keyboards/clueboard/66/rev4/rules.mk

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

* Update keyboards/clueboard/66/rev4/rules.mk

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

* Update keyboards/clueboard/66/rev4/rules.mk

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

* Update keyboards/clueboard/66/rev4/rules.mk

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

* convert the palset and palclear routines to setpinoutput and writepinlow

* remove scankb

* restore original guards instead of pragma once

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-22 04:14:14 +00:00
Brett Inman
49c3a1cda5 Swap two columns to fix Skog Lite (#7940)
* Swap two cols to fix skog lite

* Fix readme

* Suggested formatting

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-21 19:58:17 -08:00
fauxpark
ba264c69c2 [Keyboard] Cospad refactor (#7957)
* Cospad refactor

* Add num lock indicator code

* Add led_init_ports()

* Revert change to matrix position blanks

* Define BACKLIGHT_ON_STATE explicitly, in anticipation of PR6749
2020-01-21 18:21:47 -08:00
Joel Challis
8e500c3670 Align cformat rules with current CI implementation (#7936)
* Align cformat rules with current CI implementation

* Optimise file walking
2020-01-21 18:21:14 -08:00
Rossman360
bf4611c7b7 [Keymap] adding personal rebound keymap (#7956) 2020-01-21 18:18:18 -08:00
yiancar
f773056750 [Keyboard] HS60 Refactor (Keymap restructure to be more standardized) (#7847)
* Keymap restructure to be more standardized

* made bootmagic lite default

* Dividing keymaps

* Update keyboards/hs60/v2/v2.c
2020-01-21 15:09:50 -08:00
Wilba
b70500806a [Keyboard] Added WT60-B, WT60-BX (wilba.tech THERMAL) (#7948)
* Added WT60-B, WT60-BX

* Review changes
2020-01-21 13:28:12 -08:00
MechMerlin
9b6b54cdaa [Keyboard] Think 6.5 Soldered Matrix Fix (#7952)
* both backspace and left shift matrix positions off by one

* update the led_update routine

* update readme

* Update keyboards/gray_studio/think65/solder/solder.c
2020-01-21 13:26:00 -08:00
dsanchezseco
37db6012a7 keymap, fixed rgb effect name and deactivate oled (#7953)
* added rgblight controls to planck keymap

* fixed knight ridder offset to face me

* no oled for crkbd 'till fixed

* fixed RGB effect name
2020-01-21 09:12:07 -08:00
Dmitrijs Minajevs
6f176dfc7c Add VIA support to DZ60 (#7814)
* Add DZ60 to VIA

* Changed vendor id from 'KF' to 'DZ'

* Capitalize hex

* Fix Via_layout_options size setting

* Update keyboards/dz60/keymaps/via/rules.mk

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-21 07:48:13 -08:00
QMK Bot
dee1d68dde format code according to conventions [skip ci] 2020-01-21 14:48:06 +00:00
fauxpark
123ae73efc Fix lock LEDs for ChibiOS when using shared endpoints (#7877)
* Fix lock LEDs for ChibiOS when using shared endpoints

* Tweak comments

* Doesn't need to be uint16 anymore
2020-01-21 14:17:33 +00:00
fauxpark
2566992c9a Add DIODE_DIRECTION to Getta25 (#7951) 2020-01-21 14:07:53 +00:00
Alfred Maler
5f35203d1b [Keymap] Feature/preonic/rev3/alfrdmalr (#7870)
* WIP do not merge

* first pass at custom preonic layout

* add auto shift and reset via leader key

* Update readme

* update copyright notice

* formatting changes

* fix: use MO instead of process_record_user

* added backslash and moved grave position

* remove extraneous 'j' characer in NUMPAD template

* update template formatting

* remove process_record_user

* swap "!" with "@"

* fix readme formatting

* update readme layout image
2020-01-20 23:01:09 -08:00
Salicylic-acid3
c23b73530f [Keyboard] Add keyboard Getta25 (#7497)
* [Keyboard] Add keyboard Getta25

Add Getta25 keyboard.

A 25 keys Tenkey.
Salicylic-acid3

* Update keyboards/getta25/info.json

* Update keyboards/getta25/readme.md

* Update keyboards/getta25/readme.md

* Update keyboards/getta25/readme.md

* Update keyboards/getta25/info.json

* Update keyboards/getta25/info.json

* Update keyboards/getta25/info.json

* Update keyboards/getta25/info.json

* Update keyboards/getta25/keymaps/oled/glcdfont.c

* Update keyboards/getta25/keymaps/oled/glcdfont.c

* Keymap Update

Remove unnecessary code blocks

* Update keyboards/getta25/keymaps/oled/keymap.c

* Update keyboards/getta25/keymaps/oled/keymap.c

* Update keyboards/getta25/keymaps/oled/keymap.c
2020-01-20 14:40:33 -08:00
clovervidia
61dbb92679 Invert Num Lock LED state (#7945) 2020-01-20 10:49:15 -08:00
QMK Bot
e3d59a72f9 format code according to conventions [skip ci] 2020-01-20 18:48:28 +00:00
Wilba
484a9b12bc Add VIA support for QMK backlight, QMK RGBLight (#7911)
* Add VIA support for QMK backlight, QMK RGBLight

* clang-format changes
2020-01-20 10:18:25 -08:00
Akaash Suresh
ce81c4f89b curry layout (#7943) 2020-01-20 11:59:55 -05:00
fauxpark
ef8a4e5aaf Remove all references to "CUSTOM_MATRIX" as a diode direction (#7937) 2020-01-19 23:05:51 -08:00
Erovia
1f86e8ae9a Fix attribute heritance for long commands.
This is needed for inheritance to work with commands that have dashes in
their names.
2020-01-19 21:29:36 -08:00
Erovia
e7f6e90a22 Fix commandline arg merging, small improvements
Commandline args should be merged with the submodule's config.
Compare config values to None instead of False, so empty lines and False
can be used as values.
2020-01-19 21:29:36 -08:00
Erovia
20290a1cff MILC: Fix/complete attribute heritance
If an undefined attribute of a submodule is accessed, fall back to
same attribute of the submodule's parent.
2020-01-19 21:29:36 -08:00
Spaceman
80d329bb55 [Keyboard] Addition Eagle II keyboard (#7927)
* add EagleII Keyboard

* Update eagleii.c

* Update eagleii.h

* Update keymap.c

* Update eagleii.h

* Update keymap.c

* Update keyboards/handwired/eagleii/config.h

* Update keyboards/handwired/eagleii/config.h

* Update keyboards/handwired/eagleii/rules.mk

* Update config.h

* Update rules.mk

* Update eagleii.h

* Update eagleii.h

* Update keymap.c

* Update info.json

* Update keyboards/handwired/eagleii/rules.mk

* Update keyboards/handwired/eagleii/rules.mk

* Create readme.md

* Update keyboards/handwired/eagleii/readme.md

* Update keyboards/handwired/eagleii/config.h

* Update keyboards/handwired/eagleii/readme.md

* Update keyboards/handwired/eagleii/readme.md
2020-01-19 18:07:30 -08:00
Maarten Dekkers
251a69ea3d [Keyboard] Add mx5160 keyboard (#7142)
* Add mx5160 keyboard

* Make necessary changes for merging

rules.mk cleanup, QMK's built in alias for KC_TRNS and change readme blurb

* Add info.json as well

* Update readme, info.json

* Change layout name, update led function

* Fix info.json

* Update rules.mk
2020-01-19 16:23:03 -08:00
fauxpark
31c0fe69f6 [Docs] Misc cleanups for OLED documentation (#7864) 2020-01-19 14:05:54 -08:00
Joel Challis
65f7bfcc8d Fix unknown key 'IndentPPDirectives' on CI (#7933) 2020-01-19 13:59:57 -08:00
Rossman360
4da241968c [Keyboard] Rebound keyboard add (#7886)
* create Rebound keyboard

* proofread

* update decade

* layer enums

* revert enum layer changes

* line spacing and such

* product ID and punctuation

* terminating terminating slashes

* layer enums

* remove slashes

* rules change, rgb and spacing

* plural layouts rgb rulez
2020-01-19 13:08:09 -08:00
Rossman360
dd2b793c0c [Keyboard] Rebound keyboard add (#7886)
* create Rebound keyboard

* proofread

* update decade

* layer enums

* revert enum layer changes

* line spacing and such

* product ID and punctuation

* terminating terminating slashes

* layer enums

* remove slashes

* rules change, rgb and spacing

* plural layouts rgb rulez
2020-01-19 13:07:34 -08:00
Takuya Urakawa
ef33befa06 [Keyboard] Add Tartan keyboard (#7917)
* first commit

* update keymap and key layout

* Update for release

* Update keyboards/tartan/config.h

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

* Update keyboards/tartan/info.json

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

* Update keyboards/tartan/info.json

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

* Update keyboards/tartan/info.json

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

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

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

* Update keyboards/tartan/keymaps/default/readme.md

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

* Update keyboards/tartan/keymaps/default/readme.md

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

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

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

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

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

* Delete tartan/keymaps/test

* Update keyboards/tartan/readme.md

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

* Update keyboards/tartan/readme.md

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

* Delete tartan/keymaps/default/config.h

* Update keyboards/tartan/readme.md

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

* Update keyboards/tartan/rules.mk

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

* Update keyboards/tartan/rules.mk

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

* Delete unneccesary settings

* Fix tartan/rules.mk

* Delete unnecessary code from tartan.c

* Rearrange layout order in tartan.h

* Update keyboards/tartan/usbconfig.h

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

* Update keyboards/tartan/usbconfig.h

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

* Update usb config

* Update keyboards/tartan/usbconfig.h

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

* Delete unused defines

* Update keyboards/tartan/usbconfig.h

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

* Update keyboards/tartan/usbconfig.h

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

* Update keyboards/tartan/usbconfig.h

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-19 10:54:04 -08:00
fauxpark
2bddfb986d Remove tmk_core gitignore and gitmodules 2020-01-19 10:52:29 -08:00
Joel Challis
667045b492 Run clang-format manually to fix recently changed files (#7934)
* Run clang-format manually to fix recently changed files

* Run clang-format manually to fix recently changed files - revert template files

* Run clang-format manually to fix recently changed files - format off for ascii_to_keycode_lut
2020-01-19 16:30:34 +00:00
fauxpark
f5209aa4e9 Remove custom backlight code for PS2AVRGB boards (#7775)
* Remove custom backlight code for PS2AVRGB boards

* Remove custom driver setting

* BACKLIGHT_BREATHING goes in config.h, not here

* Don't need to include backlight.c again here either

* Turn on backlight for Canoe

* Disable console on a few boards due to oversize
2020-01-18 23:00:32 -08:00
fauxpark
eb5d267e63 Enforce definition of DIODE_DIRECTION for non-custom matrix boards (#7915)
* Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards

* Define diode direction for failing boards

* Matching parentheses

* Put onekey diode directions in top level config
2020-01-19 14:11:57 +11:00
James Young
eaed517c0b Added keymap for Space65 (#7562)
* Initial commit

* Modified keymap and updated readme.

* fixed numbering in readme

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Made requested changes in PR.

* Rename README.md to readme.md

* swapped media control keys

* updated right alt key to apply shift key for emacs

* updated R_Alt to remove shift

* Updated readme

* add layout 2 and rename existing folder to layout 4

- renamed existing folder with directional layout to layout 4
- udpated existing readme
- Added layout_60_2

* update flash script per pull request review

* Added keymap profile to space65

- This keymap profile is for MacOS with VIM key bindings
- See readme for more information

* Update keyboards/gray_studio/space65/keymaps/billiams/readme.md

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

* Update keyboards/gray_studio/space65/keymaps/billiams/readme.md

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

* Update keyboards/gray_studio/space65/keymaps/billiams/readme.md

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

* Update keyboards/gray_studio/space65/keymaps/billiams/readme.md

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

* Update keyboards/gray_studio/space65/keymaps/billiams/keymap.c

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

* remove unnecessary code from keymap

* updated keys and cleaned up readme

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-18 17:00:09 -08:00
Joel Challis
ba628a28bc Move rgblight and backlight task to common location (#7733) 2020-01-19 00:59:09 +00:00
Rob Haswell
a1452db98a Configuration values for starting HSV and speed (#7740)
* Define default HSV and speed for RGB matrix.

* Documentation for configuration values RGB_MATRIX_STARTUP_HUE, RGB_MATRIX_STARTUP_SAT and RGB_MATRIX_STARTUP_VAL.

* Document RGB_MATRIX_STARTUP_SPD.

* Preserve the ordering.
2020-01-18 20:11:33 +00:00
M. de Verteuil
9b9a0f0bcb [Keymap] Added mverteuil keymaps and userspace common code (#7876)
* Added mverteuil content

- Userspace
- Knops keymap
- Preonic keymaps

* Simplified and replaced some magic numbers

* Convert tabs to spaces

* Clean up LED handling, better animation, better layer init

* Use get_highest_layer per @drashna suggestion

* Reorder prototypes/reformat

* Simplified/more expessive and fixed initial layer LED

* Remove changes to git ignored files
2020-01-18 11:24:56 -08:00
Nathan Gray
6b17067b15 [Keyboard] Fix the order of underglow LEDs on ergodash/rev1 (#7791)
On the v1.2 PCB the slave half leds go in reverse order compared to the master half.
With this change, the leds are all in order from left to right, so animations like
Knight Rider look like you'd expect.
2020-01-17 20:26:30 -08:00
fauxpark
055e940f06 [Keyboard] Wasdat matrix cleanup (#7909)
* Wasdat matrix cleanup

* Use _custom functions

* More deduping, and signature fix
2020-01-17 20:01:17 -08:00
Hybrid65
3dd43d9cab [Keyboard] Support for a Southpaw Keyboard KVT (#7892)
* Support for KVT

This branch adds support for the southpaw keyboard KVT

* Updated readme.md and keymap.c

* Update readme.md

* Update keyboards/kv/revT/readme.md

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

* Update keyboards/kv/revT/readme.md

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

* Update keyboards/kv/revT/readme.md

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

* Update keyboards/kv/revT/readme.md

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

* Update keyboards/kv/revT/rules.mk

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

* Update keyboards/kv/revT/rules.mk

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

* Update keyboards/kv/revT/readme.md

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

* Update keyboards/kv/revT/readme.md

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

* Updated from suggestions from pull request

* Update readme.md

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update revT.c

* Update readme.md

* changing T to lowercase

* Change revT to revt

* edit

* Update keyboards/kv/revt/rules.mk

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

* Update readme.md

Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-17 19:56:13 -08:00
Joel Challis
6e710426a4 Add docs for 'CUSTOM_MATRIX = lite' (#7906)
* Add some docs to cover 'CUSTOM_MATRIX = lite'

* Apply suggestions from code review

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

* Add 'SRC += matrix.c' docs

* Update docs/custom_matrix.md

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

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-18 12:56:33 +11:00
Jeremy Bernhardt
d11238f748 switching to you know whats up mode (#7921) 2020-01-17 16:15:58 -05:00
ridingqwerty
95c24bbaf8 Implement and document TAPPING_FORCE_HOLD_PER_KEY (#7859)
* Implement and document TAPPING_FORCE_HOLD_PER_KEY

* Added "record" parameter to "get_tapping_force_hold"

* Correct typo -- remove 'IGNORE_' from 'IGNORE_TAPPING_FORCE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig <35542036+GeorgeKoenig@users.noreply.github.com>
2020-01-17 15:49:23 -05:00
Drashna Jaelre
1b0854fdca Cleanup check for PERMISSIVE_HOLD (#7861)
* Fix bug in PERMISSIVE_HOLD check

caused by #5009 (aka, me)

* Remove check for per key
2020-01-17 15:33:08 -05:00
zvecr
75d4ff7d51 Prevent fallthrough for DIODE_DIRECTION 2020-01-17 18:55:24 +00:00
zvecr
952e805edb Initial refactor of ergo42 to split common 2020-01-17 18:50:58 +00:00
Callum Oakley
1fcd0b2578 move caps because it can be triggered accidentally by sequences such as '("' (#7923)
Thanks!
2020-01-17 10:59:07 -05:00
Ben
619ee543b8 [Keyboard] Add Plaid-Pad 4x4 numpad (#7900)
* Add Plaid-Pad code

* Move ENCODER_ENABLE under Build Options

* Update keyboards/keycapsss/plaid_pad/info.json

* Update keyboards/keycapsss/plaid_pad/keymaps/default/keymap.c

* Update keyboards/keycapsss/plaid_pad/plaid_pad.h

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/readme.md

* Update keyboards/keycapsss/plaid_pad/readme.md

* Update keyboards/keycapsss/plaid_pad/readme.md

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/config.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/rules.mk

* Update keyboards/keycapsss/plaid_pad/config.h

* Update keyboards/keycapsss/plaid_pad/config.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/usbconfig.h

* Update keyboards/keycapsss/plaid_pad/config.h
2020-01-17 00:30:32 -08:00
Josh Hinnebusch
b6d8840915 [Keyboard] add VIA support for hiney PCBs (#7910)
* add VIA support for hiney PCBs

* update LED per request

* update LED text per request

* remove extra stuff
2020-01-16 23:15:08 -08:00
Xyverz
d6e6feb377 Further changes to HHKB keymap (#7918)
* Changes to HHKB Keymap for useability

* Changes to HHKB Keymap for useability

* Added KC_GRV to _FL.
2020-01-17 09:34:25 +11:00
Rys Sommefeldt
919d69266e [Keyboard] Graystudio Space65 ISO UK layout and keymap (#7912)
* ISO UK layout for Graystudio Space65

* Quick line on how to build it in the readme

* Update ASCII art layout guide to match reality

* Whoops, space is actually K47, not K46

* Rename to 65_iso_blocker and remove uk designation
2020-01-16 10:06:42 -08:00
fauxpark
1e670f5e67 Remove KEYMAP_SECTION_ENABLE (#7882) 2020-01-17 00:32:09 +11:00
Maarten Dekkers
bf397fdd9f [Keyboard] Add Eon40 keyboard (#7885)
* Add Eon40 files

* Make required changes

* Add missing comma

* Update rules.mk
2020-01-15 15:53:09 -08:00
James Young
5153580698 [Keyboard] Xbows Knight: Configurator layout polishing (#7903) 2020-01-15 09:38:17 -08:00
Ahmed Elshafey
3a69232213 [Keymap] Massdrop ctrl keymap (#7639)
* RGB config overhaul

Changing RGB config from setrgb to sethsv, trying out different color values.

* Merged changes

* Various changes and a couple additions

Added Git Layer with git macros for most operations and LED config to show the macro keys on layer. Activated with FN+3.
Added VIM Layer, this is a normal keycode layer with no macros for now but it has LED config that highlights the navigation and edit keys in VIM.
Added a sticky CTRL and sticky SHIFT layers. I have no idea why I did this actually, it's mildly useful but oneshot and tapdance would be better, will be removed in later commit.
Changed the LED config from setrgb to sethsv and the key by key LED config to array.
Some code improvements in process_record_user.
Better way to manage string macros using char array. Inspired by drashna's secret macros.

* Various keymap changes and added documentation

Updated massdrop/ctrl endgame keymap:
    Added layers for git and vim.
    Better LED config method, using ledmap, similar to what's used in many other keymaps.
    Improved process_record_user() mainly with reduced conditionals.
    Cleaned things up in the header and config.
    Added pretty much all qmk feature headers to rules and config, commented out to be enabled if desired. Firmware size should be considered.
    Not many features added in this commit. Shifting for a while to work on implementing raw hid for the keyboard and expanding qmk terminal.

Added documentation.md for massdrop/ctrl at keyboard level to house all related information for future use.
Added documentation for raw hid in docs, added the doc to feature index. Need some review for this documentation and suggested additions/changes.

* Some fixes

Fixed keymap documentation to include changes.
Removed useless double tap keys and simplified layer maps.

* Fixed error in keymap

* Removed documentation changes. Will present in another PR

* Update keyboards/massdrop/ctrl/DOCUMENTATION.md

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

* Update DOCUMENTATION.md

* Update keymap.c

fixed mouse layout incomplete arrow cluster

* Update keyboards/massdrop/ctrl/keymaps/endgame/keymap.c

Fixed Git layer led config

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

* Update DOCUMENTATION.md

Remove raw hid details

* Update rules.mk

Remove useless stuff

* fixed malformed led map causing compile fail, indentation fixes

* Update keyboards/massdrop/ctrl/keymaps/endgame/config.h

switch from TG_NKRO to NK_TOGG

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

* Update keymap.c

Switching from TG_NKRO to NK_TOGG

* Added yakuake layout

* Update keyboards/massdrop/ctrl/keymaps/endgame/keymap.c

Change biton32(layer_state) to get_highest_layer()

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

* Update keymap.c

Change from biton32 to get_highest_layer

* Fixed custom LED not toggling off

Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: totolouis <totolouis@users.noreply.github.com>
2020-01-14 21:34:41 -08:00
Xyverz
2a6cb426ef Hhkb keymap (#7907)
* Initial commit of HHKB layout.

* Moved keymap to the correct location.

This keymap is for a hasu alt controller-equipped HHKB, so the keymap was in the wrong place.
Added comments to the keymap.
2020-01-15 16:01:58 +11:00
Joel Challis
2081c5e40e Fix CUSTOM_MATRIX lite matrix_scan return code (#7908) 2020-01-15 15:51:43 +11:00
Joel Challis
48cac9e3c8 Migrate more custom matrix 'lite' code to core (#7863)
* Migrate more custom matrix lite code to core

* Align function names

* fix up MATRIX_MASKED
2020-01-15 01:58:32 +00:00
James Young
537b8713e5 XD68 Configurator Layout Support and Minor Refactor (#7904)
* XD68: QMK Configurator layout support

* elevate backlight breathing settings to keyboard level

* remove empty keymap config.h files

* rules.mk templating

* keymap polishing

- four-space indent
- keycode alignment
2020-01-15 01:31:17 +00:00
Joel Challis
61cd180163 Add ws2812 driver type define (#7888) 2020-01-15 09:03:48 +11:00
yiancar
b69b1ad4fc Fix NK65 indicator code after refactoring (#7902) 2020-01-15 09:03:01 +11:00
Sascha Grunert
bb652314be Update personal keymap (#7898)
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-01-15 08:45:55 +11:00
Adi M
9b4052e5a3 Adi's KBD67 layout (#7896)
* Add files via upload

* Rename keyboards/kbdfans/kbd67/rev2/keymaps/keymap.c to keyboards/kbdfans/kbd67/rev2/keymaps/adi/keymap.c

* Rename keyboards/kbdfans/kbd67/rev2/keymaps/readme.md to keyboards/kbdfans/kbd67/rev2/keymaps/adi/readme.md

* Update readme.md

* Update readme.md

* Update keyboards/kbdfans/kbd67/rev2/keymaps/adi/keymap.c

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

* Update keyboards/kbdfans/kbd67/rev2/keymaps/adi/keymap.c

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

* Update keyboards/kbdfans/kbd67/rev2/keymaps/adi/readme.md

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-15 08:44:59 +11:00
skullY
58d27cf404 Add a note explaining how to run tests 2020-01-14 07:52:14 -08:00
skullY
44168baaa7 Add a section on python tests 2020-01-14 07:52:14 -08:00
fauxpark
c7b2d60a23 Move Space Cadet keycodes to their own section in keycode reference (#7889) 2020-01-14 14:02:13 +00:00
Koichi Katano
c58f7857bd [Keyboard] Add Yurei PCB (#7880)
* Add yurei

* Implement keyboard

* Update readme.md

* Update config.h

* Update info.json

* Update info.json

* Update keyboards/yurei/config.h

* Delete config.h

* Update rules.mk

* Update yurei.c

* Update keymap.c

* Update keyboards/yurei/yurei.h

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

* Update keyboards/yurei/info.json

* Update keyboards/yurei/rules.mk
2020-01-14 02:31:21 -08:00
yiancar
e80fdbf3dc NK65 Bootmagic lite for default (#7895) 2020-01-14 19:31:21 +11:00
xyzz
83be1aed76 chibios/usb_main: re-check USB status in send_keyboard after sleeping the thread (#7784)
* chibios/usb_main: re-check USB status in send_keyboard after sleeping the thread

* change send_keyboard to only have 1 exit point
2020-01-13 15:08:14 -08:00
fauxpark
c293d9049a Tidy up dztech keyboard.c/h and readmes (#7664)
* Tidy up dztech keyboard.c/h and readmes

* Use new lock LED function

* Undo changes to led flags

* Fix make examples

* Update readmes some more

* Clarify filetypes

* Format as list
2020-01-14 08:49:31 +11:00
MechMerlin
f609e125e4 Merlin's LAYOUT_65_ansi keymap (#7879)
* add my own user keymap for LAYOUT_65_ansi for my new NK65

* remove unneeded config
2020-01-14 08:28:35 +11:00
Maarten Dekkers
94ea13e73d [Keyboard] Add minitomic keyboard (#7140)
* Add minitomic keyboard

* Small change to readme

* Make changes necessary for merging

Remove extra comma in info.json, move caps lock led status from keymap to keyboard, removes unused keys on full space bar layout, cleans up rules.mk and update readme blurb.

* Update readme.md

* Update led function, fix spacing and remove custom keycodes

Removes the custom keycodes in default keymap, fixes spacing in keymap and minitomic.c and puts the new led function in as well
2020-01-13 12:16:27 -08:00
marksard
240e1ef6fd [Keyboard] Rebuild treadstone48 rev1 firmware (#7856)
* Keyboard: add treeadstone48

* rename layout defines

* Use of pragma once

* move common include code

* fixed info.json

* change keymap layout from kc to normal

* fix alpha revision keymap

* fixed info.json

* remove USE_Link_Time_Optimization

* I re-created treastone48 keyboard firmware from ./util/new_keyboard.sh
After that I use common OLED_DRIVER, RGB_LIGHT and SPLIT_KEYBOARD options.
And then check all keymap.

* Modified by PR review
2020-01-13 10:06:40 -08:00
csc027
1b8cb95f2e [Keymap] csc027/macro-sync-keymap (#7873)
* Basic functionality to synchronize the strings and enums using C preprocessor macros.

* Updated all the custom convenience macros to work.

* Removed some duplicate update_tri_layer calls.

* Simplified the convenience accelerator macros for synchronizing enums and strings by removing the short enum names.

* Updated the CUSTOM_MACROS macro to use SS_LCTL instead of SS_LCTRL.

* Fixed a bug where the right side of the convenience layer in the Iris keymap was incorrectly listed twice.

* Removed the tenkey from the convenience layer.  Added Windows 10 virtual desktop shortcuts to the convenience layer.

* Fixed a bug where the macro range was not set correctly.

* Added sigil values for the keycode enum so that additions to the sync macros will not require changes to the process_record_user ranges.

* Hacked send_string_P to work with ChibiOS boards.

* Switched to using I2C for the Iris keyboard.

* Finished a comment.

* Updated comments to explain that for non-AVR MCUs, the PROGMEM macro doesn't do anything.

* Updated the synchronization macros to use the more descriptive "NAME" instead of "CALL".  Moved the Control-Alt-Delete chord macro to the  synchronization macro.

* Simplified the custom macros by consolidating the macros into a context change macro instead of using alt-tab and minimize macros.

* Fixed a formatting issue where several tabs were used instead of 4 spaces.

* Added more comments to explain the synchronization macros.

* Simplified the PARAMS macro, since any parameters could be passed with a space by the declarer instead.

* Consolidated the synchronization macros into a single list.  Simplified the synchronization mechanism.

* Removed the overloading macro, since it is no longer needed.

* Updated the convenience layer comments to reflect the changes made.

* Renamed the git_macros pointer table to custom_macros, since it no longer solely consists of git macros.

* Clarified that the send_string_P function's use of pgm_read_byte is different for AVR and non-AVR compilation targets.
2020-01-13 09:41:13 -08:00
Rossman360
390a4fdc9d [Keymap] fixed conflicts and made sure keymaps compiled, and some newer (older) keymaps snuck in (#7828)
* hope this works

* Some new things crept in

* remove nonsense config file

* spacing fix

* more spacing

* quick revert of mysterious file

* file revert take two

* take three

* take four

* deleted unneeded lines

* brought back not-unneeded line

* whitespace delete
2020-01-13 09:40:00 -08:00
Xelus22
1034df577d [Keyboard] Dawn60 bug fix [URGENT] (#7881) 2020-01-13 09:36:12 -08:00
Michael Firmin
869ce2f500 Update Levinson Readme to reflect changes to directory structure (#7883)
Updates the example make commands in the Levinson readme to
keebio/levinson/...  instead of levinson/...

Also updated the example to rev3 (the current version of the board)
2020-01-13 11:34:12 -05:00
Joel Challis
af03ff145d Remove backlight_init_ports from duck/orion/v3 (#7878) 2020-01-13 03:49:01 +00:00
John M Daly
be7d70b15c Enable RGB underglow on the CO60 and SteamVan, switch backlight code to QMK built-in code (#7874)
* Add: RGB underglow support using SPI to SteamVan and CO60

* Update: Switch to QMK's baclight implementation for CO60 and SteamVan

* Fix: Remove now unnecessary backlighting code from keyboard files
2020-01-13 03:48:24 +00:00
Joel Challis
b89e35bdd3 Relocate common backlight functionally (#7273) 2020-01-13 01:30:56 +00:00
Xelus22
2ce3025be2 [Keyboard] Dawn60 Keyboard (#7832)
* dawn60_proper

* change default

* changes

* master merge and via keymap

* rgb underglow better

* rename of folder

* rename folder complete

* rename

* dawn60/underglow specifics

* dawn60 specific

* simplify

* requested changes

* small errors

* layouts remove

* remove parentheses and update rules.mk

* fix error message
2020-01-12 16:11:02 -08:00
Joel Challis
ff5742da9f Fix KEYBOARD_SHARED_EP on ChibiOS (#7860) 2020-01-13 09:21:42 +11:00
Jonathan Rascher
5cb83dd5d7 Personal keymap updates for the new year (#7871)
* Update keymaps for split ergo boards

* Update keymaps for 60% boards
2020-01-13 09:10:21 +11:00
James Young
b187139f64 [Keyboard] Reviung41: Configurator layout support (#7852) 2020-01-12 10:51:22 -08:00
James Young
9bbce7a231 [Keyboard] IDB 60: Configurator bugfix (#7851)
* info.json: use debug linting

Changes the white space, mostly.

* info.json: correct file structure

* readme.md: templating
2020-01-12 10:50:52 -08:00
xyzz
21d6cb18ed [Keyboard] Add Xiaomi MK02 (#7825)
* [Keyboard] Added xiaomi/mk02

* keyboards/xiaomi/mk02: cleanup

* keyboards/xiaomi/mk02: add linker script

* update readme

* update

* remove via (crashes during startup)

* LAYOUT => LAYOUT_tkl_ansi

* Change vid/pid

* Add a warning to the readme
2020-01-12 10:42:32 -08:00
Mike Rix Wolfe
09b4457bf2 Add user keymaps for KBD67MKII/Lily58 (#7671)
* add my keymaps

* tri layer keymap

* update tri layer

* update tri layer

* cleaning up

* formatting

* move to correct location

* lily58: move caps off mod key in sublayer

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

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

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

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

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

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

* Update keyboards/lily58/keymaps/mikefightsbears/rules.mk

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

* remove unnecessary trailing whacks

* remove unneeded file

* swap spacebar

* update code for comments in PR

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-12 22:42:55 +11:00
MechMerlin
b6917c782f [Keyboard] KPRepublic BM60 RGB (#7842)
* initial commit from script

* edit all generated files with my name and some basic notes

* implement RGB Matrix support

* cleanups, file removals, and readme edits

* Update keyboards/bm60hsrgb/config.h

* rename to bm60rgb

* update included library and info.json keyboard name

* Update keyboards/bm60rgb/keymaps/default/readme.md
2020-01-11 23:11:06 -08:00
Jonathan Rascher
08cd996839 Add Lily58 serial to LIB_SRC to avoid LTO issue (#7868)
This code is timing sensitive and seems to break with LTO enabled (at
least on avr-gcc 8.3.0... it worked on older gcc versions).

This is the same workaround as #7558 applied for the Helix.
2020-01-12 01:09:04 +00:00
Adi M
8b9d4fd341 Adi's DZ65RGB layout (#7845)
* Adi's DZ65RGB layout

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md

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

* Rename layers.JSON to layers.json

* Update readme.md

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/keymap.c

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

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/keymap.c

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

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md

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

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md

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

* Delete layers.json

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md

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

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md

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

* Update keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md

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

* Rename keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/readme.md to keyboards/dztech/dz65rgb/keymaps/adi/readme.md

* Rename keyboards/dztech/dz65rgb/keymaps/adi_dz65rgb_ansi/keymap.c to keyboards/dztech/dz65rgb/keymaps/adi/keymap.c

Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-12 12:01:48 +11:00
skullY
81ec3b5f81 yapf and style 2020-01-11 12:18:30 -08:00
Erovia
8f47e62b36 Make the udev rules easier to read and manage 2020-01-11 12:18:30 -08:00
Erovia
e905d86fc5 Fix Pro Micro's and its bootloader's name 2020-01-11 12:18:30 -08:00
Erovia
c6f47b5bd7 CLI: Rework ModemManager check and add udev check 2020-01-11 12:18:30 -08:00
yiancar
70309bef3d [Keyboard] NK65 Refactor (#7862)
* Nk65  Refractor

- Changed Via keymap to via instead of default_via
- Moved Caps/Layer indicator code outside of wilba_tech rgb. This is so they can more easily be modified

* Update keyboards/nk65/nk65.c
2020-01-11 09:25:27 -08:00
AbstractKB
2d051d8de3 [Keymap] Updated keymaps (#7834) 2020-01-10 12:25:10 -08:00
Daniel Shields
578f54ee94 [Keymap] Add additional dynamic macro key to dshields keymaps. (#7853) 2020-01-10 09:51:19 -08:00
Patrick Fruh
7d7bb5bf82 added ymdk ymd09 keyboard (#7831)
* added ymdk ymd09 keyboard

* lowercase github username

* change rgb keymap to make more sense

* fixed number of LEDs

* remove configuration for non-existant backlight

* use official template and change file permissions

* disable unnecessary nkro

* Apply suggestions from code review

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

* with easy reset via bootmagic lite, remove RESET from layout

Co-authored-by: Joel Challis <git@zvecr.com>
2020-01-10 14:17:45 +00:00
Seth Barberee
b1b52c37c7 [Keymap] Update my iris keymap for LTO and rgbled split (#7849) 2020-01-10 01:52:36 -08:00
pngu
af77912d2d [Keyboard] Changes to support latest release of VIA, moved files to "idb" folder in "keymaps" in preparation of adding more boards, made changes to LAYOUT_ macros (#7798)
* make vendor folder for idb keyboards

* set default debounce to eager_pk, clean up vendor/product ID

* refactoring for VIA

* made changes to support latest release of VIA, added default keymap that's in line with the most popular configuration

* Made suggested formatting changes

* rebase to get rid of lufa files

* removed idb_60.json that's only meant for via itself

* Update keyboards/idb/idb_60/keymaps/via/rules.mk

* Update keyboards/idb/idb_60/readme.md

* Update keyboards/idb/idb_60/readme.md

* Update keyboards/idb/idb_60/readme.md

* Update keyboards/idb/idb_60/rules.mk

* Update keyboards/idb/idb_60/config.h

* Update keyboards/idb/idb_60/readme.md

* made suggested formatting changes

* fixing lufa

* Update keyboards/idb/idb_60/rules.mk

* Update keyboards/idb/idb_60/config.h

* made suggested changes
2020-01-10 00:57:49 -08:00
fauxpark
9397bffd01 Fix a couple of USB VIDs for the API (#7848) 2020-01-09 23:50:55 -08:00
zk-phi
7f388b6553 Add per-key IGNORE_MOD_TAP_INTERRUPT feature (#7838)
* Implement IGNORE_MOD_TAP_INTERRUPT_PER_KEY

- Add configurable option IGNORE_MOD_TAP_INTERRUPT_PER_KEY
- Add function get_ignore_mod_tap_interrupt iff the option is enabled

Unless IGNORE_MOD_TAP_INTERRUPT_PER_KEY is defined, this patch does not affect the resulting binary.

* Add documentation for IGNORE_MOD_TAP_INTERRUPT_PER_KEY
2020-01-10 02:48:06 -05:00
Joel Challis
e34af631c2 Refactor f103,f072,f042 based keyboards to use new MCU selection defaults (#7705)
* refactor keyboards using ST_STM32F072B_DISCOVERY to use 'MCU = STM32F072'

* refactor keyboards using GENERIC_STM32_F042X6 to use 'MCU = STM32F042'

* refactor keyboards using GENERIC_STM32_F103 to use 'MCU = STM32F103'
2020-01-10 01:31:01 +00:00
shela
5a02cc00a4 Fix docker script and document (#7786)
Fixed error when keyboard parameter is omitted in interactive mode.
2020-01-10 00:44:16 +00:00
MechMerlin
886eb98e2a KBD67 MKII Notes Update (#7824)
* add readme to each of the mkii versions

* update the most parent of kbd67 readmes to have history of the new versions

* fix up the parent readme for the two types of boards

* Update keyboards/kbdfans/kbd67/mkiirgb/readme.md

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

* Update keyboards/kbdfans/kbd67/mkiirgb/readme.md

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

* Update keyboards/kbdfans/kbd67/mkiirgb/readme.md

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

* Update keyboards/kbdfans/kbd67/mkiirgb/readme.md

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

* fixup readmes

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-10 09:28:56 +11:00
bottilabo
2cd338cf7e Fix matrix_scan_user is not called at stm32 env(projectkb/alice etc..) which using cannonkeys/stm32f072 (#7821) 2020-01-09 21:21:58 +00:00
Akaash Suresh
caa70df816 [Keymap] Userspace refactor, adding leader key functionality (#7790)
* Userspace refactor

* Fixed missed ifdef

* tapcode16, adjust layout

* glcdfont changes from #7745

* Modify Keymaps, add workman

* RGB & OLED update
2020-01-09 11:57:54 -08:00
James Young
71de09d751 Update Breaking Changes doc timeline 2020-01-09 11:19:47 -08:00
fauxpark
d3bd1d893b Ensure PROGMEM is present on default keymaps (#7836) 2020-01-09 10:19:24 +00:00
James Young
d2e6a4bf5e Handwired Minorca Refactor (#7833)
* update config.h

- use #pragma once include guard
- update USB Device Descriptor strings

* update minorca.c

- remove matrix_init_kb function (same as QMK default)

* update minorca.h

- use #pragma once include guard
- update matrix identifiers

* update info.json

- update matrix identifiers
- change to four-space indent

* update rules.mk

- remote firmware size impact notes
- disable RGBLIGHT_ENABLE (no RGB config present)
- templating

* update readme.md

- templating

* update keymaps/default/rules.mk

- remove firmware size impact numbers
- templating

* update keymaps/rgb/rules.mk

- remote firmware size impact notes
- templating

* update keymaps/rgb/readme.md

- fix header

* remove keymaps/default/rules.mk

- identical to keyboard's rules.mk

* elevate Bootmagic configurations to keyboard level

* update keymaps/rgb/config.h

- use #pragma once include guard
- remove redundant config.h include

* update keymaps/rgb/rules.mk

- remove redundant rules

* update keymaps/rgb/readme.md

- change RGB function list to a table
- make wiring call-out a header

* remove keymaps/default/config.h

- it's blank now

* update minorca.h

- use four-space indent

* add Teensy 2.0 to readme
2020-01-09 10:47:33 +11:00
yulei
fe860131dd [Keyboard] fixed hhkb keymap issue on e6_rgb (#7684)
* fixed hhkb keymap issue and added allleds configuration

* fixed layout mismatch

* add more matrix control

* remove redundent define in rules.mk

* turn NKRO on

* remove allled macro, adding readme in allleds mode, add via support

* add two more layers for via

* update readme file

* Update keyboards/exclusive/e6_rgb/keymaps/allleds/readme

* Update keyboards/exclusive/e6_rgb/keymaps/allleds/readme.md
2020-01-08 00:11:45 -08:00
yiancar
4a09679d74 [Keyboard] add Allison Numpad (#7823)
* add Allison Numpad

* alternative layout
2020-01-07 21:36:43 -08:00
Kenny Greulich
331bbd602d [Keymap] added custom keymap and config for dz60rgb v1 (#7808) 2020-01-07 21:23:03 -08:00
Perry Huynh
9086d720e0 [Keyboard] add VIA support to Kyuu (#7804)
* add VIA support to Kyuu

* update keymap file to follow indenting guidelines

* add missing newline to rules.mk

* remove unnecessary backslashes and reindent default keymap
2020-01-07 21:21:52 -08:00
fauxpark
8fa64568f0 [Keyboard] Update Wasdat config (#7826) 2020-01-07 17:47:43 -08:00
Lucas Moreira
fdc144d215 [Keymap] Improvements to KidBrazil keymap to better handle OLED/LED Matrix timeout. (#7688)
* Added KidBrazil custom keymap for CRKBD
-Custom Font
-Custom OLED output

* Added missing readme

* Oled Timeout Update for KidBrazil Keymap (#1)

* Setup Oled timeout based on simple timer

* Cleaned up comments and added timeout for LEDs

* Fixed some small errors

* Updated oled timout with matrix scan

* Updated oled timout with matrix scan

* Update withou eeprom

* Update timer code

* Use process user instead of keymap

* Added ifdef to protect oledtimer

* Updated with half timeout state for logo

* Removed middle tier timer

* Final cleanup of unused files

* Updated code as per suggestions & requests

* Second round of revisions

* Updated keymap to better handle LED timeout
- Added boolean to hold LED state
- Added init function to set rgb to known state
- Modified RGB_TOG to work with noeeprom commands

* Finished adding the timeout for OLED and testing on CRKBD

* Updated documentation

* fixed the timeout logic so it works as intended

* Update keyboards/crkbd/keymaps/kidbrazil/README.md
2020-01-07 17:28:06 -08:00
yiancar
ee70d496f4 [Keyboard] add Allison keyboard (#7818)
* Initial commit

* Cosmetic Fixes

* Delete config.h
2020-01-07 17:26:04 -08:00
James Young
0027a0a948 Tada68 Fixes and Minor Refactoring (#7820)
* fix ANSI layout macro reference

* update ISO layout macro and enable 65_iso community layout support

- rename to LAYOUT_65_iso (with LAYOUT_iso alias for backwards compatibility)
- rename position k2c to k1d (electrical position)

* rules.mk templating

* tada68.h: use #pragma once include guard

* config.h: use #pragma once include guard

* make product id unique

* update info.json

* update readme

* cleanup default keymap

- keycode alignment
- layout macro reference
- four-space indent

* remove matrix_*_user functions from tada68.h
2020-01-08 00:17:01 +00:00
Jesse Leventhal
0c86cfeaed [Keyboard] Added NCC-1701-KB 3x3 Keypad with Encoder and Keymap (#7819)
* Added NCC-1701-KB Keypad and Keymap

* Update keyboards/ncc1701kb/config.h

* Update keyboards/ncc1701kb/config.h

* Update keyboards/ncc1701kb/config.h

* Update keyboards/ncc1701kb/config.h

* Update keyboards/ncc1701kb/ncc1701kb.h

* Update keyboards/ncc1701kb/readme.md

* Update keyboards/ncc1701kb/readme.md

* Update keyboards/ncc1701kb/readme.md

* Fixed changes rules.mk bootloader

* Fixed rules.mk Build Options

* Recomended fauxpark changes/fixes

* Update keyboards/ncc1701kb/ncc1701kb.h

* Update keyboards/ncc1701kb/ncc1701kb.h

* Update keyboards/ncc1701kb/readme.md

* Update keyboards/ncc1701kb/readme.md
2020-01-07 14:29:45 -08:00
Xyverz
b69457a192 More minor tweaks. (#7813)
Made the MACLOCK key easier tu use by putting it on right thumb
cluster as well.
2020-01-08 08:54:08 +11:00
Rob Haswell
cf30c5d17f RGB matrix effect - left-right gradient (#7742)
* Left-right gradient.

* Update the comment to match the new functionality.

* CPP does integer division so this round is not necessary.

* The x-range is actually 224, update comment and use bit-shifting again.

* Update docs with gradient left-right effect and associated "DISABLE" option.
2020-01-07 21:25:17 +00:00
Robert Snyder
957b8f553c [Keyboard] add info.json for dactyl_promicro (#6993)
* add info.json for dactyl_promicro

* tabs to spaces
reformat dactyl_promicro to match the LAYOUT_6x6
changed the default map to match dactyl
2020-01-07 13:23:47 -08:00
Karol Samborski
004ef3fad7 [Keymap] New levinson keymap (#7613)
* Vim oriented scheme

* Meta on both sides

* Removed unused staff

* Changed dynamic macro codes to the built ones

* Fixed formatting
2020-01-06 23:57:58 -08:00
gtips
10d18820d2 [Keyboard] Add keyboard Reviung41 (#7807)
* [Keyboard] Add keyboard Reviung41

* Modified files

* deleted keyboards/reviung41/keymaps/default/config.h

* modified keyboards/rebiung41/keymaps/default/keymap.c

* modified keyboards/reviung41/readme.md

* modified keyboards/reviung41/readme.md

* modified keyboards/reviung41/readme.md
2020-01-06 22:23:32 -08:00
Rossman360
6486c7809c Making keymaps based on userspace (#7812)
* hope this works

* TF working with userspace

* rules for tf

* Fixed changed default files

* delete old keymap

* revert tf68 default to default

Co-authored-by: Akaash Suresh <casa.akaash@gmail.com>
2020-01-07 15:36:00 +11:00
Juno Nguyen
37d7fd12e2 Juno (#7652)
* Added community layout juno and junonum; removed poorly maintained variants of juno; added junonum-a47.

* Added community layout juno and junonum; removed poorly maintained variants of juno; added junonum-a47.

* updated layout type for juno

* Performing requested changes; renaming a47; fine-tuning of codes in community layout keymaps.

* Fine tuning to requested changes.

* Further tuning to suggestion.

* Update layouts/community/ortho_4x12/juno/keymap.c

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

* Update layouts/community/ortho_4x12/juno/keymap.c

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

* Update keyboards/maartenwut/atom47/keymaps/junonum_a47/keymap.c

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

* Update keyboards/maartenwut/atom47/keymaps/junonum_a47/keymap.c

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

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-07 15:35:08 +11:00
Yan-Fa Li
5f795d8382 Add an 65_ansi community layout (#7793)
* Add an 65_ansi community layout

 - fix quoting because of comma in config.h

* Enable LAYOUT_65_ansi for tada68

* cleanups

* Update keyboards/tada68/tada68.h

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

Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-06 15:29:27 -08:00
Drashna Jaelre
00d3061e02 [Keymap] Cleanup of Drashna code (#7800)
* ifdef rgb stuff like a madman for RGB Coexistance

* Re-enable RGB Light on Planck

* fix RGB Coexistance issue

* Tweak feature settings for Ergodox EZ Glow

* Their powers combine, and I am Captain RGB

This one is for noroadsleft and yan.

* Limit brightness when both RGB features are enabled

* Change shutdown method

* Add RGB Coexistience stuff to keymap

* disable RGBLIGHT_SLEEP until a solution can be found

* Disable Unicode on the kyria

* Fix up Iris rev defines

* Fix up community layouts to compile properly

* Cleanup rgb stuff

* Merge ergodox keymaps

* Update CCCV macro to use tap_code16

* Enable Solenoid on C39

Because josh couldn't

* Enable RGB Light, not Matrix on rev6 keymap

* Only enable LTO on non-ARM boards

* Clean up Bootmagic OLED display

* Enable RGBLIGHT_SPLIT on kyria

Not that it does anything

* Add hotkey for discord
2020-01-06 01:49:48 -08:00
Takeshi ISHII
b3b115bcc4 [Docs] Update check commands in Japanese documents (#7787)
The Japanese documents included a sample command to check the original document changes. But there was something wrong, so I fixed it.
2020-01-05 23:43:11 -08:00
Josh Hinnebusch
f2c61f8840 h75_singa changes (#7799) 2020-01-05 22:28:53 +00:00
Wilba
12c6f9a412 [Keyboard] Added VIA support to Efreet (#7788)
* Added Efreet

* Review changes
2020-01-05 00:18:36 -08:00
James Young
a68f514a8a [Keyboard] Add QMK support for Red Scarf I numberpads (#7767)
* Add support for Red Scarf I numberpads

* update info.json for configurator

* Update keyboards/redscarf_i/redscarf_i.c

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

* Update keyboards/redscarf_i/redscarf_i.h

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

* Update keyboards/redscarf_i/redscarf_i.h

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

* Update keyboards/redscarf_i/rules.mk

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

* Update keyboards/redscarf_i/info.json

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

* Update keyboards/redscarf_i/info.json

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

* Update keyboards/redscarf_i/info.json

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

* Update keyboards/redscarf_i/keymaps/4x5_ortho/keymap.c

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

* Update keyboards/redscarf_i/keymaps/4x5_ortho/keymap.c

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

* Update keyboards/redscarf_i/keymaps/4x6_ortho/keymap.c

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

* Update keyboards/redscarf_i/keymaps/4x6_ortho/keymap.c

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

* Update keyboards/redscarf_i/readme.md

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

* Update keyboards/redscarf_i/readme.md

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

* Update keyboards/redscarf_i/rules.mk

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

* rename keymaps, add default

* final touches! i think we're there

* remove .gitignore from keymaps directory

* remove unused custom keycodes from ortho_custom_4x5 keymap

* remove ortho_custom_5x4 keymap (identical to ortho_5x4 keymap)

* remove firmware size impacts from rules.mk

* change "MCU selection" to "MCU name" in rules.mk

* complete matrix array for LAYOUT_ortho_5x4 macro

Probably not needed, but I like when it's complete.

* add numpad layout macros

* correct info.json data

* update readme

Co-Authored-By: Ben Weakley <2173281+Defying@users.noreply.github.com>

* rename ortho keymaps to rows by columns per QMK convention

* rules.mk templating

* change uint32_t to layer_state_t per drashna

* use led_update_kb() per drashna

Co-authored-by: Ben Weakley <2173281+Defying@users.noreply.github.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2020-01-04 17:06:24 -08:00
Hung DO
59c783df48 [Keyboard] Add support for db63 hotswap rbg (#7771)
* correct the matrix pin for db63

* first correct layout

* adding RGB support for db63

* adding backlighting keycode

* enable back extension

* update readme for the bootloader

* correct the capslock pin

* update correct info.json and layout following suggestion

* editing contact

* Update keyboards/db/db63/README.md

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

* Update keyboards/db/db63/README.md

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-01-04 17:04:49 -08:00
James Young
d4b15cd93a [Keyboard] GH60 rev. C: fix LAYOUT_60_iso key sequence in QMK Configurator (#7792)
ISO Enter's key object was out of sequence.
2020-01-04 16:44:45 -08:00
Rossman360
2908f1f963 [Keymap] Rossman360 Userspace add (#7779)
* create userspace

* add early macro support, but gtg

* attempt to create userspace.

* all changes suggested
2020-01-04 12:51:33 -08:00
Joel Challis
dcb7ca3f79 Move some common matrix code to a common location (#7699)
* Move some common matrix code to a common location

* Refactor some 'custom_matrix_helper' logic to use custom matrix lite

* Fix build for kinesis/stapelberg - abuse of vpath was picking up matrix.c from core when custom matrix was enabled

* Add validation for CUSTOM_MATRIX
2020-01-04 20:29:44 +00:00
James Young
c1feeaa57f Update Breaking Changes doc for 2020-02-29 merge 2020-01-04 12:24:51 -08:00
shela
6e520a721d [Docs] fix installation commands for macos (#7785)
* [Docs] fix installation commands for macos

* Update docs/getting_started_build_tools.md
2020-01-03 22:57:59 -08:00
shela
8b80cf853b [Docs] Update Japanese translation (#7783)
* [Docs] Update translation

* Apply suggestions from code review

* Update docs/ja/config_options.md

* Update docs/ja/newbs_building_firmware.md

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-01-03 22:57:03 -08:00
Jason Thigpen
0f43c26525 [Keymap] crd's personal keymap for hotswap leaf60 (#7777) 2020-01-03 16:38:59 -08:00
csc027
2c14172467 [Keymap] Added csc027 keymaps for keebio/iris and planck (#7472)
* Added csc027 user folder and keymaps for both keebio/iris and planck

* Moved the git_macros variable out of the process_record_user function.

* Updated the usb_led code to use the new led_update_user instead of the led_set_user function.

* Update users/csc027/defines.h

Removed the "_______" macro definition in defines.h, since it has already been defined in QMK.

* Update users/csc027/defines.h

Removed the "XXXXXXX" macro definition in defines.h, since it has already been defined in QMK.

* Update users/csc027/csc027.c

Simplified several keyboard macro definitions in the csc027.c file by switching from SS_LCTRL to SS_LCTL in their definitions.

* Condensed both the planck and iris rules files to the minimal set of declarations.
2020-01-03 14:12:53 -08:00
Wilba
320822d75b VIA Configurator Refactor (#7268)
* VIA Refactor

* Remove old code

* review changes

* review changes

* Fix cannonkeys/satisfaction75/prototype:via build

* Add via.h to quantum.h

* Move backlight init to after backlight config load

* Merge branch 'master' into via_refactor_pr

* Update user's rules.mk to new way of enabling VIA

* Added id_switch_matrix_state

* Review changes
2020-01-03 12:52:00 -08:00
ridingqwerty
b362595665 Merge pull request #7776 from hineybush/hbcp
small hbcp changes
2020-01-03 15:08:59 -05:00
hineybush
2dc0fd2b50 small hbcp changes 2020-01-03 14:32:54 -05:00
ridingqwerty
48eda75c83 Merge pull request #7762 from CurryFurious/userspace_curry
Adding custom userspace & 2 keymaps
2020-01-03 13:37:09 -05:00
ridingqwerty
3951f331c0 Merge pull request #7772 from Rossman360/dev_branch
add Levinson keymap
2020-01-03 11:12:55 -05:00
Akaash Suresh
2a7c715bc6 Fixed formatting and added font file 2020-01-03 08:55:47 -06:00
Rossman360
abca0ccf4a remove head 2020-01-03 03:19:53 -05:00
Rossman360
a1788a8398 remove unneccesary line 2020-01-03 03:15:43 -05:00
Rossman360
2f338c0608 more cleanup 2020-01-03 03:05:02 -05:00
Rossman360
c87d88be4d cleanup 2020-01-03 03:05:02 -05:00
Rossman360
ee5bf03767 Add Levinson keymap 2020-01-03 03:05:02 -05:00
Rossman360
983026ad8b [Keymap] adding tf68 keymap, my first pull request. expecting there's lots of bad practice, sorry (#7763)
* adding tf68 keymap

* had tf keymap in wrong folder

* added tragicforce readme

* cleaned up code

* more cleanup

* indent love and layer name change
2020-01-02 23:22:21 -08:00
Takeshi ISHII
3fd8f160c3 [Docs] Added description of LIB_SRC to docs/config_options.md (#7765)
And LINK_TIME_OPTIMIZATION_ENABLE move to 'Build Options' section.
2020-01-02 14:47:27 -08:00
Tom Saleeba
474f7f399c [Keyboard] add initial ergoslab directory (#7730)
* feat: add initial ergoslab directory

* fix: address all comments from noroadsleft

* fix: address comment from drashna

* feat: add swap hands config to ergoslab

* chore: change ergoslab image to real photo

* re
2020-01-02 14:40:13 -08:00
Josh Hinnebusch
61173dce5d [Keyboard] adjust h87a RGB settings (#7751)
* update VID and PID for h87a

* update default RGB underglow pattern

* update comments

* Update keyboards/hineybush/h87a/h87a.c

* Update keyboards/hineybush/h87a/h87a.c

* Update keyboards/hineybush/h87a/h87a.c
2020-01-02 14:35:05 -08:00
CurryFurious
5b8f1327d8 Removing unnecessary struct definitions
Removed userspace_config unused variables, and removed _NUMLOCK as it isn't used anywhere.
2020-01-02 16:26:09 -06:00
Casper Weiss Bang
dd04079098 Fixed a small typo (#7743) 2020-01-03 08:06:46 +11:00
Legonut
f08ffc2715 [Keyboard] Updates for Sol 2 (#7746)
Add Numpad to keymap
Fix OLED rotation
Add LED locations for Starfighter case
2020-01-02 13:03:19 -08:00
Gergely Peidl
2406c04d89 [Keymap] Personal keymap for Let's Split keyboard. (#7702)
* Add Initial layout configuration.

* Set arduino pro micro's built in RX LED as Numlock

* Enable Autoshift feautre.

* Remove DVORAK layout.

* Add Numpad, update default layer.

* Update AutoShift timeout.

* Beautify ASCII Art.

* Update keymap.

* Add Initial verison of RGB lighting.

* Add Tap dance, hungarian letters.

.Xmodmap example: 09f058753d

* Update RGB to use only noeeprom functions.

* Change default rgb led color.

* Add `pragma once`.

* Emojis added.

* Add tap dance for hungarian letters, multimedia control, slash/backslash.

* Remove audio related code.

* Add Gaming layer.

* Remove unnecessary code, update copyright.

* Add readme.md

* Implement code review suggestions.

* Implement code review suggestions #2
2020-01-02 12:03:47 -08:00
fauxpark
156d319604 Remove remnants of custom matrix from Skog rules.mk (#7764) 2020-01-02 19:50:25 +00:00
hvp
5404d6baef [Keymap] Hvp baseline19 (#7690)
* Added my UT47.2 Swedish layout with tap dance function.

* Move tap dance over to user space

* Removed config_common from config file

* Changes to workspace with new support for code16. Tested ok

* Swedish support

* Added code16 version of tapdance to userprofile.

* Created 4th layer and updated readme file. Removed ascii rep of layout.

* Tabdance updates

* Removed duplicated RGB keys.

* Added hvp minivan config

* Fixed tapdance key maps

* Added Planck 1 space base hvp layout

* Start of hvp xd75 layout. Way to many keys

* Added working config ink test for atreus62

* fixed smaller layout changes

* Updated tap dance with option 5

* Added better thump keys

* Created lets split layout

* Removed not used modes

* Updated to correct url

* Readme file

* Atreus62 readme

* Cleanup of keymap file

* Added tap dance

* Fixed missed adjustment

* Added hvp planck setup

* Update ascii

* will this work better?

* removed ascii

* Planck 1 space setup

* Fixed ascii local

* Added Corne setup

* Changes for lets split

* Atreus62 config

* Added Lily58

* Setup corne

* Setup planck

* Updated lets split

* UT47 setup

* Setup a The Vanboard.

* Alt Ctrl

* #define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D)

* Fix D_NAVI & plank midi

* Fixed PR comments

* Added pragma

* Moved def to user space

* Removed not used endif

* Added def to users space

* Added rules to van

* Removed not used part of config

* Removed not used layout

* Removed not needed comments

* Remove not needed keymap_config_t

* Removed broken ascii from readme files and removed not needed rules

* Added spaces to readme file

* Removed xd75 from branch
2020-01-02 11:31:54 -08:00
Akaash Suresh
291ef064a7 Formatting 2020-01-02 12:22:22 -06:00
Akaash Suresh
a0a6e24788 Added license and readme 2020-01-02 12:13:39 -06:00
Akaash Suresh
3650d59afe Merge upstream/master with userspace 2020-01-02 11:52:23 -06:00
marhalloweenvt
53757f9705 [Keyboard] Add p65rgb PCB (#7753)
* [Keyboard] Add new keyboard Symmetry60

* Add new keyboard Symmetry60

* Fix Typo

* Update keyboards/handwired/symmetry60/config.h

* Update keyboards/handwired/symmetry60/readme.md

* Update keyboards/handwired/symmetry60/readme.md

* Update keyboards/handwired/symmetry60/readme.md

* Update keyboards/handwired/symmetry60/rules.mk

* Update keyboards/handwired/symmetry60/symmetry60.h

* Update keyboards/handwired/symmetry60/symmetry60.h

* Update keyboards/handwired/symmetry60/symmetry60.h

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update rules.mk

* Update symmetry60.c

* Update keyboards/handwired/symmetry60/rules.mk

* Add ColorLice

* Update ColorLice

- Adjust info.json to support Configurator
- Adjust layout name to fit with info.json
- Seperate 2 feature: RGB Switch and RGB Underglow

* Update new way of control lock leds

* Remove #ifndef COLORLICE_H

* Update make example

* Revert Helix

* Revert Helix

* Revert Helix

* Revert Helix

* Update keyboards/handwired/colorlice/colorlice.h

* Update keyboards/handwired/colorlice/colorlice.h

* Update default keymap

* Revert Helix

* Update keyboards/handwired/colorlice/readme.md

* Update keyboards/handwired/colorlice/rules.mk

* Update keyboards/handwired/colorlice/colorlice.c

* Update keyboards/handwired/colorlice/colorlice.c

* Remove unnecessary function

* Update keyboards/handwired/colorlice/colorlice.c

* Adjust rules option for working with Configurator

- Move RGB_MATRIX_ENABLE and RGBLIGHT_ENABLE to keyboard rule.
- Add RGB_DI_PIN in keyboard config

* Update keyboards/helix/rev2/keymaps/default/keymap.c

* Update keyboards/handwired/colorlice/readme.md

* Update keymap for Colorlice

* Adjust rules.mk to use space indent

* Update ColorLice to work with QMK online configurator

- Delete rgb_underglow keymap
- Move config from keymap layer to keyboard layer
- Tweak a little layout so it can appear default layout on QMK config

* Update keyboards/handwired/colorlice/rules.mk

* Update keyboards/handwired/colorlice/rules.mk

* Add p65rgb

* Update keyboards/handwired/p65rgb/config.h

* Update p65rgb.c

* Update keymap.c

* Update rules.mk
2020-01-02 08:57:47 -08:00
xyzz
8ec0b378bc Fix typo in action.c (#7757) 2020-01-02 12:49:53 +00:00
fauxpark
2557bc8e6f Remove custom matrix from PS2AVRGB boards (#7396)
* Remove custom matrix from PS2AVRGB boards

* Add custom backlight.c to SRC for bminiex, for now

* Add missing DIODE_DIRECTIONs
2020-01-02 17:45:41 +11:00
Drashna Jaelre
b83e3ae556 [Keyboard] Ergodox EZ - Re-init ISSI driver on reconnect (#7731) 2020-01-01 22:42:04 -08:00
William Chang
dff4f13c19 updated keys and cleaned up readme 2020-01-01 22:31:00 -08:00
Jianfei Wang
77f66cc5e1 [Keyboard] add Just60 keyboard (#7752)
* [Keyboard] add Just60 keyboard

* [Keyboard] just60: fixes per suggestions

* Update keyboards/just60/rules.mk

* Update keyboards/just60/readme.md

* Update keyboards/just60/rules.mk

* [Keyboard] just60: add keymap specific bootloader

* Revert "[Keyboard] just60: add keymap specific bootloader"

This reverts commit 0357e0a6f4.
2020-01-01 22:28:05 -08:00
Benjamin Smith
86815edc31 [Keyboard] Change cKeys Washington keyboard to use atmel-dfu bootloader (#7756) 2020-01-01 20:19:41 -08:00
Xyverz
45482d612c Update Kinesis keymap (#7741)
* Update Kinesis keymap

Added a MACLOCK macro to lock my mac easier

* Updated readme.md
2020-01-02 15:01:37 +11:00
umi
91013d452f [Docs] add japanese translation (faq part) (#7464)
* add faq part

* add faq part

* add faq part

* add faq part

* add faq part

* update for link

* update for a punctuation

* update files based on comments

* restore removed git diff header

* correct pathname on git diff header

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update file based on comment

* update file based on comment

* update file based on comment

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-Authored-By: shela <shelaf@users.noreply.github.com>
Co-Authored-By: satt99 <39004890+satt99@users.noreply.github.com>
2020-01-01 18:06:55 -08:00
Arda Kılıçdağı
c4061f003c [Keyboard] Aranck handwired keyboard to support community MIT layouts, also minor optimisations done (#7737)
* Aranck now supports community MIT layouts, also minor optimisations done

* Update keyboards/handwired/aranck/keymaps/turkishish/readme.md

* Update keyboards/handwired/aranck/readme.md
2020-01-01 09:44:22 -08:00
shikamiya
59b017381c Add creation of new keyboard in child directory (#6018)
* Add creation of new chlid keyboard

* Add creation of new keyboard's parent directories

* Remove redundant message and if statement

* Divide creating new keyboard directory from copying template files

* Fix variables of year placeholder

* Fix filename of keyboard.[ch]
2020-01-01 21:07:54 +11:00
Joel Challis
680ebef086 SPI DMA based RGB Underglow for STM32 (#7674)
* Initial stash of ws2812 spi driver

* Update comment, add sync backup plan

* Add testing notes to spi ws2812 driver

* Align RGBW error messages
2019-12-31 17:26:40 +00:00
Drashna Jaelre
7ba6456c0b Use White channel on RGBW LEDs (#7678)
* Use White channel on RGBW LEDs

Co-authored-by: kwerdenker <sebastian.spindler@gmail.com>

* Manually apply white channel to array

* Move where convert_rgb_to_rgbw is called

* Fix type for rgbw led struct

* Add changes to Ergodox EZ

can revert if deemed necessary

* Revert "Add changes to Ergodox EZ"

This reverts commit aa44db198d.

* Revert "Fix type for rgbw led struct"

This reverts commit c5c744cba0.

* Revert "Move where convert_rgb_to_rgbw is called"

This reverts commit cd7f17caf6.

* Revert changes and fix up functions

* Enable white channel for Ergodox EZ as well

* Only run conversion of rgblight is enabled

Co-authored-by: kwerdenker <sebastian.spindler@gmail.com>
2019-12-31 16:33:49 +00:00
Drashna Jaelre
a52e55ec09 [Docs] Update macOS related issues in docs (#7744)
* [Docs] Update macOS related issues in docs

* Update faq_build.md

* Apply suggestions from code review

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

Co-authored-by: fauxpark <fauxpark@gmail.com>
2019-12-31 14:33:54 +00:00
Takeshi ISHII
d1ed98f58b [Docs] remove docs/ja/newbs_best_practices.md (#7739)
'docs/ja/newbs_best_practices.md' has been replaced by 'docs/ja/newbs_git_*.md'.
2019-12-30 09:15:23 -08:00
Lukas Klingsbo
91c8a9314a Dactyl manuform layout optimized for Swedish (#7724)
* Dactyl manuform layout optimized for Swedish

* Layers as enum
2019-12-31 02:34:12 +11:00
Sid Carter
f6bdb6afba New PCB - Curiosity - Alice Layout PCB (#7725)
* add new keyboard

* update config to use

* confirm config that works

* fix the keymaps and what not

* default keymap update

* update readme

* update and remove unncessary files

* update IDs and remove unused definitions

* update readme

* add new keyboard

* update config to use

* confirm config that works

* fix the keymaps and what not

* default keymap update

* update readme

* update and remove unncessary files

* update IDs and remove unused definitions

* update readme

* remove unused stuff

* update default keymap and add my own with layer indicator LEDs

* update README

* add crd's layout as part of the default as well

* some specific space fixes

* update readme for flashing

* remove code and use mcu selection instead. yay!

* remove vlk from default and enable velocikeys in madhatter

* remove BL_  from default

* and remove BL_ from madhatter as well

* Update keyboards/cheshire/curiosity/keymaps/crd/keymap.c

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

Co-authored-by: Khader Syed <35927972+chapter63@users.noreply.github.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2019-12-31 02:29:36 +11:00
fauxpark
559ef21563 Add LUFA mass storage BOOTLOADER "support" (#7729) 2019-12-29 20:53:23 +00:00
MechMerlin
64263bbb02 [Keyboard] Orion Locking Indicator LED Support (#7683)
* add indicator lighting support thanks to Keebology tracing

* set the correct number of underglow LEDs

* add comments and skeletal structure for layer indicator LEDs

* add backlight areas pins

* update readme

* we can't turn leds on based on zones, so we use multiple backlight pin support instead to turn them ALL on and control them.

* add comments to backlight setting

* make a more useful default keymap that can also be used for testing

* add duck orion to list

* add indicator led support

* update readme

* Update keyboards/duck/orion/v3/matrix.c

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

* Update keyboards/duck/orion/v3/matrix.c

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

* Update keyboards/duck/orion/v3/matrix.c

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

* Update keyboards/duck/orion/v3/matrix.c

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

* Update keyboards/duck/orion/v3/matrix.c

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

* Update keyboards/duck/orion/v3/matrix.c

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

* add the appropriate header files

* fix indent so Drashna will not die

* Update keyboards/duck/orion/v3/v3.c

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

* Update keyboards/duck/orion/v3/keymaps/default/keymap.c

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

* Update keyboards/duck/orion/v3/keymaps/default/keymap.c

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

* Update keyboards/duck/orion/v3/readme.md

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

* Update keyboards/duck/orion/v3/readme.md

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

* Update keyboards/duck/orion/v3/readme.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
2019-12-29 11:16:24 -08:00
fauxpark
8af1501328 Clean up ISSI driver includes (#7734)
* Clean up ISSI driver includes

* Missed an endif
2019-12-29 10:21:58 -08:00
Takeshi ISHII
25aaeb4f40 Japanese translation of docs/newbs_git_*.md (#7689)
* update docs/ja/newbs.md

* update docs/ja/_summary.md

* Translate docs/newbs_git_best_practices.md into Japanese.

* Translate docs/newbs_git_using_your_master_branch.md into Japanese.

* Translate docs/newbs_git_resolving_merge_conflicts.md into Japanese.

* Translate docs/newbs_git_resynchronize_a_branch.md into Japanese.

* Update docs/ja/newbs_git_using_your_master_branch.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* update ja/newbs_git_resynchronize_a_branch.md

* update ja/newbs_git_resynchronize_a_branch.md

* Update docs/ja/newbs_git_best_practices.md

* Update docs/ja/_summary.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* update ja/newbs_git_resynchronize_a_branch.md

* update ja/newbs_learn_more_resources.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

* Update docs/ja/newbs_git_resynchronize_a_branch.md

Co-Authored-By: shela <shelaf@users.noreply.github.com>
2019-12-28 23:38:33 -08:00
codecoffeecode
36d913e1b1 [Keymap] Adding keymap for KBDFans Kbd67 MKII RGB (#7712)
* Adding keymap for Kbd67 MKIIRGB

* "addressing comments by fauxpark"
2019-12-28 18:15:32 -08:00
Joel Challis
250a99ff1b Add rules.mk defaults for f103,f072,f042 (#7704)
* Add rules.mk defaults for f103,f072,f042

* Add rules.mk defaults for f103,f072,f042 - remove comment

* Add rules.mk defaults for f103,f072,f042 - align USE_FPU

* Reset MCU to avoid build issues

* Move essential config values to top and remove ability for override

* Align DFU_SUFFIX_ARGS order with DFU_ARGS
2019-12-28 19:18:52 +00:00
yiancar
c329a0ec8e [Keyboard] Doppelganger (#7682)
* Initial commit

* Update info.json

* Update doppelganger.c

* Update keyboards/doppelganger/readme.md

* Update keyboards/doppelganger/readme.md

* Update keyboards/doppelganger/readme.md

* Update keyboards/doppelganger/rules.mk

* Update keyboards/doppelganger/rules.mk

* Update keyboards/doppelganger/rules.mk

* Update keyboards/doppelganger/rules.mk

* More fixes my g:)

* Update keyboards/doppelganger/rules.mk

* Update keyboards/doppelganger/rules.mk

* More prettying

* Update rules.mk

* Minor spacing

* Init pins

* Update rules.mk

* Update keyboards/doppelganger/info.json
2019-12-28 00:06:42 -08:00
Takeshi ISHII
26a823082b [Docs] Fix minor differences in docs/newbs_git_resynchronize_a_branch.md (#7728) 2019-12-27 14:31:23 -08:00
shela
80e73b6210 [Docs] Update Japanese translation (#7693)
* [Docs] Update translation

* Update docs/ja/contributing.md

* Update docs/ja/contributing.md

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2019-12-27 12:09:32 -08:00
fauxpark
b359830ea2 Fix file encoding for zh-cn/custom_quantum_functions.md (#7665) 2019-12-27 03:31:48 +00:00
James Young
c32d085710 [Keyboard] Kyria Configurator Fixes (#7719)
* Fix key object order

info.json: Reorder the key objects into the order required by kyria.h

* linting

info.json: fix indent depth and trailing whitespaces

* Minimize visual footprint

info.json: Subtract 0.25 from each Y value to minimize the keyboard dimensions when rendered
2019-12-26 19:01:57 -08:00
Josh Hinnebusch
a14339e752 Add h75-singa ver. (#7667)
* add h75_singa

* delete some stuff

* update to remove extra crap
2019-12-26 09:39:09 -08:00
Josh Hinnebusch
cfbb848e03 Add LZ PhysiX PCB (#7668)
* add physix PCB

* update info.json and default keymap per LZ

* update make example in readme

* remove extra stuff

* remove excess newlines
2019-12-26 09:38:10 -08:00
Jonathan Rascher
12baca1295 Initial Crkbd layout (#7716) 2019-12-26 15:46:18 +00:00
Martin Karlsson
4edc8fc3c7 K-Nunmpad17 (#7708)
* Initial commit for K-Nunmpad

* Changed layoutname

Corrected the files according to drashnas suggestions.
* Some names have been changed
* Some code thats not been used has been removed

* Fixed rules.mk

When adding the commnity layout, tapdancing broke. This was fixed with
rules.mk was changed in the k-numpad and karlssn keymap.

* Cleanup according fauxpark

Cleaned up the readme.md and the rules.mk according to feedback from
fauxpark.
2019-12-26 15:45:14 +00:00
fauxpark
e5501d4815 Make the keyboard beep when Audio is enabled and \a is encountered in a sendstring 2019-12-25 11:34:25 -08:00
Drashna Jaelre
46e2b6e43d Turn off RGB Matrix LEDs when keyboard sleeps (#7713) 2019-12-25 17:54:47 +00:00
zvecr
9aedb620c5 Add backwards compatibility for oled_write_raw_P on ARM 2019-12-24 20:13:27 -08:00
Toshihiro Suzuki
7494490d6d Update toshi0383 keymap (#7700)
* minor update for reviung39:toshi0383

* update zinc:toshi0383
2019-12-22 19:58:51 -08:00
Drashna Jaelre
7066164591 Completely remove i2c_transmit_receive function (#7686)
* Add i2c_transmit_receive function

This function is listed in the ARM header file, but doesn't actually exist.

* Remove i2c_transmit_receive function

* Update DRV2605L read function to use i2c_readReg on both arm and avr
2019-12-22 13:50:08 +00:00
XScorpion2
0e2ff9b384 Readded lost pgm_read_word code to encoder array lookups (#7577) 2019-12-21 21:39:26 -08:00
Joel Challis
376419a4f7 Add central location for ChibiOS defines (#7542)
* Add central location for chibios defines

* Add central location for chibios defines - actually add files this time....

* Add Copyright header

* Update include order to resolve i2cv1 build errors
2019-12-21 18:22:49 +00:00
Ryan
05b479d349 Add TADA68 keymap/rules/config for QMK bootloader (#7679)
* Add TADA68 keymap/rules/config for QMK bootloader

* Remove extraneous #DEFINEs

* use #pragma rather than include guards

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

* Remove obselete #endif

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

* #undefine DESCRIPTION before redefining

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

* Remove obselete #define

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

Co-authored-by: fauxpark <fauxpark@gmail.com>
2019-12-21 11:01:28 +00:00
shela
52c18ef026 [Docs] fix docs (#7642)
* [Docs] recurse-submodules option is need now

* [Docs] `tmk_core` folder is correct

* [Docs] fix typo

* [Docs] package scope has changed

* [Docs] Fix menu differences

* Update docs/arm_debugging.md

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

* Update docs/arm_debugging.md

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

* fix typo

Co-authored-by: fauxpark <fauxpark@gmail.com>
2019-12-21 11:00:22 +00:00
Joel Challis
d478095756 Merge pull request #7663 from fauxpark/dztech-config-h
Tidy up dztech config.h
2019-12-20 17:37:40 +00:00
Yan-Fa Li
adf4acf596 [Keyboard] Clueboard 60 fix col 11 12 mixup (#7685)
* Fix reversed col 11 and 12

 - the two columns are reversed in the matrix

* Fix gui

* Fix reversed col 11 and 12

 - the two columns are reversed in the matrix
2019-12-19 21:50:59 -08:00
fauxpark
3f696664d6 Missed these LTO blocks 2019-12-19 08:30:51 +11:00
Joel Challis
e4c257fb01 Merge pull request #7672 from ihotsuno/patch-1
I corrected my name.
2019-12-18 19:38:16 +00:00
ihotsuno
593bfc86a1 I corrected my name. 2019-12-19 03:13:27 +09:00
Joel Challis
b4bda14f3c Merge pull request #7666 from fauxpark/docs-edit-page
Improve docs "Edit Document" footer
2019-12-18 15:42:56 +00:00
Eric Defore
f42dd61b8d [Keymap] Added userspace for d4mation. Included their keymap for the Atreus62 (#7483)
* Added userspace for d4mation. Included their keymap for the Atreus62

* Do not assign layer numbers manually

* Remove some unneeded things per @drashna's recommendation

* Fix some single line comments I missed

* Update unicode macros to use send_unicode_hex_string() instead of process_unicode()

* OBetter check for Unicode Enabled. Moved some checks into macros.c

* Use eeconfig_init_user() to set default unicode input mode
2019-12-18 00:59:12 -08:00
Rys Sommefeldt
b2405fccce [Keymap] Custom user keymap for Think6.5 with LED range control (#7603)
* ISO layout for the soldered Think6.5 PCB

* Think6.5 personal layout readme

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

* Add default case to process_record_user

* Make the ASCII diagram match the layer properly

* Relocate KC_NUHS to the home row for consistency

* Add LAYOUT_65_iso_badge to info.json

* Wire up the badge LEDs as capslock LEDs

* Remove unused keymap variable
2019-12-18 00:46:49 -08:00
Lucas Moreira
3415dcef6f [Keymap] CRKBD Custom Keymap - KidBrazil (#7630)
* Added KidBrazil custom keymap for CRKBD
-Custom Font
-Custom OLED output

* Added missing readme

* Oled Timeout Update for KidBrazil Keymap (#1)

* Setup Oled timeout based on simple timer

* Cleaned up comments and added timeout for LEDs

* Fixed some small errors

* Updated oled timout with matrix scan

* Updated oled timout with matrix scan

* Update withou eeprom

* Update timer code

* Use process user instead of keymap

* Added ifdef to protect oledtimer

* Updated with half timeout state for logo

* Removed middle tier timer

* Final cleanup of unused files

* Updated code as per suggestions & requests

* Second round of revisions
2019-12-18 00:37:56 -08:00
x1
7048b94034 [Keymap] Add pico 70 keys keymap (#7654)
* Move pico/rev1 to pico/65keys.

* Add pico/70keys.

* Remove unneeded codes.

* Modified valid 70 keys keymap for jis.
2019-12-18 00:02:57 -08:00
fauxpark
3c190f8927 Improve docs "Edit Document" footer 2019-12-18 14:01:13 +11:00
fauxpark
d23e81b1f0 Tidy up dztech config.h 2019-12-18 10:23:26 +11:00
fauxpark
1ac99586a6 Tidy up dztech default keymaps and info.json (#7608) 2019-12-18 10:15:47 +11:00
Joel Challis
cfb4c9bb61 Merge pull request #7657 from fauxpark/dztech-rules-cleanup
Tidy up dztech rules.mk
2019-12-17 23:09:20 +00:00
Arda Kılıçdağı
78ffc4f7fe Heisenberg handwired keyboard added (#7643)
* Chotanck keyboard added

* Chotanck renamed to Heisenberg

* Further updates to Heisenberg Keyboard done

* Update keyboards/handwired/heisenberg/info.json

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

* Update keyboards/handwired/heisenberg/rules.mk

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

* Update keyboards/handwired/heisenberg/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-12-18 09:41:41 +11:00
Nygel Lyndley
1646717b4b [Keyboard] Added Filco Majestouch TKL Pegasus Hoof ISO Layout (#7647)
* [keymap] Added Filco Majestouch TKL Pegasus Hoof ISO Layout

* - add rules definition

* Revert "- add rules definition"

This reverts commit 59bfbe8388.

* - fixed incorrect variable naming
2019-12-17 14:38:22 -08:00
Øyvind Wilhelmsen
67054fc380 Ported J80 to QMK (#7488)
* ported J80 to QMK

* added default ISO layout

* removed optional override functions

* set bootmagic to lite

* removed comment

* added tkl_ansi and tkl_iso layouts

* updated vendor and device name

* set ANSI layout as default and split iso to separate folder

* removed empty file

* Update keyboards/J80/info.json

Added comma

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

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

Removed backslash

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

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

Removed backslash.

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

* removed comments and backslash, fixed JSON formatting

* Rename J80.h to j80.h

* Rename keyboards/J80 to keyboards/j80

* renamed folder to lowercase

* added key definition for reset key

* added define for KC_NO to underscores

* Added backlight and lock LED support

* Fixed BACKLIGHT_PIN

* Fixed typo

* Added define for bootmagic lite and description in readme

* Update keyboards/j80/info.json

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

* Update keyboards/j80/readme.md

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

* Update keyboards/j80/readme.md

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

* Update keyboards/j80/info.json

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

* Update keyboards/j80/info.json

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

* Update keyboards/j80/info.json

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

* Update keyboards/j80/info.json

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

* Update keyboards/j80/j80.h

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

* Update keyboards/j80/j80.h

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

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

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

* Apply suggestions from code review

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

* Added full right shift layouts
2019-12-18 09:06:48 +11:00
Dmitry Nosachev
4ebecc424e [Keyboard] Magnavox Videowriter conversion with Pro Micro (#7634)
* Magnavox Videowriter convertion

* Magnavox Videowriter: readme, images

* Update keyboards/handwired/videowriter/info.json

* Update keyboards/handwired/videowriter/README.md

* Update keyboards/handwired/videowriter/README.md

* Update keyboards/handwired/videowriter/info.json

* Update keyboards/handwired/videowriter/info.json

* Update keyboards/handwired/videowriter/info.json

* Update keyboards/handwired/videowriter/info.json

* Update keyboards/handwired/videowriter/info.json

* suggested changes

* suggested changes

* fix comment symbol

* Update keyboards/handwired/videowriter/rules.mk

* Update keyboards/handwired/videowriter/rules.mk

* Update keyboards/handwired/videowriter/rules.mk
2019-12-16 21:42:03 -08:00
umi
a860da8914 [Docs] add japanese translation (basic part) (#7461)
* add basic part

* update cli

* update cli

* correct links to ja document

* update files based on comments

* update for a postpositional particle

* update for a punctuation

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

Co-Authored-By: shela <shelaf@users.noreply.github.com>
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2019-12-16 21:01:46 -08:00
fauxpark
98c8a30764 Tidy up dztech rules.mk 2019-12-17 10:50:26 +11:00
Joel Challis
ae40fc498b Relocate RGB keycode processing (#7508)
* Move rgb keycode logic to process_keycode

* Fixes for rgb matrix

* Fixes for mxss

* Fix inc/dec logic, add comments

* Fix return RAINBOW_SWIRL logic

* stop external use of rgb helper functions

* merge fix

* Fix 'defined but not used' when all animations are disabled
2019-12-16 12:27:53 -08:00
Yan-Fa Li
0082ecf1f3 Move kwerdenker's personal keymap from RGB (#7645)
* Move kwerdenker's personal keymap from RGB

Talked to Maartenwut about making RGB an actual template instead of
kwerdenker's keymap. Free'd up B7 so it can be used for audio in
agreement with MW. He's considering adding a speaker footprint to next
rev of plain60, and only B7 can be used with Audio. RGB uses bitbang
driver so it doesn't really make any difference if it's pin B0.

 - RGB should be a template for other people to modify, not a personal
 keymap
 - change default pin to B0 to free up B7 for audio use
 - rename RGB to kwerdenker

* Add RGB keycodes to FN layer

* don't use uppercase in keymap names

 - doesn't work properly on MacOS or Windows

* Add an audio specific keymap

* Enum instead of define

* Suggested change to keymap

 - maintain compatibility with old keymap
2019-12-16 11:26:02 -08:00
Joel Challis
7cddcce237 Remove QMK_KEYBOARD_CONFIG_H from boards (#7635) 2019-12-16 11:20:33 -08:00
Joel Challis
adb72b60b0 Merge pull request #7276 from zvecr/feature/backlight_driver_config
Convert backlight to follow driver rules pattern
2019-12-16 16:39:54 +00:00
Joel Challis
bc2157eea8 Software backlight improvements (#7255)
* Update software backlight to precalculated duty patterns

* Update default backlight state to match avr pwm

* Move function to make diff look nicer
2019-12-16 16:35:08 +00:00
Joel Challis
f3bf301825 Disable usb on slave half to resolve random 'lockup' (#7649) 2019-12-16 16:33:48 +00:00
Drashna Jaelre
85f4c3ebb4 [Core] Optimize matrix processing (#7621)
Backport of tmk/tmk_keyboard@ad6059adc7
2019-12-16 16:31:59 +00:00
Boy_314
853b99954e [Keymap] boy_314's satisfaction75 layout (#7638)
* added boy_314's satisfaction75 layout

* added readme

* updated NKRO toggle, removed unecessary code

* Update keyboards/cannonkeys/satisfaction75/keymaps/boy_314/config.h

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-12-15 23:27:10 -08:00
randlor
74dc65ab2e [Keyboard] XD68 65% ATMega32U4 based (#7395)
* First working draft

* Updated readme.md

* Fixed url

* Typo fix

* RGB + Backlight working

* Fixed matrix for ISO NUHS

* ISO matrix working

* Adding ANSI default layout

* First release commit

* Removed reference to deprecated layout

* Changes from PR #7395 review

* Additional changes as requested for PR #7395

* Additional changes from @noroadsleft review

* Replaced ifndef/endif with pragma

* Adding yanfali's recommended changes
2019-12-15 21:33:04 -08:00
Yan-Fa Li
3eb82e0470 [keyboard] Plain60 cleanups (#7644)
* Change plain60 to bootmagic lite

 - it's easier to reset and maintain a keyboard with lite
 - remove obsolete size comments

* Add RESET on a layer to default keymap

* Use _FN

* Maintain compatibility with keymap

* Fix thinko
2019-12-15 22:03:23 +00:00
Josh Hinnebusch
ad7ba08ac8 update default h88 keymap (#7646) 2019-12-16 08:47:32 +11:00
Zach
876e544433 [Keyboard] Add ymd67 keyboard (#7631)
* [Keyboard] Add ymd67 keyboard

* Apply suggestions from code review

* Apply more suggestions from code review
2019-12-15 11:27:42 -08:00
Takeshi ISHII
b54722cc63 Change newbs.md to link to the new newbs_git_best_practices.md instead of newbs_best_practices.md. (#7633) 2019-12-14 18:16:31 +00:00
zvecr
94e2a39d72 Move function to make diff look nicer 2019-12-14 17:25:32 +00:00
zvecr
f6b9604f4a Update default backlight state to match avr pwm 2019-12-14 17:24:17 +00:00
Drashna Jaelre
0374677814 core: Fix variable init and header include (#7626)
tmk backport from tmk/tmk_keyboard@325a99acd9
2019-12-14 12:00:09 +00:00
zvecr
3d54b1adf0 Convert backlight to follow driver rules pattern - update docs 2019-12-14 03:25:06 +00:00
zvecr
d4c23d881f Convert backlight to follow driver rules pattern 2019-12-14 03:25:06 +00:00
Drashna Jaelre
1f26101f0e remove SERIAL_SOFT_DEBUG macro (#7625)
SERIAL_SOFT_DEBUG can be defined in the `config.h`

Backported from tmk/tmk_keyboard@c74eee6327
x
2019-12-13 18:06:18 -08:00
Joel Challis
80c2e26741 Fix ChibiOS USB config for chips which support OTGv1 (#7564)
* Align endpoint config as per rest of file (fixes #4783)

* Add comments about explicit order use

* Update tmk_core/protocol/chibios/usb_main.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-12-14 01:29:54 +00:00
Sid Carter
707d449ba0 Project Keyboard Alice PCB - Indicator LEDs and keymap update (#7442)
* allow main functions to be overridden

* update keymap to toggle keys and cleanup a bit

* allow main functions to be overridden

* update keymap to toggle keys and cleanup a bit

* get them lights working with the new setup

* disable console on my keymap, cause ARM and Linux, for now

* update keymap

* add home and end to the navigation

* thought this was redundant - update keyboards/projectkb/alice/alice.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-12-14 04:14:11 +11:00
starcalleramethyst
ba13127c04 New RGBKB Zen Rev1 keymap (#7609)
* adding my zen 1 keymap

updated layers and custom keycodes

* added slack + paste

defined custom keycode S_H_P and added to layer 3

* added custom keycodes

defined and inserted T_H_B and T_H_T

* enabled tap dance

adjusted rules to include tap dance

* tap dance enumeration and timing

added a TD key to send space on press and . on double tap. added tapping term to set tap detection time.

* added custom keycode

added E_SS to print string

* added mouskey + enum keycode

added in mousekey to rules. added custom code DC_C to double click and copy.

* updated custom keycode string

added a space into the output string for S_H_P

* removed colemak layer

colemak commented out, started adjusting MOs

* added 1 key copy paste

used from https://github.com/qmk/qmk_firmware/blob/master/users/drashna/process_records.c#L116-L130

* updated rgb and copyright line

* updated tapcode KC_CCCV

* Update keyboards/rgbkb/zen/rev1/keymaps/starcaller_v1.1/config.h

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

* updated keymap folder name to my username
2019-12-14 04:12:45 +11:00
Noan Mousy
20d3a979f1 Adding Backlight on the handwired AEK64 keyboard (#7629)
* Implementing backlight with breathing

* Rework of my personal keymap and adding some macros.
2019-12-13 06:39:10 -08:00
Drashna Jaelre
2d1c985ff4 core: Fix build config in protocol.mk (#7620)
Backports commits from tmk_keyboard
2019-12-13 11:36:37 +00:00
Sid Carter
e4818cf732 [Keymap] Personal keymap for the E6.5 (#7623)
* add new layout mirroring all my other layouts

* add rgb and other keys on fnm layer
2019-12-13 01:32:06 -08:00
nrtkbb
a1b53b45ca [Keyboard] Add uzu42 info.json (#7617)
* Add uzu42 info.json

* Made corrections provided by noroadsleft.
2019-12-12 23:28:45 -08:00
umi
09c7304bd9 [Docs] update git command and directory name of documents (#7619) 2019-12-12 20:59:00 -08:00
moyi4681
58b2c72d53 [Keyboard] add kbd67mkiirgb v2 keyboard (#7618) 2019-12-12 20:58:06 -08:00
Max Rumpf
627d6c154c [Keyboard][Phoebe] Send backslash on AltGr + ? (#7616) 2019-12-12 20:56:35 -08:00
kakunpc
4fbb53e817 [Keyboard][angel64] fix info.json (#7615) 2019-12-12 20:56:17 -08:00
Bart Riemens
ab78386e02 [Keyboard] Add Exclusive E7-V1 SE keyboard and keymaps (#7598)
* Updated based on feeback in PR #7598
2019-12-13 14:18:53 +11:00
yulei
f5638e54f5 update dp60 configuration (#7561)
* update dp60 configuration

* disable rgb underglow to avoid firmware overflow

* cleanup rules.mk

* Update keyboards/dp60/keymaps/allleds/rules.mk

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

* Update keyboards/dp60/keymaps/allleds/rules.mk

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

* Update keyboards/dp60/keymaps/allleds/rules.mk

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

* Update keyboards/dp60/keymaps/allleds/rules.mk

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

* Update keyboards/dp60/keymaps/allleds/rules.mk

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

* cleanup all rules.mk
2019-12-13 13:44:14 +11:00
James Young
77efa1c620 [Keyboard] Fluorite: add Configurator layout data (#7612) 2019-12-12 18:12:44 -08:00
yulei
a037cedfdc fixed I2C driver support for stm32f4 (#7526)
* correct i2c driver for stm32f4

* update pin mode definitions

* update macro definition
2019-12-12 17:20:04 -08:00
Lukas Alexandre
df78593b1b [Keyboard] Added Lex60 keyboard (#7600) 2019-12-12 11:45:56 -08:00
Ethan Beyer
45e71aedf0 [Keymap] My DZ60 Layout and files (#7537)
* I don't know if this is how my keyboard is laid out or not

* testing, still broken

* name change

* I think this is the layout I will try to use to start

* it compiles!

* added norman layout!

* media keys

* Moved backlight functions to KEYB
Moved Delete off of Backspace and to the < key

* more changes to layout, move Norman to 1 so it was moddable by FCTN

* swapped volume and media, I use volume a lot more than media

* Eh, it's still all in flux.

* I don't want the entire function layer full of dead keys, after all...

* moves escape to the caps lock key and caps lock to the functions layer

* update my readme for posterity

* Updates bonfire dz60 for better escape control

* WIP commit -- this is not working yet

* updates keymap for GAME layer
adds info to README
adds visual keyboard layout map in json and jpg for reference

* updates readme for visual keymap insertion

* removes my layout from the parent folder and keeps it localized

* updates the C code to be more readable

* finished the HELD_ESCAPE code

* finishes v6.1.0

* updates layout names to match repo code style per @mechmerlin

Apply suggestions from code review

* updates to code style per suggestions by @mechmerlin

* Update global-functions.c

updates some personal documentation

* updates hold time for escape on gaming layer

* updates several aspects of the code based on PR requests

* moves a variable
2019-12-12 02:53:39 -08:00
Max Rumpf
bbad6e1ae7 [Keyboard][Phoebe] Update default keymap, fix LAYOUT macro (#7604)
* fix LAYOUT macro

* Phoebe: Update default keymap

* Replace XXXXXXX macro with the previous key instead
2019-12-11 19:39:04 -08:00
Joel Challis
efb21c00ce Fix FORCE_NKRO handling (#7601) 2019-12-11 11:39:30 -08:00
Joel Challis
071eb2478f Remove mbed files (#7605)
* Remove mbed files

* Remove mbed files - fix comment

* Remove mbed logic blocks
2019-12-11 11:36:00 -08:00
fauxpark
770a4ee729 [Docs] Remove some outdated FAQ items (#7607) 2019-12-11 11:33:09 -08:00
kakunpc
ccda62616d [Keyboard] update angel64 (#7545)
* add angel64 rev1

* update angel64

* fix keymap.c
2019-12-11 10:40:00 -08:00
fauxpark
698d0dbda8 Use clock_prescale_set() from avr-libc (#7540)
* Use `clock_prescale_set()` from avr-libc

* Remove outdated FAQ info
2019-12-11 01:26:40 +00:00
Duncan Elliot
1af31a0523 Update feature support for Proton C (#7596)
Added a couple of entries for some features not currently supported on Proton C.
2019-12-10 18:31:39 -05:00
fauxpark
a8153774b5 [Docs] Fix docs fallback for pt-br (#7602) 2019-12-10 14:27:40 -08:00
Igor Hideki Trindade
10e8ed7430 [Docs] add README translation in portuguese (#7016)
* add README translation in portuguese

* add lang in menu

* Update docs/pt-br/README.md

* Update docs/pt-br/README.md

* Update docs/pt-br/README.md

* Update docs/pt-br/README.md

* Update docs/pt-br/README.md

* Update docs/pt-br/README.md

* Update docs/pt-br/README.md

* Update docs/pt-br/_summary.md

* Update sumary links

* Update README

Co-Authored-By: Álvaro A. Volpato <alvaro.volpato@usp.br>
2019-12-10 10:19:12 -08:00
MudkipMao
cde56a7eee [Keyboard] Think6.5 Default Keymap Cleanup (#7594) 2019-12-09 21:51:15 -08:00
yulei
8551ab3daf [Keyboard] update m12og keymap to readable version (#7581)
* add m12og keyboards

* update readme.md

* update to latest code suggestions

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/rules.mk

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

* update keymap to readable version

* fixed incosist of info.json and keymap
2019-12-09 21:41:39 -08:00
Benjamin Smith
b0bee465aa [Keyboard] Add cKeys Washington keyboard (#7570)
* Add cKeys Washington keyboard

* Add suggested changes

* Fix encoder direction

* Remove unneeded file

* Update config.h

* Update washington.c
2019-12-09 21:40:04 -08:00
Jason Nedell
7085066f08 [Keyboard] Fix 2U backspace key in ansi_blocker layout for GrayStudio Space65 keyboard (#7593)
* Fix ansi_blocker layout

Reposition unused keycode

* Update keymap matrix hex code

Use match hex code so number matches matrix position
Update spacing

* Realign keymap to match physical hardware
2019-12-09 18:01:05 -08:00
fauxpark
e4dd9e1393 [Keyboard] Remove PREVENT_STUCK_MODIFIERS from config.h files (#7592) 2019-12-09 16:00:27 -08:00
Josh Hinnebusch
9c6a7522d7 [Keyboard] update default h87a keymap for fn functionality (#7589)
* update default h87a keymap for fn functionality

* Update keyboards/hineybush/h87a/keymaps/default/keymap.c
2019-12-09 15:32:48 -08:00
Yan-Fa Li
01653a5f96 [Keymap] ergotravel updates (#7588)
* Update rules.mk so it compiles again

* Updates

* Update keyboards/ergotravel/keymaps/yanfali/rules.mk

* Update keyboards/ergotravel/keymaps/yanfali/rules.mk

* Update keyboards/ergotravel/keymaps/yanfali/rules.mk
2019-12-09 13:31:51 -08:00
marhalloweenvt
5acb7e3707 [Keyboard] Adjust ColorLice to work with QMK configurator (#7572)
* [Keyboard] Add new keyboard Symmetry60

* Add new keyboard Symmetry60

* Fix Typo

* Update keyboards/handwired/symmetry60/config.h

* Update keyboards/handwired/symmetry60/readme.md

* Update keyboards/handwired/symmetry60/readme.md

* Update keyboards/handwired/symmetry60/readme.md

* Update keyboards/handwired/symmetry60/rules.mk

* Update keyboards/handwired/symmetry60/symmetry60.h

* Update keyboards/handwired/symmetry60/symmetry60.h

* Update keyboards/handwired/symmetry60/symmetry60.h

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update rules.mk

* Update symmetry60.c

* Update keyboards/handwired/symmetry60/rules.mk

* Add ColorLice

* Update ColorLice

- Adjust info.json to support Configurator
- Adjust layout name to fit with info.json
- Seperate 2 feature: RGB Switch and RGB Underglow

* Update new way of control lock leds

* Remove #ifndef COLORLICE_H

* Update make example

* Revert Helix

* Revert Helix

* Revert Helix

* Revert Helix

* Update keyboards/handwired/colorlice/colorlice.h

* Update keyboards/handwired/colorlice/colorlice.h

* Update default keymap

* Revert Helix

* Update keyboards/handwired/colorlice/readme.md

* Update keyboards/handwired/colorlice/rules.mk

* Update keyboards/handwired/colorlice/colorlice.c

* Update keyboards/handwired/colorlice/colorlice.c

* Remove unnecessary function

* Update keyboards/handwired/colorlice/colorlice.c

* Adjust rules option for working with Configurator

- Move RGB_MATRIX_ENABLE and RGBLIGHT_ENABLE to keyboard rule.
- Add RGB_DI_PIN in keyboard config

* Update keyboards/helix/rev2/keymaps/default/keymap.c

* Update keyboards/handwired/colorlice/readme.md

* Update keymap for Colorlice

* Adjust rules.mk to use space indent

* Update ColorLice to work with QMK online configurator

- Delete rgb_underglow keymap
- Move config from keymap layer to keyboard layer
- Tweak a little layout so it can appear default layout on QMK config

* Update keyboards/handwired/colorlice/rules.mk

* Update keyboards/handwired/colorlice/rules.mk
2019-12-09 09:44:07 -08:00
Ethan Durrant
6c834dea7b [Keyboard] Adding Navi10 macropad (#7556)
* working on keymap and files for the navi10

* fixing and modifying tap dance keys and layers

* cleanup, and adding my separate keymap

* edited and simplified the default keymap

* cleaned up files and added support for future rev2 board

* readme edits

* moved rev0 specific keymap to it's own folder

* added revision data to the config files

* added DEFAULT_FOLDER

* added note on compiling for a specific revision

* documentation and readme edits

* moved keymaps around and cleaned up

* added photo

* formatting and cleanup

* fixing whitespace

* moving the tap dance enable to keymap folders
2019-12-08 22:31:30 -08:00
Joel Challis
b3c7864990 Enable bitbang ws2812 for f4 (#7571) 2019-12-08 21:19:58 -08:00
yulei
8984f24f7c [Keyboard] add Matrix 8XV1.2 og ISO/ANSI keyboard (#7567)
* add m12og keyboards

* update readme.md

* update to latest code suggestions

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/readme.md

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

* Update keyboards/matrix/m12og/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-12-08 21:15:45 -08:00
Zach White
294caf1ff1 Also fix flash 2019-12-08 16:40:03 -08:00
Zach White
033c7af292 Fix compiling json files 2019-12-08 16:40:03 -08:00
ashtneoi
15e5f57952 Add JSON keymap to prereq list of C keymap
This ensures the C keymap is rebuilt when the JSON keymap changes.
2019-12-08 15:13:47 -08:00
William Chang
051faf4b64 Merge branch 'feature/billiams_space65' of github.com:billiams/qmk_firmware into feature/billiams_space65 2019-12-08 10:41:53 -08:00
William Chang
2d94e02ea1 remove unnecessary code from keymap 2019-12-08 10:39:26 -08:00
William Chang
013ac11c95 Update keyboards/gray_studio/space65/keymaps/billiams/keymap.c
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-08 10:34:24 -08:00
William Chang
dc2ed13a1c Update keyboards/gray_studio/space65/keymaps/billiams/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-08 10:33:06 -08:00
William Chang
6e463c8084 Update keyboards/gray_studio/space65/keymaps/billiams/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-08 10:32:55 -08:00
William Chang
3cd7cb81d4 Update keyboards/gray_studio/space65/keymaps/billiams/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-08 10:32:38 -08:00
William Chang
d5e0f21798 Update keyboards/gray_studio/space65/keymaps/billiams/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-08 10:31:33 -08:00
Yan-Fa Li
4b11c2b552 [Keyboard] instant60: Enable bootmagic lite to make eeprom reset easier (#7566) 2019-12-08 08:22:25 -08:00
XScorpion2
201c5bfa5c Updated slave encoder sync to reduce dropped pulses - v2 (#7505)
* Updated slave encoder sync to reduce dropped pulses

* Fixing encoder direction

* Encoder behavior fixes, tested

* Update keyboards/rgbkb/sol/keymaps/xulkal/rules.mk

To make fauxpark happy

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

* Update custom_encoder.c

* Update rules.mk

* Iris r4 fix

* More fixes for Iris & Kira

* Fix for right master encoders
2019-12-07 23:51:42 -08:00
James Young
34f302e1a5 [Keyboard] rebuild info.json for ep tf_longeboye (#7560) 2019-12-07 23:46:16 -08:00
Takeshi ISHII
722c196b08 [Keyboard] Added workaround for serial.c/LTO issue for helix/rev2 and helix/pico. (#7558) 2019-12-07 23:44:54 -08:00
James Young
c6ebb59a8b [Keyboard] EP96: fix info.json key sequence (#7557)
* ep/96 info.json: debug linting

* ep/96 info.json: fix key sequence

ISO Enter, Numpad Plus and Numpad Enter were out of order.
2019-12-07 23:41:44 -08:00
Alper Cugun
4808b930db [Keymap] Added my customized 40% layout (#7555)
* Formatting of Contra readme.

* Initial version of my custom keymap

* Move TODOs to readme

* Add comment

* Nuke Plover layer

* Port changes to other layers

* Finished work on my own layout for now

* Add layout image

* Processed comments from review
2019-12-07 23:33:48 -08:00
fauxpark
c74295de88 Set proper AVR part for USBasp avrdude flashing (#7552)
* Set proper AVR part for USBasp avrdude flashing

* Remove `PROGRAM_CMD` stuff from rules.mk as they should not be needed anymore

* Missed the Plaid readme

* Remove PROGRAM_CMD from Mysterium
2019-12-07 23:32:43 -08:00
marhalloweenvt
a7209533a3 [Keyboard] Add new keyboard ColorLice (#7536)
* [Keyboard] Add new keyboard Symmetry60

* Add new keyboard Symmetry60

* Fix Typo

* Update keyboards/handwired/symmetry60/config.h

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

* Update keyboards/handwired/symmetry60/readme.md

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

* Update keyboards/handwired/symmetry60/readme.md

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

* Update keyboards/handwired/symmetry60/readme.md

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

* Update keyboards/handwired/symmetry60/rules.mk

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

* Update keyboards/handwired/symmetry60/symmetry60.h

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

* Update keyboards/handwired/symmetry60/symmetry60.h

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

* Update keyboards/handwired/symmetry60/symmetry60.h

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

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update rules.mk

* Update symmetry60.c

* Update keyboards/handwired/symmetry60/rules.mk

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

* Add ColorLice

* Update ColorLice

- Adjust info.json to support Configurator
- Adjust layout name to fit with info.json
- Seperate 2 feature: RGB Switch and RGB Underglow

* Update new way of control lock leds

* Remove #ifndef COLORLICE_H

* Update make example

* Revert Helix

* Revert Helix

* Revert Helix

* Revert Helix

* Update keyboards/handwired/colorlice/colorlice.h

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

* Update keyboards/handwired/colorlice/colorlice.h

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

* Update default keymap

* Revert Helix

* Update keyboards/handwired/colorlice/readme.md

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

* Update keyboards/handwired/colorlice/rules.mk

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

* Update keyboards/handwired/colorlice/colorlice.c

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

* Update keyboards/handwired/colorlice/colorlice.c

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

* Remove unnecessary function

* Update keyboards/handwired/colorlice/colorlice.c

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

* Adjust rules option for working with Configurator

- Move RGB_MATRIX_ENABLE and RGBLIGHT_ENABLE to keyboard rule.
- Add RGB_DI_PIN in keyboard config

* Update keyboards/helix/rev2/keymaps/default/keymap.c

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

* Update keyboards/handwired/colorlice/readme.md

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

* Update keymap for Colorlice

* Adjust rules.mk to use space indent
2019-12-07 23:11:21 -08:00
Manna Harbour
3d78e6078e [Keymap] Display logo for caps lock indication on crkbd using old OLED driver (#7535)
* Display logo for caps lock indication on crkbd using old OLED driver

* Add emacs read-only mode file variable to generated files

* use LTO_ENABLE instead of EXTRAFLAGS

This enables the same option, and disables action_macros, and action_functions, both of which seem to break when LTO is enabled. And this is a lot simpler to use.

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-12-07 23:08:12 -08:00
hmkemppainen
e676278474 fix instructions for oneshot layer handling on key release (#7554)
* fix instructions for oneshot layer handling on key release

* use ONESHOT_OTHER_KEY_PRESSED instead of ONESHOT_PRESSED

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-12-08 02:18:05 +00:00
fauxpark
730a736ef0 Set proper ASCII character for KC_NUHS in iWRAP code (#7434) 2019-12-08 12:59:47 +11:00
fauxpark
a8320f20f7 Improve support and docs for ADC driver (#7191)
* Improve support and docs for ADC driver

* Comment ADC channels

* Move to Makers and Modders section, and fix usage instructions

* Flesh out intro

* Superscript 328P note

* Fix pin_to_mux LUT

* Support USB64/1287 as well

* analogReadPin() defaults to 0V mux on invalid pin

* Update pinToMux() function documentation

* Dot

* Accept (some of) the `qmk cformat` changes

* Do clang-format properly

* More wording tweaks

* Link to encoder docs
2019-12-08 12:11:29 +11:00
William Chang
1290039d7e Added keymap profile to space65
- This keymap profile is for MacOS with VIM key bindings
- See readme for more information
2019-12-07 12:50:41 -08:00
osjuga
f275ffbdfc Minor grammar and filename fixes in docs (#7559)
Grammar in coding_conventions_c.md and coding_conventions_python.md

`rule.mk` to `rules.mk` in feature_haptic_feedback.md and feature_rgb_matrix.md
2019-12-07 23:19:18 +11:00
Eric Bunton
36a6e269bf Port SPLIT_USB_DETECT to helix/rev2 (#7385)
* Port SPLIT_USB_DETECT to helix/rev2

* Remove debug toggles.

* Rename is_keyboard_master to has_usb in split_util
2019-12-07 12:17:13 +00:00
William Chang
e7541faadc update flash script per pull request review 2019-12-06 17:05:36 -08:00
Gregory Gubarev
e8efc46e74 [Docs] Creating RU version of getting_started_introduction (#7224)
* Creating RU version of getting_started_introduction

* Update docs/ru-ru/getting_started_introduction.md

Update "предполагается"

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

* Update docs/ru-ru/getting_started_introduction.md

Co-Authored-By: Nikita Titov <nekit94-08@mail.ru>
2019-12-06 11:25:05 -08:00
Gregory Gubarev
1b08a19e3e [Docs] Create RU ver of becoming_a_qmk_collaborator (#7226)
* Create RU ver of becoming_a_qmk_collaborator

* Updated

* Updated - collaborator to соавтор

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

* Update docs/ru-ru/becoming_a_qmk_collaborator.md

Co-Authored-By: Nikita Titov <nekit94-08@mail.ru>
2019-12-06 11:16:00 -08:00
Danny
419128bfa1 [Keyboard] Fix missing item in Ergodicity macro (#7553) 2019-12-06 10:01:51 -08:00
coseyfannitutti
2d256f48d0 Add keyboard - MYSTERIUM (#7547)
* Create config.h

* Create info.json

* Create keymap.c

* Create keymap.c

* Create mysterium.c

* Create mysterium.h

* Create readme.md

* Create rules.mk

* Create usbconfig.h

* Update keyboards/coseyfannitutti/mysterium/readme.md

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

* Update keyboards/coseyfannitutti/mysterium/readme.md

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

* Update keyboards/coseyfannitutti/mysterium/readme.md

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

* Update keyboards/coseyfannitutti/mysterium/usbconfig.h

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

* Update keyboards/coseyfannitutti/mysterium/usbconfig.h

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

* Update keyboards/coseyfannitutti/mysterium/usbconfig.h

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

* Update mysterium.c

* Update rules.mk

* Update usbconfig.h

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update rules.mk

* Update keyboards/coseyfannitutti/mysterium/usbconfig.h

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

* Update keyboards/coseyfannitutti/mysterium/rules.mk

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

* Update config.h

* Update info.json

* Update keymap.c

* Update mysterium.h

* Update rules.mk
2019-12-06 20:03:30 +11:00
arlenk
380e05ad6e Update getting_started_make_guide.md (#7538)
* Update getting_started_make_guide.md

clarifying that NO_PRINT and USER_PRINT should not be used at the same time.

* Update docs/getting_started_make_guide.md

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-06 19:42:33 +11:00
Joel Challis
de4eb79c6a Fix breathing toggle when rgb is disabled (#7550) 2019-12-06 19:27:04 +11:00
jotix
be47f91bc4 Jotix (#7549)
* jotix_layout_adjustment

* TT(_LOWER)

* config.h

* jotix_layout

* jotix_layout
2019-12-05 07:08:27 -08:00
squirrelsRduck
8030c17d63 [Keymap] Dactyl Manuform computer scientist's layout with split RGB enabled (#7519)
* Added my Dactyl Manuform layout

* Added my Dactyl Manuform layout

* finalized key layout, added reset code, no LED yet

* finalized key layout, added reset code, no LED yet

* enabled RGB backlight

* enabled RGB backlight

* enabled RGB backlight

* supporting split rgb

* supporting split rgb

* supporting split rgb

* added media controls

* allowing ctrl/command to fallthrough from mouse layer so we can ctrl scroll to zoom in/out

* addressed PR comments, and make a couple last minute adjustments to the layout, to add in the Forwards Delete keycode

* decreased brightness even more
2019-12-05 01:04:54 -08:00
Ahmed Elshafey
9c8e66dc05 [Keymap] Added Massdrop ctrl keymap (#7491)
* massdrop ctrl endgame keymap first commit

* massdrop ctrl endgame keymap update

Added double dance functions to toggle mouse layer while keeping LGUI key functionality.
Added led config and related functionality.
Added RGB indicators for effective keys on layers.
Fixed RGB timeout ignoring user set LED flags.
At current state, layer RGB indicators ignore RGB brightness value, will add toggle key later to toggle between current keyboard brightness and max brightness as it's nice to have the indicator RGB at max brightness but still too bright at times.

* updated documentation and added RGB indicator for ctrl and shift in function layer

* Update keyboards/massdrop/ctrl/keymaps/endgame/keymap.c

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

* Update keyboards/massdrop/ctrl/keymaps/endgame/keymap.c

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

* Various fixes and changes.

Removed backslashed at end of layouts, better looking.
Changed layout names from macro definitions to enum.
Replaced MOD_BIT with MOD_MASK macros.
2019-12-05 01:03:03 -08:00
fauxpark
3ad389de55 Add short aliases for Magic keycodes (#7541)
* Add short alias for `MAGIC_TOGGLE_NKRO`

* Add aliases for the other Bootmagic keycodes

* Replace long form in default keymaps
2019-12-05 00:44:39 -08:00
Jeong Arm
66040506a7 [Keymap] [preonic/kjwon15] Support led key (#7543) 2019-12-04 09:47:59 -08:00
Joel Challis
d598f01cb7 Relocate magic keycode processing (#7512)
* Move magic keycode processing to own file

* Save some bytes

* Update comments

* Update define to one thats not already used...

* Fix audio
2019-12-03 19:48:55 +00:00
Joel Challis
1718dfa658 Increase matrix scanning speed on xd84 (#7517)
* Increase matrix scanning speed

* Fix func name in failure output
2019-12-03 19:39:21 +00:00
MechMerlin
1c8208ad9a Add J-01 ISO Support (#7527)
* Add ISO support

* Update keyboards/jae/j01/info.json

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2019-12-03 16:49:31 +00:00
MakotoKurauchi
583be4a5f3 Helix default keymap update (#7465)
* add RGBRST key into helix/pico:default keymap ADJUST layer

* update helix/rev2:default keymap's OLED display contents

 * add RGBRST key to HELIX_ROWS == 4 ADJUST layer
 * add CAPS key to RAISE, LOWER layer
 * add layer status display on slave side oled
 * add RGB LED status display on both side oled
 * save stack memory size
2019-12-03 07:51:18 -08:00
halvves
24507ddca8 [Keymap] add halvves kumo (minivan) keymap (#7534)
* [Keymap] add halvves kumo (minivan) keymap

* adjust tapping

* remove RGBLIGHT_TIMER
2019-12-03 01:35:29 -08:00
James Young
3152bf572b [Docs] Restructure of Git Best Practices doc (#7231)
* Add "Resynchronizing an Out-of-Sync Git Branch" doc

* Update (Git) Best Practices doc title and filename

* Rename Branch Resync doc

* fork Best Practices doc into multiple files

* Add the doc list to Git Best Practices doc

* Update sidebar

* Update internal references

* Update sidebar - add subsection

* Update Your Fork's Master page title

* title case on Git Best Practices main doc

* ... and in the Resynchronizing a Branch doc

* Please read Part 1

I worked really hard on this, okay?

* Please use branches, too.

* suggestions by mtei

* change note about adding multiple files

* note that the name given the remote repo is arbitrary

* suggestions by fauxpark

* Git Best Practices -> Best Git Practices

Reads more naturally.

* rephrase hint block regarding remote name

* rework the resynchronization instructions per mtei

* use hint boxes for reference to Part 1 doc

I may be addicted to hint boxes. I'm sorry fauxpark. 😢

* add some clarity about the upstream repo

* wordsmithing per mtei

* restyle the shell code blocks

Makes them more consistent to the other docs in this section.
2019-12-02 18:47:02 -08:00
kevin-b-lockwood
96d4ba84c2 [Keyboard] Add handwired/floorboard (#7478)
* added handwired/plonk

* Update readme.md

* Update readme.md

* Update info.json

* Update config.h

* Update readme.md

* Update keyboards/handwired/plonk/rules.mk

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

* Update rules.mk

* Update plonk.c

* Update plonk.h

* Update keymap.c

* Delete config.h

* Update keyboards/handwired/plonk/config.h

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

* Update rules.mk

* Update info.json

* Update keyboards/handwired/plonk/readme.md

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

* Update rules.mk

* Renamed the Plonk to the Floorboard. Another homage, just subtler this time.

* removed old plonk files

* Update config.h
2019-12-02 12:03:35 -08:00
Joule-Flow
680924777b [Keyboard] Added tr60w keyboard (#7450)
* Added tr60w configurations.

I based these files on the fox-lab/qmk_firmware repository.
After checking both licenses, which are identical, I added those
files into this feature branch.

For transparency reasons I'll add the url to the fox-lab repository.
https://github.com/fox-lab/qmk_firmware

* Using #pragma once in config.h.

* Removed '#define CCONFIG_H' from config.h.

* Changed PRODUCT_ID to '0x4140'.

* Renamed setting to 'DEBOUNCE'.

* Removed key combination, due to already default implementation.

* Removed 'PREVENT_STUCK_MODIFIERS', defaulted by QMK.

* Removed not uneccessary '#endif' statement.

* Renamed include to 'QMK_KEYBOARD_H'.

* Changed keymap structure according to pull request suggestion.

* Removed 'void matrix_init_user(void)'.

* Removed 'void matrix_scan_user(void)'.

* Removed 'bool process_record_user(...)'.

* Removed non-standard configuration in favor for 'led_update_kb'.

* Using default setup based on 'MCU' setting.

* Replaced Build Option configuration with suggested information.

* Fixed include statements as requested.

* Changed 'KEYMAP' to suggestion.

* Removed obsolete '#endif' statement.

* Added readme.md file.

* Updated readme.md with further information.

* Reverted include statement, to check if this caused ci error.

* Revert "Reverted include statement."

This reverts commit ebd992dc01.

* Fixed wrong mapped key

* Fixed include as per suggestion.

* Replaced 'KC_TRNS' with '_______'for readability.

* Added personal keymap.c file.

* Updated the readme.md file according to template/avr/readme.md.

* Fixed Link to Image.

* Updated readme.md as per request.

* Updated rules.mk, as per suggestion.

Set 'BOOTMAGIC_ENABLE = lite'.
2019-12-02 11:47:55 -08:00
Matt Valentine-House
75c8a79d0e [Keymap] Ruby influenced Redox keymap (#7531) 2019-12-02 11:41:20 -08:00
umi
da1a527c90 [Docs] add japanese translations (#7454)
* for initial commit

* for initial commit

* for initial commit

* Update led_update_kb example (#7451)

* Update led_update_kb example

* Update comment to explain pin behavior

* wordsmith

* wordsmithing 2

* Remove CR when computing BOOTLOADER_SIZE. (#7453)

* Set up language fallback for docs, and update translation guidelines (#7403)

* Set up language fallback for docs, and update translation guidelines

* Title Case

* Add ID example

* Link to emoji flag cheatsheet

* Move docs preview section to contributing.md

* Point to docs preview in the readme

* [Keyboard] Added Cans12er keyboard (#7455)

* added cans12er keyboard

* updated readme

Updated the readme to conform with the provided template from the qmk_firmware githubpage

* Update keyboards/cans12er/README.md

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

* Changed configuration

Changed the configuration based on the Change Request from PR #7455 made by github user noroadsleft

* [Keyboard] Update ATmega32A readme files to match template (#7462)

* Update atmega32a readme files to match template

* Update atmega32a readme files to match template - fixes

* Apply suggestions from code review

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

* update files based on comments

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-Authored-By: shela <shelaf@users.noreply.github.com>
2019-12-02 11:12:02 -08:00
Danny
bf962821b3 Remove check for EH define (#7525)
Its use in lets_split_eh was factored out in https://github.com/qmk/qmk_firmware/pull/6411
2019-12-02 17:10:09 +00:00
skullY
ce5678b819 Remove eeprom_f4 due to conflicting license 2019-12-02 08:41:29 -08:00
ihotsuno
d9cf6c6730 [Keyboard] 140% keyboard fluorite keymaps (#7473)
* fluorite keymaps

* Update config.h

* Update fluorite.c

I corrected the points that were pointed out.

* Update fluorite.h

I corrected the points that were pointed out.

* Update config.h

I corrected the points that were pointed out.

* Update keymap.c

I corrected the points that were pointed out.

* Update keyboards/fluorite/config.h

thanks!

* Update keyboards/fluorite/readme.md

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/readme.md

thanks!

* Update keyboards/fluorite/readme.md

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keyboards/fluorite/rules.mk

thanks!

* Update keymap.c

I corrected the points that were pointed out.

* Update fluorite.c

I corrected the points that were pointed out.

* Update rules.mk

I corrected the points that were pointed out.

* Update keyboards/fluorite/rules.mk

Thanks!

* Update keyboards/fluorite/rules.mk

Thanks!

* Update keymap.c

I corrected the points that were pointed out.

* Update fluorite.h

I corrected the points that were pointed out.

* Update keymap.c

I corrected the points that were pointed out.

* Update keymap.c

I corrected the points.
c:165:68 
XDXXXXX >> XXXXXXX

Reverted,because error log.
ADJUST,

* Update keymap.c

I corrected the points that were pointed out.

* Update readme.md

link added

* Update readme.md

photo link added

* Update readme.md

link Modify

* Update keyboards/fluorite/readme.md

Thanks!

* Update keyboards/fluorite/readme.md

Thanks!
2019-12-01 14:50:47 -08:00
iKirin
b386ccc786 Fix install for Linux Ubuntu (#7520)
* Fix linux install for Ubuntu. It failed due to sh not supporting [ and pip being seperate from python3

* Adapted install function according to feedback

* Fix style
2019-12-02 08:56:38 +11:00
skullY
0ed492978a Add pep8-naming to our python linting 2019-12-01 13:40:14 -08:00
John Helveston
a2c6257942 [Keymap] Added jhelvy keymaps for keebio/iris and lily58 (#7447)
* Added jhelvy keymaps for keebio/iris and lily58

* Fixed keymap image link for Iris

* Update keyboards/keebio/iris/keymaps/jhelvy/keymap.c

* Fixed keymap image url for lily58

* Update keyboards/lily58/keymaps/jhelvy/keymap.c

* Removed numbers in parentheticals in lily58 rules

* Removed unnecessary rules
2019-12-01 12:54:57 -08:00
QMK Bot
a14c9a057a format code according to conventions [skip ci] 2019-12-01 16:23:14 +00:00
yulei
c9838fea12 [Keyboard] fixed noah info.json (#7518)
* fixed noah info.json

* fixed iso keymap and adding default iso keymaps

* keymap cleanup

* verified through the qmk configurator preview mode

* modify encoding from utf-8 bom to urf-8
2019-12-01 08:20:45 -08:00
Drashna Jaelre
dfe18b40aa [Keyboard] Update Lets Split Sockets to use LTO_ENABLE (#7516) 2019-12-01 14:35:29 +00:00
fauxpark
f099142004 Add _summary.md for Russian docs with proper language prefix (#7514) 2019-11-30 13:01:41 +00:00
Drashna Jaelre
d98ed28e7c [Keyboard] Fix calls in handwired/jotanck (#7515)
The C file for this keyboard was calling `keyboard_pre_init_user`.  Which is wrong.

This fixes that behavior.
2019-11-30 12:54:57 +00:00
hvp
beb9f3ab71 [Keymap] Added my UT47.2 Swedish layout with tap dance function. (#6861)
* Added my UT47.2 Swedish layout with tap dance function.

* Move tap dance over to user space

* Removed config_common from config file
2019-11-29 23:39:54 -08:00
fauxpark
77c04d148e Specify Arm GCC 8 in macOS install script (#7509) 2019-11-29 16:44:18 -08:00
fauxpark
90c74701aa [Keyboard] Add community layout support for DZ60RGB WKL (#7503)
* Add community layout support for DZ60RGB WKL

* info.json would be good too
2019-11-29 15:50:36 -08:00
yulei
ede67df6bd [Keyboard] fixed noah info.json (#7502)
* fixed noah info.json

* fixed iso keymap and adding default iso keymaps

* keymap cleanup

* verified through the qmk configurator preview mode
2019-11-29 15:48:55 -08:00
Manna Harbour
27bf464dc3 [Keymap] Add RGB keycodes to keymap, enable RGB_MATRIX on crkbd (#7499) 2019-11-29 15:48:11 -08:00
fauxpark
fb02593bd4 Use os.chdir for qmk docs instead of a custom HTTP request handler (#7493) 2019-11-29 15:45:22 -08:00
Callum Oakley
c0dbd81b2b [keymap] personal keymap tweaks (#7510)
* replace home and end with cmd-left and cmd-right for iOS compatability

* tab left and right with cmd-shift-bracket instead of ctrl-tab for Blink compatability

* cmd-up and cmd-down instead of pg-up pg-down for blink shell compatability

* Revert "cmd-up and cmd-down instead of pg-up pg-down for blink shell compatability"

This reverts commit e976af9f11f77933f272edc22faf971445a65717.

* reorganised symbol layer

* update link in readme
2019-11-30 09:10:01 +11:00
Nick Brassel
385454e602 Fix output file permissions when using docker build. (#7378) 2019-11-29 13:01:21 +00:00
fauxpark
7164e8eeb5 Add yet another dictionary for the QMK Firmware docs sidebar heading (#7504) 2019-11-28 22:14:04 +00:00
Manna Harbour
f9521ffa21 Add shift-to-invert to remaining directional RGB_* keycode pairs (#7484)
* Add shift-to-invert to remaining directional RGB_* keycode pairs

RGB_MODE_FORWARD / RGB_MODE_REVERSE invert their functions when shift is held.
This change adds the same capabilities to the remaining directional RGB_*
keycode pairs.  This improves consistency and provides full RGB control in a
keymap containing only one keycode from each pair.

* remove redundant variable

* fix typo

* Fix more typos

Flyspell is on now I swear!
2019-11-28 22:00:29 +00:00
Joel Challis
2048df8832 Compile out some keycode processing when features are disabled (#7506) 2019-11-28 21:59:59 +00:00
Joel Challis
99f3321e26 Fix processing of RGB keycodes on slave half (#7404) 2019-11-28 21:59:14 +00:00
Joel Challis
235da6973d Install bootloadHid as part of qmk_install (#7463)
* Install bootloadHid on macos

* Install bootloadHid on windows

* Highlight bootloadHID is now installed in docs

* Update udev rules for bootloadHID

* Install bootloadHid on some distros

* fix caterina udev filename
2019-11-28 15:29:11 +00:00
stanrc85
5c41fa6062 [Keymap] Userspace updates (#7500)
* Convert macro to use new QMK CLI and other cleanup

* use \n instead of ss enter
2019-11-27 22:55:29 -08:00
MechMerlin
99a58aa2b8 [Keyboard] New Keyboard: J-01 (#7494)
* initial commit

* create the appropriate LAYOUT macro

* ANSI FOREVER

* Update keyboards/jae/j01/config.h

Changing it to use the Esc key for bootmagic lite

* Update keyboards/jae/j01/readme.md

* Update keyboards/jae/j01/readme.md

* Update keyboards/jae/j01/info.json

* Update keyboards/jae/j01/readme.md

* Update keyboards/jae/j01/info.json

* remove file as per fauxpark comments
2019-11-27 18:50:35 -08:00
James Young
4ae87ab40a Community Layout support (and minor tidying) for KBD8X MK2 (#7449)
* Community Layout support for KBD8X MK2

- add LAYOUT_tkl_ansi and LAYOUT_tkl_iso layout macros
- add default_tkl_iso keymap, using new layout macro
- rename ansi_625 keymap to default_tkl_ansi, using new layout macro
- change keymaps to four-space indent
- update info.json
- remove firmware size impacts from rules.mk

* remove empty functions

* rename the ANSI and ISO keymaps per fauxpark
2019-11-27 22:16:18 +00:00
XScorpion2
7e62705877 Revert split encoder fixes until able to repro a better fix (#7498)
Temporarily removing to avoid disabling split keyboards with Rotary Encoders, irisv3/4 and Sol, while @XScorpion2 works on a more permanent fix.
2019-11-27 14:04:30 -08:00
Yan-Fa Li
1604f79623 clean up quantum.c (#7485)
* idea

* progress

* more stuff

* wip

* wip

* last couple of keycodes you can move safely

* Update quantum/quantum.c

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

* Put back RGB_MODE_BREATHE
2019-11-27 14:00:23 -08:00
yulei
265c415f5e adding noah keyboard (#7432)
* adding noah keyboard

* Update keyboards/matrix/noah/config.h

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

* Update keyboards/matrix/noah/noah.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-11-27 07:54:02 -08:00
heliarmk
2b318ba01b [Keyboard] add keyboard wm1 (#7466)
* add new keyborad wm1

* 删除print信息

* add info.json and modified the default keymap.c

* add keyboard name and maintainer in info.json

* add readme.md file for new keyboard

* add default/keymap/readme.md

* modified the main readme file

* change keyboard name from wm1 to wm1_hotswap

* update readme

* update imgur link in readme

* update readme to add more pic and subtopic

* change wm1 keyboard pic to direct show up

* add copyright to config.h

* modified the info.json to change the label

* set the debug config to no in rule.mk

* rename wn1.c wm1.h to wm1_hotswap.c, wm1_hotswap.h

* fix  spelling mistake

* update the rule.mk to new version

* fix the LED operation in wm1_hotswap.c

* delete the definition of kc_trns

* change layout to conform to electrical position

* delete backslashes in keymap.c

* update info.json according to the layout

* change the return of led_update_kb

* delete unused comments in rule.mk

* delete unused definition in wm1_hotswap.h

* add a if statement to support user override func

* fix comment in rules.mk
2019-11-26 16:51:32 -08:00
Stephen Tudor
2f3adc3e24 Adjust Fn key and right arrow cluster of GH60/Satan keymap (#7490) 2019-11-26 23:23:29 +00:00
James Young
57581ad733 Fix typos in stale.yml (#7489) 2019-11-26 21:45:18 +00:00
Kemmel-Dev
b663a5b248 [Keymap] added a KBD67v2 layout that allows swapping of num/sym keys and f-rows (#7469) 2019-11-26 10:28:44 -08:00
moyi4681
f6ffa28b27 [Keyboard] change xbows/knight pins of capslock Indicator (#7486) 2019-11-26 10:02:42 -08:00
fauxpark
170261328e Add language prefixes to docs sidebar entries and readmes (#7406)
* Add language prefixes to docs sidebar entries and readmes

* Remove prefix where it doesn't belong
2019-11-26 18:22:13 +11:00
fauxpark
5a6737a778 Send string keycode tweaks (#7471) 2019-11-25 23:16:58 -08:00
Thomas Baart
a2cedf4555 [Keymap] Added keymap for Tessachka (#7457)
* Added keymap for Tessachka

* Update keyboards/kyria/keymaps/tessachka/keymap.c

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

* Update keyboards/kyria/keymaps/tessachka/rules.mk

Co-Authored-By: Drashna Jaelre <drashna@live.com>
2019-11-25 22:51:58 -08:00
Salicylic-acid3
397897180b [Keyboard] Add keyboard 7skb (#7468)
* Add keyboard 7skb

Add 7skb keyboard.

A 63 keys HHKB Layout keyboard.
Salicylic-acid3

* Update keyboards/7skb/keymaps/default/keymap.c

* Update keyboards/7skb/keymaps/default/keymap.c

* Update keyboards/7skb/keymaps/default/keymap.c

* Update keyboards/7skb/keymaps/salicylic/keymap.c

* Update keyboards/7skb/readme.md

* Update keyboards/7skb/readme.md

* Update keyboards/7skb/readme.md

* keymap update

Remove extra parts

* Delete rules.mk

* Update keyboards/7skb/rev1/rev1.c
2019-11-25 20:46:03 -08:00
fauxpark
36cde567ab [Core] Remove PROGRAM_CMD in mcu_selection.mk for 32A (#7482) 2019-11-25 19:51:40 -08:00
Martin Kauppinen
572d3329eb [Keyboard] Add hand swap config matrix for preonic rev 3 (#7460)
* Add hand swap config matrix for preonic rev 3

* Refactor hand swap config matrix into revision source files
2019-11-25 13:38:23 -08:00
yiancar
c0fe8dbfb4 IS31FL3733 Dirty page fix (#7079)
* IS31FL3733 Dirty page fix

Function IS31FL3733_update_led_control_registers was never setting update register to false. As a result the led on/off page was being written every transaction even when it was not modified. This is ineficient and causes lots of bandwidth use.

-> Fix the IS31FL3733_update_led_control_registers.
-> After testing it was evident that failed I2C transactions could corrupt the Led on/off register.
-> Update IS31FL3733_write_pwm_buffer and IS31FL3733_write_register functions to return 0 upon succesful tranmission and 1 if any of the transmitions within the function fail.
-> Modify IS31FL3733_update_pwm_buffers function so if any of the IS31FL3733_write_pwm_buffer transuction fails, the g_led_control_registers_update_required register is set to true forcing a rewrite of the led on/off register in case it was corrupted.

* Minor comment update

* Upsie:)

* Update is31fl3733.c

* Return fix

* more return fix

* type change

* more boolian logic reversal:)
2019-11-25 20:33:52 +00:00
Joel Challis
f0f161e572 Remove vusb 'reset to bootloader' hid message due to security implications (#7456) 2019-11-25 20:33:02 +00:00
Takeshi ISHII
3a7085dee4 fix link in docs/translating.md (#7474) 2019-11-25 00:37:08 +00:00
yynmt
583094aa26 Add RGB LED for Dozen0 (#7458)
* enable rgb led.

* add layer for default keymap

* Update keymap.c

* Update rules.mk

* Update rules.mk

* fix keymaps

remove backslashes.
2019-11-24 20:35:03 +11:00
Rob Rogers
f4fb0e1617 [Keyboard] Add candybar lefty layout (#7286)
* Add left number pad layout to candybar keyboard

* successfully builds

* Rename new layout to LAYOUT_lefty and add corresponding LAYOUT_righty as alias for LAYOUT

* merge

* Add lefty keymap

* Add lefty layout to info.json

* Added LAYOUT_righty to info.json and corrected some misplaced braces

* Update keyboards/candybar/info.json

* removed redundant sections as suggested.
2019-11-23 23:37:09 -08:00
Joel Challis
6a8c0a6468 [Keyboard] Update ATmega32A readme files to match template (#7462)
* Update atmega32a readme files to match template

* Update atmega32a readme files to match template - fixes

* Apply suggestions from code review
2019-11-23 20:42:20 -08:00
Can Baytok
d14573620d [Keyboard] Added Cans12er keyboard (#7455)
* added cans12er keyboard

* updated readme

Updated the readme to conform with the provided template from the qmk_firmware githubpage

* Update keyboards/cans12er/README.md

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

* Changed configuration

Changed the configuration based on the Change Request from PR #7455 made by github user noroadsleft
2019-11-23 16:56:18 -08:00
fauxpark
9ea9806d67 Set up language fallback for docs, and update translation guidelines (#7403)
* Set up language fallback for docs, and update translation guidelines

* Title Case

* Add ID example

* Link to emoji flag cheatsheet

* Move docs preview section to contributing.md

* Point to docs preview in the readme
2019-11-23 16:07:15 +00:00
a_p_u_r_o
7874f297b3 Remove CR when computing BOOTLOADER_SIZE. (#7453) 2019-11-24 03:01:03 +11:00
Yan-Fa Li
3541f01a72 Update led_update_kb example (#7451)
* Update led_update_kb example

* Update comment to explain pin behavior

* wordsmith

* wordsmithing 2
2019-11-23 15:37:25 +00:00
Hilary B. Brenum
eae21eed74 [Keymap] Adding hbbisenieks keymap for keebio/iris (#7440)
* hbbisenieks keymap

* fixed right encoder

* changes suggested during pr
2019-11-22 14:40:18 -08:00
Yan-Fa Li
e62ab7e259 Allow overriding of all functions in wonderland.c (#7198)
* f

* Allow overriding of all functions in wonderland.c

 - needed for custom LED functions in keymap.c

* Example of layer indication via LEDs

optimize

* Use newer led_update_kb and led_update_user hooks

 - these allow overriding without use of __attribute((weak))__

* Update led documentation a bit

 - clarify some of the wording around how  to use led_update_user

* Update led_update_user example

* Update audio example to be complete

* trailing spaces smh

* spaces

* spaces

* smh

* Less code is good

* Update docs/custom_quantum_functions.md

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

* Update docs/custom_quantum_functions.md

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

* Update docs/custom_quantum_functions.md

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

* Update docs/custom_quantum_functions.md

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

* Update docs/custom_quantum_functions.md

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

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-22 12:55:45 -08:00
dsanchezseco
0270d4d5a1 [Keymap] changed knight ridder offset to face me on planck (#7445)
* added rgblight controls to planck keymap

* fixed knight ridder offset to face me
2019-11-22 10:26:45 -08:00
Joel Challis
7e9ed2acbf Fix clang-format logic within CI (#7386) 2019-11-22 17:02:55 +00:00
Drashna Jaelre
66d4734371 Improve and streamline MSYS2 installation (#7232)
* Make MSYS force install

* Cleanup msys script

* Update to gcc 8.3 for arm and avr

And cleanup install scripts for both

* Fix path and scripts

* Fix links

* No confirmation for msys

* Tweak arm function since file structure changed

* Fix spacing and wording

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

* Only use MSYS2's make binary

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

* Some wordsmithing

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Add "disable download timeout" for download issues in MSYS

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Clean up URL for arm gcc download

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

* add pip

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-22 18:09:02 +11:00
Drashna Jaelre
6cf574396a [Keyboard] Update default keymaps to use layer_state_t (#7444)
* Update default keymaps to use `layer_state_t`

* Convert binon32 as get_highest_layer in default keymaps
2019-11-21 22:40:29 -08:00
dsanchezseco
f0a9c10b6d [Keymap] added rgblight controls to planck keymap (#7439) 2019-11-21 22:15:40 -08:00
fauxpark
78954a0d3e [Keyboard] Add three missing layouts (#7441)
* Add three missing default layouts

* Add layout support to tragicforce68

* Not really 68%

* Fix dumb mistake

* Update info.json too

* Apply suggestions from code review
2019-11-21 20:25:19 -08:00
fauxpark
02412156d5 Add 4-character aliases for sendstring keycodes (#7409)
* Add 4-character aliases for sendstring keycodes

* Remove pointless mail keycode redefinition

* Forgot brightness keycodes
2019-11-22 14:11:28 +11:00
Thomas Baart
e70fef03c1 Updated Kyria readme.md with relocated build guide (#7438) 2019-11-21 21:03:47 +00:00
Erovia
7e7eb69edf MILC: Add support for hidden subcommands (#7034)
* MILC: Add support for hidden subcommands

Subcommands with 'hidden=True' will not show up in the help output, but
will work as any other subcommands.

* Hide those hidden submodules, for real now

* Rebase on latest MILC
2019-11-21 12:52:00 -08:00
Drashna Jaelre
f0790a722d Change label for stale bot (#7429)
* Change label for stale bot

* Reword things to be more concise and clear

* git add .  -- that's how this works, right?

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

* Remove Discussion label from issue templates
2019-11-21 11:02:39 -08:00
fauxpark
57815dbc3b [Keymap] Clean up & improve default layouts (#7428)
* Clean up & improve default layouts

* Add newline at EOF in readmes

* Oops
2019-11-21 03:50:23 -08:00
moyi4681
5d76b5f655 [Keyboard] dztech rgb pcb v2 support (#7423)
* dztech rgb pcb v2 support

dztech rgb pcb v2 support

* Update config.h

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update keyboards/dztech/dz60rgb/v2/rules.mk

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

* Update keyboards/dztech/dz60rgb/v2/rules.mk

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

* Update keyboards/dztech/dz60rgb_ansi/v2/rules.mk

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

* Update keyboards/dztech/dz60rgb_ansi/v2/rules.mk

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

* Update keyboards/dztech/dz60rgb_wkl/v2/rules.mk

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

* Update keyboards/dztech/dz60rgb_wkl/v2/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-21 03:19:10 -08:00
Tim Schumacher
84065e1d74 [Keymap] Add DZ60, Levinson keymaps, twschum user files (#7358)
* Adds layout for DZ60rev2 plate B, options 4 and 10

* Use KC_TRANS for layer keys

* Format layer0 with visual key size layout

* Add RGB controls; add start description; add KC_LOCK

* Update comments on rules.mk for DZ60

* Gets keymap compiling

* Fix wiring for shift on row 3

* Hold a with other key to send Ctrl-A before other key

* Adds compile-time defined mac-compatability media keycodes

* Adds logic in place for capturing taps (w/ timeout)

* Add send_keys(...) which can send up to 64 nested keycodes

* Implement send_keys callable with n repeats

* Tweaks some of the keymap

* Add reset keycode; add disable to custom shortcuts

* Adds a special "off" layer where bonus mod goes to layer 0, every other key KC_NO

* Adjust timeout; mousekey settings

* Changes layout of Home,End,PgUp/Dn on the dedicated arrow keys L1/L2

* PoC on rgb lighted layer indication

* Refactors color table defines

* Adds logic for controlling layer lights

* Only change state on one side of the event lol

* Switch back to Tapping Toggle for layer 4

* Add custom config file for keyboard; TT and mousekey settings

* Code cleanup; starting to refactor special ctrl tapping keys functions

* Move defines and reak out functions

* Remove debugging light

* Adjust keymaps; add enter

* Adds a couple custom macros

* Add simplified version of keymap to help debug issues

* Adds basi numpad configuration for levinson keyboard half

* Use ANSI ctrl key as layer 1 for better one hand (`)

* Adapt to new 8bit hue from #5547; layer enum use everywhere

* Move custom code out to users/ space

* Flip col pins, move key assignments to "left hand"

* Update readme

* Implement placeholder macros

* Notes

* Reduce tapping time for SFT_T(/)

* Adds vim features; refactors things

* Adds fork of the vim features written by xton

* Use correct backspace keycode

* Add VIM_ESC

* Add "OFF" to the RGB/HSV definitions

* Clean up rules, use new "OFF" definition

* Add windows KC_CALCULATOR key to numpad

* Reformat layers with better guide; change layer names

* Add sleep key

* Change timeout delay

* Add a "code paste" which surrounds a ^V with ```

* Try removing shift tap on rshift /

* Update macros

* Update the "code paste" macro

* Update keymap with reset, calc, equals

* Update keyboards/dz60/keymaps/twschum_b_4_10_simple/keymap.c

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

* Update keyboards/dz60/keymaps/twschum_b_4_10/keymap.c

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

* Update users/twschum/twschum.c

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

* Update users/twschum/twschum.c

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

* Revert quantum/rgblight_list.h

* Better name for split space layout; rename KEYMAP->LAYOUT

* Rename KEYMAP->LAYOUT

* Use simpler :flash command

* Clean up layout files

* Use qmk's MOD_MASK_CTRL

* Sync lufa submodule

* Cleanup from noroadsleft's PR comments

* Modernize vim layer code
2019-11-21 03:07:33 -08:00
Takeshi ISHII
90bb7db48e [Docs] Update japanese translation of newbs.md and related documents. (#7431)
* Update japanese translation of newbs.md and related documents.

* document link id change
* add `ja/` in each link
  `[xxx](yyy.md)` --> `[xxx](ja/yyy.md)`

* copy docs/ja/_summary.md from umi-umi's #7248 and fix it
2019-11-21 02:36:38 -08:00
Takeshi ISHII
e54aadf24a [Docs] fix broken link in docs/newbs_best_practices.md (#7430) 2019-11-21 01:02:15 -08:00
William Chang
6bcaf01c3f add layout 2 and rename existing folder to layout 4
- renamed existing folder with directional layout to layout 4
- udpated existing readme
- Added layout_60_2
2019-11-20 23:03:47 -08:00
William Chang
e7f4d56592 Merge remote-tracking branch 'upstream/master' 2019-11-20 22:17:07 -08:00
x1
8416a94ad2 [Keyboard] Add pico as a new keyboard (#7419)
* Add keyboards/ pico as a new keyboad.

* Add keyboards/pico rev1.

* Add keyboards/pico keymaps/default.

* Add keyboards/pico keymaps/jis.

* Remove unneeded code of rules.mk.

* Revert rules.mk and remove some comments.
2019-11-20 21:48:30 -08:00
Manna Harbour
ecc7355321 [Keymap] Add ALGR and kle image, expand and correct documentation (#7426) 2019-11-20 17:25:55 -08:00
moyi4681
baf6715a7e [Keyboard] knight malposition fix (#7422)
knight malposition fix
2019-11-20 17:22:27 -08:00
fauxpark
f7c8e7ff70 Add info.json files for all default layouts (#7425)
* Add info.json files for all default layouts

* Update layouts/default/60_hhkb/layout.json

* Fix layout.json spacing and info.json dimensions
2019-11-20 17:21:23 -08:00
Yan-Fa Li
6776703d8f Postage Board MCU (#7424)
* Postage Board MCU

* Fix keymap

* Postage mini

* Update readme

* R2

* Update readme

* flip

* better image of r1

* Add a DEFAULT_FOLDER to keep zed and ci happy

* Update keyboards/handwired/postageboard/readme.md

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

* Update keyboards/handwired/postageboard/readme.md

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

* Fix keyboard name
2019-11-20 16:38:51 -08:00
skullydazed
f7bdc54c69 Add flake8 to our test suite and fix all errors (#7379)
* Add flake8 to our test suite and fix all errors

* Add some documentation
2019-11-20 14:54:18 -08:00
Joel Challis
d2115f7d1c Allow 'make all:<user>' to not build EVERYTHING (#7402) 2019-11-20 22:32:16 +00:00
Drashna Jaelre
e6b9980bd4 Remove keymap_config extern from default keymaps (#7399)
* Remove keymap_config extern from default keymaps

* Revert unicode

Apparently VSCode does not like unicode, I didn't actually edit these lines, so it must have been automatic... :(

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-20 22:31:36 +00:00
kakunpc
46606e1ea5 [Keyboard] Add "thedogkeyboard" (#7401)
* add the dog keyboard

* set rgbled

* fix info.json and readme.md

* Update keyboards/thedogkeyboard/readme.md

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

* Update keyboards/thedogkeyboard/readme.md

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

* Update keyboards/thedogkeyboard/readme.md

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

* Update keyboards/thedogkeyboard/readme.md

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

* update thedogkeyboard
2019-11-20 13:16:38 -08:00
trinity1561
0a5125a535 [Keyboard] Update e65.c to fix Caps Lock indicator (#7405)
* Update e65.c

Fixing Caps Lock LED indicator

* Update e65.c

Using new LED functions (led_update_kb)
2019-11-20 13:10:59 -08:00
Drashna Jaelre
eb91c96288 [Keymap] All about (ARM) RGB and OLEDs (drashna keymaps) (#7354)
* Add Kyria Keymap

* Enable all RGBLIGHT Animations for ARM and high capacity AVR

* Reduce GNUC version for __has_include

* Cleanup Ortho 4x12 Community layout

* Update Collide 39 keymap

* Cleanup Keymaps

* Enable full 30 LEDs for Ergodox

* Change EEPROM Load timing

* Use RGB Matrix on Planck Rev6

* Use correct keymap swap

* Enable everything for ARM

* Only enable rgb sleep on avr until crash is fixed

* Add additional Kyria keymap config

* Overhaul Kyria OLED display

* Improve kyria keymap based on usage

* Minor tweaks to rules

* Update OLED code to truncate properly

* Fix RGB Light layer indication

* Switch all of biton32 to get_highest_layer function

* Fix OLED Keylogger display

* Run qmk cformat over all of my user files

* Slight tweak to kyria based on usage

* Move around LALT_T config

* Add comments about base wrappers to keymaps

* Another cformat pass

* Temp fix for VUSB boards and NKRO

* Convert tabs to spaces in rules.mk files

* Only enable RGBLight if it's enabled

* Add Encoder Flip setting

* Update OLED font file
2019-11-20 12:37:24 -08:00
Drashna Jaelre
8e8986b250 Add auto-handling of stale PRs/Issues (#7197)
* Add auto-handling of stale PRs/Issues

This adds the configuration for probot-stale, so that PRs and Issues can be automatically pruned without intervention by collaborators.

This marks PRs with `awaiting changes` label after 45 days, and then closes any PR with "Awaiting changes" after 30 days.  Unless they have `awaiting review`, `breaking_changes`, `in progress` or `on hold` labels.

This marks issues as `solved` after 90 days, and then closes them 30 days afterwards. Unless they have `bug`, `discussion, `to do`, `in progress` or `on hold` labels.

* Cleanup the text some

* Update .github/stale.yml

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-20 12:17:52 -08:00
kuchosauronad0
b90edb75a3 [Docs] Start of German translation of documentation (#6909)
* Initial commit

* Fix links so that they point to the german translation

* minor changes to the wording of some sentences
* correctly capitalize second person pronouns

* Fix links so that they point to the german translation

* minor changes to the wording of some sentences
* correctly capitalize second person pronouns

* Translate newbs_learn_more_resources.md

* Clear up some phrases

* Add newbs_building_firmware.md, fix spelling

* Add newbs_building_firmware.md, fix spelling

* Update docs/de/_summary.md

Danke

* Update docs/de/README.md

* Update docs/de/_summary.md

Ich wollte es kuerzer halten damit die Navigationsleiste nicht zu breit wird, aber das ist halt die deutsche Sprache :)

* Update docs/de/newbs.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs.md

* Update docs/de/newbs.md

* Update docs/de/newbs.md

* Update docs/de/README.md

* Update docs/de/README.md

* Update docs/de/README.md

* Update docs/de/README.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Apply suggestions from code review

* Add translation of newbs_flashing.md

* Apply suggestions from code review

Danke

* Add translation of Zadig-guide

* Translate newbs_testing_debugging.md to german

Co-Authored-By: Max Rumpf <max.rumpf1998@gmail.com>
Co-Authored-By: geisterfurz007 <geisterfurz007@users.noreply.github.com>
2019-11-20 12:02:56 -08:00
Takeshi ISHII
3b9a139c07 fix feature_advanced_keycodes.md's link (#7421)
docs/feature_advanced_keycodes.md has:
```
[Tap Dance](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)
```

change to:
```
[Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)
```
2019-11-20 13:48:05 +00:00
ashpil
acd02e4469 [Keyboard] Add support for Model M USB C Controller (#7393)
* added usb c model m

* added readme

* Update keyboards/ashpil/modelm_usbc/rules.mk

* Update keyboards/ashpil/modelm_usbc/rules.mk

* Update keyboards/ashpil/modelm_usbc/rules.mk

* Update keyboards/ashpil/modelm_usbc/rules.mk

* Update keyboards/ashpil/modelm_usbc/rules.mk

* Update keyboards/ashpil/modelm_usbc/rules.mk

* cleaned up code

* removed combo from keymap

* added reset to default

* Update keyboards/ashpil/modelm_usbc/rules.mk

* bootmagic and simplifying default

* Update rules.mk

* removed duplicates

* updated readme

* Update keyboards/ashpil/modelm_usbc/README.md

* Update modelm_usbc.h

* Update keyboards/ashpil/modelm_usbc/keymaps/default/keymap.c

* Update keyboards/ashpil/modelm_usbc/keymaps/default/keymap.c

* Update keyboards/ashpil/modelm_usbc/keymaps/default/keymap.c

* full support for either ANSI or ISO

* Update keyboards/ashpil/modelm_usbc/info.json

* Update keyboards/ashpil/modelm_usbc/info.json

* Update keyboards/ashpil/modelm_usbc/info.json

* Resize the ISO Enter key

* ANSI Enter and Left Shift keys resize
2019-11-19 22:06:16 -08:00
Campbell Barton
8725f37de7 [Keymap] Update to qwerty_code_friendly (#7416)
- Move space to thumb cluster.
- Make L1 and L2 symmetrical.
- Add App & Menu keys.
2019-11-19 21:17:08 -08:00
moyi4681
831696611a [Keyboard] dz60rgb_wkl malposition fix (#7418)
fix malposition combile in config.qmk.fm
2019-11-19 18:02:23 -08:00
angelbirth
03e50e6dc9 ASH-1800 (#7031)
* my custom layout

* asd

* use qmk-dfu

* :)

* ganti keymap lagi

* my custom layout

* asd

* use qmk-dfu

* :)

* ganti keymap lagi

* my custom layout

* asd

* use qmk-dfu

* :)

* ganti keymap lagi

* Add handwired2x2 project, define pins for atmega328p in config_common.h

* Add USB IDs

* my custom KBD75 layout

* renaldi danang's numpad

* my redox keymap

* reynaldi danang's numpad

* asdasd

* ASH-1800

* added description and layer 1

* added requested changes from fauxpark

* forgot to include this

* USB descriptor parameter:
- assign product id
- assign description

edit formatting on readme.md

* update USB descriptor: change manufacturer

* review from fauxpark and noroadsleft

* remove extra files

* removed unnecessary comment

* minor cleanup
2019-11-20 11:21:19 +11:00
Erovia
25e9853efe [Core] Fix ps2avrgb template (#7412) 2019-11-19 13:00:45 -08:00
Erovia
c1c27b83aa [Keyboard] Add support for the THE30 keyboard (#7390) 2019-11-19 12:56:01 -08:00
くまお工房
bb87bdec82 [Keyboard] Add Kudox column-staggered layout. (#7400)
* Add Kudox columner layout.

* Remove an extra comma from info.json.
2019-11-19 12:51:47 -08:00
Mihai Olteanu
687a24f298 Fix typo and code indentation (#7410) 2019-11-19 13:41:35 +00:00
shela
23f828a2f3 [Docs] Fix Japanese country flag (#7407) 2019-11-19 00:38:50 -08:00
skullydazed
9c58da6b12 Improve a number of things about how MILC operates (#7344)
* Pull in updates for MILC

* Remove the shadow argparser
* Make it easier to reason about arguments and how they're translated into the config tree
* Populate self.config during init to support setting user.qmk_home for the global CLI
* Remove the short argument -c so that we can unambiguously determine the config file location without doing full argument processing
* Remove the --save-config option as it's a little confusing anyway
* Use Pathlib for path manipulation

* Fix commands with no arguments
2019-11-18 14:54:50 -08:00
moyi4681
b608bddc5e knight Indicator light fix (#7398)
* knight Indicator light fix

* Update knight.c

* Update knight.c

* Update knight.c

* Update knight.c
2019-11-18 19:25:35 +11:00
Takeshi ISHII
cee8df3edf [Docs] Modified the description about setting debug_enable in docs/faq_debug.md. (#7394) 2019-11-17 17:09:57 -08:00
Luiz Correia
e58dd1a09a [Keyboard] Add abnt2 layout to gh60 (#7371)
* [keymap] Add abnt2 format to gh60

* Fix typing errors

* Change key names to capitals

* Fix layout define

* Apply suggestions from code review

* Fix layout define again I used a k

* Remove layer variable

* Update keyboards/dz60/keymaps/default_abnt2/readme.md

* Make changes from noroadsleft
2019-11-17 16:10:16 -08:00
zvecr
a91c0c4765 Run clang-format manually to fix recently changed files 2019-11-17 08:25:58 -08:00
James Young
6b18ca2875 Add Community Layout: 60_abnt2 (#7381)
* Add Community Layout: 60_abnt2

Add a 60% version of the standard keyboard layout used in Brazil.

* Enable 60_abnt2 support for DZ60

* fix the indenting in the Community Layout keymap
2019-11-17 08:12:57 -08:00
Erovia
7b6c8e89ca Doc fix to conform with #7221 (#7392) 2019-11-17 16:04:44 +00:00
James Young
46d0fe44f3 [Keyboard] Cutie Club Wraith: Configurator Bugfix for LAYOUT_iso (#7376)
* debug lint info.json

Because I need to debug this file.

* move ISO Enter to the proper location in sequence

* add key counts because I like having them
2019-11-16 12:46:34 -08:00
Robert Akhmerov
634b277b07 [Docs] Explain Tap Dance interruption (#5520) 2019-11-16 09:20:49 -08:00
QMK Bot
7891de7f6d format code according to conventions [skip ci] 2019-11-16 07:10:19 +00:00
jorgemanzo
897888db41 Add CLI command for flashing a keyboard
A new CLI subcommand was added, flash, which behaves very similar to the already present compile CLI comamnd, but with the added ability to target a bootloader. The command is used like so: qmk flash [-h] [-b] [-kb KEYBOARD] [-km KEYMAP] [-bl BOOTLOADER] [filename].

A -kb <keyboard> and -km <keymap> is expected, or a configurator export JSON filename. A bootloader can be specified using -bl <target>, and if left unspecified, the target is assumed to be :flash. -bl can be used to list the available bootloaders.

If -km <keymap> is provided, but no -kb <keyboard>, then a message is printed suggesting the user to run qmk list_keyboards.
2019-11-15 23:06:07 -08:00
jotix
4f5b34af56 [Keymap] add_mouse_keys (#7372) 2019-11-15 17:22:48 -08:00
Joel Challis
b94f6cb116 Port SPLIT_USB_DETECT to crkbd (#7195) 2019-11-16 00:07:21 +00:00
XScorpion2
0f0c73f14a Updated slave encoder sync to reduce dropped pulses (#7325)
* Updated slave encoder sync to reduce dropped pulses

* Fixing encoder direction

* Encoder behavior fixes, tested

* Update keyboards/rgbkb/sol/keymaps/xulkal/rules.mk

To make fauxpark happy

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

* Update custom_encoder.c

* Update rules.mk
2019-11-15 15:01:50 -08:00
Drashna Jaelre
f6b5f6db76 Improvements to Solenoid feature (#7369)
* Error out when Solenid pin is not defined

Instead of defaulting to a (literally) random pin, error out instead.  Because this pin may be used, or because that pin may not be exposed, or may not exist.

* Remove 'SOLENOID_ACTIVE' setting since it's not used

* Update documentation
2019-11-15 22:27:46 +00:00
Richard Baptist
381b73fcac Fix the RGB_MATRIX_RAINBOW_PINWHEELS animation (#7365)
The internal naming was `PINWHEELS` instead of `RAINBOW_PINWHEELS`
causing a mismatch between animation definition and the function.
2019-11-15 13:12:34 -08:00
Salicylic-acid3
ad36bb37dd [Keyboard] Add keyboard Nafuda (#7367)
* [Keyboard] Add keyboard Nafuda

Add Nafuda keyboard.

A 7 keys keyboard.
Salicylic-acid3

* Update keyboards/nafuda/info.json

* Update keyboards/nafuda/readme.md

* Update keyboards/nafuda/readme.md

* Update keyboards/nafuda/nafuda.h

* Update keyboards/nafuda/readme.md

* Update keyboards/nafuda/rules.mk

* Update keyboards/nafuda/rules.mk

* Update keyboards/nafuda/rules.mk

* Update keyboards/nafuda/rules.mk

* info.json Update

* Update keyboards/nafuda/rules.mk
2019-11-15 10:20:57 -08:00
moyi4681
1c9e450218 [Keyboard] kbdfans keyboards NKRO enable (#7364) 2019-11-15 00:01:51 -08:00
James Young
700bea41f8 [Keyboard] fix DZ60RGB info.json (#7362)
* fix DZ60RGB info.json

JSON was invalid.

* correct metadata per moyi4681
2019-11-14 22:10:54 -08:00
Sid Carter
43889326fc Adding new pcb with default keymap and personal keymap (#7314)
* adding new pcb with default keymap and personal keymap

* Update keyboards/leeku/finger65/readme.md

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

* Change to newer DEBOUNCE format

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

* switch to pragma

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

* remove unused define keyboards/leeku/finger65/config.h

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

* some cleanup after debounce and other changes

* Remove no_suspend_power_down from keyboards/leeku/finger65/rules.mk

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

* move to newer format and remove unused stuff

* ensure default has no leds for now

* change default layout name

* clean up the keymap a bit

* want grave not tilde

* a minor change and cleanup

* more stuff removed cause I don't care for LEDs

* remove some remaining stuff

* add RGBLED stuff

* Update keyboards/leeku/finger65/usbconfig.h

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

* Update keyboards/leeku/finger65/usbconfig.h

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

* Update keyboards/leeku/finger65/usbconfig.h

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

* Update keyboards/leeku/finger65/usbconfig.h

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

* update USB information

* Update keyboards/leeku/finger65/usbconfig.h

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

* Update keyboards/leeku/finger65/rules.mk

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

* Update keyboards/leeku/finger65/rules.mk

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

* Update keyboards/leeku/finger65/rules.mk

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

* Update keyboards/leeku/finger65/rules.mk

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

* Update keyboards/leeku/finger65/keymaps/default/keymap.c

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

* Update keyboards/leeku/finger65/keymaps/default/keymap.c

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

* Update keyboards/leeku/finger65/keymaps/madhatter/keymap.c

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

* Update keyboards/leeku/finger65/keymaps/madhatter/keymap.c

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

* cleanup and conform to existing standard

* Update keyboards/leeku/finger65/rules.mk

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

* remove stuff that doesn't work

* add a JSON for the QMK configurator

* list the layouts only available

* let's just make it the 65 ansi layout with split backspace, eh?

* remove extra space

* Update keyboards/leeku/finger65/readme.md

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

* Update keyboards/leeku/finger65/readme.md

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

* update readme

* remove redundant title

* Monica Bellucci ruined my life

* I'm having a RELIGIOUS EXPERIENCE ... and I don't take any DRUGS

* Update keyboards/leeku/finger65/rules.mk

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

* add a URL to the username

* fix readme and make it simpler with links this time

* Update keyboards/leeku/finger65/readme.md

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

* Update keyboards/leeku/finger65/readme.md

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

* incorporate suggested changes

* update usb stuff for some stuff coming in the future

* update layout for LAYOUT_ALL

* USB power changes
2019-11-15 13:30:29 +11:00
fauxpark
f98750de6e [Core] Cleanup rules.mk for F303 keyboards (#7306)
* Cleanup rules.mk for F303 keyboards

* Fix small typo
2019-11-14 18:25:40 -08:00
Takeshi ISHII
c19e4da8af [Docs] Japanese translation of docs/ja/newbs_best_practices.md (#7337)
* Mark same as in new document #7231

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* comment out the same marks

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* update docs/ja/newbs.md, docs/ja/newbs_best_practices.md

* update docs/ja/newbs_best_practices.md

* update docs/ja/newbs_best_practices.md

* update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* update docs/ja/*.md's comment

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

* Update docs/ja/newbs_best_practices.md

Co-Authored-By: shela <shelaf@users.noreply.github.com>
2019-11-14 18:22:55 -08:00
fauxpark
519df78cdb Set device version from config.h for V-USB boards (#7316) 2019-11-15 10:21:53 +11:00
fauxpark
3047335729 Add support for configurable polling interval and power usage o… (#7336)
* Add support for custom polling interval and power usage on V-USB boards

* Use 1ms as default for now
2019-11-15 10:21:22 +11:00
jotix
a2eb962704 capslock_led (#7359) 2019-11-15 09:46:53 +11:00
Drashna Jaelre
1cf63a193b Move Ergodox EZ RGB Light code to custom driver (#7309)
* Move Ergodox EZ RGB code to custom driver

Also implements full addressing of Ergodox EZ's LED Strip, as written by seebs
Co-authored-by: Seebs <seebs@seebs.net>

* Make Clipping range accessible for custom drivers

* Remove RGBW_BB_TWI from driver and docs

* Revert changes to clipping range support

* Use just rgblight_set instead of full custom driver

* Convert to i2c_master commands

* Rename rgblight driver and clean up includes
2019-11-14 12:00:51 -08:00
Jake Waksbaum
8dc9764f31 Fix shell.nix by pinning nixpkgs (#6213) 2019-11-14 12:00:36 -08:00
moyi4681
426c03eda0 [Keyboard] add kbdmini; dztech, kbdfans keyboards cleanup (#7223)
* add kbdmini, dztech and kbdfans keyboards small fix

* Caps lock indicator moved from keymap

* Update dz65rgb.c

* fix error

* fix matthewrobo keymap error

* Update keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c

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

* Update keyboards/dztech/dz60rgb/dz60rgb.c

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

* Update keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c

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

* Update keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c

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

* Update keyboards/dztech/dz65rgb/dz65rgb.c

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

* wrap all of the g_led_config stuff and rgb matrix functions in ifdefs

wrap all of the g_led_config stuff and rgb matrix functions in ifdefs
2019-11-14 11:55:46 -08:00
fauxpark
5edd4b99fe [Docs] Encourage newbs to not download the repo as a zip (#7353)
* Encourage newbs to not download the repo as a zip

* Tweak wording and remove Russian translation of deprecated Vista+ instructions
2019-11-14 11:37:18 -08:00
Drashna Jaelre
872744f5ab Update debounce docs (#7355) 2019-11-14 18:54:34 +00:00
MechMerlin
44df08746a [Keyboard] Add TG4x (#7351)
* initial commit

* add pins and matrix

* add an appropriate keymap

* set bootloader to caterina

* add QMK Configurator support

* turn on RGB and link time optimization

* add rgb pin

* update readme on rgb underglow info

* Update keyboards/tg4x/readme.md

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

* Update keyboards/tg4x/readme.md

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

* Update keyboards/tg4x/readme.md

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

* setting product id to 1 to match original code
2019-11-14 10:52:55 -08:00
MechMerlin
661462218b [Keyboard] Add FLX Virgo (#7352)
* help flex get his board into QMK

* Put my name everywhere it matters

* Update keyboards/flx/virgo/config.h

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

* Update keyboards/flx/virgo/rules.mk

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

* Update keyboards/flx/virgo/readme.md

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

* Update keyboards/flx/virgo/readme.md

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

* Update keyboards/flx/virgo/config.h

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

* Update keyboards/flx/virgo/config.h

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

* Update keyboards/flx/virgo/readme.md

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

* add product and vendor id

* update readme with better description and img

* use fauxpark suggestion for led update
2019-11-14 03:12:50 -08:00
QMK Bot
1f332968a5 format code according to conventions [skip ci] 2019-11-14 08:08:07 +00:00
alittlepeace
d50d6f678f Adding verd layout to RSII (#7296)
* verd

verd

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keymap.c

* Update keymap.c

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update rules.mk

* Update rules.mk

* Delete tests.txt

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update config.h

* Update verd.h

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update matrix.c

* Update readme.md

* Update verd.h

* Update verd.c

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/config.h

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/config.h

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keymap.c

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keymap.c

* Update verd.h

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keymap.c

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/verd.c

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

* Update keyboards/redscarf_iiplus/verd/verd.c

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

* Update keyboards/redscarf_iiplus/verd/verd.h

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

* Update keyboards/redscarf_iiplus/verd/verd.c

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

* Update keyboards/redscarf_iiplus/verd/verd.h

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

* Update keyboards/redscarf_iiplus/verd/verd.c

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

* Update keymap.c

* Update verd.c

* Update config.h

* Update verd.h

added regular non split 0

* Update keymap.c

* Update keyboards/redscarf_iiplus/verd/rules.mk

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

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update rules.mk

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keymap.c

* Update keymap.c

* Update keyboards/redscarf_iiplus/verd/readme.md

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/matrix.c

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

* Update info.json

* Update info.json

* Update info.json

* Update keyboards/redscarf_iiplus/verd/verd.h

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/default/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/verd.h

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

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

* Update keyboards/redscarf_iiplus/verd/keymaps/alittlepeace/keymap.c

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-14 19:04:57 +11:00
Daniel Barber
28d3f03e43 Add my custom layouts for GH60, DZ60 and Minivan (#7278)
Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-14 14:26:40 +11:00
Luiz Correia
1b2e666490 [Keyboard] Added abnt2 layout to dz60 (#7340)
* [keymap] Added abnt2 format to dz60

* [layout] added LAYOUT_60_iso_abnt2 to dz60

* Fix error: macro  passed 63 arguments & takes 62

* Change BR_QUOTE to KC_GRV

* Clean dz60.h

* Apply suggestions from code review

Accepted suggested from noroadsleft

* Applied suggested changes

* Update info.js with abnt2 layout

* Update keyboards/dz60/info.json

* Update keyboards/dz60/info.json

* Rename the keymap to default_abnt2
2019-11-13 13:48:32 -08:00
Simon Aronsson
f2346be13d [Keyboard] add Little Keyboards as a seller of helix pcbs outside of japan (#7249)
* add lkb as a seller of helix pcbs outside of japan

* Update keyboards/helix/readme.md
2019-11-13 13:46:36 -08:00
zvecr
25d1901d7a Update software backlight to precalculated duty patterns 2019-11-05 17:42:44 +00:00
William Chang
71493b2f9b Merge branch 'master' of https://github.com/qmk/qmk_firmware 2019-07-13 10:18:33 -07:00
William Chang
86ad4988fe Merge branch 'master' of https://github.com/billiams/qmk_firmware 2019-05-10 16:45:29 -07:00
William Chang
10975bd4c0 fixed conflict in readme 2019-05-10 16:44:13 -07:00
William Chang
8d8f2d09cc Merge pull request #2 from billiams/feature/billiams
Updated readme
2019-05-09 21:18:39 -07:00
William Chang
9ce186860e Merge branch 'qmk-master' 2019-05-09 21:16:15 -07:00
William Chang
4b2d3288d0 resolved conflicts 2019-05-09 21:16:06 -07:00
William Chang
7b0200660e Updated readme 2019-05-09 20:59:11 -07:00
William Chang
57a6ea11df updated R_Alt to remove shift 2019-04-25 10:38:18 -07:00
William Chang
89e8e0d277 updated right alt key to apply shift key for emacs 2019-04-25 10:27:04 -07:00
William Chang
d7c5cf6e5b Merge branch 'master' of https://github.com/billiams/qmk_firmware 2019-04-22 14:56:41 -07:00
William Chang
a41e6804fc swapped media control keys 2019-04-22 14:56:30 -07:00
William Chang
da1dc28d31 Rename README.md to readme.md 2019-04-20 17:06:32 -07:00
William Chang
b42ca9bc5f Merge branch 'master' of https://github.com/billiams/qmk_firmware 2019-04-20 17:03:57 -07:00
William Chang
42cb78f98e Made requested changes in PR. 2019-04-20 17:01:18 -07:00
William Chang
dc3a8ddb6b Update README.md 2019-04-20 13:59:07 -07:00
William Chang
472060d333 Update README.md 2019-04-20 13:11:16 -07:00
William Chang
5b80e10b82 Update README.md 2019-04-20 13:07:59 -07:00
William Chang
7f8b0906c6 Update README.md 2019-04-20 13:06:40 -07:00
William Chang
fa73d43818 Update README.md 2019-04-20 13:05:34 -07:00
William Chang
5a86db2259 Update README.md 2019-04-20 13:04:48 -07:00
William Chang
a5337b3495 fixed numbering in readme 2019-04-20 12:43:05 -07:00
William Chang
cd379c69a0 Modified keymap and updated readme. 2019-04-20 12:41:28 -07:00
William Chang
156fd4e969 Initial commit 2019-04-20 12:09:47 -07:00
3655 changed files with 112978 additions and 46855 deletions

View File

@@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve QMK Firmware.
title: "[Bug] "
labels: bug, help wanted, discussion
labels: bug, help wanted
assignees: ''
---

View File

@@ -2,7 +2,7 @@
name: Feature request
about: Suggest a new feature or changes to existing features.
title: "[Feature Request] "
labels: enhancement, help wanted, discussion
labels: enhancement, help wanted
assignees: ''
---

View File

@@ -2,7 +2,7 @@
name: Other issues
about: Anything else that doesn't fall into the above categories.
title: ''
labels: help wanted, question, discussion
labels: help wanted, question
assignees: ''
---

58
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
# Configuration for probot-stale - https://github.com/probot/stale
# General configuration
# Pull request specific configuration
pulls:
staleLabel: awaiting changes
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 45
# Number of days of inactivity before a stale Issue or Pull Request is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 30
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
Thank you for your contribution!
This pull request has been automatically marked as stale because it has not had
activity in the last 45 days. It will be closed in 30 days if no further activity occurs.
Please feel free to give a status update now, or re-open when it's ready.
For maintainers: Please label with `awaiting review`, `breaking_change`, `in progress`, or `on hold` to prevent
the issue from being re-flagged.
# Comment to post when closing a stale Issue or Pull Request.
closeComment: >
Thank you for your contribution!
This pull request has been automatically closed because it has not had activity in the last 30 days.
Please feel free to give a status update now, ping for review, or re-open when it's ready.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
exemptLabels:
- awaiting review
- breaking_change
- in progress
- on hold
# Issue specific configuration
issues:
staleLabel: stale
limitPerRun: 10
daysUntilStale: 90
daysUntilClose: 30
markComment: >
This issue has been automatically marked as stale because it has not had activity in the
last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity
occurs.
For maintainers: Please label with `bug`, `in progress`, `on hold`, `discussion` or `to do` to prevent
the issue from being re-flagged.
closeComment: >
This issue has been automatically closed because it has not had activity in the last 30 days.
If this issue is still valid, re-open the issue and let us know.
exemptLabels:
- bug
- in progress
- on hold
- discussion
- to do

28
.github/workflows/cli.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: CLI CI
on:
push:
branches:
- master
- future
pull_request:
paths:
- 'lib/python/**'
- 'bin/qmk'
- 'requirements.txt'
- '.github/workflows/cli.yml'
jobs:
test:
runs-on: ubuntu-latest
container: qmkfm/base_container
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Run tests
run: bin/qmk pytest

3
.gitignore vendored
View File

@@ -63,9 +63,6 @@ util/Win_Check_Output.txt
*.gif
*.jpg
# Do not ignore MiniDox left/right hand eeprom files
!keyboards/minidox/*.eep
# things travis sees
secrets.tar
id_rsa_*

View File

@@ -12,6 +12,18 @@ env:
- MAKEFLAGS="-j3 --output-sync"
services:
- docker
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
packages:
- pandoc
- diffutils
- dos2unix
- doxygen
- clang-format-7
- libstdc++-7-dev
install:
- npm install -g moxygen
script:
@@ -20,13 +32,6 @@ script:
- bash util/travis_test.sh
- bash util/travis_build.sh
- bash util/travis_docs.sh
addons:
apt:
packages:
- pandoc
- diffutils
- dos2unix
- doxygen
after_script:
bash util/travis_compiled_push.sh
notifications:

View File

@@ -272,12 +272,14 @@ define PARSE_RULE
# If the rule starts with all, then continue the parsing from
# PARSE_ALL_KEYBOARDS
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
KEYBOARD_RULE=all
$$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
# Otherwise use the KEYBOARD variable, which is determined either by
# the current directory you run make from, or passed in as an argument
@@ -380,6 +382,9 @@ define PARSE_KEYBOARD
# Otherwise try to match the keymap from the current folder, or arguments to the make command
else ifneq ($$(KEYMAP),)
$$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
# Otherwise if we are running make all:<user> just skip
else ifeq ($$(KEYBOARD_RULE),all)
# $$(info Skipping: No user keymap for $$(CURRENT_KB))
# Otherwise, make all keymaps, again this is consistent with how it works without
# any arguments
else

View File

@@ -25,6 +25,11 @@ with open(os.path.join(qmk_dir, 'requirements.txt'), 'r') as fd:
line = line.split('#')[0]
module = line.split('=')[0] if '=' in line else line
if module in ['pep8-naming']:
# Not every module is importable by its own name.
continue
if not find_spec(module):
print('Could not find module %s!' % module)
print('Please run `pip3 install -r requirements.txt` to install the python dependencies.')
@@ -41,7 +46,7 @@ else:
os.environ['QMK_VERSION'] = 'nogit-' + strftime('%Y-%m-%d-%H:%M:%S') + '-dirty'
# Setup the CLI
import milc
import milc # noqa
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
@@ -61,7 +66,7 @@ def main():
os.chdir(qmk_dir)
# Import the subcommands
import qmk.cli
import qmk.cli # noqa
# Execute
return_code = milc.cli()

View File

@@ -82,6 +82,13 @@ ifeq ($(strip $(BOOTLOADER)), USBasp)
OPT_DEFS += -DBOOTLOADER_USBASP
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), lufa-ms)
# DO NOT USE THIS BOOTLOADER IN NEW PROJECTS!
# It is extremely prone to bricking, and is only included to support existing boards.
OPT_DEFS += -DBOOTLOADER_MS
BOOTLOADER_SIZE = 6144
FIRMWARE_FORMAT = bin
endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))

View File

@@ -22,5 +22,5 @@ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
endif
# Generate the keymap.c
$(KEYBOARD_OUTPUT)/src/keymap.c:
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
bin/qmk json-keymap --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)

View File

@@ -61,7 +61,7 @@ endif
ifeq ($(strip $(STENO_ENABLE)), yes)
OPT_DEFS += -DSTENO_ENABLE
VIRTSER_ENABLE := yes
VIRTSER_ENABLE ?= yes
SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c
endif
@@ -82,19 +82,19 @@ endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON = yes
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON = yes
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON = yes
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
@@ -102,17 +102,69 @@ ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c
EEPROM_DRIVER ?= vendor
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
$(error EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
else
OPT_DEFS += -DEEPROM_ENABLE
ifeq ($(strip $(EEPROM_DRIVER)), custom)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += i2c_master.c
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), transient)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_transient.c
else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
OPT_DEFS += -DEEPROM_VENDOR
ifeq ($(PLATFORM),AVR)
# Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS)
ifeq ($(MCU_SERIES), STM32F3xx)
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F303xC
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifeq ($(MCU_SERIES), STM32F1xx)
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F103xB
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB)
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F072xB
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else
# This will effectively work the same as "transient" if not supported by the chip
SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c
endif
else ifeq ($(PLATFORM),ARM_ATSAM)
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
else ifeq ($(PLATFORM),TEST)
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
endif
endif
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
CIE1931_CURVE := yes
LED_BREATHING_TABLE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
else
WS2812_DRIVER_REQUIRED = yes
WS2812_DRIVER_REQUIRED := yes
endif
endif
@@ -123,7 +175,9 @@ 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
BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = custom
OPT_DEFS += -DLED_MATRIX_ENABLE
SRC += $(QUANTUM_DIR)/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
endif
@@ -146,11 +200,12 @@ endif
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
CIE1931_CURVE = yes
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
RGB_MATRIX_ENABLE = IS31FL3731
RGB_MATRIX_ENABLE := IS31FL3731
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731)
@@ -176,7 +231,7 @@ endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812)
OPT_DEFS += -DWS2812
WS2812_DRIVER_REQUIRED = yes
WS2812_DRIVER_REQUIRED := yes
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
@@ -187,6 +242,10 @@ ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
endif
ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
@@ -226,37 +285,32 @@ endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE = yes
CIE1931_CURVE := yes
endif
# backward compat
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
BACKLIGHT_ENABLE = custom
BACKLIGHT_DRIVER := custom
endif
VALID_BACKLIGHT_TYPES := yes software custom
VALID_BACKLIGHT_TYPES := pwm software custom
BACKLIGHT_ENABLE ?= no
ifneq ($(strip $(BACKLIGHT_ENABLE)), no)
ifeq ($(filter $(BACKLIGHT_ENABLE),$(VALID_BACKLIGHT_TYPES)),)
$(error BACKLIGHT_ENABLE="$(BACKLIGHT_ENABLE)" is not a valid backlight type)
endif
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE = yes
BACKLIGHT_DRIVER ?= pwm
ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
ifeq ($(filter $(BACKLIGHT_DRIVER),$(VALID_BACKLIGHT_TYPES)),)
$(error BACKLIGHT_DRIVER="$(BACKLIGHT_DRIVER)" is not a valid backlight type)
endif
COMMON_VPATH += $(QUANTUM_DIR)/backlight
SRC += $(QUANTUM_DIR)/backlight/backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
ifeq ($(strip $(BACKLIGHT_ENABLE)), software)
ifeq ($(strip $(BACKLIGHT_DRIVER)), custom)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
else ifeq ($(strip $(BACKLIGHT_DRIVER)), software)
SRC += $(QUANTUM_DIR)/backlight/backlight_soft.c
else
ifeq ($(strip $(BACKLIGHT_ENABLE)), custom)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
endif
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
else
@@ -273,6 +327,8 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
$(error WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
endif
OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(WS2812_DRIVER)), bitbang)
SRC += ws2812.c
else
@@ -285,14 +341,18 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
endif
endif
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE := yes
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES = yes
LED_TABLES := yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES = yes
LED_TABLES := yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
@@ -342,6 +402,14 @@ ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/velocikey.c
endif
ifeq ($(strip $(VIA_ENABLE)), yes)
DYNAMIC_KEYMAP_ENABLE := yes
RAW_ENABLE := yes
BOOTMAGIC_ENABLE := lite
SRC += $(QUANTUM_DIR)/via.c
OPT_DEFS += -DVIA_ENABLE
endif
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
@@ -352,6 +420,12 @@ ifeq ($(strip $(LEADER_ENABLE)), yes)
OPT_DEFS += -DLEADER_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
OPT_DEFS += -DDIP_SWITCH_ENABLE
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
QUANTUM_SRC:= \
@@ -359,12 +433,28 @@ QUANTUM_SRC:= \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
# Include the standard or split matrix code if needed
VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no
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
ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),)
$(error CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type)
endif
# Include common stuff for all non custom matrix users
QUANTUM_SRC += $(QUANTUM_DIR)/matrix_common.c
# if 'lite' then skip the actual matrix implementation
ifneq ($(strip $(CUSTOM_MATRIX)), lite)
# Include the standard or split matrix code if needed
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c
else
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
endif
endif
endif
@@ -387,9 +477,17 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
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
ifeq ($(PLATFORM),AVR)
QUANTUM_LIB_SRC += i2c_master.c \
i2c_slave.c
endif
SERIAL_DRIVER ?= bitbang
ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
QUANTUM_LIB_SRC += serial.c
else
QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c
endif
endif
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
@@ -407,9 +505,16 @@ ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
OPT_DEFS += -DSPACE_CADET_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
OPT_DEFS += -DDIP_SWITCH_ENABLE
MAGIC_ENABLE ?= yes
ifeq ($(strip $(MAGIC_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c
OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
endif
GRAVE_ESC_ENABLE ?= yes
ifeq ($(strip $(GRAVE_ESC_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_grave_esc.c
OPT_DEFS += -DGRAVE_ESC_ENABLE
endif
ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)

View File

@@ -15,7 +15,7 @@ QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains Q
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`).
Otherwise, you can clone it directly with `git clone https://github.com/qmk/qmk_firmware`. Do not download the zip or tar files; a git repository is required to download the submodules in order to compile.
## How to Compile

View File

@@ -4,5 +4,6 @@
- [:es: Español](/es/)
- [:fr: Français](/fr-fr/)
- [:he: עברית](/he-il/)
- [:brazil: Português](/pt-br/)
- [:ru: Русский](/ru-ru/)
- [:ja: 日本語](/ja/)
- [:jp: 日本語](/ja/)

View File

@@ -3,7 +3,10 @@
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [Git Best Practices](newbs_best_practices.md)
* [Best Git Practices](newbs_git_best_practices.md)
* [Using Your Fork's Master](newbs_git_using_your_master_branch.md)
* [Resolving Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
* [Resynchronizing a Branch](newbs_git_resynchronize_a_branch.md)
* [Learning Resources](newbs_learn_more_resources.md)
* [QMK Basics](README.md)
@@ -15,6 +18,7 @@
* [Getting Help](getting_started_getting_help.md)
* [Breaking Changes](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* [FAQ](faq.md)
@@ -98,9 +102,12 @@
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* [ARM Debugging Guide](arm_debugging.md)
* [ADC Driver](adc_driver.md)
* [I2C Driver](i2c_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [EEPROM Driver](eeprom_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [Custom Matrix](custom_matrix.md)
* [Proton C Conversion](proton_c_conversion.md)
* For a Deeper Understanding
@@ -111,7 +118,7 @@
* [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md)
* [Support](support.md)
* [How to add translations](translating.md)
* [Translating the QMK Docs](translating.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)

50
docs/adc_driver.md Normal file
View File

@@ -0,0 +1,50 @@
# ADC Driver
QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](feature_encoders.md).
This driver is currently AVR-only. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V).
## Usage
To use this driver, add the following to your `rules.mk`:
```make
SRC += analog.c
```
Then place this include at the top of your code:
```c
#include "analog.h"
```
## Channels
|Channel|AT90USB64/128|ATmega16/32U4|ATmega32A|ATmega328P|
|-------|-------------|-------------|---------|----------|
|0 |`F0` |`F0` |`A0` |`C0` |
|1 |`F1` |`F1` |`A1` |`C1` |
|2 |`F2` | |`A2` |`C2` |
|3 |`F3` | |`A3` |`C3` |
|4 |`F4` |`F4` |`A4` |`C4` |
|5 |`F5` |`F5` |`A5` |`C5` |
|6 |`F6` |`F6` |`A6` |* |
|7 |`F7` |`F7` |`A7` |* |
|8 | |`D4` | | |
|9 | |`D6` | | |
|10 | |`D7` | | |
|11 | |`B4` | | |
|12 | |`B5` | | |
|13 | |`B6` | | |
<sup>\* The ATmega328P possesses two extra ADC channels; however, they are not present on the DIP pinout, and are not shared with GPIO pins. You can use `adc_read()` directly to gain access to these.</sup>
## Functions
|Function |Description |
|----------------------------|-------------------------------------------------------------------------------------------------------------------|
|`analogReference(mode)` |Sets the analog voltage reference source. Must be one of `ADC_REF_EXTERNAL`, `ADC_REF_POWER` or `ADC_REF_INTERNAL`.|
|`analogRead(pin)` |Reads the value from the specified Arduino pin, eg. `4` for ADC6 on the ATmega32U4. |
|`analogReadPin(pin)` |Reads the value from the specified QMK pin, eg. `F6` for ADC6 on the ATmega32U4. |
|`pinToMux(pin)` |Translates a given QMK pin to a mux value. If an unsupported pin is given, returns the mux value for "0V (GND)". |
|`adc_read(mux)` |Reads the value from the ADC according to the specified mux. See your MCU's datasheet for more information. |

View File

@@ -1,4 +1,4 @@
# ARM Debugging usign Eclipse
# ARM Debugging using Eclipse
This page describes how to setup debugging for ARM MCUs using an SWD adapter and open-source/free tools. In this guide we will install GNU MCU Eclipse IDE for C/C++ Developers and OpenOCD together with all the necessary dependencies.
@@ -18,7 +18,7 @@ XPM installation instructions can be found [here](https://www.npmjs.com/package/
### The ARM Toolchain
Using XPM it is very easy to install the ARM toolchain. Enter the command `xpm install --global @gnu-mcu-eclipse/arm-none-eabi-gcc`.
Using XPM it is very easy to install the ARM toolchain. Enter the command `xpm install --global @xpack-dev-tools/arm-none-eabi-gcc`.
### Windows build tools
@@ -33,7 +33,7 @@ If you have an ST-Link the drivers can be found [here](https://www.st.com/en/dev
### OpenOCD
This dependency allows SWD access from GDB and it is essential for debugging. Run `xpm install --global @gnu-mcu-eclipse/openocd`.
This dependency allows SWD access from GDB and it is essential for debugging. Run `xpm install --global @xpack-dev-tools/openocd`.
### Java
@@ -45,17 +45,17 @@ Now its finally time to install the IDE. Use the Release page [here](https://git
## Configuring Eclipse
Open up the Eclipse IDE we just downloaded. To import our QMK directory select File -> Import -> C/C++ -> Existing code as Makefile Project. Select next and use Browse to select your QMK folder. In the tool-chain list select ARM Cross GCC and select Finish.
Open up the Eclipse IDE we just downloaded. To import our QMK directory select File -> Import -> C/C++ -> Existing Code as Makefile Project. Select Next and use Browse to select your QMK folder. In the tool-chain list select ARM Cross GCC and select Finish.
Now you can see the QMK folder on the left hand side. Right click it and select Properties. On the left hand side, expand MCU and select ARM Toolchain Paths. Press xPack and OK. Repeat for OpenOCD Path and if you are on windows for Build Tool Path. Select Apply and Close.
Now you can see the QMK folder on the left hand side. Right click it and select Properties. On the left hand side, expand MCU and select ARM Toolchains Paths. Press xPack and OK. Repeat for OpenOCD Path and if you are on Windows for Build Tools Path. Select Apply and Close.
Now its time to install the necessary MCU packages. Go to Packs perspective by selecting Window -> Open Perspective -> Others -> Packs. Now select the yellow refresh symbol next to the Packs tab. This will take a long time as it is requesting the MCU definitions from various places. If some of the links fail you can probably select Ignore.
Now its time to install the necessary MCU packages. Go to Packs perspective by selecting Window -> Perspective -> Open Perspective -> Other... -> Packs. Now select the yellow refresh symbol next to the Packs tab. This will take a long time as it is requesting the MCU definitions from various places. If some of the links fail you can probably select Ignore.
When this finishes you must find the MCU which we will be building/debugging for. In this example I will be using the STM32F3 series MCUs. On the left, select STMicroelectonics -> STM32F3 Series. On the middle window we can see the pack. Right click and select Install. Once that is done we can go back to the default perspective, Window -> Open Perspective -> Others -> C/C++.
When this finishes you must find the MCU which we will be building/debugging for. In this example I will be using the STM32F3 series MCUs. On the left, select STMicroelectronics -> STM32F3 Series. On the middle window we can see the pack. Right click and select Install. Once that is done we can go back to the default perspective, Window -> Perspective -> Open Perspective -> Other... -> C/C++.
We need to let eclipse know the device we intent to build QMK on. Right click on the QMK folder -> Properties -> C/C++ Build -> Settings. Select the Devices tab and under devices select the appropriate variant of your MCU. For my example it is STM32F303CC
We need to let eclipse know the device we intent to build QMK on. Right click on the QMK folder -> Properties -> C/C++ Build -> Settings. Select the Devices tab and under Devices select the appropriate variant of your MCU. For my example it is STM32F303CC
While we are here let's setup the build command as well. Select C/C++ Build and then the Behavior tab. On the build command, replace `all` with your necessary make command. For example for a rev6 Planck with the default keymap this would be `planck/rev6:default`. Select Apply and Close.
While we are here let's setup the build command as well. Select C/C++ Build and then the Behavior tab. On the Build command, replace `all` with your necessary make command. For example for a rev6 Planck with the default keymap this would be `planck/rev6:default`. Select Apply and Close.
## Building
@@ -71,7 +71,7 @@ NOTE: Make sure the SWCLK and SWDIO pins are not used in the matrix of your keyb
### Configuring the Debugger
Right click on your QMK folder, select Debug As -> Debug Configuration. Here double click on GDB OpenOCD Debugging. Select the debugger tab and enter the configuration necessary for your MCU. This might take some fiddling and googleing to find out. The default script for the STM32F3 is called stm32f3discovery.cfg. To let OpenOCD know, in the Config options enter `-f board/stm32f3discovery.cfg`.
Right click on your QMK folder, select Debug As -> Debug Configurations... . Here double click on GDB OpenOCD Debugging. Select the Debugger tab and enter the configuration necessary for your MCU. This might take some fiddling and Googling to find out. The default script for the STM32F3 is called `stm32f3discovery.cfg`. To let OpenOCD know, in the Config options enter `-f board/stm32f3discovery.cfg`.
NOTE: In my case this configuration script requires editing to disable the reset assertion. The locations of the scripts can be found in the actual executable field usually under the path `openocd/version/.content/scripts/board`. Here I edited `reset_config srst_only` to `reset_config none`.
@@ -81,7 +81,7 @@ Select Apply and Close.
Reset your keyboard.
Press the bug icon and if all goes well you should soon find yourself in the debug perspective. Here the program counter will pause at the beginning of the main function and way for you to press Play. Most of the features of all debuggers work on ARM MCUs but for exact details google is your friend!
Press the bug icon and if all goes well you should soon find yourself in the Debug perspective. Here the program counter will pause at the beginning of the main function and wait for you to press Play. Most of the features of all debuggers work on Arm MCUs but for exact details Google is your friend!
Happy debugging!

View File

@@ -10,16 +10,16 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
The next Breaking Change is scheduled for Nov 29.
The next Breaking Change is scheduled for February 29, 2020.
### Important Dates
* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
* [ ] 2019 Nov 01 - `future` closed to new PR's.
* [ ] 2019 Nov 01 - Call for testers.
* [ ] 2019 Nov 27 - `master` is locked, no PR's merged.
* [ ] 2019 Nov 29 - Merge `future` to `master`.
* [ ] 2019 Nov 30 - `master` is unlocked. PR's can be merged again.
* [x] 2020 Feb 1 - `future` closed to new PR's.
* [x] 2020 Feb 1 - Call for testers.
* [ ] 2020 Feb 26 - `master` is locked, no PR's merged.
* [ ] 2020 Feb 28 - Merge `future` to `master`.
* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again.
## What changes will be included?

View File

@@ -0,0 +1,42 @@
# Breaking Changes: My Pull Request Was Flagged
A QMK member may have replied to your pull request stating that your submission is a breaking change. In their judgment, the changes you have proposed have greater implications for either QMK, or its users.
Some things that may cause a pull request to be flagged are:
- **Edits to User Keymaps**
A user may submit their keymap to QMK, then some time later open a pull request with further updates, only to find it can't be merged because it was edited in the `qmk/qmk_firmware` repository. As not all users are proficient at using Git or GitHub, the user may find themself unable to fix the issue on their own.
- **Changes to Expected Behavior**
Changes to QMK behavior may cause users to believe their hardware or QMK is broken if they flash new firmware that incorporates changes to existing QMK features, and find themselves without a means to restore the desired behavior.
- **Changes Requiring User Action**
Changes may also require action to be taken by users, such as updating a toolchain or taking some action in Git.
- **Changes Necessitating Increased Scrutiny**
On occasion, a submission may have implications for QMK as a project. This could be copyright/licensing issues, coding conventions, large feature overhauls, "high-risk" changes that need wider testing by our community, or something else entirely.
- **Changes Requiring Communication to End Users**
This includes warnings about future deprecations, outdated practices, and anything else that needs to be communicated but doesn't fit into one of the above categories.
## What Do I Do?
If it is determined that your submission is a breaking change, there are a few things you can do to smooth the process:
### Consider Splitting Up Your PR
If you are contributing core code, and the only reason it needs to go through breaking changes is that you are updating keymaps to match your change, consider whether you can submit your feature in a way that the old keymaps continue to work. Then submit a separate PR that goes through the breaking changes process to remove the old code.
### Contribute a ChangeLog Entry
We require submissions that go through the Breaking Change process to include a changelog entry. The entry should be a short summary of the changes your pull request makes &ndash; [each section here started as a changelog](ChangeLog/20190830.md "n.b. This should link to the 2019 Aug 30 Breaking Changes doc - @noroadsleft").
Your changelog should be located at `docs/ChangeLog/YYYYMMDD/PR####.md`, where `YYYYMMDD` is the date on which QMK's breaking change branch &ndash; usually named `future` &ndash; will be merged into the `master` branch, and `####` is the number of your pull request.
If your submission requires action on the part of users, your changelog should instruct users what action(s) must be taken, or link to a location that does so.
### Document Your Changes
Understanding the purpose for your submission, and possible implications or actions it will require can make the review process more straightforward. A changelog may suffice for this purpose, but more extensive changes may require a level of detail that is ill-suited for a changelog.
Commenting on your pull request and being responsive to questions, comments, and change requests is much appreciated.
### Ask for Help
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/Uq7gcHh).

View File

@@ -81,7 +81,7 @@ qmk cformat [file1] [file2] [...] [fileN]
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm> or compile keymaps in the repo.
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm>, compile keymaps in the repo, or compile the keyboard in the current working directory.
**Usage for Configurator Exports**:
@@ -95,6 +95,77 @@ qmk compile <configuratorExport.json>
qmk compile -kb <keyboard_name> -km <keymap_name>
```
**Usage in Keyboard Directory**:
Must be in keyboard directory with a default keymap, or in keymap directory for keyboard, or supply one with `--keymap <keymap_name>`
```
qmk compile
```
**Example**:
```
$ qmk config compile.keymap=default
$ cd ~/qmk_firmware/keyboards/planck/rev6
$ qmk compile
Ψ Compiling keymap with make planck/rev6:default
...
```
or with optional keymap argument
```
$ cd ~/qmk_firmware/keyboards/clueboard/66/rev4
$ qmk compile -km 66_iso
Ψ Compiling keymap with make clueboard/66/rev4:66_iso
...
```
or in keymap directory
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
...
```
**Usage in Layout Directory**:
Must be under `qmk_firmware/layouts/`, and in a keymap folder.
```
qmk compile -kb <keyboard_name>
```
**Example**:
```
$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi
$ qmk compile -kb dz60
Ψ Compiling keymap with make dz60:mechmerlin-ansi
...
```
## `qmk flash`
This command is similar to `qmk compile`, but can also target a bootloader. The bootloader is optional, and is set to `:flash` by default.
To specify a different bootloader, use `-bl <bootloader>`. Visit <https://docs.qmk.fm/#/flashing>
for more details of the available bootloaders.
**Usage for Configurator Exports**:
```
qmk flash <configuratorExport.json> -bl <bootloader>
```
**Usage for Keymaps**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader>
```
**Listing the Bootloaders**
```
qmk flash -b
```
## `qmk config`
This command lets you configure the behavior of QMK. For the full `qmk config` documentation see [CLI Configuration](cli_configuration.md).
@@ -117,14 +188,28 @@ qmk docs [-p PORT]
## `qmk doctor`
This command examines your environment and alerts you to potential build or flash problems.
This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to.
**Usage**:
```
qmk doctor
qmk doctor [-y] [-n]
```
**Examples**:
Check your environment for problems and prompt to fix them:
qmk doctor
Check your environment and automatically fix any problems found:
qmk doctor -y
Check your environment and report problems only:
qmk doctor -n
## `qmk json-keymap`
Creates a keymap.c from a QMK Configurator export.

View File

@@ -173,3 +173,35 @@ You will only be able to access these arguments using `cli.args`. For example:
```
cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.output)
```
# Testing, and Linting, and Formatting (oh my!)
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `pyformat` subcommands to run these tests:
### Testing and Linting
qmk pytest
### Formatting
qmk pyformat
## Formatting Details
We use [yapf](https://github.com/google/yapf) to automatically format code. Our configuration is in the `[yapf]` section of `setup.cfg`.
?> Tip- Many editors can use yapf as a plugin to automatically format code as you type.
## Testing Details
Our tests can be found in `lib/python/qmk/tests/`. You will find both unit and integration tests in this directory. We hope you will write both unit and integration tests for your code, but if you do not please favor integration tests.
If your PR does not include a comprehensive set of tests please add comments like this to your code so that other people know where they can help:
# TODO(unassigned/<yourGithubUsername>): Write <unit|integration> tests
We use [nose2](https://nose2.readthedocs.io/en/latest/getting_started.html) to run our tests. You can refer to the nose2 documentation for more details on what you can do in your test functions.
## Linting Details
We use flake8 to lint our code. Your code should pass flake8 before you open a PR. This will be checked when you run `qmk pytest` and by CI when you submit a PR.

View File

@@ -14,7 +14,7 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
* 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.
* If you're 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.
* We use `#pragma once` at the start of header files rather than old-style include guards (`#ifndef THIS_FILE_H`, `#define THIS_FILE_H`, ..., `#endif`)
* We accept both forms of preprocessor if's: `#ifdef DEFINED` and `#if defined(DEFINED)`

View File

@@ -8,7 +8,7 @@ Most of our style follows PEP8 with some local modifications to make things less
* 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.
* If you're not sure if a comment is obvious, go ahead and include it.
* We require useful docstrings for all functions.
* 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.
* Some of our practices conflict with the wider python community to make our codebase more approachable to non-pythonistas.
@@ -309,6 +309,18 @@ FIXME(username): Revisit this code when the frob feature is done.
...where username is your GitHub username.
# Unit Tests
# Testing
These are good. We should have some one day.
We use a combination of Integration and Unit testing to ensure that the our code is as bug-free as possible. All the tests can be found in `lib/python/qmk/tests/`. You can run all the tests with `qmk pytest`.
At the time of this writing our tests are not very comprehensive. Looking at the current tests and writing new test cases for untested situations is a great way to both familiarize yourself with the codebase and contribute to QMK.
## Integration Tests
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.5/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
## Unit Tests
The other `test_*.py` files in `lib/python/qmk/tests/` contain unit tests. You can write tests for individual functions inside `lib/python/qmk/` here. Generally these files are named after the module, with dots replaced by underscores.
At the time of this writing we do not do any mocking for our tests. If you would like to help us change this please [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and start a conversation there.

View File

@@ -78,7 +78,7 @@ This is a C header file that is one of the first things included, and will persi
* `#define BACKLIGHT_PIN B7`
* pin of the backlight
* `#define BACKLIGHT_LEVELS 3`
* number of levels your backlight will have (maximum 15 excluding off)
* number of levels your backlight will have (maximum 31 excluding off)
* `#define BACKLIGHT_BREATHING`
* enables backlight breathing
* `#define BREATHING_PERIOD 6`
@@ -143,10 +143,14 @@ If you define these options you will enable the associated feature, which may in
* `#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the `TAPPING_TERM` for both keys.
* See [Mod tap interrupt](feature_advanced_keycodes.md#ignore-mod-tap-interrupt) for details
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
* enables handling for per key `IGNORE_MOD_TAP_INTERRUPT` settings
* `#define TAPPING_FORCE_HOLD`
* makes it possible to use a dual role key as modifier shortly after having been tapped
* See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold)
* Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
* `#define TAPPING_FORCE_HOLD_PER_KEY`
* enables handling for per key `TAPPING_FORCE_HOLD` settings
* `#define LEADER_TIMEOUT 300`
* how long before the leader key times out
* If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
@@ -272,9 +276,12 @@ There are a few different ways to set handedness for split keyboards (listed in
* Default behavior for ARM
* Required for AVR Teensy
* `#define SPLIT_USB_TIMEOUT 2500`
* `#define SPLIT_USB_TIMEOUT 2000`
* Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
* `#define SPLIT_USB_TIMEOUT_POLL 10`
* Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
# 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.
@@ -287,8 +294,27 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building.
* `SRC`
* Used to add files to the compilation/linking list.
* `LIB_SRC`
* Used to add files as a library to the compilation/linking list.
The files specified by `LIB_SRC` is linked after the files specified by `SRC`.
For example, if you specify:
```
SRC += a.c
LIB_SRC += lib_b.c
SRC += c.c
LIB_SRC += lib_d.c
```
The link order is as follows.
```
... a.o c.o ... lib_b.a lib_d.a ...
```
* `LAYOUTS`
* A list of [layouts](feature_layouts.md) this keyboard supports.
* `LINK_TIME_OPTIMIZATION_ENABLE`
* Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled.
It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
* `LTO_ENABLE`
* It has the same meaning as LINK_TIME_OPTIMIZATION_ENABLE. You can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## AVR MCU Options
* `MCU = atmega32u4`
@@ -347,9 +373,6 @@ Use these to enable or disable building certain features. The more you have enab
* Forces the keyboard to wait for a USB connection to be established before it starts up
* `NO_USB_STARTUP_CHECK`
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
* `LINK_TIME_OPTIMIZATION_ENABLE`
* Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
* Alternatively, you can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## USB Endpoint Limitations

View File

@@ -85,7 +85,7 @@ Limited experimentation on the devices I have available shows that 7 is high eno
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/.
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 the "Edit this page" link at the bottom of each page on https://docs.qmk.fm/.
When providing code examples in your documentation, try to observe naming conventions used elsewhere in the docs. For example, standardizing enums as `my_layers` or `my_keycodes` for consistency:
@@ -101,6 +101,18 @@ enum my_keycodes {
};
```
### Previewing the Documentation
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:
./bin/qmk docs
or if you only have Python 3 installed:
python3 -m http.server 8936
and navigating to `http://localhost:8936/`.
## 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.

108
docs/custom_matrix.md Normal file
View File

@@ -0,0 +1,108 @@
# Custom Matrix
QMK provides a mechanism to supplement or replace the default matrix scanning routine with your own code.
The reasons to use this feature include:
* Extra hardware between the keyboard's switches and MCU pins
* I/O multiplexer
* Line decoder
* Irregular switch matrix
* Simultaneous use of `COL2ROW` and `ROW2COL`
## Prerequisites
Implementing custom matrix usually involves compilation of an additional source file. It is recommended that for consistency, this file is called `matrix.c`.
Add a new file to your keyboard directory:
```text
keyboards/<keyboard>/matrix.c
```
And to configure compilation for the new file, add this to your `rules.mk`:
```make
SRC += matrix.c
```
## 'lite'
Provides a default implementation for various scanning functions, reducing the boilerplate code when implementing custom matrix.
To configure it, add this to your `rules.mk`:
```make
CUSTOM_MATRIX = lite
```
And implement the following functions in a `matrix.c` file in your keyboard folder:
```c
void matrix_init_custom(void) {
// TODO: initialize hardware here
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
bool matrix_has_changed = false;
// TODO: add matrix scanning routine here
return matrix_has_changed;
}
```
## Full Replacement
When more control over the scanning routine is required, you can choose to implement the full scanning routine.
To configure it, add this to your rules.mk:
```make
CUSTOM_MATRIX = yes
```
And implement the following functions in a `matrix.c` file in your keyboard folder:
```c
matrix_row_t matrix_get_row(uint8_t row) {
// TODO: return the requested row data
}
void matrix_print(void) {
// TODO: use print() to dump the current matrix state to console
}
void matrix_init(void) {
// TODO: initialize hardware and global matrix state here
// Unless hardware debouncing - Init the configured debounce routine
debounce_init(MATRIX_ROWS);
// This *must* be called for correct keyboard behavior
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
bool matrix_has_changed = false;
// TODO: add matrix scanning routine here
// Unless hardware debouncing - use the configured debounce routine
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
// This *must* be called for correct keyboard behavior
matrix_scan_quantum();
return matrix_has_changed;
}
```
And also provide defaults for the following callbacks:
```c
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
__attribute__((weak)) void matrix_init_user(void) {}
__attribute__((weak)) void matrix_scan_user(void) {}
```

View File

@@ -114,7 +114,15 @@ Two more deprecated functions exist that provide the LED state as a `uint8_t`:
This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
You must return either `true` or `false` from this function, depending on whether you want to override the keyboard-level implementation.
By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and
return `false` when you would prefer not to run the code in `led_update_kb()`.
Some examples include:
- overriding the LEDs to use them for something else like layer indication
- return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior.
- play a sound when an LED turns on or off.
- return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior.
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
@@ -122,66 +130,41 @@ You must return either `true` or `false` from this function, depending on whethe
```c
bool led_update_kb(led_t led_state) {
if(led_update_user(led_state)) {
if (led_state.num_lock) {
writePinLow(B0);
} else {
writePinHigh(B0);
}
if (led_state.caps_lock) {
writePinLow(B1);
} else {
writePinHigh(B1);
}
if (led_state.scroll_lock) {
writePinLow(B2);
} else {
writePinHigh(B2);
}
if (led_state.compose) {
writePinLow(B3);
} else {
writePinHigh(B3);
}
if (led_state.kana) {
writePinLow(B4);
} else {
writePinHigh(B4);
}
return true;
bool res = led_update_user(led_state);
if(res) {
// writePin sets the pin high for 1 and low for 0.
// In this example the pins are inverted, setting
// it low/0 turns it on, and high/1 turns the LED off.
// This behavior depends on whether the LED is between the pin
// and VCC or the pin and GND.
writePin(B0, !led_state.num_lock);
writePin(B1, !led_state.caps_lock);
writePin(B2, !led_state.scroll_lock);
writePin(B3, !led_state.compose);
writePin(B4, !led_state.kana);
}
return res;
}
```
### Example `led_update_user()` Implementation
This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state.
```c
#ifdef AUDIO_ENABLE
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
#endif
bool led_update_user(led_t led_state) {
if (led_state.num_lock) {
writePinLow(B0);
} else {
writePinHigh(B0);
}
if (led_state.caps_lock) {
writePinLow(B1);
} else {
writePinHigh(B1);
}
if (led_state.scroll_lock) {
writePinLow(B2);
} else {
writePinHigh(B2);
}
if (led_state.compose) {
writePinLow(B3);
} else {
writePinHigh(B3);
}
if (led_state.kana) {
writePinLow(B4);
} else {
writePinHigh(B4);
#ifdef AUDIO_ENABLE
static uint8_t caps_state = 0;
if (caps_state != led_state.caps_lock) {
led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
caps_state = led_state.caps_lock;
}
#endif
return true;
}
```
@@ -411,7 +394,7 @@ void keyboard_post_init_user(void) {
// Set default layer, if enabled
if (user_config.rgb_layer_change) {
rgblight_enable_noeeprom();
rgblight_sethsv_noeeprom_cyan();
rgblight_sethsv_noeeprom_cyan();
rgblight_mode_noeeprom(1);
}
}
@@ -459,18 +442,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true; // Let QMK send the enter press/release events
case RGB_LYR: // This allows me to use underglow as layer indication, or as normal
if (record->event.pressed) {
if (record->event.pressed) {
user_config.rgb_layer_change ^= 1; // Toggles the status
eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
if (user_config.rgb_layer_change) { // if layer state indication is enabled,
if (user_config.rgb_layer_change) { // if layer state indication is enabled,
layer_state_set(layer_state); // then immediately update the layer color
}
}
return false; break;
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference)
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
if (user_config.rgb_layer_change) { // only if this is enabled
user_config.rgb_layer_change = false; // disable it, and
if (user_config.rgb_layer_change) { // only if this is enabled
user_config.rgb_layer_change = false; // disable it, and
eeconfig_update_user(user_config.raw); // write the setings to EEPROM
}
}
@@ -483,7 +466,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
```c
void eeconfig_init_user(void) { // EEPROM is getting reset!
void eeconfig_init_user(void) { // EEPROM is getting reset!
user_config.raw = 0;
user_config.rgb_layer_change = true; // We want this enabled by default
eeconfig_update_user(user_config.raw); // Write default value to EEPROM now
@@ -506,14 +489,24 @@ The `val` is the value of the data that you want to write to EEPROM. And the `e
# Custom Tapping Term
By default, the tapping term is defined globally, and is not configurable by key. For most users, this is perfectly fine. But in come cases, dual function keys would be greatly improved by different timeouts than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable `TAPPING_TERM`.
By default, the tapping term and related options (such as `IGNORE_MOD_TAP_INTERRUPT`) are defined globally, and are not configurable by key. For most users, this is perfectly fine. But in some cases, dual function keys would be greatly improved by different timeout behaviors than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable timeout behaviors.
To enable this functionality, you need to add `#define TAPPING_TERM_PER_KEY` to your `config.h`, first.
There are two configurable options to control per-key timeout behaviors:
- `TAPPING_TERM_PER_KEY`
- `IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
You need to add `#define` lines to your `config.h` for each feature you want.
```
#define TAPPING_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```
## Example `get_tapping_term` Implementation
To change the `TAPPING TERM` based on the keycode, you'd want to add something like the following to your `keymap.c` file:
To change the `TAPPING_TERM` based on the keycode, you'd want to add something like the following to your `keymap.c` file:
```c
uint16_t get_tapping_term(uint16_t keycode) {
@@ -528,6 +521,21 @@ uint16_t get_tapping_term(uint16_t keycode) {
}
```
### `get_tapping_term` Function Documentation
## Example `get_ignore_mod_tap_interrupt` Implementation
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard level function. Only a user level function is useful here, so no need to mark it as such.
To change the `IGNORE_MOD_TAP_INTERRUPT` value based on the keycode, you'd want to add something like the following to your `keymap.c` file:
```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```
## `get_tapping_term` / `get_ignore_mod_tap_interrupt` Function Documentation
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard level function. Only user level functions are useful here, so no need to mark them as such.

33
docs/de/README.md Normal file
View File

@@ -0,0 +1,33 @@
# Quantum Mechanical Keyboard Firmware
[![Aktuelle 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/)
## Was ist QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](http://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nützlichen Zusatzfunktionen für Atmel AVR-Prozessoren. Ursprünglich wurde sie für Produkte von [OLKB](http://olkb.com), das [ErgoDox EZ](http://www.ergodox-ez.com) und das [Clueboard](http://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](http://chibios.org) auch für die ARM-Architektur angepasst. Außerdem ist es inzwischen möglich, auch handverdrahtete Tastaturen und selbst geätzte PCBs mit QMK zu verwenden.
## Bezugsquelle für QMK
Wenn Du vorhast, deine Tastatur, Tastaturbelegung oder Features zu QMK beizusteuern, geht das am einfachsten, indem Du das [Repository auf Github](https://github.com/qmk/qmk_firmware#fork-destination-box) forkst, die Änderungen in deinem lokalen Repo vornimmst und anschließend einen [Pull Request](https://github.com/qmk/qmk_firmware/pulls) einreichst.
Ansonsten kannst Du es als [zip](https://github.com/qmk/qmk_firmware/zipball/master) oder [tar](https://github.com/qmk/qmk_firmware/tarball/master) herunterladen, oder es direkt via git klonen (`git clone git@github.com:qmk/qmk_firmware.git` bzw. `git clone https://github.com/qmk/qmk_firmware.git`).
## Anleitung fürs Kompilieren
Bevor Du in der Lage bist, die Firmware zu kompilieren, musst Du eine [Entwicklungsumgebung](de/getting_started_build_tools.md) für AVR und/oder ARM aufsetzen. Danach kannst Du mit dem `make` Befehl eine Keymap für deine Tastatur erzeugen. Die Notation dafür ist:
make planck/rev4:default
Dies generiert die Revision `rev4` für eine Tastatur vom Type `planck` mit der `default` Tastaturbelegung. Nicht alle Tastaturen haben Revisionen (auch bekannt als Subprojekt oder Unterordner) weswegen dies auch ausgelassen werden kann:
make preonic:default
## Möglichkeiten der Anpassung
QMK hat viele [Features](de/features.md), die es zu entdecken gibt. In der [Dokumentation](https://docs.qmk.fmk) kannst Du Dir einen Überblick verschaffen. Die meisten Features basieren darauf, die [Tastaturbelegung](de/keymap.md) anzupassen und das Verhalten der [Keycodes](de/keycodes.md) zu verändern.

121
docs/de/_summary.md Normal file
View File

@@ -0,0 +1,121 @@
* [Anleitung für Anfänger](de/newbs.md)
* [Erste Schritte](de/newbs_getting_started.md)
* [Die erste Firmware](de/newbs_building_firmware.md)
* [Firmware flashen](de/newbs_flashing.md)
* [Testen und Debuggen](de/newbs_testing_debugging.md)
* [Git Tips und Tricks](de/newbs_best_practices.md)
* [Hilfreiche Ressourcen](de/newbs_learn_more_resources.md)
* [QMK Basics](de/README.md)
* [QMK Einführung](de/getting_started_introduction.md)
* [QMK CLI](de/cli.md)
* [QMK CLI Konfiguration](de/cli_configuration.md)
* [Zu QMK beitragen](de/contributing.md)
* [Anleitung für Github](de/getting_started_github.md)
* [Nach Hilfe fragen](de/getting_started_getting_help.md)
* [Breaking Changes](de/breaking_changes.md)
* [2019 Aug 30](de/ChangeLog/20190830.md)
* [FAQ](de/faq.md)
* [Häufige Fragen](de/faq_general.md)
* [Build/Kompilieren](de/faq_build.md)
* [Debugging/Troubleshooting](de/faq_debug.md)
* [Keymap](de/faq_keymap.md)
* [Treiber Installation mit Zadig](de/driver_installation_zadig.md)
* Detailierte Guides
* [Build Tools installieren](de/getting_started_build_tools.md)
* [Vagrant Guide](de/getting_started_vagrant.md)
* [Build/Compile Anleitung](de/getting_started_make_guide.md)
* [Firmware flashen](de/flashing.md)
* [Funktionalität anpassen](de/custom_quantum_functions.md)
* [Keymap Überblick](de/keymap.md)
* [Hardware](de/hardware.md)
* [AVR Prozessoren](de/hardware_avr.md)
* [Treiber](de/hardware_drivers.md)
* Referenz
* [Tastatur Richtlinien](de/hardware_keyboard_guidelines.md)
* [Konfigurations Optionen](de/config_options.md)
* [Keycodes](de/keycodes.md)
* [Coding Konventionen - C](de/coding_conventions_c.md)
* [Coding Konventionen - Python](de/coding_conventions_python.md)
* [Dokumentations Best Practices](de/documentation_best_practices.md)
* [Dokumentations Templates](de/documentation_templates.md)
* [Glossar](de/reference_glossary.md)
* [Unit Testing](de/unit_testing.md)
* [Nützliche Funktionen](de/ref_functions.md)
* [Configurator Support](de/reference_configurator_support.md)
* [info.json Format](de/reference_info_json.md)
* [Python CLI Development](de/cli_development.md)
* [Features](de/features.md)
* [Basic Keycodes](de/keycodes_basic.md)
* [US ANSI Shifted Keys](de/keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](de/quantum_keycodes.md)
* [Advanced Keycodes](de/feature_advanced_keycodes.md)
* [Audio](de/feature_audio.md)
* [Auto Shift](de/feature_auto_shift.md)
* [Backlight](de/feature_backlight.md)
* [Bluetooth](de/feature_bluetooth.md)
* [Bootmagic](de/feature_bootmagic.md)
* [Combos](de/feature_combo.md)
* [Command](de/feature_command.md)
* [Debounce API](de/feature_debounce_type.md)
* [DIP Switch](de/feature_dip_switch.md)
* [Dynamic Macros](de/feature_dynamic_macros.md)
* [Encoders](de/feature_encoders.md)
* [Grave Escape](de/feature_grave_esc.md)
* [Haptic Feedback](de/feature_haptic_feedback.md)
* [HD44780 LCD Controller](de/feature_hd44780.md)
* [Key Lock](de/feature_key_lock.md)
* [Layouts](de/feature_layouts.md)
* [Leader Key](de/feature_leader_key.md)
* [LED Matrix](de/feature_led_matrix.md)
* [Macros](de/feature_macros.md)
* [Mouse Keys](de/feature_mouse_keys.md)
* [OLED Driver](de/feature_oled_driver.md)
* [One Shot Keys](de/feature_advanced_keycodes.md#one-shot-keys)
* [Pointing Device](de/feature_pointing_device.md)
* [PS/2 Mouse](de/feature_ps2_mouse.md)
* [RGB Lighting](de/feature_rgblight.md)
* [RGB Matrix](de/feature_rgb_matrix.md)
* [Space Cadet](de/feature_space_cadet.md)
* [Split Keyboard](de/feature_split_keyboard.md)
* [Stenography](de/feature_stenography.md)
* [Swap Hands](de/feature_swap_hands.md)
* [Tap Dance](de/feature_tap_dance.md)
* [Terminal](de/feature_terminal.md)
* [Thermal Printer](de/feature_thermal_printer.md)
* [Unicode](de/feature_unicode.md)
* [Userspace](de/feature_userspace.md)
* [Velocikey](de/feature_velocikey.md)
* Für Maker und Modder
* [Hand Wiring Guide](de/hand_wire.md)
* [ISP Flashing Guide](de/isp_flashing_guide.md)
* [ARM Debugging Guide](de/arm_debugging.md)
* [I2C Driver](de/i2c_driver.md)
* [GPIO Controls](de/internals_gpio_control.md)
* [Proton C Conversion](de/proton_c_conversion.md)
* Für ein tieferes Verständnis
* [Wie Tastaturen funktionieren](de/how_keyboards_work.md)
* [QMK verstehen](de/understanding_qmk.md)
* Andere Themen
* [Eclipse mit QMK](de/other_eclipse.md)
* [VSCode mit QMK](de/other_vscode.md)
* [Support](de/support.md)
* [Übersetzungen](de/translating.md)
* QMK Internals (In Progress)
* [Defines](de/internals_defines.md)
* [Input Callback Reg](de/internals_input_callback_reg.md)
* [Midi Device](de/internals_midi_device.md)
* [Midi Device Setup Process](de/internals_midi_device_setup_process.md)
* [Midi Util](de/internals_midi_util.md)
* [Send Functions](de/internals_send_functions.md)
* [Sysex Tools](de/internals_sysex_tools.md)

View File

@@ -0,0 +1,47 @@
# Bootloader Treiber Installation mit Zadig
QMK erscheint für den Host als normales HID Eingabegerät und benötigt deshalb keine zusätzlichen Treiber. Der Bootloader, den Du für das Flashen der Firmware benötigst, jedoch meistens schon.
Hierzu gibt es zwei Ausnahmen: den Caterina Bootloader, meistens auf Pro Micros, sowie den HalfKay Bootloader auf PJRC Teensys. Diese erscheinen als serieller Port und als generisches HID Gerät und benötigen keine Treiber.
Wir empfehlen deshalb [Zadig](https://zadig.akeo.ie/). Wenn Du die Entwicklungsumgebung mit MSYS2 oder WSL installiert hast, wird dich dass `qmk_install.sh` Skript gefragt haben, ob es die Treiber für dich installieren sollte.
## Installation
Versetze deine Tastatur in den Bootloader-Modus, entweder durch Betätigung des physischen `RESET` Schalters - meist auf der Unterseite der Platine - oder durch das Auslösen des Key-Codes `RESET` bzw. `KC_RESET` (sollte in der zur Tastatur gehörigen `keycode.c` zu entnehmen sein). Sollte deine Tastatur weder noch besitzen, versuche es damit die `Escape`-Taste oder `Leertaste + B` zu halten während Du die Tastatur mit dem PC verbindest (Siehe auch [Bootmagic](de/feature_bootmagic.md) für weitere Details). Ein paar Tastaturen benutzen das [Command](de/feature_command.md)-Feature an Stelle von Bootmagic; in diesem Fall kannst du mit den Tastenkombinationen `linkes Shift + rechtes Shift + B` oder `linkes Shift + rechtes Shift + Escape` zu jeder Zeit in den Bootloader wechseln solange die Tastatur verbunden ist.
Eingie Tastaturen haben u.U. spezielle Anweisungen um in den Bootloader-Modus zu gelangen. Zum Beispiel kann die [Bootmagic-Lite](de/feature_bootmagic.md#bootmagic-lite)-Taste (default: Escape) auf eine andere Taste gemappt sein; oder die magische Kombination (default: linkes Shift+rechtes Shift) verwendet anstatt Shift die STRG-Tasten. Die zur Tastatur gehörige README sollte dir Aufschluss darüber geben wie der Bootloader-Modus ausgelöst werden kann wenn Du unsicher bist.
Um ein Gerät mit USBaspLoader in den Bootloader-Modus zu versetzen, halte `BOOT` gedrückt während Du den `RESET`-Knopf drückst.
Alternativ, halte `BOOT` gedrückt während Du das USB-Kabel einsteckst.
Zadig sollte das Bootloader-Gerät automatisch erkennen. Manchmal musst Du zusätzlich noch **Options → List All Devices** auswählen.
- Tastaturen mit Atmel AVR MCUs sollten als `ATm32U4DFU` (oder ähnlich) angezeigt werden, mit der Vendor ID `03EB`.
- USBasp werden als `USBasp` angezeigt, mit VID/PID `16C0:05DC`.
- Tastaturen AVR controller und dem QMK-DFU Bootloader haben den namen `<Tastatur Name> Bootloader` und die VID `03EB`.
- Die meisten ARM Tastaturen werden als `STM32 BOOTLOADER` angezeigt, mit VID/PID `0483:DF11`.
!> Sollte Zadig ein oder mehrere Geräte mit `HidUsb`-Treiber anzeigen, dann ist deine Tastatur wahrscheinlich nicht im Bootloader-Modus. Der Pfeil wird orange eingefärbt sein und Du wirst nach einer Bestätigung gefragt um Veränderungen am System vorzunehmen. In diesem Fall **fahre nicht fort**!
Wenn der Pfeil grün angezeigt wird, wähle den Treiber aus und klicke auf **Treiber installieren**. Der `libusb-win32`-Treiber sollte gewöhnlich für AVR verwendet werden und `WinUSB` für ARM. Sollte es danach noch nicht möglich sein die Tastatur zu flashen, versuche es mit einem anderen Treiber. Für USBaspLoader Geräte, die über die Befehlszeile mit MSYS2 geflasht werden, wird der `libusbk`-Treiber empfohlen. Ansonsten sollte `libusb-win32` funktionieren wenn die QMK Toolbox verwendet wird.
![Zadig mit Bootloader-Treiber korrekt installiert](https://i.imgur.com/b8VgXzx.png)
Entferne nun deine Tastatur und verbinde sie erneut um sicherzugehen dass der neue Treiber erfolgreich installiert wurde. Wenn Du QMK Toolbox benutzt, starte die Anwendung zur Sicherheit einmal neu, da Veränderungen am Treiber manchmal nicht richtig erkannt werden. Wenn dies immer noch nicht erfolgreich war hilft es an dieser Stelle manchmal ein Neustart des Computers.
## Wiederherstellung einer Installation für ein falsches Gerät
Wenn Du feststellst dass Du anschließend auf deiner Tastatur nicht mehr tippen kannst, ist etwas bei der Installation schief gelaufen. Ein häufiger Fehler ist es dass die Tastatur nicht im Bootloader-Modus war und stattdessen der Treiber für das HID-Gerät ersetzt wurde. Dies kannst Du einfach mit Zadig überprüfen, eine funktionierende Tastatur verwendet als Treiber `HidUsb` auf allen Interfaces .
![Eine funktionierende Tastatur aus Zadigs Sicht](https://i.imgur.com/Hx0E5kC.png)
Öffne den Geräte-Manager und suche nach einem Gerät das wie deine Tastatur aussieht.
![Die Tastatur mit dem falschen Treiber installiert, im Geräte-Manager](https://i.imgur.com/L3wvX8f.png)
Rechtsklick und **Gerät deinstallieren** anklicken. Bitte gehe sicher dass in diesem Schritt auch **Treibersoftware für dieses Gerät löschen** markiert ist.
![Der "Gerät deinstallieren"-Dialog, mit "Treibersoftware für dieses Gerät entfernen" markiert](https://i.imgur.com/aEs2RuA.png)
Klick **Aktion → Suche nach veränderter Hardware**. Nun solltest Du wieder in der Lage sein normal zu tippen. Vergewissere dich mit Hilfe von Zadig dass die Tastatur nun `HidUsb` als Treiber verwendet. Wenn dies der Fall ist sollte wieder alles funktionieren.

22
docs/de/newbs.md Normal file
View File

@@ -0,0 +1,22 @@
# Anleitung für absolute Beginner
QMK ist eine mächtige Open Source Firmware für mechanische Tastaturen. Mit QMK kannst Du deine Tastatur sowohl sehr einfach als auch sehr umfangreich anpassen. Menschen unterschiedlichen Wissensstandes - vom kompletten Anfänger bis zum erfahrenen Programmierer - haben ihre Tastaturen mit QMK erfolgreich auf ihre persönlichen Bedürfnisse angepasst. Diese Anleitung soll Dir unabhängig von deinen Vorkenntnissen dabei helfen dies ebenfalls zu bewältigen.
Bist Du unsicher ob deine Tastatur QMK unterstützt? Wenn es eine mechanische Tastatur ist, die Du selbst gebaut hast, stehen deine Chancen gut. Wir unterstützen eine [Vielzahl](https://qmk.fm/keyboards/) selbst gebauter Tastaturen, sodass selbst wenn deine jetzige Tastatur nicht unterstützt wird Du keine Probleme haben solltest eine für deine Anforderungen zu finden.
## Übersicht
Diese Anleitung ist in 7 Abschnitte unterteilt:
* [Die ersten Schritte](newbs_getting_started.md)
* [Die erste Firmware auf der Kommandozeile erzeugen](newbs_building_firmware.md)
* [Die erste Firmware mit der Online GUI erzeugen](newbs_building_firmware_configurator.md)
* [Firmware flashen](newbs_flashing.md)
* [Testen und Debuggen](newbs_testing_debugging.md)
* [Git Leitfaden](newbs_best_practices.md)
* [Weitere hilfreiche Ressourcen für Anfänger](newbs_learn_more_resources.md)
Diese Anleitung richtet sich an Personen, die vorher noch nie Software kompiliert haben. Die Entscheidungen und Empfehlungen basieren auf dieser Grundannahme. Es gibt unterschiedliche Herangehensweisen für viele der Prozeduren und wir unterstützen die meisten Alternativen. Wenn Du mal nicht weiter weißt oder Dir nicht sicher bist, wie Du an ein Problem herangehen sollst, kannst Du uns gerne [um Hilfe bitten](getting_started_getting_help.md).
## Weitere Ressourcen
* [Thomas Baart's QMK Basics Blog](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) Ein äußerst hilfreicher Blog eines Community-Mitglieds, der einige Grundlagen der QMK-Firmware aus der Sicht des Benutzers erklärt (auf Englisch).

View File

@@ -0,0 +1,78 @@
# Eine eigene Firmware erstellen
Nachdem Du nun eine funktionierende Entwicklungsumgebung aufgesetzt hast, bist Du nun bereit, deine eigene Firmware zu erstellen. Dieses Sektion des Guides wird zwischen drei Programmen hin- und herwechseln: deinem Dateimanager, deinem Texteditor und der Befehlszeile. Lasse diese drei Fenster geöffnet, bis Du fertig und zufrieden mit deiner Tastatur-Firmware bist.
Solltest Du die Befehlszeile zwischenzeitlich geschlossen haben, vergiss nicht wieder in das richtige Verzeichnis zu navigieren, benutze dazu den Befehl `cd qmk_firmware`.
## Navigiere in deinen Keymap Ordner
Beginne damit, in das `keymaps` Verzeichnis für deine Tastatur zu navigieren.
Wenn Du macOS oder Windows benutzt, kannst Du einfach in das keymaps Verzeichnis wechseln.
?> macOS:<br>
open keyboards/<keyboard_folder>/keymaps
?> Windows:<br>
start .\\keyboards\\<keyboard_folder>\\keymaps
## Eine Kopie der `default` Tastaturbelegung erstellen
Wenn Du den `keymaps` Ordner geöffnet hast, solltest Du zuerst eine Kopie des `default` Verzeichnisses erstellen. Wir empfehlen dafür deinen GitHub Benutzernamen zu verweden, aber Du kannst auch jeden anderen Namen verwenden solange er nur aus Kleinbuchstaben, Zahlen und Unterstrichen besteht.
Um den Prozess zu automatisieren kannst Du dazu auch das Skript `new_keymap.sh` verwenden.
Navigiere dazu in das `qmk_firmware/util` Verzeichnis und gib folgenden Befehl ein:
```
./new_keymap.sh <keyboard path> <username>
```
Um zum Beispiel den Benutzernamen John für die Tastaturbelegung eines 1up60hse zu verwenden, würdest Du Folgendes eingeben:
```
./new_keymap.sh 1upkeyboards/1up60hse john
```
## Öffne `keymap.c` in deinem bevorzugtem Text Editor
Öffne deine `keymap.c`. In dieser Datei findest Du die Strukturen, die das Verhalten deiner Tastatur bestimmen. Oben in der `keymap.c` befinden sich Definitionen (defines) und Aufzählungen (enums), die die Tastaturbelegung leserlicher machen sollen. Weiter unten wirst Du eine Zeile finden, die wie folgt aussieht:
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
Diese Zeile markiert den Anfang der Liste der Ebenen (Layers). Darunter befinden sich Zeilen die entweder `LAYOUT` oder `KEYMAP` enthalten, das deutet auf den Start einer Ebene hin. Danach folgt eine Liste von Tasten, die dieser Ebene zugewiesen sind.
!> Beim Bearbeiten einer Tastaturbelegung solltest Du darauf achten, keine Kommata hinzuzufügen oder zu entfernen. Ansonsten kann dies dazu führen, dass deine Firmware nicht mehr kompiliert und es ist nicht immer einfach festzustellen, wo genau ein Komma zuviel oder zu wenig ist. Die letzte Zeile hat am Ende kein Komma, die Zeilen davor jedoch schon.
## Personalisiere die Tastaturbelegung nach deinen Wünschen
Wie Du diesen Schritt abschließt ist vollkommen Dir überlassen. Ändere die eine Sache die Dich stört oder verändere alles von Grund auf. Du kannst Ebenen entfernen die Du nicht brauchst oder Neue hinzufügen, bis zu 32 Stück. Die folgende Dokumentation verrät Dir was Du hier alles definieren kannst:
* [Keycodes](de/keycodes.md)
* [Features](de/features.md)
* [FAQ](de/faq.md)
?> Während Du langsam ein Gefühl dafür kriegst wie Keymaps funktionieren, solltest Du darauf achten nicht zuviel auf einmal zu verändern. Größere Änderungen machen es schwieriger, Probleme zu debuggen.
## Deine Firmware erzeugen
Wenn Du damit fertig bist, deine Tastaturbelegung anzupassen, musst Du noch die Firmware erzeugen. Öffne dazu wieder die Befehlszeile und führe folgenden Befehl aus:
make <my_keyboard>:<my_keymap>
Wenn deine Tastaturbelegung z.B. "xyverz" heißt und Du die Belegung für ein rev5 planck erzeugen möchtest, lautet der Befehl:
make planck/rev5:xyverz
Während des Kompiliervorgangs wird viel Text auf dem Bildschirm ausgegeben. Es sollte am Ende mit etwas enden das ungefähr so aussieht:
```
Linking: .build/planck_rev5_xyverz.elf [OK]
Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
Checking file size of planck_rev5_xyverz.hex [OK]
* File size is fine - 18392/28672
```
## Deine Firmware flashen
Bitte fahre mit [Firmware flashen](de/newbs_flashing.md) fort, um zu erfahren, wie Du deine neue Firmware auf deine Tastatur flashen kannst.

369
docs/de/newbs_flashing.md Normal file
View File

@@ -0,0 +1,369 @@
# Deine Tastatur flashen
Nachdem deine Firmware nun fertig ist musst Du Sie noch auf deine Tastatur flashen.
## Flash-Vorgang mit QMK Toolbox
Der einfachste Weg deine Tastatur zu flashen ist mit Hilfe der [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)
Leider ist die QMK Toolbox derzeit nur für Windows und macOS verfügbar. Wenn Du Linux benutzt (oder es vorziehst die Firmware mit der Kommandozeile zu flashen) solltest Du die Methode benutzen die [hier](de/newbs_flashing.md#tastatur-mit-der-befehlszeile-flashen) beschrieben wird.
### Lade die Datei in QMK Toolbox
Beginne damit die Datei in der QMK Toolbox Anwendung zu laden. Versichere dich dass Du die Firmware-Datei im Finder oder Explorer findest. Deine Tastatur-Firmware sollte entweder vom Typ `.hex` oder `.bin` sein sein. QMK sollte die für deine Tastatur entsprechende Datei automatisch in das Root-Verzeichnis (normalerweise `qmk_firmware`) kopieren.
?> Wenn Du Windows oder macOS benutzt kannst Du mit folgenden Befehlen ganz einfach das aktuelle Firmware-Verzeichnis im Explorer oder Finder öffnen.
#### Windows:
``` start . ```
#### macOS:
``` open . ```
Die Firmware-Dateien folgen dabei immer folgendem Schema:
<meine_Tastatur>_<meine_Tastaturbelegung>.{bin,hex}
Zum Beispiel würde ein `planck/rev5` mit der `default` Tastaturbelegung folgenden Dateinamen haben:
planck_rev5_default.hex
Wenn Du die Firmware-Datei gefunden hast kannst Du sie in das "Local file" ("Lokale Datei") Feld in der QMK Toolbox ziehen, alternativ kannst Du auf "Öffnen" klicken und in das Verzeichnis navigieren indem sich die Firmware-Datei befindet.
### Die Tastatur in den DFU (Bootloader) Modus versetzen
Um deine angepasste Firmware auf deine Tastatur zu flashen musst Du diese erst in einen speziellen "flashing"-Modus versetzen. Während die Tastatur in diesem Modus ist kannst Du nicht auf ihr tippen oder sie wie gewohnt als Tastatur benutzen. Es ist wichtig dass der flashing-Prozesses nicht unterbrochen oder die Tastatur ausstöpselst wird, da der Vorgang ansonst wiederholt werden muss.
Verschiedene Tastaturen verwenden unterschiedliche Methoden um in den Bootloader-Modus zu gelangen. Wenn dein PCB im Moment QMK oder TMK verwendet und Du keine spezifischen Anweisungen erhalten hast probiere die folgenden Methoden in dieser Reihenfolge:
* Halte beide Shift-Tasten und drücke `Pause`
* Halte beide Shift-Tasten und drücke `B`
* Entferne deine Tastatur vom Computer, drücke gleichzeitig `Leertaste` und `B`, verbinde die Tastatur wieder mit dem Computer und warte eine Sekunde bevor Du die Tasten wieder loslässt.
* Drücke den physischen `RESET`-Knopf auf der Unterseite des PCBs
* Suche auf dem PCB den Pin mit dem Label `RESET`, verbinde diesen mit deinem GND-Pin
* Suche auf dem PCB den Pin mit dem Label `BOOT0`, verbinde diesen mit GND und schließe die Tastatur wieder an den PC an TODO: DIS IS DANGEROUS!!
Wenn Du damit erfolgreich warst solltest Du in der QMK Toolbox eine Nachricht sehen die ungefähr so aussieht:
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
*** DFU device connected
```
### Tastatur flashen
Klicke auf den `Flash`-Knopf in der QMK Toolbox. Die Ausgabe wird ungefähr so aussehen:
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
*** DFU device connected
*** Attempting to flash, please don't remove device
>>> dfu-programmer atmega32u4 erase --force
Erasing flash... Success
Checking memory from 0x0 to 0x6FFF... Empty.
>>> dfu-programmer atmega32u4 flash qmk_firmware/clueboard_66_hotswap_skully.hex
Checking memory from 0x0 to 0x55FF... Empty.
0% 100% Programming 0x5600 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x5600 bytes written into 0x7000 bytes memory (76.79%).
>>> dfu-programmer atmega32u4 reset
*** DFU device disconnected
*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390
```
## Tastatur mit der Befehlszeile flashen
Zunächst solltest Du versuchen herauszufinden welchen Bootlader deine Tastatur benutzt. Diese vier Bootloader sind am Weitesten verbreitet:
| MCU | Bootloader |
| --- | --- |
| Pro-Micro und Klone | CATERINA |
| Teensy | Halfkay |
| OLKB Boards | QMK-DFU |
| sonstige atmega32u4 | DFU |
Auf der Seite [Flash Anleitung und Bootloader Informationen](de/flashing.md) kannst Du mehr über das Thema erfahren.
Wenn Du weißt welchen Bootloader deine Tastaur verwendet, kannst Du diese Information bei der Kompilation hinzufügen um den Flash-Vorgang mit dem `make`-Befehl zu automatisieren.
```rules.mk
...
BOOTLOADER = caterina
...
```
### DFU
Wenn Du den DFU-Bootloader verwendest und Du bereit bist deine Firmware zu kompilieren und zu flashen, öffne ein Befehlszeile und führe folgenden Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:dfu
Wenn deine Tastaturbelegung z.B den Namen "xzverz" trägt und Du ein rev5 planck flashen möchtest sähe der Befehl wie folgt aus:
make planck/rev5:xyverz:dfu
Nachdem der Vorgang abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/planck_rev5_xyverz.elf [OK]
Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
Checking file size of planck_rev5_xyverz.hex
* File size is fine - 18574/28672
```
Wenn dieser Punkt erreicht ist wird das Build-Skript alle 5 Sekunden nach einem DFU Bootloader suchen. Dieser Vorgang wird wiederholt bis er erfolgreich ist oder abgebrochen wird.
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
Wenn diese Nachricht erscheint konnte das Build-Skript den Controller nicht eigenständig in den DFU Modus versetzen (z.B. weil der Modus in rules.mk falsch gesetzt wurde oder ein Problem mit der Hardware besteht), wenn dies eintritt musst Du die oben beschrieben Schritte benutzen um den Controller in den DFU Modus zu versetzen. Danach sollte die Ausgabe ungefähr so aussehen:
```
*** Attempting to flash, please don't remove device
>>> dfu-programmer atmega32u4 erase --force
Erasing flash... Success
Checking memory from 0x0 to 0x6FFF... Empty.
>>> dfu-programmer atmega32u4 flash qmk_firmware/clueboard_66_hotswap_skully.hex
Checking memory from 0x0 to 0x55FF... Empty.
0% 100% Programming 0x5600 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x5600 bytes written into 0x7000 bytes memory (76.79%).
>>> dfu-programmer atmega32u4 reset
```
?> Wenn Du mit diesem Schritt Probleme hast (z.B. `dfu-programmer: no device present`) hilft dir hoffentlich der Abschnitt [Häufig gestellte Fragen (Build/Kompilieren)](de/faq_build.md).
#### DFU Befehle
Es gibt verschiedene DFU Befehle um die Firmware auf ein DFU Gerät zu flashen:
* `:dfu` - Dies ist die default Option. Es wird gecheckt ob ein DFU Gerät verfügbar ist, ist dies der Fall wird die Firmware geflasht. Dieser Check wird alle 5 Sekunden ausgeführt bis ein DFU Gerät erkannt wird.
* `:dfu-ee` - Der Flash-Vorgang benutzt eine `.eep` Datei anstatt einer `.hex` Datei. Dies ist eher unüblich.
* `:dfu-split-left` - Dies flasht die Firmware wie gewohnt (`:dfu`). Allerdings nur die "linke Seite" der EEPROM für geteilte Tastaturen. _Dies ist ideal für auf Elite C basierenden geteilten Tastaturen._
* `:dfu-split-right` - Dies flasht die Firmware wie gewohnt (`:dfu`). Allerdings nur die "rechte Seite" der EEPROM für geteilte Tastaturen. _Dies ist ideal für auf Elite C basierenden geteilten Tastaturen._
### Caterina
Für Arduinos und andere ProMicro Klone (z.B. SparkFun ProMicro), wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:avrdude
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein "rev2 Lets Split" erzeugen möchtest, lautet der Befehl dafür:
make lets_split/rev2:xyverz:avrdude
Nachdem die Kompilation abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/lets_split_rev2_xyverz.elf [OK]
Creating load file for flashing: .build/lets_split_rev2_xyverz.hex [OK]
Checking file size of lets_split_rev2_xyverz.hex [OK]
* File size is fine - 27938/28672
Detecting USB port, reset your controller now..............
```
Nun wird die Tastatur automatisch zurückgesetzt und das Skript wird die Firmware flashen sobald es den Bootloader erkennt. Die Ausgabe sollte ungefähr so aussehen:
```
Detected controller on USB port at /dev/ttyS15
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9587 (probably m32u4)
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "./.build/lets_split_rev2_xyverz.hex"
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
avrdude.exe: writing flash (27938 bytes):
Writing | ################################################## | 100% 2.40s
avrdude.exe: 27938 bytes of flash written
avrdude.exe: verifying flash memory against ./.build/lets_split_rev2_xyverz.hex:
avrdude.exe: load data flash data from input file ./.build/lets_split_rev2_xyverz.hex:
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex auto detected as Intel Hex
avrdude.exe: input file ./.build/lets_split_rev2_xyverz.hex contains 27938 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 0.43s
avrdude.exe: verifying ...
avrdude.exe: 27938 bytes of flash verified
avrdude.exe: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude.exe done. Thank you.
```
Sollten dabei Probleme auftreten (z.B. "Zugriff verweigert" / "Permission denied") muss der Make-Befehl mit privilegierten Berechtigungen ausgeführt werden:
sudo make <meine_Tastatur>:<meine_Tastaturbelegung>:avrdude
Zusätzlich ist es möglich mehrere Tastaturen in einem Vorgang zu flashen:
make <keyboard>:<keymap>:avrdude-loop
Du kannst den Loop mit STRG + C unterbrechen sobald der Vorgang abgeschlossen ist. Die korrekte Tastenkombination kann abweichen und hängt vom Betriebssystem ab.
### HalfKay
Für Tastaturen mit PJRC Controllern (Teensy's), wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:teensy
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein Ergodox oder Ergodox EZ erzeugen möchtest, lautet der Befehl dafür:
make ergodox_ez:xyverz:teensy
Nachdem die Kompilation abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/ergodox_ez_xyverz.elf [OK]
Creating load file for flashing: .build/ergodox_ez_xyverz.hex [OK]
Checking file size of ergodox_ez_xyverz.hex [OK]
* File size is fine - 25584/32256
Teensy Loader, Command Line, Version 2.1
Read "./.build/ergodox_ez_xyverz.hex": 25584 bytes, 79.3% usage
Waiting for Teensy device...
(hint: press the reset button)
```
An diesem Punkt solltest Du die Tastatur zurücksetzen um den Flash-Vorgang auszulösen. Wenn dies abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Found HalfKay Bootloader
Read "./.build/ergodox_ez_xyverz.hex": 28532 bytes, 88.5% usage
Programming.............................................................
...................................................
Booting
```
### BootloadHID
Für auf Bootmapper Client(BMC)/bootloaderHID/ATmega32A basierende Tastaturen, wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:bootloaderHID
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein jj40 erzeugen möchtest, lautet der Befehl dafür:
make jj40:xyverz:bootloaderHID
Nachdem die Kompilation abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Linking: .build/jj40_default.elf [OK]
Creating load file for flashing: .build/jj40_default.hex [OK]
Copying jj40_default.hex to qmk_firmware folder [OK]
Checking file size of jj40_default.hex [OK]
* The firmware size is fine - 21920/28672 (6752 bytes free)
```
Wenn dieser Punkt erreicht ist wird das Build-Skript alle 5 Sekunden nach einem DFU Bootloader suchen. Dieser Vorgang wird wiederholt bis er erfolgreich ist oder abgebrochen wird.
```
Error opening HIDBoot device: The specified device was not found
Trying again in 5s.
```
An diesem Punkt solltest Du die Tastatur zurücksetzen um den Flash-Vorgang auszulösen. Wenn dies abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
```
Page size = 128 (0x80)
Device size = 32768 (0x8000); 30720 bytes remaining
Uploading 22016 (0x5600) bytes starting at 0 (0x0)
0x05580 ... 0x05600
```
### STM32 (ARM)
Für die meisten ARM Tastaturen (inkl. Proton C, Planck Rev 6 und Preonic Rev 3), wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:dfu-util
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein Planck Revision 6 erzeugen möchtest, benutze dafür den folgenden Befehl und reboote die Tastatur in den Bootloader (kurz bevor der Kompiliervorgang abgeschlossen ist):
make planck/rev6:xyverz:dfu-util
Nachdem der Kompiliervorgang abgeschlossen ist sollte die Ausgabe ungefähr so aussehen:
Für auf Bootmapper Client(BMC)/bootloaderHID/ATmega32A basierende Tastaturen, wenn Du bereit bist zu kompilieren und die Tastatur zu flashen, öffne ein Befehlszeilen-Fenster und führe den Build-Befehl aus:
make <meine_Tastatur>:<meine_Tastaturbelegung>:bootloaderHID
Wenn deine Tastaturbelegung zum Beispiel den Namen "xyverz" hat und Du eine Tastaturbelegung für ein jj40 erzeugen möchtest, lautet der Befehl dafür:
```
Linking: .build/planck_rev6_xyverz.elf [OK]
Creating binary load file for flashing: .build/planck_rev6_xyverz.bin [OK]
Creating load file for flashing: .build/planck_rev6_xyverz.hex [OK]
Size after:
text data bss dec hex filename
0 41820 0 41820 a35c .build/planck_rev6_xyverz.hex
Copying planck_rev6_xyverz.bin to qmk_firmware folder [OK]
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 41824
Download [=========================] 100% 41824 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
```
#### STM32 Befehle
Für Tastaturen mit STM32 Controller sind die DFU Befehle wie folgt:
* `:dfu-util` - The default command for flashing to STM32 devices.
* `:dfu-util` - Der Standard-Befehl für STM32 Geräte.
* `:dfu-util-wait` - Funktioniert wie der Standard-Befehl, aber mit einem 10 Sekunden Timeout bevor erneut versucht wird die Firmware zu flashen. Mit dem Parameter `TIME_DELAY=20` auf der Befehlszeile kann der Timeout beeinflusst werden.
* z.B.: `make <meine_Tastatur>:<meine_Tastaturbelegung>:dfu-util TIME_DELAY=5`
* `:dfu-util-split-left` - Gleiche Funktionsweise wie `dfu-util`, jedoch wird zusätzlich das EEPROM Setting "linke Seite" für geteilte Tastaturen gesetzt.
* `:dfu-util-split-right` - Gleiche Funktionsweise wie `dfu-util`, jedoch wird zusätzlich das EEPROM Setting "rechte Seite" für geteilte Tastaturen gesetzt.
## Probier's aus!
Herzlichen Glückwunsch! Deine individuell angepasst Firmware wurde auf deine Tastatur übertragen!
Probiere deine neue Tastatur aus und gehe sicher dass alles wie gewünscht funktioniert. Wir haben einen weiteren Artikel zum Thema [Testen und Debuggen](de/newbs_testing_debugging.md) verfasst der sich mit Problembeseitigung beschäftigt um den Beginnger-Guide abzuschließen.

View File

@@ -0,0 +1,101 @@
# Einleitung
Genau wie in einem Computer befindet sich auch in einer Tastatur ein Prozessor.
Dieser Prozessor führt Software aus, die registriert wenn Tasten gedrückt bzw. wieder losgelassen werden und leitet die entsprechenden Signale an den Computer weiter.
QMK übernimmt die Rolle dieser Software und teilt dem Host-Computer den aktuellen Zustand der Tastatur mit. Wenn Du eine Tastaturbelegung definierst, ist dies äquivalent zu einem ausführbarem Programm, das auf deiner Tastatur läuft.
QMK möchte seine BenutzerInnen in die Lage versetzen, simple Aufgaben möglichst einfach zu gestalten und gleichzeitig komplexe Dinge zu ermöglichen, die mit normalen Tastaturen ohne zusätzliche Software undenkbar wären. Du musst nicht programmieren können, um abgefahrene Tastaturbelegungen zu gestalten - es reicht wenn Du eine Idee hast und ein paar einfache syntaktische Regeln verstehen kannst.
# Los geht's!
Bevor Du damit loslegen kannst, deine Tastaturbelegung zu erstellen, musst Du ein wenig Software installieren und Dir eine Entwicklungsumgebung aufsetzen. Die gute Nachricht ist, dass das nur einmal erledigt werden muss, egal für wie viele verschiedene Tastaturen Du hinterher Firmware entwickeln willst.
Wenn Du es vorziehst mit einer grafischen Oberfläche zu entwickeln kannst Du auch dazu gerne direkt mit dem online [QMK Konfigurator](https://config.qmk.fm) loslegen. Siehe auch: [Firmware mit der Online GUI erzeugen](de/newbs_building_firmware_configurator.md)
## Software herunterladen
### Text Editor
Du wirst ein Programm benötigen, mit dem Du **plain text** (= reiner Text) Dateien bearbeiten und speichern kannst. Wenn Du Windows benutzt, reicht dafür schon das normale `Notepad` und für Linux z.B. `gedit` oder `leafpad`. Beide sind sehr rudimentäre Editoren deren Funktionsumfang aber vollkommen ausreicht. Für macOS' standard `TextEdit` muss man ein bisschen vorsichtig sein und darauf achten, beim Speichern explizit unter _Format_ die Option _Reiner Text_ auszuwählen.
Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der für die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](http://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/).
?> Immer noch unsicher, welcher Text Editor der Richtige für Dich ist? Laurence Bradford hat eine hervorragende [Einleitung](https://learntocodewith.me/programming/basics/text-editors/) zu dem Thema geschrieben (auf Englisch).
### QMK Toolbox
QMK Toolbox ist ein optionales grafisches Programm für Windows und macOS, das es erleichtern soll, deine Tastatur zu programmieren und zu debuggen. Du wirst es höchstwahrscheinlich früher oder später als unverzichtbar ansehen, wenn es darum geht eine Tastatur einfach zu flashen oder zu debuggen, da es ermöglicht, sich debug-Nachrichten direkt anzeigen zu lassen.
[Hier kannst Du die aktuelle Version herunterladen.](https://github.com/qmk/qmk_toolbox/releases/latest)
* Für Windows: `qmk_toolbox.exe` (portable) oder `qmk_toolbox_install.exe` (installer)
* Für macOS: `QMK.Toolbox.app.zip` (portable) oder `QMK.Toolbox.pkg` (installer)
## Die Entwicklungsumgebung aufsetzen
Wir haben versucht, die Installation der Entwicklungsumgebung für QMK so einfach wie möglich zu gestalten. Alles, was Du tun musst, ist eine Linux oder Unix Umgebung aufzusetzen, danach macht QMK den Rest.
?> Wenn Du das erste Mal mit der Linux/Unix Befehlszeile arbeitest, schadet es nicht, sich mit ein paar Grundlagen und Befehlen vertraut zu machen. Diese Ressourcen sollten ausreichen, um sich das Nötigste anzueignen um mit QMK arbeiten zu können:<br>
[Erforderliche Linux Grundlagen](https://www.guru99.com/must-know-linux-commands.html)<br>
[Noch ein paar Linux Befehle](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
### Windows
Du wirst MSYS2 (o.Ä.) und Git benötigen.
* Befolge die Installationsanleitung auf der [MSYS2 Homepage](http://www.msys2.org)
* Schließe alle offenen MSYS2 Fenster und öffne ein neues MSYS2 MinGW 64-bit Terminal
* Installiere Git mit dem Kommando: `pacman -S git`
### macOS
Du wirst Homebrew benötigen. Folge dafür den Anweisungen auf der [Homebrew homepage](https://brew.sh).
Nachdem Homebrew erfolgreich installiert ist, kannst Du mit _QMK aufsetzen_ fortfahren.
### Linux
Du benötigst Git, aber es ist ziemlich wahrscheinlich, dass es bereits installiert ist. Sollte dies nicht der Fall sein, kannst Du es mit dem folgenden Aufruf installieren:
* Debian / Ubuntu / Devuan: `apt-get install git`
* Fedora / Red Hat / CentOS: `yum install git`
* Arch Linux: `pacman -S git`
?> Docker ist ebenfalls eine Option für alle Plattformen. [Hier](de/getting_started_build_tools.md#docker) kannst Du dazu weitere Informationen finden.
## QMK aufsetzen
Wenn Du damit fertig bist, deine Linux/Unix Umgebung zu installieren, kannst Du damit fortfahren QMK herunterzuladen. Dafür werden wir mit Git das QMK Repository "klonen". Öffne ein Terminal oder ein MSYS2 MinGW Fenster, dies wirst Du für den Rest der Anleitung benötigen. In diesem Fenster rufst Du nun die beiden folgenden Kommandos auf:
```shell
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
?> Wenn Du bereits weißt, [wie man GitHub benutzt](de/getting_started_github.md), empfehlen wir, dass Du Dir ein eigenen Fork erstellst. Wenn Du nicht weißt, was das bedeuten soll, kannst Du diesen Ratschlag getrost ignorieren.
QMK liefert ein Script mit, das helfen soll, Dir alles Weitere abzunehmen. Du kannst es mit dem folgenden Befehl aufrufen:
util/qmk_install.sh
## Die Build-Umgebung testen
Nun sollte hoffentlich alles Nötige für eine funktionierende QMK Build-Umgebung installiert sein und Du solltest in der Lage sein, die QMK-Firmware zu kompilieren. Um dies mit einer `default` Tastaturbelegung zu testen, kannst Du den folgenden Befehl ausprobieren:
make <keyboard>:default
Der Befehl um z.B. die Firmware für ein _Clueboard 66%_ zu erzeugen lautet:
make clueboard/66/rev3:default
Wenn es fertig ist, sollte der Output ungefähr so ähnlich wie das Folgende aussehen:
```
Linking: .build/clueboard_66_rev3_default.elf [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder [OK]
Checking file size of clueboard_66_rev3_default.hex [OK]
* The firmware size is fine - 26356/28672 (2316 bytes free)
```
# Eine eigene Tastaturbelegung erstellen
Du bist nun fertig mit dem Setup der Entwicklungsumgebung und solltest somit in der Lage sein, deine eigenen Tastaturbelegungen zu erstellen. Um fortzufahren, folge bitte der nächsten Anleitung unter [Die erste Firmware](de/newbs_building_firmware.md).

View File

@@ -0,0 +1,14 @@
# Lernmaterial
Diese weiterführenden Ressourcen sind darauf ausgerichtet, Neulingen der QMK Commmunity mehr Informationen und ein besseres Verständnis zu einzelnen Themen zu bieten.
Git Ressourcen:
* [Gutes allgemeines Tutorial](https://www.codecademy.com/learn/learn-git) (auf Englisch)
* [Git spielerisch anhand von Beispielen lernen](https://learngitbranching.js.org/) (auf Englisch)
* [Mehr über den allgemeinen Umgang mit Github](getting_started_github.md)
* [Mehr über Git im Bezug zu QMK](contributing.md)
Mehr über die Arbeit mit der Befehlszeile:
* [Gutes allgemeines Tutorial über die Arbeit mit der Befehlszeile](https://www.codecademy.com/learn/learn-the-command-line) (auf Englisch)

View File

@@ -0,0 +1,100 @@
# Testen und Debuggen
Nachdem Du deine Tastatur mit deiner angepassten Firmware geflasht hast, ist es nun an der Zeit sie auszuprobieren. Mit ein bisschen Glück sollte alles ohne Probleme funktionieren, wenn dies nicht der Fall ist, soll dieses Dokument dir dabei helfen, herauszufinden wo das Problem liegt.
## Testen
Die Tastatur zu testen ist relativ selbsterklärend. Drücke jede der Tasten um dich zu versichern, dass der gesendete Keyode der ist, den du erwarten würdest. Dafür gibt es sogar ein paar Programme die helfen sollen, dass keine Taste ausgelassen wurde.
Anmerkung: Diese Programme werden weder von QMK bereitgestellt oder gutgeheißen.
* [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Nur für Windows)
* [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Nur für Mac)
* [Keyboard Tester](http://www.keyboardtester.com) (Web basiert)
* [Keyboard Checker](http://keyboardchecker.com) (Web basiert)
## Debuggen
Deine Tastatur wird Debug Informationen liefern wenn Du `CONSOLE_ENABLE = yes` in deiner `rules.mk` gesetzt hast. Die default-Ausgabe ist sehr beschränkt und kann wenn nötig durch die Aktivierung des Debug-Modes erhöht werden. Benutze dafür entweder den `DEBUG` Keycode in deiner Tastaturbelegung, das [Command](de/feature_command.md)-Feature oder füge den folgenden Code zu deiner Tastaturbelegung hinzu.
```c
void keyboard_post_init_user(void) {
// Customise these values to desired behaviour
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
}
```
### Debuggen mit der QMK Toolbox
Für kompatible Plattformen kann die [QMK Toolbox](https://github.com/qmk/qmk_toolbox) benutzt werden um Debug-Nachrichten deiner Tastatur anzuzeigen.
### Debuggen mit hid_listen
Bevorzugst Du es lieber auf der Befehlszeile zu debuggen? Dafür eignet sich das Programm [hid_listen](https://www.pjrc.com/teensy/hid_listen.html) von PJRC. Binaries sind für Windows, Linux und MacOS verfügbar.
<!-- FIXME: Describe the debugging messages here. -->
## Eigene Debug-Nachrichten senden
Manchmal ist es hilfreich Debug-Nachrichten innerhalb deines eigenen [Custom Codes](de/custom_quantum_functions.md) zu drucken. Das ist ziemlich einfach. Beginne damit `print.h` am Anfang deiner Datei zu inkludieren:
#include <print.h>
Danach stehen dir verschiedene Druck-Funktionen zur Verfügung:
* `print("string")`: Druckt einen simplen String
* `uprintf("%s string", var)`: Druckt einen formatierten String
* `dprint("string")` Druckt einen simplen String, aber nur wenn der Debug-Mode aktiviert ist
* `dprintf("%s string", var)`: Druckt einen formatierten String, aber nur wenn der Debug-Mode aktiviert ist
## Debug Beispiele
Anbei findest Du eine Sammlung von hilfreichen Beispielen. Für weitere Informationen Informationen sei an dieser Stelle auf [Debugging/Troubleshooting QMK](de/faq_debug.md) verwiesen.
### Which matrix position is this keypress?
### Welche Matrix Position hat dieser Tastenanschlag
Beim Portieren, oder bei der Fehlerdiagnose von PCB Problemen, ist es nützlich sich anzeigen zu lassen ob ein Tastenanschlag richtig erkannt wurde. Um die Protokollierung für diesen Fall zu aktivieren, füge bitte folgenden Code zu deiner Tastaturbelegung `keymap.c` hinzu.
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Wenn 'console' aktiviert ist wird die Matrix-Position und der Status jedes Tastenanschlags ausgegeben
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
#endif
return true;
}
```
Beispiel Ausgabe:
```text
Waiting for device:.......
Listening:
KL: kc: 169, col: 0, row: 0, pressed: 1
KL: kc: 169, col: 0, row: 0, pressed: 0
KL: kc: 174, col: 1, row: 0, pressed: 1
KL: kc: 174, col: 1, row: 0, pressed: 0
KL: kc: 172, col: 2, row: 0, pressed: 1
KL: kc: 172, col: 2, row: 0, pressed: 0
```
### Wieviel Zeit wurde benötigt um einen Tastenanschlag zu detektieren?
Wenn Performance-Probleme auftreten ist es hilfreich die Frequenz, mit der die Matrix gescannt wird, zu wissen. Um dies in diesem Fall zu aktiveren füge, den folgenden Code zu deiner Tastaturbelegung in `config.h` hinzu.
```c
#define DEBUG_MATRIX_SCAN_RATE
```
Beispiel Ausgabe
```text
> matrix scan frequency: 315
> matrix scan frequency: 313
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
```

View File

@@ -28,9 +28,9 @@ the Ctrl, Alt, or GUI modifiers are held down.
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)
* 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):
@@ -38,5 +38,3 @@ Make example for this keyboard (after setting up your build environment):
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
```
There needs to be two spaces at the end of the `Keyboard Maintainer` and `Hardware Supported` lines for it to render correctly with Markdown.

50
docs/eeprom_driver.md Normal file
View File

@@ -0,0 +1,50 @@
# EEPROM Driver Configuration
The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.
Driver | Description
--------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`EEPROM_DRIVER = vendor` | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. Other chips will generally act as "transient" below.
`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
## Vendor Driver Configuration
No configurable options are available.
## I2C Driver Configuration
Currently QMK supports 24xx-series chips over I2C. As such, requires a working i2c_master driver configuration. You can override the driver configuration via your config.h:
`config.h` override | Description | Default Value
------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------
`#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS` | Base I2C address for the EEPROM -- shifted left by 1 as per i2c_master requirements | 0b10100000
`#define EXTERNAL_EEPROM_I2C_ADDRESS(addr)` | Calculated I2C address for the EEPROM | `(EXTERNAL_EEPROM_I2C_BASE_ADDRESS)`
`#define EXTERNAL_EEPROM_BYTE_COUNT` | Total size of the EEPROM in bytes | 8192
`#define EXTERNAL_EEPROM_PAGE_SIZE` | Page size of the EEPROM in bytes, as specified in the datasheet | 32
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | The number of bytes to transmit for the memory location within the EEPROM | 2
`#define EXTERNAL_EEPROM_WRITE_TIME` | Write cycle time of the EEPROM, as specified in the datasheet | 5
Default values and extended descriptions can be found in `drivers/eeprom/eeprom_i2c.h`.
Alternatively, there are pre-defined hardware configurations for available chips/modules:
Module | Equivalent `#define` | Source
-----------------|---------------------------------|------------------------------------------
CAT24C512 EEPROM | `#define EEPROM_I2C_CAT24C512` | <https://www.sparkfun.com/products/14764>
RM24C512C EEPROM | `#define EEPROM_I2C_RM24C512C` | <https://www.sparkfun.com/products/14764>
24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | <https://www.microchip.com/wwwproducts/en/24LC128>
24LC256 EEPROM | `#define EEPROM_I2C_24LC256` | <https://www.sparkfun.com/products/525>
MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | <https://www.adafruit.com/product/1895>
?> If you find that the EEPROM is not cooperating, ensure you've correctly shifted up your EEPROM address by 1. For example, the datasheet might state the address as `0b01010000` -- the correct value of `EXTERNAL_EEPROM_I2C_BASE_ADDRESS` needs to be `0b10100000`.
## Transient Driver configuration
The only configurable item for the transient EEPROM driver is its size:
`config.h` override | Description | Default Value
------------------------------- | ----------------------------------------- | -------------
`#define TRANSIENT_EEPROM_SIZE` | Total size of the EEPROM storage in bytes | 64
Default values and extended descriptions can be found in `drivers/eeprom/eeprom_transient.h`.

View File

@@ -19,7 +19,7 @@ De cualquier manera, también puedes descargarlo directamente en formatos ([zip]
## Cómo compilar
Antes de poder compilar, necesitarás [instalar un entorno](getting_started_build_tools.md) para el desarrollo de AVR y/o ARM. Una vez hayas completado este paso, usarás el comando `make` para compilar un teclado y keymap con la siguiente notación:
Antes de poder compilar, necesitarás [instalar un entorno](es/getting_started_build_tools.md) para el desarrollo de AVR y/o ARM. Una vez hayas completado este paso, usarás el comando `make` para compilar un teclado y keymap con la siguiente notación:
make planck/rev4:default
@@ -29,4 +29,4 @@ Este ejemplo compilaría la revisión `rev4` del teclado `planck` con el keymap
## Cómo personalizar
QMK tiene montones de [características](features.md) para explorar, y una buena cantidad de [documentación de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](keymap.md), y cambiando los [keycodes](keycodes.md).
QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).

View File

@@ -1,121 +1,121 @@
* [Guía completa para novatos](newbs.md)
* [Empezando](newbs_getting_started.md)
* [Construyendo tu primer firmare](newbs_building_firmware.md)
* [Flasheando el firmware](newbs_flashing.md)
* [Testeando y depurando ](newbs_testing_debugging.md)
* [Mejores práticas](newbs_best_practices.md)
* [Recursos de aprendizaje](newbs_learn_more_resources.md)
* [Guía completa para novatos](es/newbs.md)
* [Empezando](es/newbs_getting_started.md)
* [Construyendo tu primer firmare](es/newbs_building_firmware.md)
* [Flasheando el firmware](es/newbs_flashing.md)
* [Testeando y depurando ](es/newbs_testing_debugging.md)
* [Mejores práticas](es/newbs_best_practices.md)
* [Recursos de aprendizaje](es/newbs_learn_more_resources.md)
* [QMK Basics](README.md)
* [Introducción a QMK](getting_started_introduction.md)
* [QMK CLI](cli.md)
* [Configuración de QMK CLI](cli_configuration.md)
* [Contribuyendo a QMK](contributing.md)
* [Cómo usar Github](getting_started_github.md)
* [Obtener ayuda](getting_started_getting_help.md)
* [QMK Basics](es/README.md)
* [Introducción a QMK](es/getting_started_introduction.md)
* [QMK CLI](es/cli.md)
* [Configuración de QMK CLI](es/cli_configuration.md)
* [Contribuyendo a QMK](es/contributing.md)
* [Cómo usar Github](es/getting_started_github.md)
* [Obtener ayuda](es/getting_started_getting_help.md)
* [Cambios incompatibles](breaking_changes.md)
* [30 Ago 2019](ChangeLog/20190830.md)
* [Cambios incompatibles](es/breaking_changes.md)
* [30 Ago 2019](es/ChangeLog/20190830.md)
* [Preguntas frecuentes](faq.md)
* [General](faq_general.md)
* [Construir/Compilar QMK](faq_build.md)
* [Depurando/Encontrando problemas en QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Instalación de drivers con Zadig](driver_installation_zadig.md)
* [Preguntas frecuentes](es/faq.md)
* [General](es/faq_general.md)
* [Construir/Compilar QMK](es/faq_build.md)
* [Depurando/Encontrando problemas en QMK](es/faq_debug.md)
* [Keymap](es/faq_keymap.md)
* [Instalación de drivers con Zadig](es/driver_installation_zadig.md)
* Guías detalladas
* [Instalar herramientas construcción](getting_started_build_tools.md)
* [Guía Vagrant](getting_started_vagrant.md)
* [Instrucciones de Construcción/Compilado](getting_started_make_guide.md)
* [Flasheando Firmware](flashing.md)
* [Personalizando funcionalidad](custom_quantum_functions.md)
* [Visión general del Keymap](keymap.md)
* [Instalar herramientas construcción](es/getting_started_build_tools.md)
* [Guía Vagrant](es/getting_started_vagrant.md)
* [Instrucciones de Construcción/Compilado](es/getting_started_make_guide.md)
* [Flasheando Firmware](es/flashing.md)
* [Personalizando funcionalidad](es/custom_quantum_functions.md)
* [Visión general del Keymap](es/keymap.md)
* [Hardware](hardware.md)
* [Procesadores AVR](hardware_avr.md)
* [Drivers](hardware_drivers.md)
* [Hardware](es/hardware.md)
* [Procesadores AVR](es/hardware_avr.md)
* [Drivers](es/hardware_drivers.md)
* Referencia
* [Pautas de teclados](hardware_keyboard_guidelines.md)
* [Opciones de configuración](config_options.md)
* [Keycodes](keycodes.md)
* [Convenciones de código - C](coding_conventions_c.md)
* [Convenciones de código - Python](coding_conventions_python.md)
* [Mejores prácticas de documentación](documentation_best_practices.md)
* [Plantillas de documentación](documentation_templates.md)
* [Glosario](reference_glossary.md)
* [Tests unitarios](unit_testing.md)
* [Funciones útiles](ref_functions.md)
* [Sporte configurador](reference_configurator_support.md)
* [Formato info.json](reference_info_json.md)
* [Desarrollo Python CLI](cli_development.md)
* [Pautas de teclados](es/hardware_keyboard_guidelines.md)
* [Opciones de configuración](es/config_options.md)
* [Keycodes](es/keycodes.md)
* [Convenciones de código - C](es/coding_conventions_c.md)
* [Convenciones de código - Python](es/coding_conventions_python.md)
* [Mejores prácticas de documentación](es/documentation_best_practices.md)
* [Plantillas de documentación](es/documentation_templates.md)
* [Glosario](es/reference_glossary.md)
* [Tests unitarios](es/unit_testing.md)
* [Funciones útiles](es/ref_functions.md)
* [Sporte configurador](es/reference_configurator_support.md)
* [Formato info.json](es/reference_info_json.md)
* [Desarrollo Python CLI](es/cli_development.md)
* [Características](features.md)
* [Keycodes Básicos](keycodes_basic.md)
* [Teclas US ANSI Shifted](keycodes_us_ansi_shifted.md)
* [Keycodes Quantum](quantum_keycodes.md)
* [Keycodes Avanzados](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Retroiluminación](feature_backlight.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Combos](feature_combo.md)
* [Comando](feature_command.md)
* [API Debounce](feature_debounce_type.md)
* [Switch DIP](feature_dip_switch.md)
* [Macros Dinámicas](feature_dynamic_macros.md)
* [Encoders](feature_encoders.md)
* [Grave Escape](feature_grave_esc.md)
* [Feedback Háptico](feature_haptic_feedback.md)
* [Controlador LCD HD44780](feature_hd44780.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Tecla Leader](feature_leader_key.md)
* [Matriz LED](feature_led_matrix.md)
* [Macros](feature_macros.md)
* [Teclas del ratón](feature_mouse_keys.md)
* [Driver OLED](feature_oled_driver.md)
* [Teclas One Shot](feature_advanced_keycodes.md#one-shot-keys)
* [Dispositivo de apuntado](feature_pointing_device.md)
* [Ratón PS/2](feature_ps2_mouse.md)
* [Iluminación RGB](feature_rgblight.md)
* [Matriz RGB](feature_rgb_matrix.md)
* [Cadete espacial](feature_space_cadet.md)
* [Teclado dividido](feature_split_keyboard.md)
* [Stenografía](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminal](feature_terminal.md)
* [Impresora Térmica](feature_thermal_printer.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [Velocikey](feature_velocikey.md)
* [Características](es/features.md)
* [Keycodes Básicos](es/keycodes_basic.md)
* [Teclas US ANSI Shifted](es/keycodes_us_ansi_shifted.md)
* [Keycodes Quantum](es/quantum_keycodes.md)
* [Keycodes Avanzados](es/feature_advanced_keycodes.md)
* [Audio](es/feature_audio.md)
* [Auto Shift](es/feature_auto_shift.md)
* [Retroiluminación](es/feature_backlight.md)
* [Bluetooth](es/feature_bluetooth.md)
* [Bootmagic](es/feature_bootmagic.md)
* [Combos](es/feature_combo.md)
* [Comando](es/feature_command.md)
* [API Debounce](es/feature_debounce_type.md)
* [Switch DIP](es/feature_dip_switch.md)
* [Macros Dinámicas](es/feature_dynamic_macros.md)
* [Encoders](es/feature_encoders.md)
* [Grave Escape](es/feature_grave_esc.md)
* [Feedback Háptico](es/feature_haptic_feedback.md)
* [Controlador LCD HD44780](es/feature_hd44780.md)
* [Key Lock](es/feature_key_lock.md)
* [Layouts](es/feature_layouts.md)
* [Tecla Leader](es/feature_leader_key.md)
* [Matriz LED](es/feature_led_matrix.md)
* [Macros](es/feature_macros.md)
* [Teclas del ratón](es/feature_mouse_keys.md)
* [Driver OLED](es/feature_oled_driver.md)
* [Teclas One Shot](es/feature_advanced_keycodes.md#one-shot-keys)
* [Dispositivo de apuntado](es/feature_pointing_device.md)
* [Ratón PS/2](es/feature_ps2_mouse.md)
* [Iluminación RGB](es/feature_rgblight.md)
* [Matriz RGB](es/feature_rgb_matrix.md)
* [Cadete espacial](es/feature_space_cadet.md)
* [Teclado dividido](es/feature_split_keyboard.md)
* [Stenografía](es/feature_stenography.md)
* [Swap Hands](es/feature_swap_hands.md)
* [Tap Dance](es/feature_tap_dance.md)
* [Terminal](es/feature_terminal.md)
* [Impresora Térmica](es/feature_thermal_printer.md)
* [Unicode](es/feature_unicode.md)
* [Userspace](es/feature_userspace.md)
* [Velocikey](es/feature_velocikey.md)
* Para Makers y Modders
* [Guía de cableado a mano](hand_wire.md)
* [Guía de flasheado de ISP](isp_flashing_guide.md)
* [Guía de depuración de ARM](arm_debugging.md)
* [Driver I2C](i2c_driver.md)
* [Controles GPIO](internals_gpio_control.md)
* [Conversión Proton C](proton_c_conversion.md)
* [Guía de cableado a mano](es/hand_wire.md)
* [Guía de flasheado de ISP](es/isp_flashing_guide.md)
* [Guía de depuración de ARM](es/arm_debugging.md)
* [Driver I2C](es/i2c_driver.md)
* [Controles GPIO](es/internals_gpio_control.md)
* [Conversión Proton C](es/proton_c_conversion.md)
* Para entender en profundidad
* [Cómo funcionan los teclados](how_keyboards_work.md)
* [Entendiendo QMK](understanding_qmk.md)
* [Cómo funcionan los teclados](es/how_keyboards_work.md)
* [Entendiendo QMK](es/understanding_qmk.md)
* Otros temas
* [Usando Eclipse con QMK](other_eclipse.md)
* [Usando VSCode con QMK](other_vscode.md)
* [Soporte](support.md)
* [Cómo añadir traducciones](translating.md)
* [Usando Eclipse con QMK](es/other_eclipse.md)
* [Usando VSCode con QMK](es/other_vscode.md)
* [Soporte](es/support.md)
* [Cómo añadir traducciones](es/translating.md)
* QMK Internals (En progreso)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Dispositivo Midi](internals_midi_device.md)
* [Proceso de configuración de un dispositivo Midi](internals_midi_device_setup_process.md)
* [Utilidad Midi](internals_midi_util.md)
* [Funciones Send](internals_send_functions.md)
* [Herramientas Sysex](internals_sysex_tools.md)
* [Defines](es/internals_defines.md)
* [Input Callback Reg](es/internals_input_callback_reg.md)
* [Dispositivo Midi](es/internals_midi_device.md)
* [Proceso de configuración de un dispositivo Midi](es/internals_midi_device_setup_process.md)
* [Utilidad Midi](es/internals_midi_util.md)
* [Funciones Send](es/internals_send_functions.md)
* [Herramientas Sysex](es/internals_sysex_tools.md)

View File

@@ -47,7 +47,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
```
**/etc/udev/rules.d/55-catalina.rules:**
**/etc/udev/rules.d/55-caterina.rules:**
```
# ModemManager should ignore the following devices
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
@@ -69,6 +69,12 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="066
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
```
**/etc/udev/rules.d/57-bootloadhid.rules:**
```
# bootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", MODE:="0666"
```
### Serial device is not detected in bootloader mode on Linux
Make sure your kernel has appropriate support for your device. If your device uses USB ACM, such as
Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices may require `USB_SERIAL` and any of its sub options.
@@ -81,10 +87,6 @@ Re-running the QMK installation script (`./util/qmk_install.sh` from the `qmk_fi
If that doesn't work, then you may need to download and run Zadig. See [Bootloader Driver Installation with Zadig](driver_installation_zadig.md) for more detailed information.
## 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.
@@ -97,29 +99,6 @@ You can buy a really unique VID:PID here. I don't think you need this for person
- 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.
@@ -140,24 +119,29 @@ The solution is to remove and reinstall all affected modules.
```
brew rm avr-gcc
brew rm avr-gcc@8
brew rm dfu-programmer
brew rm dfu-util
brew rm gcc-arm-none-eabi
brew rm arm-gcc-bin@8
brew rm avrdude
brew install avr-gcc
brew install avr-gcc@8
brew install dfu-programmer
brew install dfu-util
brew install gcc-arm-none-eabi
brew install arm-gcc-bin@8
brew install avrdude
brew link --force avr-gcc@8
brew link --force arm-gcc-bin@8
```
### avr-gcc 8.1 and LUFA
### `avr-gcc` and LUFA
If you updated your avr-gcc to above 7 you may see errors involving LUFA. For example:
If you updated your `avr-gcc` and you 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.
For now, you need to rollback `avr-gcc` to 8 in Homebrew.
```
brew uninstall --force avr-gcc

View File

@@ -27,7 +27,7 @@ You may need privilege to access the device on OS like Linux.
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**.
- set `debug_enable=true`. See [Testing and Debugging](newbs_testing_debugging.md#debugging)
- 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).
@@ -112,56 +112,6 @@ In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't s
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.
@@ -194,24 +144,6 @@ If you would like to keep JTAG enabled, just add the following to your `config.h
#define NO_JTAG_DISABLE
```
## 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.

View File

@@ -67,24 +67,8 @@ After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in y
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
See the [Unicode](feature_unicode.md) feature.
## `Fn` Key on macOS
@@ -130,51 +114,6 @@ https://github.com/tekezo/Karabiner/issues/403
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] = LAYOUT( \
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] = LAYOUT( \
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.

View File

@@ -15,7 +15,7 @@ This will allow you to use `FN_CAPS` and `ALT_TAB` in your keymap, keeping it mo
## Caveats
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Modifiers specified as part of a Layer Tap or Mod Tap's keycode will be ignored. If you need to apply modifiers to your tapped keycode, [Tap Dance](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Modifiers specified as part of a Layer Tap or Mod Tap's keycode will be ignored. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two.
@@ -155,7 +155,7 @@ You can control the behavior of one shot keys by defining these in `config.h`:
Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine.
For one shot layers, 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 one shot layers, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`.
For one shot mods, you need to call `set_oneshot_mods(MOD)` to set it, or `clear_oneshot_mods()` to cancel it.
@@ -291,6 +291,25 @@ Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` ena
?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```
You can then add the following function to your keymap:
```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```
## Tapping Force Hold
To enable `tapping force hold`, add the following to your `config.h`:
@@ -315,6 +334,25 @@ With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allo
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define TAPPING_FORCE_HOLD_PER_KEY
```
You can then add the following function to your keymap:
```c
bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(1, KC_BSPC):
return true;
default:
return false;
}
}
```
## Retro Tapping
To enable `retro tapping`, add the following to your `config.h`:

View File

@@ -6,16 +6,14 @@ QMK is able to control the brightness of these LEDs by switching them on and off
The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs.
## Driver configuration
## Feature Configuration
Most keyboards have backlighting enabled by default if they support it, but if it is not working for you, check that your `rules.mk` includes the following:
```makefile
BACKLIGHT_ENABLE = software # Valid driver values are 'yes,software,no'
BACKLIGHT_ENABLE = yes
```
See below for help on individual drivers.
## Keycodes
Once enabled the following keycodes below can be used to change the backlight level.
@@ -51,6 +49,16 @@ Once enabled the following keycodes below can be used to change the backlight le
|`breathing_enable()` |Turns on backlight breathing |
|`breathing_disable()` |Turns off backlight breathing |
## Driver Configuration
To select which driver to use, configure your `rules.mk` with the following:
```makefile
BACKLIGHT_DRIVER = software # Valid driver values are 'pwm,software,no'
```
See below for help on individual drivers.
## Common Driver Configuration
To change the behavior of the backlighting, `#define` these in your `config.h`:
@@ -72,9 +80,9 @@ This functionality is configured at the keyboard level with the `BACKLIGHT_ON_ST
## AVR driver
On AVR boards, the default driver currently sniffs the configuration to pick the best scenario. To enable it, add this to your rules.mk:
On AVR boards, the default driver currently sniffs the configuration to pick the best scenario. The driver is configured by default, however the equivalent setting within rules.mk would be:
```makefile
BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = pwm
```
### Caveats
@@ -150,9 +158,9 @@ The breathing effect is the same as in the hardware PWM implementation.
## ARM Driver
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. To enable it, add this to your rules.mk:
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The driver is configured by default, however the equivalent setting within rules.mk would be:
```makefile
BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = pwm
```
### Caveats
@@ -176,7 +184,7 @@ To change the behavior of the backlighting, `#define` these in your `config.h`:
Emulation of PWM while running other keyboard tasks, it offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your rules.mk:
```makefile
BACKLIGHT_ENABLE = software
BACKLIGHT_DRIVER = software
```
### Software PWM Configuration
@@ -200,3 +208,29 @@ To activate multiple backlight pins, you need to add something like this to your
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
## Custom Driver
To enable, add this to your rules.mk:
```makefile
BACKLIGHT_DRIVER = custom
```
When implementing the custom driver API, the provided keyboard hooks are as follows:
```c
void backlight_init_ports(void) {
// Optional - Run on startup
// - usually you want to configure pins here
}
void backlight_set(uint8_t level) {
// Optional - Run on level change
// - usually you want to respond to the new value
}
void backlight_task(void) {
// Optional - Run periodically
// - long running actions here can cause performance issues
}
```

View File

@@ -56,37 +56,37 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
## Keycodes
|Keycode |Aliases |Description |
|----------------------------------|---------|------------------------------------------|
|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Left Control |
|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Left Control |
|`MAGIC_HOST_NKRO` | |Force N-Key Rollover (NKRO) on |
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|`MAGIC_NO_GUI` | |Disable the GUI keys (useful when gaming) |
|`MAGIC_UNNO_GUI` | |Enable the GUI keys |
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides (for macOS)|
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI |
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap |
|`MAGIC_SWAP_CTL_GUI` |`CG_SWAP`|Swap Ctrl and GUI on both sides (for macOS)|
|`MAGIC_UNSWAP_CTL_GUI` |`CG_NORM`|Unswap Ctrl and GUI |
|`MAGIC_TOGGLE_CTL_GUI` |`CG_TOGG`|Toggle Ctrl and GUI swap |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Left Control and Caps Lock |
|`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
|`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape |
|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and Left GUI |
|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and Left GUI |
|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and Right GUI |
|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and Right GUI |
|`MAGIC_SWAP_LCTL_LGUI` | |Swap Left Control and Left GUI |
|`MAGIC_UNSWAP_LCTL_LGUI` | |Unswap Left Control and Left GUI |
|`MAGIC_SWAP_RCTL_RGUI` | |Swap Right Control and Right GUI |
|`MAGIC_UNSWAP_RCTL_RGUI` | |Unswap Right Control and Right GUI |
|`MAGIC_EE_HANDS_LEFT` | |Set "Left Hand" for EE_HANDS handedness |
|`MAGIC_EE_HANDS_RIGHT` | |Set "Right Hand" for EE_HANDS handedness |
|Key |Aliases |Description |
|----------------------------------|---------|--------------------------------------------------------------------------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` |`CL_SWAP`|Swap Caps Lock and Left Control |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |`CL_NORM`|Unswap Caps Lock and Left Control |
|`MAGIC_CAPSLOCK_TO_CONTROL` |`CL_CTRL`|Treat Caps Lock as Control |
|`MAGIC_UNCAPSLOCK_TO_CONTROL` |`CL_CAPS`|Stop treating Caps Lock as Control |
|`MAGIC_SWAP_LCTL_LGUI` |`LCG_SWP`|Swap Left Control and GUI |
|`MAGIC_UNSWAP_LCTL_LGUI` |`LCG_NRM`|Unswap Left Control and GUI |
|`MAGIC_SWAP_RCTL_RGUI` |`RCG_SWP`|Swap Right Control and GUI |
|`MAGIC_UNSWAP_RCTL_RGUI` |`RCG_NRM`|Unswap Right Control and GUI |
|`MAGIC_SWAP_CTL_GUI` |`CG_SWAP`|Swap Control and GUI on both sides |
|`MAGIC_UNSWAP_CTL_GUI` |`CG_NORM`|Unswap Control and GUI on both sides |
|`MAGIC_TOGGLE_CTL_GUI` |`CG_TOGG`|Toggle Control and GUI swap on both sides |
|`MAGIC_SWAP_LALT_LGUI` |`LAG_SWP`|Swap Left Alt and GUI |
|`MAGIC_UNSWAP_LALT_LGUI` |`LAG_NRM`|Unswap Left Alt and GUI |
|`MAGIC_SWAP_RALT_RGUI` |`RAG_SWP`|Swap Right Alt and GUI |
|`MAGIC_UNSWAP_RALT_RGUI` |`RAG_NRM`|Unswap Right Alt and GUI |
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides |
|`MAGIC_NO_GUI` |`GUI_OFF`|Disable the GUI keys |
|`MAGIC_UNNO_GUI` |`GUI_ON` |Enable the GUI keys |
|`MAGIC_SWAP_GRAVE_ESC` |`GE_SWAP`|Swap <code>&#96;</code> and Escape |
|`MAGIC_UNSWAP_GRAVE_ESC` |`GE_NORM`|Unswap <code>&#96;</code> and Escape |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |`BS_SWAP`|Swap `\` and Backspace |
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|`BS_NORM`|Unswap `\` and Backspace |
|`MAGIC_HOST_NKRO` |`NK_ON` |Enable N-key rollover |
|`MAGIC_UNHOST_NKRO` |`NK_OFF` |Disable N-key rollover |
|`MAGIC_TOGGLE_NKRO` |`NK_TOGG`|Toggle N-key rollover |
|`MAGIC_EE_HANDS_LEFT` |`EH_LEFT`|Set the master half of a split keyboard as the left hand (for `EE_HANDS`) |
|`MAGIC_EE_HANDS_RIGHT` |`EH_RGHT`|Set the master half of a split keyboard as the right hand (for `EE_HANDS`)|
## Configuration

View File

@@ -17,14 +17,14 @@ endif
| DEBOUNCE_TYPE | Description | What else is needed |
| ------------- | --------------------------------------------------- | ----------------------------- |
| Not defined | Use the default algorithm, currently sym_g | Nothing |
| custom | Use your own debounce.c | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions |
| custom | Use your own debounce code | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions |
| anything_else | Use another algorithm from quantum/debounce/* | Nothing |
**Regarding split keyboards**:
The debounce code is compatible with split keyboards.
# Use your own debouncing code
* Set ```DEBOUNCE_TYPE = custom ```.
* Set ```DEBOUNCE_TYPE = custom```.
* Add ```SRC += debounce.c```
* Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples.
* Debouncing occurs after every raw matrix scan.
@@ -33,10 +33,10 @@ The debounce code is compatible with split keyboards.
# Changing between included debouncing methods
You can either use your own code, by including your own debounce.c, or switch to another included one.
Included debounce methods are:
* eager_pr - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE_DELAY``` milliseconds of no further input for that row.
* eager_pr - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
* eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE_DELAY``` milliseconds of no further input for that key
* sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE_DELAY``` milliseconds of no changes has occured, all input changes are pushed.
* eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occured, all input changes are pushed.

View File

@@ -2,7 +2,7 @@
## Haptic feedback rules.mk options
The following options are currently available for haptic feedback in `rule.mk`:
The following options are currently available for haptic feedback in `rules.mk`:
`HAPTIC_ENABLE += DRV2605L`
@@ -41,11 +41,15 @@ First you will need a build a circuit to drive the solenoid through a mosfet as
[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
Select a pin that has PWM for the signal pin
```
#define SOLENOID_PIN *pin*
```
| Settings | Default | Description |
|--------------------------|---------------|-------------------------------------------------------|
|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
?> Dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
Beware that some pins may be powered during bootloader (ie. A13 on the STM32F303 chip) and will result in the solenoid kept in the on state through the whole flashing process. This may overheat and damage the solenoid. If you find that the pin the solenoid is connected to is triggering the solenoid during bootloader/DFU, select another pin.
@@ -151,4 +155,4 @@ This will set what sequence HPT_RST will set as the active mode. If not defined,
### DRV2605L Continuous Haptic Mode
This mode sets continuous haptic feedback with the option to increase or decrease strength.
This mode sets continuous haptic feedback with the option to increase or decrease strength.

View File

@@ -22,10 +22,10 @@ void matrix_scan_user(void) {
SEND_STRING("QMK is awesome.");
}
SEQ_TWO_KEYS(KC_D, KC_D) {
SEND_STRING(SS_LCTRL("a")SS_LCTRL("c"));
SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
}
SEQ_THREE_KEYS(KC_D, KC_D, KC_S) {
SEND_STRING("https://start.duckduckgo.com"SS_TAP(X_ENTER));
SEND_STRING("https://start.duckduckgo.com\n");
}
SEQ_TWO_KEYS(KC_A, KC_S) {
register_code(KC_LGUI);
@@ -115,11 +115,11 @@ void matrix_scan_user(void) {
SEQ_ONE_KEY(KC_E) {
// Anything you can do in a macro.
SEND_STRING(SS_LCTRL(SS_LSFT("t")));
SEND_STRING(SS_LCTL(SS_LSFT("t")));
did_leader_succeed = true;
} else
SEQ_TWO_KEYS(KC_E, KC_D) {
SEND_STRING(SS_LGUI("r")"cmd"SS_TAP(KC_ENTER)SS_LCTRL("c"));
SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
did_leader_succeed = true;
}
leader_end();

View File

@@ -67,14 +67,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case QMKURL:
if (record->event.pressed) {
// when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
SEND_STRING("https://qmk.fm/\n");
} else {
// when keycode QMKURL is released
}
break;
case MY_OTHER_MACRO:
if (record->event.pressed) {
SEND_STRING(SS_LCTRL("ac")); // selects all and copies
SEND_STRING(SS_LCTL("ac")); // selects all and copies
}
break;
}
@@ -109,18 +109,21 @@ Which would send "VE" followed by a `KC_HOME` tap, and "LO" (spelling "LOVE" if
There's also a couple of mod shortcuts you can use:
* `SS_LCTRL(string)`
* `SS_LGUI(string)`
* `SS_LALT(string)`
* `SS_LCTL(string)`
* `SS_LSFT(string)`
* `SS_RALT(string)`
* `SS_LALT(string)`
* `SS_LGUI(string)`, `SS_LCMD(string)` or `SS_LWIN(string)`
* `SS_RCTL(string)`
* `SS_RSFT(string)`
* `SS_RALT(string)` or `SS_ALGR(string)`
* `SS_RGUI(string)`, `SS_RCMD(string)` or `SS_RWIN(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"));
SEND_STRING(SS_LCTL("a"));
Which would send LCTRL+a (LCTRL down, a, LCTRL up) - notice that they take strings (eg `"k"`), and not the `X_K` keycodes.
Which would send Left Control+`a` (Left Control down, `a`, Left Control up) - notice that they take strings (eg `"k"`), and not the `X_K` keycodes.
### Alternative Keymaps

View File

@@ -1,139 +1,142 @@
# OLED Driver
## OLED Supported Hardware
## Supported Hardware
OLED modules using SSD1306 or SH1106 driver ICs, communicating over I2C.
Tested combinations:
| IC driver | Size | Keyboard Platform | Notes |
|-----------|--------|-------------------|--------------------------|
| SSD1306 | 128x32 | AVR | Primary support |
| SSD1306 | 128x64 | AVR | Verified working |
| SSD1306 | 128x32 | ARM | |
| SH1106 | 128x64 | AVR | No rotation or scrolling |
|IC |Size |Platform|Notes |
|---------|------|--------|------------------------|
|SSD1306 |128x32|AVR |Primary support |
|SSD1306 |128x64|AVR |Verified working |
|SSD1306 |128x32|Arm | |
|SH1106 |128x64|AVR |No rotation or scrolling|
Hardware configurations using ARM-based microcontrollers or different sizes of OLED modules may be compatible, but are untested.
Hardware configurations using Arm-based microcontrollers or different sizes of OLED modules may be compatible, but are untested.
!> Warning: This OLED Driver currently uses the new i2c_master driver from split common code. If your split keyboard uses I2C to communicate between sides, this driver could cause an address conflict (serial is fine). Please contact your keyboard vendor and ask them to migrate to the latest split common code to fix this. In addition, the display timeout system to reduce OLED burn-in also uses split common to detect keypresses, so you will need to implement custom timeout logic for non-split common keyboards.
!> Warning: This OLED driver currently uses the new i2c_master driver from Split Common code. If your split keyboard uses I2C to communicate between sides, this driver could cause an address conflict (serial is fine). Please contact your keyboard vendor and ask them to migrate to the latest Split Common code to fix this. In addition, the display timeout system to reduce OLED burn-in also uses Split Common to detect keypresses, so you will need to implement custom timeout logic for non-Split Common keyboards.
## Usage
To enable the OLED feature, there are three steps. First, when compiling your keyboard, you'll need to set `OLED_DRIVER_ENABLE=yes` in `rules.mk`, e.g.:
To enable the OLED feature, there are three steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:
```
```make
OLED_DRIVER_ENABLE = yes
```
This enables the feature and the `OLED_DRIVER_ENABLE` define. Then in your `keymap.c` file, you will need to implement the user task call, e.g:
Then in your `keymap.c` file, implement the OLED task call. This example assumes your keymap has three layers named `_QWERTY`, `_FN` and `_ADJ`:
```C++
```c
#ifdef OLED_DRIVER_ENABLE
void oled_task_user(void) {
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
oled_write_P(PSTR("Default\n"), false);
break;
case _FN:
oled_write_P(PSTR("FN\n"), false);
break;
case _ADJ:
oled_write_P(PSTR("ADJ\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard Layer Status
oled_write_P(PSTR("Layer: "), false);
// Host Keyboard LED Status
uint8_t led_usb_state = host_keyboard_leds();
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
switch (get_highest_layer(layer_state)) {
case _QWERTY:
oled_write_P(PSTR("Default\n"), false);
break;
case _FN:
oled_write_P(PSTR("FN\n"), false);
break;
case _ADJ:
oled_write_P(PSTR("ADJ\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
#endif
```
## Logo Example
In the default font, ranges in the font file are reserved for a QMK Logo. To Render this logo to the oled screen, use the following code example:
In the default font, certain ranges of characters are reserved for a QMK logo. To render this logo to the OLED screen, use the following code example:
```C++
```c
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
static const char PROGMEM qmk_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
};
oled_write_P(qmk_logo, false);
oled_write_P(qmk_logo, false);
}
```
## Other Examples
In split keyboards, it is very common to have two OLED displays that each render different content and oriented flipped differently. You can do this by switching which content to render by using the return from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g:
In split keyboards, it is very common to have two OLED displays that each render different content and are oriented or flipped differently. You can do this by switching which content to render by using the return value from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g:
```C++
```c
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master())
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
return rotation;
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
void oled_task_user(void) {
if (is_keyboard_master()) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_logo(); // Renders a statuc logo
oled_scroll_left(); // Turns on scrolling
}
if (is_keyboard_master()) {
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_logo(); // Renders a static logo
oled_scroll_left(); // Turns on scrolling
}
}
#endif
```
## Basic Configuration
## Basic Configuration
| Define | Default | Description |
|----------------------------|-------------------|----------------------------------------------------------------------------------------------------------------------------|
| `OLED_DISPLAY_ADDRESS` | `0x3C` | The i2c address of the OLED Display |
| `OLED_FONT_H` | `"glcdfont.c"` | The font code file to use for custom fonts |
| `OLED_FONT_START` | `0` | The starting characer index for custom fonts |
| `OLED_FONT_END` | `224` | The ending characer index for custom fonts |
| `OLED_FONT_WIDTH` | `6` | The font width |
| `OLED_FONT_HEIGHT` | `8` | The font height (untested) |
| `OLED_TIMEOUT` | `60000` | Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
| `OLED_SCROLL_TIMEOUT` | `0` | Scrolls the OLED screen after 0ms of OLED inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
| `OLED_SCROLL_TIMEOUT_RIGHT`| *Not defined* | Scroll timeout direction is right when defined, left when undefined. |
| `OLED_IC` | `OLED_IC_SSD1306` | Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. |
| `OLED_COLUMN_OFFSET` | `0` | (SH1106 only.) Shift output to the right this many pixels.<br />Useful for 128x64 displays centered on a 132x64 SH1106 IC. |
|Define |Default |Description |
|---------------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------|
|`OLED_DISPLAY_ADDRESS` |`0x3C` |The i2c address of the OLED Display |
|`OLED_FONT_H` |`"glcdfont.c"` |The font code file to use for custom fonts |
|`OLED_FONT_START` |`0` |The starting characer index for custom fonts |
|`OLED_FONT_END` |`223` |The ending characer index for custom fonts |
|`OLED_FONT_WIDTH` |`6` |The font width |
|`OLED_FONT_HEIGHT` |`8` |The font height (untested) |
|`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
|`OLED_SCROLL_TIMEOUT` |`0` |Scrolls the OLED screen after 0ms of OLED inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
|`OLED_SCROLL_TIMEOUT_RIGHT`|*Not defined* |Scroll timeout direction is right when defined, left when undefined. |
|`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. |
|`OLED_COLUMN_OFFSET` |`0` |(SH1106 only.) Shift output to the right this many pixels.<br />Useful for 128x64 displays centered on a 132x64 SH1106 IC.|
## 128x64 & Custom sized OLED Displays
The default display size for this feature is 128x32 and all necessary defines are precalculated with that in mind. We have added a define, `OLED_DISPLAY_128X64`, to switch all the values to be used in a 128x64 display, as well as added a custom define, `OLED_DISPLAY_CUSTOM`, that allows you to provide the necessary values to the driver.
|Define |Default |Description |
|-----------------------|---------------|-----------------------------------------------------------------|
|`OLED_DISPLAY_128X64` |*Not defined* |Changes the display defines for use with 128x64 displays. |
|`OLED_DISPLAY_CUSTOM` |*Not defined* |Changes the display defines for use with custom displays.<br />Requires user to implement the below defines. |
|`OLED_DISPLAY_WIDTH` |`128` |The width of the OLED display. |
|`OLED_DISPLAY_HEIGHT` |`32` |The height of the OLED display. |
|`OLED_MATRIX_SIZE` |`512` |The local buffer size to allocate.<br />`(OLED_DISPLAY_HEIGHT / 8 * OLED_DISPLAY_WIDTH)`. |
|`OLED_BLOCK_TYPE` |`uint16_t` |The unsigned integer type to use for dirty rendering. |
|`OLED_BLOCK_COUNT` |`16` |The number of blocks the display is divided into for dirty rendering.<br />`(sizeof(OLED_BLOCK_TYPE) * 8)`. |
|`OLED_BLOCK_SIZE` |`32` |The size of each block for dirty rendering<br />`(OLED_MATRIX_SIZE / OLED_BLOCK_COUNT)`. |
|`OLED_COM_PINS` |`COM_PINS_SEQ` |How the SSD1306 chip maps it's memory to display.<br />Options are `COM_PINS_SEQ`, `COM_PINS_ALT`, `COM_PINS_SEQ_LR`, & `COM_PINS_ALT_LR`. |
|`OLED_SOURCE_MAP` |`{ 0, ... N }` |Precalculated source array to use for mapping source buffer to target OLED memory in 90 degree rendering. |
|`OLED_TARGET_MAP` |`{ 24, ... N }`|Precalculated target array to use for mapping source buffer to target OLED memory in 90 degree rendering. |
|Define |Default |Description |
|---------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------|
|`OLED_DISPLAY_128X64`|*Not defined* |Changes the display defines for use with 128x64 displays. |
|`OLED_DISPLAY_CUSTOM`|*Not defined* |Changes the display defines for use with custom displays.<br>Requires user to implement the below defines. |
|`OLED_DISPLAY_WIDTH` |`128` |The width of the OLED display. |
|`OLED_DISPLAY_HEIGHT`|`32` |The height of the OLED display. |
|`OLED_MATRIX_SIZE` |`512` |The local buffer size to allocate.<br>`(OLED_DISPLAY_HEIGHT / 8 * OLED_DISPLAY_WIDTH)`. |
|`OLED_BLOCK_TYPE` |`uint16_t` |The unsigned integer type to use for dirty rendering. |
|`OLED_BLOCK_COUNT` |`16` |The number of blocks the display is divided into for dirty rendering.<br>`(sizeof(OLED_BLOCK_TYPE) * 8)`. |
|`OLED_BLOCK_SIZE` |`32` |The size of each block for dirty rendering<br>`(OLED_MATRIX_SIZE / OLED_BLOCK_COUNT)`. |
|`OLED_COM_PINS` |`COM_PINS_SEQ` |How the SSD1306 chip maps it's memory to display.<br>Options are `COM_PINS_SEQ`, `COM_PINS_ALT`, `COM_PINS_SEQ_LR`, & `COM_PINS_ALT_LR`.|
|`OLED_SOURCE_MAP` |`{ 0, ... N }` |Precalculated source array to use for mapping source buffer to target OLED memory in 90 degree rendering. |
|`OLED_TARGET_MAP` |`{ 24, ... N }`|Precalculated target array to use for mapping source buffer to target OLED memory in 90 degree rendering. |
### 90 Degree Rotation - Technical Mumbo Jumbo
### 90 Degree Rotation - Technical Mumbo Jumbo
!> Rotation is unsupported on the SH1106.
```C
```c
// OLED Rotation enum values are flags
typedef enum {
OLED_ROTATION_0 = 0,
@@ -143,9 +146,9 @@ typedef enum {
} oled_rotation_t;
```
OLED displays driven by SSD1306 drivers only natively support in hard ware 0 degree and 180 degree rendering. This feature is done in software and not free. Using this feature will increase the time to calculate what data to send over i2c to the OLED. If you are strapped for cycles, this can cause keycodes to not register. In testing however, the rendering time on an `atmega32u4` board only went from 2ms to 5ms and keycodes not registering was only noticed once we hit 15ms.
90 Degree Rotated Rendering is achieved by using bitwise operations to rotate each 8 block of memory and uses two precalculated arrays to remap buffer memory to OLED memory. The memory map defines are precalculated for remap performance and are calculated based on the OLED Height, Width, and Block Size. For example, in the 128x32 implementation with a `uint8_t` block type, we have a 64 byte block size. This gives us eight 8 byte blocks that need to be rotated and rendered. The OLED renders horizontally two 8 byte blocks before moving down a page, e.g:
OLED displays driven by SSD1306 drivers only natively support in hardware 0 degree and 180 degree rendering. This feature is done in software and not free. Using this feature will increase the time to calculate what data to send over i2c to the OLED. If you are strapped for cycles, this can cause keycodes to not register. In testing however, the rendering time on an ATmega32U4 board only went from 2ms to 5ms and keycodes not registering was only noticed once we hit 15ms.
90 degree rotation is achieved by using bitwise operations to rotate each 8 block of memory and uses two precalculated arrays to remap buffer memory to OLED memory. The memory map defines are precalculated for remap performance and are calculated based on the display height, width, and block size. For example, in the 128x32 implementation with a `uint8_t` block type, we have a 64 byte block size. This gives us eight 8 byte blocks that need to be rotated and rendered. The OLED renders horizontally two 8 byte blocks before moving down a page, e.g:
| | | | | | |
|---|---|---|---|---|---|
@@ -167,8 +170,8 @@ So those precalculated arrays just index the memory offsets in the order in whic
## OLED API
```C++
// OLED Rotation enum values are flags
```c
// OLED rotation enum values are flags
typedef enum {
OLED_ROTATION_0 = 0,
OLED_ROTATION_90 = 1,
@@ -272,26 +275,26 @@ uint8_t oled_max_lines(void);
!> Scrolling and rotation are unsupported on the SH1106.
## SSD1306.h driver conversion guide
## SSD1306.h Driver Conversion Guide
|Old API |Recommended New API |
|---------------------------|-----------------------------------|
|`struct CharacterMatrix` |*removed - delete all references* |
|`iota_gfx_init` |`oled_init` |
|`iota_gfx_on` |`oled_on` |
|`iota_gfx_off` |`oled_off` |
|`iota_gfx_flush` |`oled_render` |
|`iota_gfx_write_char` |`oled_write_char` |
|`iota_gfx_write` |`oled_write` |
|`iota_gfx_write_P` |`oled_write_P` |
|`iota_gfx_clear_screen` |`oled_clear` |
|`matrix_clear` |*removed - delete all references* |
|`matrix_write_char_inner` |`oled_write_char` |
|`matrix_write_char` |`oled_write_char` |
|`matrix_write` |`oled_write` |
|`matrix_write_ln` |`oled_write_ln` |
|`matrix_write_P` |`oled_write_P` |
|`matrix_write_ln_P` |`oled_write_ln_P` |
|`matrix_render` |`oled_render` |
|`iota_gfx_task` |`oled_task` |
|`iota_gfx_task_user` |`oled_task_user` |
|Old API |Recommended New API |
|-------------------------|---------------------------------|
|`struct CharacterMatrix` |*removed - delete all references*|
|`iota_gfx_init` |`oled_init` |
|`iota_gfx_on` |`oled_on` |
|`iota_gfx_off` |`oled_off` |
|`iota_gfx_flush` |`oled_render` |
|`iota_gfx_write_char` |`oled_write_char` |
|`iota_gfx_write` |`oled_write` |
|`iota_gfx_write_P` |`oled_write_P` |
|`iota_gfx_clear_screen` |`oled_clear` |
|`matrix_clear` |*removed - delete all references*|
|`matrix_write_char_inner`|`oled_write_char` |
|`matrix_write_char` |`oled_write_char` |
|`matrix_write` |`oled_write` |
|`matrix_write_ln` |`oled_write_ln` |
|`matrix_write_P` |`oled_write_P` |
|`matrix_write_ln_P` |`oled_write_ln_P` |
|`matrix_render` |`oled_render` |
|`iota_gfx_task` |`oled_task` |
|`iota_gfx_task_user` |`oled_task_user` |

View File

@@ -173,16 +173,20 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
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)
|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, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system
## RGB Matrix Effects
@@ -195,6 +199,7 @@ enum rgb_matrix_effects {
RGB_MATRIX_SOLID_COLOR = 1, // Static single hue, no speed support
RGB_MATRIX_ALPHAS_MODS, // Static dual hue, speed is hue for secondary hue
RGB_MATRIX_GRADIENT_UP_DOWN, // Static gradient top to bottom, speed controls how much gradient changes
RGB_MATRIX_GRADIENT_LEFT_RIGHT, // Static gradient left to right, speed controls how much gradient changes
RGB_MATRIX_BREATHING, // Single hue brightness cycling animation
RGB_MATRIX_BAND_SAT, // Single hue band fading saturation scrolling left to right
RGB_MATRIX_BAND_VAL, // Single hue band fading brightness scrolling left to right
@@ -282,7 +287,7 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
## Custom RGB Matrix Effects
By setting `RGB_MATRIX_CUSTOM_USER` (and/or `RGB_MATRIX_CUSTOM_KB`) in `rule.mk`, new effects can be defined directly from userspace, without having to edit any QMK core files.
By setting `RGB_MATRIX_CUSTOM_USER` (and/or `RGB_MATRIX_CUSTOM_KB`) in `rules.mk`, new effects can be defined directly from userspace, without having to edit any QMK core files.
To declare new effects, create a new `rgb_matrix_user/kb.inc` that looks something like this:
@@ -375,6 +380,10 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#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
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
#define RGB_MATRIX_STARTUP_HUE 0 // Sets the default hue value, if none has been set
#define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set
```
## EEPROM storage

View File

@@ -48,12 +48,12 @@ Changing the **Value** sets the overall brightness.<br>
|`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_HUI` | |Increase hue, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`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 |
@@ -363,8 +363,8 @@ Using the `rgblight_set_clipping_range()` function, you can prepare more buffers
You can set the Clipping Range by executing the following code.
```c
// some soruce
rgblight_set_clipping_range(3, 4);
// some source
rgblight_set_clipping_range(3, 4);
```
<img src="https://user-images.githubusercontent.com/2170248/55743785-2bd82a00-5a6e-11e9-9d4b-1b4ffaf4932b.JPG" alt="clip direct" width="70%"/>

View File

@@ -198,10 +198,15 @@ This option changes the startup behavior to detect an active USB connection when
?> This setting will stop the ability to demo using battery packs.
```c
#define SPLIT_USB_TIMEOUT 2500
#define SPLIT_USB_TIMEOUT 2000
```
This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`.
```c
#define SPLIT_USB_TIMEOUT_POLL 10
```
This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
## Additional Resources
Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information.

View File

@@ -333,6 +333,8 @@ And then simply use `TD(X_CTL)` anywhere in your keymap.
If you want to implement this in your userspace, then you may want to check out how [DanielGGordon](https://github.com/qmk/qmk_firmware/tree/master/users/gordon) has implemented this in their userspace.
> In this configuration "hold" takes place **after** tap dance timeout (see `ACTION_TAP_DANCE_FN_ADVANCED_TIME`). To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`).
### Example 5: Using tap dance for advanced mod-tap and layer-tap keys
Tap dance can be used to emulate `MT()` and `LT()` behavior when the tapped code is not a basic keycode. This is useful to send tapped keycodes that normally require `Shift`, such as parentheses or curly braces—or other modified keycodes, such as `Control + X`.

View File

@@ -208,15 +208,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
clear_mods(); clear_oneshot_mods();
SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
#ifndef FLASH_BOOTLOADER
if ( (temp_mod | temp_osm) & MOD_MASK_SHIFT )
if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
#endif
{ //
{
SEND_STRING(":flash");
}
if ( (temp_mod | temp_osm) & MOD_MASK_CTRL) {
SEND_STRING(" -j8 --output-sync");
if ((temp_mod | temp_osm) & MOD_MASK_CTRL) {
SEND_STRING(" -j8 --output-sync");
}
SEND_STRING(SS_TAP(X_ENTER));
tap_code(KC_ENT);
set_mods(temp_mod);
}
break;

View File

@@ -13,7 +13,7 @@ General flashing sequence:
## bootloadHID Flashing Target
Using the QMK installation script, detailed [here](newbs_getting_started.md), the required bootloadHID tools should be automatically installed.
?> Using the QMK installation script, detailed [here](newbs_getting_started.md), the required bootloadHID tools should be automatically installed.
To flash via the command line, use the target `:bootloadHID` by executing the following command:

View File

@@ -19,7 +19,7 @@ Sinon, vous pouvez aussi le télécharger directement en ([zip](https://github.c
## Comment le compiler
Avant d'être prêt à compiler vous allez devoir [installer un environnement](getting_started_build_tools.md) pour les développements AVR et/ou ARM. Une fois ceci fait, vous pourrez utiliser la commande `make` pour compiler le clavier et la disposition avec une commande de ce type :
Avant d'être prêt à compiler vous allez devoir [installer un environnement](fr-fr/getting_started_build_tools.md) pour les développements AVR et/ou ARM. Une fois ceci fait, vous pourrez utiliser la commande `make` pour compiler le clavier et la disposition avec une commande de ce type :
make planck/rev4:default
@@ -29,4 +29,4 @@ Cette commande compilera la révision `rev4` du clavier `planck` avec la disposi
## Comment le personnaliser
QMK a beaucoup de [fonctionnalités](features.md) à explorer, et [une documentation](http://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](keymap.md) (keymaps) et de changer [les codes de caractères](keycodes.md) (keycodes).
QMK a beaucoup de [fonctionnalités](fr-fr/features.md) à explorer, et [une documentation](http://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caractères](fr-fr/keycodes.md) (keycodes).

View File

@@ -29,97 +29,97 @@
**En Anglais**
* Guides détaillés
* [Installation des outils de compilation](getting_started_build_tools.md)
* [Guide Vagrant](getting_started_vagrant.md)
* [Commandes de compilations](getting_started_make_guide.md)
* [Installation des outils de compilation](fr-fr/getting_started_build_tools.md)
* [Guide Vagrant](fr-fr/getting_started_vagrant.md)
* [Commandes de compilations](fr-fr/getting_started_make_guide.md)
* [Flasher les firmwares](fr-fr/flashing.md)
* [Personnaliser les fonctionnalités](custom_quantum_functions.md)
* [Aperçu des fonctionnalités des dispositions](keymap.md)
* [Personnaliser les fonctionnalités](fr-fr/custom_quantum_functions.md)
* [Aperçu des fonctionnalités des dispositions](fr-fr/keymap.md)
* [Hardware](hardware.md)
* [Processeurs AVR](hardware_avr.md)
* [Pilotes / Drivers](hardware_drivers.md)
* [Hardware](fr-fr/hardware.md)
* [Processeurs AVR](fr-fr/hardware_avr.md)
* [Pilotes / Drivers](fr-fr/hardware_drivers.md)
* Réferences
* [Lignes de conduite des claviers](hardware_keyboard_guidelines.md)
* [Options de configurations](config_options.md)
* [Keycodes / Codes des caractères](keycodes.md)
* [Conventions de codage - C](coding_conventions_c.md)
* [Conventions de codage - Python](coding_conventions_python.md)
* [Meilleurs pratiques sur la documentation](documentation_best_practices.md)
* [Modèles de documentation](documentation_templates.md)
* [Glossaire](reference_glossary.md)
* [Tests unitaires](unit_testing.md)
* [Fonctions utiles](ref_functions.md)
* [Support de configuration](reference_configurator_support.md)
* [Format du fichier info.json](reference_info_json.md)
* [Développer la CLI en Python](cli_development.md)
* [Lignes de conduite des claviers](fr-fr/hardware_keyboard_guidelines.md)
* [Options de configurations](fr-fr/config_options.md)
* [Keycodes / Codes des caractères](fr-fr/keycodes.md)
* [Conventions de codage - C](fr-fr/coding_conventions_c.md)
* [Conventions de codage - Python](fr-fr/coding_conventions_python.md)
* [Meilleurs pratiques sur la documentation](fr-fr/documentation_best_practices.md)
* [Modèles de documentation](fr-fr/documentation_templates.md)
* [Glossaire](fr-fr/reference_glossary.md)
* [Tests unitaires](fr-fr/unit_testing.md)
* [Fonctions utiles](fr-fr/ref_functions.md)
* [Support de configuration](fr-fr/reference_configurator_support.md)
* [Format du fichier info.json](fr-fr/reference_info_json.md)
* [Développer la CLI en Python](fr-fr/cli_development.md)
* [Fonctionnalités](features.md)
* [Keycodes basiques](keycodes_basic.md)
* [Touches utilisées avec Shift (US ANSI)](keycodes_us_ansi_shifted.md)
* [Keycodes quantiques](quantum_keycodes.md)
* [Keycodes avancés](feature_advanced_keycodes.md)
* [Fonctionnalités audio](feature_audio.md)
* [Majuscule automatique](feature_auto_shift.md)
* [Rétroéclairage](feature_backlight.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Combos](feature_combo.md)
* [Commande](feature_command.md)
* [API anti-rebond](feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md)
* [Macros dynamiques](feature_dynamic_macros.md)
* [Interrupteurs rotatifs](feature_encoders.md)
* [Grave Escape](feature_grave_esc.md)
* [Retour haptique](feature_haptic_feedback.md)
* [Contrôleur LCD HD44780](feature_hd44780.md)
* [Touche à verrou / Lock-key](feature_key_lock.md)
* [Dispositions / layouts](feature_layouts.md)
* [Touche leader](feature_leader_key.md)
* [Matrice LED](feature_led_matrix.md)
* [Macros](feature_macros.md)
* [Boutons de souris](feature_mouse_keys.md)
* [Pilotes / Drivers OLED](feature_oled_driver.md)
* [Touche one-shot](feature_advanced_keycodes.md#one-shot-keys)
* [Périphériques de pointage](feature_pointing_device.md)
* [Souris PS/2](feature_ps2_mouse.md)
* [Éclairage RGB](feature_rgblight.md)
* [Matrice RGB](feature_rgb_matrix.md)
* [Space Cadet](feature_space_cadet.md)
* [Claviers scindés / splittés](feature_split_keyboard.md)
* [Stenographie](feature_stenography.md)
* [Inversion des mains](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminale](feature_terminal.md)
* [Imprimante thermique](feature_thermal_printer.md)
* [Caractères unicodes](feature_unicode.md)
* [Dossier utilisateur](feature_userspace.md)
* [Velocikey](feature_velocikey.md)
* [Fonctionnalités](fr-fr/features.md)
* [Keycodes basiques](fr-fr/keycodes_basic.md)
* [Touches utilisées avec Shift (US ANSI)](fr-fr/keycodes_us_ansi_shifted.md)
* [Keycodes quantiques](fr-fr/quantum_keycodes.md)
* [Keycodes avancés](fr-fr/feature_advanced_keycodes.md)
* [Fonctionnalités audio](fr-fr/feature_audio.md)
* [Majuscule automatique](fr-fr/feature_auto_shift.md)
* [Rétroéclairage](fr-fr/feature_backlight.md)
* [Bluetooth](fr-fr/feature_bluetooth.md)
* [Bootmagic](fr-fr/feature_bootmagic.md)
* [Combos](fr-fr/feature_combo.md)
* [Commande](fr-fr/feature_command.md)
* [API anti-rebond](fr-fr/feature_debounce_type.md)
* [DIP Switch](fr-fr/feature_dip_switch.md)
* [Macros dynamiques](fr-fr/feature_dynamic_macros.md)
* [Interrupteurs rotatifs](fr-fr/feature_encoders.md)
* [Grave Escape](fr-fr/feature_grave_esc.md)
* [Retour haptique](fr-fr/feature_haptic_feedback.md)
* [Contrôleur LCD HD44780](fr-fr/feature_hd44780.md)
* [Touche à verrou / Lock-key](fr-fr/feature_key_lock.md)
* [Dispositions / layouts](fr-fr/feature_layouts.md)
* [Touche leader](fr-fr/feature_leader_key.md)
* [Matrice LED](fr-fr/feature_led_matrix.md)
* [Macros](fr-fr/feature_macros.md)
* [Boutons de souris](fr-fr/feature_mouse_keys.md)
* [Pilotes / Drivers OLED](fr-fr/feature_oled_driver.md)
* [Touche one-shot](fr-fr/feature_advanced_keycodes.md#one-shot-keys)
* [Périphériques de pointage](fr-fr/feature_pointing_device.md)
* [Souris PS/2](fr-fr/feature_ps2_mouse.md)
* [Éclairage RGB](fr-fr/feature_rgblight.md)
* [Matrice RGB](fr-fr/feature_rgb_matrix.md)
* [Space Cadet](fr-fr/feature_space_cadet.md)
* [Claviers scindés / splittés](fr-fr/feature_split_keyboard.md)
* [Stenographie](fr-fr/feature_stenography.md)
* [Inversion des mains](fr-fr/feature_swap_hands.md)
* [Tap Dance](fr-fr/feature_tap_dance.md)
* [Terminale](fr-fr/feature_terminal.md)
* [Imprimante thermique](fr-fr/feature_thermal_printer.md)
* [Caractères unicodes](fr-fr/feature_unicode.md)
* [Dossier utilisateur](fr-fr/feature_userspace.md)
* [Velocikey](fr-fr/feature_velocikey.md)
* Pour les makers et les bricoleurs
* [Guide des claviers soudés à la main](hand_wire.md)
* [Guide de flash de lISP](isp_flashing_guide.md)
* [Guide du débogage ARM](arm_debugging.md)
* [Drivers i2c](i2c_driver.md)
* [Contrôles des GPIO](internals_gpio_control.md)
* [Conversion en Proton C](proton_c_conversion.md)
* [Guide des claviers soudés à la main](fr-fr/hand_wire.md)
* [Guide de flash de lISP](fr-fr/isp_flashing_guide.md)
* [Guide du débogage ARM](fr-fr/arm_debugging.md)
* [Drivers i2c](fr-fr/i2c_driver.md)
* [Contrôles des GPIO](fr-fr/internals_gpio_control.md)
* [Conversion en Proton C](fr-fr/proton_c_conversion.md)
* Pour aller plus loin
* [Comment fonctionnent les claviers](how_keyboards_work.md)
* [Comprendre QMK](understanding_qmk.md)
* [Comment fonctionnent les claviers](fr-fr/how_keyboards_work.md)
* [Comprendre QMK](fr-fr/understanding_qmk.md)
* Autres sujets
* [Utiliser Eclipse avec QMK](other_eclipse.md)
* [Utiliser VSCode avec QMK](other_vscode.md)
* [Support](support.md)
* [Comment ajouter des traductions](translating.md)
* [Utiliser Eclipse avec QMK](fr-fr/other_eclipse.md)
* [Utiliser VSCode avec QMK](fr-fr/other_vscode.md)
* [Support](fr-fr/support.md)
* [Comment ajouter des traductions](fr-fr/translating.md)
* À lintérieur de QMK (En cours de documentation)
* [Définitions](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Appareils Midi](internals_midi_device.md)
* [Installation dun appareil Midi](internals_midi_device_setup_process.md)
* [Utilitaires Midi](internals_midi_util.md)
* [Fonctions Midi](internals_send_functions.md)
* [Outils Sysex](internals_sysex_tools.md)
* [Définitions](fr-fr/internals_defines.md)
* [Input Callback Reg](fr-fr/internals_input_callback_reg.md)
* [Appareils Midi](fr-fr/internals_midi_device.md)
* [Installation dun appareil Midi](fr-fr/internals_midi_device_setup_process.md)
* [Utilitaires Midi](fr-fr/internals_midi_util.md)
* [Fonctions Midi](fr-fr/internals_send_functions.md)
* [Outils Sysex](fr-fr/internals_sysex_tools.md)

View File

@@ -86,10 +86,6 @@ Relancer le script d'installation de QMK (`./util/qmk_install.sh` situé dans r
Si vous rencontrez toujours des problèmes, essayez de télécharger et lancer Zadig. Voir [Installation du driver du bootloader avec Zadig](driver_installation_zadig.md) pour plus d'informations.
## WINAVR est obsolète
Il n'est plus recommandé et peut causer des problèmes. Voir [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
## USB VID et PID
Vous pouvez utiliser l'ID de votre choix en modifier `config.h`. Il y a peu de chance de conflit avec d'autres produits.
@@ -103,30 +99,6 @@ Vous pouvez acheter un VID:PID unique ici. Je ne pense pas que ce soit nécessai
- 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`
Ce problème existait avec le GCC 4.8 d'Ubuntu 14.04, la solution a nécessité de mettre à jour vers 4.9 avec ce 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
Votre chaîne d'outils (Toolchain) est trop vieille pour supporter le MCU. Par exemple, WinAVR 20100110 ne supporte pas 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 pour AVR
Notez que la taille du bootloader pour les Teensy2.0++ est de 2048bytes. Quelques Makefiles peuvent contenir une erreur et avoir le mauvais commentaire.

View File

@@ -104,58 +104,6 @@ En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## Bootloader Jump ne fonctionne pas
Configurez correctement la taille du bootloader dans le **Makefile**. Une mauvaise taille de section du bootloader empêchera probablement le démarrage avec **Magic command** et **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
```
La taille de la section de démarrage de AVR est définie par l'option **BOOTSZ** fuse. Vérifiez la fiche technique du MCU. Veuilez noter que les tailles et adresses sont définies en **Word** (2 octets) dans la fiche technique alors que TMK utilise des **Byte**.
La section de boot AVR se trouve à la fin de la mémoire flash, comme suit.
```
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 +---------------+
```
Référez-vous à cette discussion pour plus de référence.
https://github.com/tmk/tmk_keyboard/issues/179
Si vous utilisez un TeensyUSB, il y a un [bug connu](https://github.com/qmk/qmk_firmware/issues/164) qui fait que le bouton reset matériel empêche la touche RESET de fonctionner. Débrancher et rebrancher le clavier devrait résoudre le problème.
## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son)
Vous devez définir `EXTRAKEY_ENABLE` dans le fichier `rules.mk` pour les utiliser dans QMK.
@@ -189,25 +137,6 @@ Si vous voulez garder JTAG activé, ajoutez la ligne suivante à votre fichier `
#define NO_JTAG_DISABLE
```
## Adding LED Indicators of Lock Keys
Si vous souhaitez votre propre indicateur LED pour CapsLock, ScrollLock et NumLock alors lisez ce post.
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
## Programmer Arduino Micro/Leonardo
Appuyez sur le bouton reset puis lancez la commande suivante dans les 8 secondes.
```
avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0
```
Le nom du périphérique peut varier en fonction de votre système.
http://arduino.cc/en/Main/ArduinoBoardMicro
https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
## Compatibilité USB 3
Il semble que certaines personnes ont eu des problèmes avec les ports USB 3, essayez un port USB 2.

View File

@@ -72,24 +72,7 @@ Des vieux claviers mécaniques ont parfois des touches à verrouillage, mais les
## Ajouter des caractères spéciaux autres que ASCII comme la cédille 'Ç'
IL N'EXISTE AUCUNE METHODE UNIVERSELLE POUR LES AJOUTER QUI FONCTIONNE SUR TOUS LES SYSTEMES. Vous devez définir une **MACRO** d'une manière spécifique à votre OS ou layout.
Voir ce post pour un exemple de code **MACRO**.
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
Sous **Windows** vous pouvez utiliser la touche `AltGr` ou **Alt code**.
* http://en.wikipedia.org/wiki/AltGr_key
* http://en.wikipedia.org/wiki/Alt_code
Sous **Mac OS** définissez une combinaison de touche `Option`.
* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
Sous **Xorg** vous pouvez utiliser une touche `compose` à la place.
* http://en.wikipedia.org/wiki/Compose_key
Et voir ceci pour une entrée **Unicode**.
* http://en.wikipedia.org/wiki/Unicode_input
Voir la fonctionnalité [Unicode](feature_unicode.md).
## Touche `Fn` sur macOS
@@ -144,54 +127,6 @@ Cette fonctionnalité permet d'utiliser une touche à la fois comme touche Écha
Voir la fonctionnalité [Grave Escape](feature_grave_esc.md).
## Avoir les touches modificatrices qui ont double usage en flèches directionnelles.
Ceci transforme les touches "modificateur droit" en touches fléchées lorsque les touches sont seulement "tapées" tout en restant des modificateurs lorsqu'elles sont maintenues.
Dans TMK la fonction double rôle s'appelle **TAP**.
```C
#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] = LAYOUT( \
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] = LAYOUT( \
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),
};
```
Touches double rôle : https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys
## Eject sur Mac OSX
Le keycode`KC_EJCT` fonctionne sous OSX. https://github.com/tmk/tmk_keyboard/issues/250

View File

@@ -16,17 +16,23 @@ Faites attention à sélectionner "HTTPS", et sélectionnez le lien et copiez-le
![HTTPS link](http://i.imgur.com/eGO0ohO.jpg)
Ensuite, entrez `git clone` dans la ligne de commande, et collez votre lien:
Ensuite, entrez `git clone --recurse-submodules ` dans la ligne de commande, et collez votre lien:
```
user@computer:~$ git clone https://github.com/whoeveryouare/qmk_firmware.git
user@computer:~$ git clone --recurse-submodules 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.
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 183883 (delta 5), reused 4 (delta 4), pack-reused 183874
Receiving objects: 100% (183883/183883), 132.90 MiB | 9.57 MiB/s, done.
Resolving deltas: 100% (119972/119972), done.
...
Submodule path 'lib/chibios': checked out '587968d6cbc2b0e1c7147540872f2a67e59ca18b'
Submodule path 'lib/chibios-contrib': checked out 'ede48346eee4b8d6847c19bc01420bee76a5e486'
Submodule path 'lib/googletest': checked out 'ec44c6c1675c25b9827aacd08c02433cccde7780'
Submodule path 'lib/lufa': checked out 'ce10f7642b0459e409839b23cc91498945119b4d'
Submodule path 'lib/ugfx': checked out '3e97b74e03c93631cdd3ddb2ce43b963fdce19b2'
```
Vous avez maintenant votre fork QMK sur votre machine locale, vous pouvez ajouter votre keymap, la compiler et la flasher sur votre board. Une fois heureux avec vos changements, vous pouvez les ajouter, commit, et pousser vers votre fork comme suit:

View File

@@ -4,7 +4,7 @@ Le but de cette page est d'expliquer les informations de base qui vous serons n
## Structure de base de QMK
QMK est un fork du projet [tmk_keyboard](https://github.com/tmk/tmk_keyboard) créé par [Jun Wako](https://github.com/tmk). Le code originel de TMK, avec quelques modifications, se trouve dans le dossier `tmk`. Les additions que QMK amène au projet se trouvent dans le dossier `quantum`. Les projets de clavier se trouvent dans les dossiers `handwired` et `keyboard`.
QMK est un fork du projet [tmk_keyboard](https://github.com/tmk/tmk_keyboard) créé par [Jun Wako](https://github.com/tmk). Le code originel de TMK, avec quelques modifications, se trouve dans le dossier `tmk_core`. Les additions que QMK amène au projet se trouvent dans le dossier `quantum`. Les projets de clavier se trouvent dans les dossiers `handwired` et `keyboard`.
### Structure du Userspace

View File

@@ -43,7 +43,7 @@ Debian / Ubuntu example:
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
Arch / Manjaro example:
pacman -S base-devel gcc unzip wget zip avr-gcc avr-binutils avr-libc dfu-util arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib git dfu-programmer dfu-util
@@ -57,16 +57,17 @@ By default, this will download compilers for both AVR and ARM. If you don't need
nix-shell --arg arm false
## macOS
If you're using [homebrew,](http://brew.sh/) you can use the following commands:
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 tap osx-cross/arm
brew update
brew install avr-gcc@8
brew link --force avr-gcc@8
brew install dfu-programmer
brew install dfu-util
brew install gcc-arm-none-eabi
brew install arm-gcc-bin@8
brew link --force arm-gcc-bin@8
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-gcc@8` can take over 20 minutes and exhibit high CPU usage.
@@ -112,21 +113,6 @@ The Toolchain setup is done through the Windows Subsystem for Linux, and the pro
* 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 turnkey solution you need. After installing [Docker CE](https://docs.docker.com/install/#supported-platforms), run the following command from the `qmk_firmware` directory to build a keyboard/keymap:
@@ -134,12 +120,12 @@ If this is a bit complex for you, Docker might be the turnkey solution you need.
util/docker_build.sh keyboard:keymap
# For example: util/docker_build.sh ergodox_ez:steno
```
This will compile the desired keyboard/keymap and leave the resulting `.hex` or `.bin` file in the QMK directory for you to flash. If `:keymap` is omitted, the `default` keymap is used. Note that the parameter format is the same as when building with `make`.
This will compile the desired keyboard/keymap and leave the resulting `.hex` or `.bin` file in the QMK directory for you to flash. If `:keymap` is omitted, all keymaps are used. Note that the parameter format is the same as when building with `make`.
You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use:
```bash
util/docker_build.sh
# Reads parameters as input (leave blank for defaults)
# Reads parameters as input (leave blank for all keyboards/keymaps)
```
There is also support for building _and_ flashing the keyboard straight from Docker by specifying the `target` as well:

View File

@@ -16,17 +16,23 @@ 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:
From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link:
```
user@computer:~$ git clone https://github.com/whoeveryouare/qmk_firmware.git
user@computer:~$ git clone --recurse-submodules 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.
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 183883 (delta 5), reused 4 (delta 4), pack-reused 183874
Receiving objects: 100% (183883/183883), 132.90 MiB | 9.57 MiB/s, done.
Resolving deltas: 100% (119972/119972), done.
...
Submodule path 'lib/chibios': checked out '587968d6cbc2b0e1c7147540872f2a67e59ca18b'
Submodule path 'lib/chibios-contrib': checked out 'ede48346eee4b8d6847c19bc01420bee76a5e486'
Submodule path 'lib/googletest': checked out 'ec44c6c1675c25b9827aacd08c02433cccde7780'
Submodule path 'lib/lufa': checked out 'ce10f7642b0459e409839b23cc91498945119b4d'
Submodule path 'lib/ugfx': checked out '3e97b74e03c93631cdd3ddb2ce43b963fdce19b2'
```
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:

View File

@@ -4,7 +4,7 @@ This page attempts to explain the basic information you need to know to work wit
## 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.
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_core` 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.
### Userspace Structure

View File

@@ -59,7 +59,7 @@ To disable debug messages (*dprint*) and reduce the .hex file size, include `#de
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 disable print messages (*print*, *xprintf*) and **KEEP** user print messages (*uprint*), include `#define USER_PRINT` in your `config.h` file (do not also include `#define NO_PRINT` in this case).
To see the text, open `hid_listen` and enjoy looking at your printed messages.
@@ -135,7 +135,7 @@ As there is no standard split communication driver for ARM-based split keyboards
`CUSTOM_MATRIX`
Lets you replace the default matrix scanning routine with your own code. You will need to provide your own implementations of matrix_init() and matrix_scan().
Lets you replace the default matrix scanning routine with your own code. For further details, see the [Custom Matrix page](custom_matrix.md).
`DEBOUNCE_TYPE`

View File

@@ -33,3 +33,7 @@ Support for up to 2 drivers. Each driver impliments 2 charlieplex matrices to in
## IS31FL3733
Support for up to a single driver with room for expansion. Each driver can control 192 individual LEDs or 64 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](feature_rgb_matrix.md) page.
## 24xx series external I2C EEPROM
Support for an external I2C-based EEPROM instead of using the on-chip EEPROM. For more information on how to setup the driver see the [EEPROM Driver](eeprom_driver.md) page.

View File

@@ -20,7 +20,7 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour
## איך לקמפל
לפני שתצליחו לקמפל, תדרשו [להתקין סביבה](getting_started_build_tools.md) עבור פיתוח AVR ו/או ARM. ברגע שהדבר בוצע, תוכלו להריץ פקודת `make` כדי לבנות מקלדת ומיפוי עם התחביר הבא:
לפני שתצליחו לקמפל, תדרשו [להתקין סביבה](he-il/getting_started_build_tools.md) עבור פיתוח AVR ו/או ARM. ברגע שהדבר בוצע, תוכלו להריץ פקודת `make` כדי לבנות מקלדת ומיפוי עם התחביר הבא:
make planck/rev4:default
@@ -30,5 +30,5 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour
## איך להתאים
לQMK יש המון [יכולות](features.md) שאפשר לנווט בהן, וכמות נכבדת של [תיעוד ודוקומנטציה](http://docs.qmk.fm) בה אפשר לנבור. רוב הפיצ׳רים באים לידי ביטוי על ידי שינוי [מיפוי המקלדת](keymap.md) ושינוי [קודי המקשים](keycodes.md).
לQMK יש המון [יכולות](he-il/features.md) שאפשר לנווט בהן, וכמות נכבדת של [תיעוד ודוקומנטציה](http://docs.qmk.fm) בה אפשר לנבור. רוב הפיצ׳רים באים לידי ביטוי על ידי שינוי [מיפוי המקלדת](he-il/keymap.md) ושינוי [קודי המקשים](he-il/keycodes.md).
</div>

View File

@@ -1,6 +1,7 @@
<div dir="rtl" markdown="1">
**בשפה העברית**
* [המדריך המלא למתחילים](newbs.md)
* [המדריך המלא למתחילים](he-il/newbs.md)
* [מקורות ללמידה](he-il/newbs_learn_more_resources.md)
* [בסיס QMK](he-il/README.md)
* [מבוא לQMK](he-il/getting_started_introduction.md)
@@ -13,126 +14,126 @@
* [איך לתעד נכון](he-il/documentation_best_practices.md)
**בשפה האנגלית**
* [המדריך המלא למתחילים](newbs.md)
* [התחלה](newbs_getting_started.md)
* [בנייה של הקושחה הראשונה שלך](newbs_building_firmware.md)
* [צריבה של הקושחה](newbs_flashing.md)
* [בדיקות ודיבאגינג](newbs_testing_debugging.md)
* [עבודה נכונה ב GIT](newbs_best_practices.md)
* [מקורות ללמידה](newbs_learn_more_resources.md)
* [המדריך המלא למתחילים](he-il/newbs.md)
* [התחלה](he-il/newbs_getting_started.md)
* [בנייה של הקושחה הראשונה שלך](he-il/newbs_building_firmware.md)
* [צריבה של הקושחה](he-il/newbs_flashing.md)
* [בדיקות ודיבאגינג](he-il/newbs_testing_debugging.md)
* [עבודה נכונה ב GIT](he-il/newbs_best_practices.md)
* [מקורות ללמידה](he-il/newbs_learn_more_resources.md)
* [בסיס QMK](README.md)
* [מבוא לQMK](getting_started_introduction.md)
* [QMK CLI](cli.md)
* [QMK CLI Config](cli_configuration.md)
* [תרומה ל QMK](contributing.md)
* [איך להשתמש בGithub](getting_started_github.md)
* [קבלת עזרה](getting_started_getting_help.md)
* [בסיס QMK](he-il/README.md)
* [מבוא לQMK](he-il/getting_started_introduction.md)
* [QMK CLI](he-il/cli.md)
* [QMK CLI Config](he-il/cli_configuration.md)
* [תרומה ל QMK](he-il/contributing.md)
* [איך להשתמש בGithub](he-il/getting_started_github.md)
* [קבלת עזרה](he-il/getting_started_getting_help.md)
* [שינויים משמעותיים](breaking_changes.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* [שינויים משמעותיים](he-il/breaking_changes.md)
* [2019 Aug 30](he-il/ChangeLog/20190830.md)
* [שאלות נפוצות](faq.md)
* [שאלות נפוצות כלליות](faq_general.md)
* [בנייה/קומפילציה של QMK](faq_build.md)
* [דיבאגינג ופתרון תקלות של QMK](faq_debug.md)
* [מיפוי מקשים](faq_keymap.md)
* [התקנת דרייברים עם Zadig](driver_installation_zadig.md)
* [שאלות נפוצות](he-il/faq.md)
* [שאלות נפוצות כלליות](he-il/faq_general.md)
* [בנייה/קומפילציה של QMK](he-il/faq_build.md)
* [דיבאגינג ופתרון תקלות של QMK](he-il/faq_debug.md)
* [מיפוי מקשים](he-il/faq_keymap.md)
* [התקנת דרייברים עם Zadig](he-il/driver_installation_zadig.md)
* מדריכים מפורטים
* [התקנת כלי Build](getting_started_build_tools.md)
* [מדריך Vagrant](getting_started_vagrant.md)
* [הוראות בנייה/קומפילציה](getting_started_make_guide.md)
* [צריבת קושחה](flashing.md)
* [התאמה אישית של הפונקציונאליות](custom_quantum_functions.md)
* [מיפוי מקשים](keymap.md)
* [התקנת כלי Build](he-il/getting_started_build_tools.md)
* [מדריך Vagrant](he-il/getting_started_vagrant.md)
* [הוראות בנייה/קומפילציה](he-il/getting_started_make_guide.md)
* [צריבת קושחה](he-il/flashing.md)
* [התאמה אישית של הפונקציונאליות](he-il/custom_quantum_functions.md)
* [מיפוי מקשים](he-il/keymap.md)
* [חומרה](hardware.md)
* [מעבדי AVR](hardware_avr.md)
* [דרייברים](hardware_drivers.md)
* [חומרה](he-il/hardware.md)
* [מעבדי AVR](he-il/hardware_avr.md)
* [דרייברים](he-il/hardware_drivers.md)
* התייחסויות
* [מדריך למקלדות](hardware_keyboard_guidelines.md)
* [אפשרויות הגדרות](config_options.md)
* [קודי מקשים](keycodes.md)
* [קונבנציות קוד - C](coding_conventions_c.md)
* [קונבנציות קוד - Python](coding_conventions_python.md)
* [איך לתעד נכון](documentation_best_practices.md)
* [טמפלטים לדוקומנטציה](documentation_templates.md)
* [מילון](reference_glossary.md)
* [בדיקות יחידה](unit_testing.md)
* [פונקציות שימושיות](ref_functions.md)
* [תמיכה בConfigurator](reference_configurator_support.md)
* [פורמט info.json](reference_info_json.md)
* [פיתוח בPython CLI](cli_development.md)
* [מדריך למקלדות](he-il/hardware_keyboard_guidelines.md)
* [אפשרויות הגדרות](he-il/config_options.md)
* [קודי מקשים](he-il/keycodes.md)
* [קונבנציות קוד - C](he-il/coding_conventions_c.md)
* [קונבנציות קוד - Python](he-il/coding_conventions_python.md)
* [איך לתעד נכון](he-il/documentation_best_practices.md)
* [טמפלטים לדוקומנטציה](he-il/documentation_templates.md)
* [מילון](he-il/reference_glossary.md)
* [בדיקות יחידה](he-il/unit_testing.md)
* [פונקציות שימושיות](he-il/ref_functions.md)
* [תמיכה בConfigurator](he-il/reference_configurator_support.md)
* [פורמט info.json](he-il/reference_info_json.md)
* [פיתוח בPython CLI](he-il/cli_development.md)
* [תכונות](features.md)
* [Basic Keycodes](keycodes_basic.md)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](quantum_keycodes.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Combos](feature_combo.md)
* [Command](feature_command.md)
* [Debounce API](feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Encoders](feature_encoders.md)
* [Grave Escape](feature_grave_esc.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [HD44780 LCD Controller](feature_hd44780.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
* [LED Matrix](feature_led_matrix.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [OLED Driver](feature_oled_driver.md)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [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](feature_space_cadet.md)
* [Split Keyboard](feature_split_keyboard.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)
* [Velocikey](feature_velocikey.md)
* [תכונות](he-il/features.md)
* [Basic Keycodes](he-il/keycodes_basic.md)
* [US ANSI Shifted Keys](he-il/keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](he-il/quantum_keycodes.md)
* [Advanced Keycodes](he-il/feature_advanced_keycodes.md)
* [Audio](he-il/feature_audio.md)
* [Auto Shift](he-il/feature_auto_shift.md)
* [Backlight](he-il/feature_backlight.md)
* [Bluetooth](he-il/feature_bluetooth.md)
* [Bootmagic](he-il/feature_bootmagic.md)
* [Combos](he-il/feature_combo.md)
* [Command](he-il/feature_command.md)
* [Debounce API](he-il/feature_debounce_type.md)
* [DIP Switch](he-il/feature_dip_switch.md)
* [Dynamic Macros](he-il/feature_dynamic_macros.md)
* [Encoders](he-il/feature_encoders.md)
* [Grave Escape](he-il/feature_grave_esc.md)
* [Haptic Feedback](he-il/feature_haptic_feedback.md)
* [HD44780 LCD Controller](he-il/feature_hd44780.md)
* [Key Lock](he-il/feature_key_lock.md)
* [Layouts](he-il/feature_layouts.md)
* [Leader Key](he-il/feature_leader_key.md)
* [LED Matrix](he-il/feature_led_matrix.md)
* [Macros](he-il/feature_macros.md)
* [Mouse Keys](he-il/feature_mouse_keys.md)
* [OLED Driver](he-il/feature_oled_driver.md)
* [One Shot Keys](he-il/feature_advanced_keycodes.md#one-shot-keys)
* [Pointing Device](he-il/feature_pointing_device.md)
* [PS/2 Mouse](he-il/feature_ps2_mouse.md)
* [RGB Lighting](he-il/feature_rgblight.md)
* [RGB Matrix](he-il/feature_rgb_matrix.md)
* [Space Cadet](he-il/feature_space_cadet.md)
* [Split Keyboard](he-il/feature_split_keyboard.md)
* [Stenography](he-il/feature_stenography.md)
* [Swap Hands](he-il/feature_swap_hands.md)
* [Tap Dance](he-il/feature_tap_dance.md)
* [Terminal](he-il/feature_terminal.md)
* [Thermal Printer](he-il/feature_thermal_printer.md)
* [Unicode](he-il/feature_unicode.md)
* [Userspace](he-il/feature_userspace.md)
* [Velocikey](he-il/feature_velocikey.md)
* למייקרים ומודרים
* [מדריך לכתיבה ידנית](hand_wire.md)
* [מדריך לצריבת ISP](isp_flashing_guide.md)
* [מדריך לדיבאגינג ARM](arm_debugging.md)
* [מנהל התקן I2C](i2c_driver.md)
* [בקרת GPIO](internals_gpio_control.md)
* [המרת Proton C](proton_c_conversion.md)
* [מדריך לכתיבה ידנית](he-il/hand_wire.md)
* [מדריך לצריבת ISP](he-il/isp_flashing_guide.md)
* [מדריך לדיבאגינג ARM](he-il/arm_debugging.md)
* [מנהל התקן I2C](he-il/i2c_driver.md)
* [בקרת GPIO](he-il/internals_gpio_control.md)
* [המרת Proton C](he-il/proton_c_conversion.md)
* להבנה עמוקה יותר
* [איך עובדות מקלדות](how_keyboards_work.md)
* [להבין את QMK](understanding_qmk.md)
* [איך עובדות מקלדות](he-il/how_keyboards_work.md)
* [להבין את QMK](he-il/understanding_qmk.md)
* נושאים נוספים
* [שימוש ב - Eclipse עם QMK](other_eclipse.md)
* [שימוש ב - VSCode עם QMK](other_vscode.md)
* [תמיכה](support.md)
* [כיצד להוסיף תרגום](translating.md)
* [שימוש ב - Eclipse עם QMK](he-il/other_eclipse.md)
* [שימוש ב - VSCode עם QMK](he-il/other_vscode.md)
* [תמיכה](he-il/support.md)
* [כיצד להוסיף תרגום](he-il/translating.md)
* QMK מבפנים (בתהליך)
* [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)
* [Defines](he-il/internals_defines.md)
* [Input Callback Reg](he-il/internals_input_callback_reg.md)
* [Midi Device](he-il/internals_midi_device.md)
* [Midi Device Setup Process](he-il/internals_midi_device_setup_process.md)
* [Midi Util](he-il/internals_midi_util.md)
* [Send Functions](he-il/internals_send_functions.md)
* [Sysex Tools](he-il/internals_sysex_tools.md)
</div>

View File

@@ -17,19 +17,25 @@ Github עלול להיות קצת טריקי למי שלא מכיר את העב
![קישור HTTPS](http://i.imgur.com/eGO0ohO.jpg)
מכאן והלאה, הקיש `git clone ` בשורת הפקודה והדביקו את הלינק שלכם:
מכאן והלאה, הקיש `git clone --recurse-submodules ` בשורת הפקודה והדביקו את הלינק שלכם:
<div dir="ltr" markdown="1">
```
user@computer:~$ git clone https://github.com/whoeveryouare/qmk_firmware.git
user@computer:~$ git clone --recurse-submodules 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.
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 183883 (delta 5), reused 4 (delta 4), pack-reused 183874
Receiving objects: 100% (183883/183883), 132.90 MiB | 9.57 MiB/s, done.
Resolving deltas: 100% (119972/119972), done.
...
Submodule path 'lib/chibios': checked out '587968d6cbc2b0e1c7147540872f2a67e59ca18b'
Submodule path 'lib/chibios-contrib': checked out 'ede48346eee4b8d6847c19bc01420bee76a5e486'
Submodule path 'lib/googletest': checked out 'ec44c6c1675c25b9827aacd08c02433cccde7780'
Submodule path 'lib/lufa': checked out 'ce10f7642b0459e409839b23cc91498945119b4d'
Submodule path 'lib/ugfx': checked out '3e97b74e03c93631cdd3ddb2ce43b963fdce19b2'
```
</div>
@@ -66,4 +72,4 @@ To https://github.com/whoeveryouare/qmk_firmware.git
![צרו Pull Request](http://i.imgur.com/Ojydlaj.jpg)
אחרי שהגשתם, אנו עלולים לפנות אליכם לגבי השינויים שהצעתם, נבקש שתבצעו שינויים ובסופו של דבר נקבל את השינויים! תודה שתרמתם לפרוייקט QMK :)
</div>
</div>

View File

@@ -5,7 +5,7 @@
## מבנה QMK בסיסי
QMK הוא פורק של הפרוייקט [tmk_keyboard](https://github.com/tmk/tmk_keyboard) של [Jun Wako](https://github.com/tmk). קוד הTMK המקורי, עם התאמות, יכול להמצא בתיקיית `tmk`. התוספות של QMK לפרוייקט יכולות להמצא בתיקיית `quantum`. פרוייקטי מקלדות יכולות להמצא בתיקיות `handwired` ו- `keyboard`.
QMK הוא פורק של הפרוייקט [tmk_keyboard](https://github.com/tmk/tmk_keyboard) של [Jun Wako](https://github.com/tmk). קוד הTMK המקורי, עם התאמות, יכול להמצא בתיקיית `tmk_core`. התוספות של QMK לפרוייקט יכולות להמצא בתיקיית `quantum`. פרוייקטי מקלדות יכולות להמצא בתיקיות `handwired` ו- `keyboard`.
### מבנה אחסון המשתמש
@@ -69,4 +69,4 @@ In every keymap folder, the following files may be found. Only `keymap.c` is req
```
</div>
</div>
</div>

View File

@@ -17,18 +17,8 @@
|`DEBUG` | |Toggle debug mode |
|`EEPROM_RESET` |`EEP_RST` |Resets EEPROM state by reinitializing it |
|`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_LCPO` | |Left Control when held, `(` when tapped |
|`KC_RCPC` | |Right Control when held, `)` when tapped |
|`KC_LAPO` | |Left Alt when held, `(` when tapped |
|`KC_RAPC` | |Right Alt when held, `)` when tapped |
|`KC_SFTENT` | |Right Shift when held, Enter 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 |
```
</div>

View File

@@ -21,7 +21,7 @@
<div id="app"></div>
<script>
window.$docsify = {
alias : {
alias: {
'/en/(.*)': '/$1',
'/en-us/(.*)': '/$1',
'/en-gb/(.*)': '/$1',
@@ -29,12 +29,32 @@
},
basePath: '/',
name: 'QMK Firmware',
nameLink: '/',
nameLink: {
'/de/': '/#/de/',
'/es/': '/#/es/',
'/fr-fr/': '/#/fr-fr/',
'/he-il/': '/#/he-il/',
'/ja/': '/#/ja/',
'/pt-br/': '/#/pt-br/',
'/ru-ru/': '/#/ru-ru/',
'/zh-cn/': '/#/zh-cn/',
'/': '/#/'
},
repo: 'qmk/qmk_firmware',
loadSidebar: '_summary.md',
loadNavbar: '_langs.md',
mergeNavbar: true,
auto2top: true,
fallbackLanguages: [
'de',
'es',
'fr-fr',
'he-il',
'ja',
'pt-br',
'ru-ru',
'zh-cn'
],
formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}',
search: {
paths: 'auto',
@@ -42,12 +62,14 @@
'/es/': 'Buscar',
'/zh-cn/': '搜索',
'/ja/': '検索',
'/pt-br/': 'Busca',
'/': 'Search'
},
noData: {
'/es/': '¡Ningún resultado!',
'/zh-cn/': '没有结果!',
'/ja/': '見つかりません!',
'/pt-br/': 'Nenhum resultado!',
'/': 'No results!'
},
depth: 6
@@ -60,9 +82,9 @@
.replace('raw.githubusercontent.com', 'github.com')
.replace(/\/master/, '/blob/master')
} else {
url = 'https://github.com/qmk/qmk_firmware/blob/master/docs/' + vm.route.file
url = 'https://github.com/qmk/qmk_firmware/edit/master/docs/' + vm.route.file
}
var editHtml = '[:memo: Edit Document](' + url + ')\n'
var editHtml = ':pencil2: [Edit this page](' + url + ')\n'
return html
+ '\n\n----\n\n'
+ editHtml

37
docs/ja/README.md Normal file
View File

@@ -0,0 +1,37 @@
# Quantum Mechanical Keyboard Firmware
<!---
original document: eae21eed7:docs/README.md
git diff eae21eed7 HEAD -- docs/README.md | cat
-->
[![現在のバージョン](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![ビルド状態](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)
[![ドキュメントの状態](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub 貢献者](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub フォーク](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## QMK ファームウェアとは何か?
QMK (*Quantum Mechanical Keyboard*)は QMK ファームウェア、QMK ツールボックス、qmk.fm およびそれらのドキュメントを保守するオープンソースコミュニティです。QMK ファームウェアは[tmk\_keyboard](http://github.com/tmk/tmk_keyboard) を元にしたキーボードファームウェアで、Atmel AVR コントローラ、より具体的には [OLKB 製品](http://olkb.com)、[ErgoDox EZ](http://www.ergodox-ez.com) キーボードおよび [Clueboard 製品](http://clueboard.co/) のための幾つかの便利な機能を持ちます。また、ChibiOS を使って ARM チップに移植されています。これを使ってあなたの作った手配線のキーボードあるいはカスタムキーボード PCB で作ったキーボードを動かすことができます。
## 入手方法
QMK のキーマップ、キーボード、機能に貢献をする予定がある場合、最も簡単なのは、[Github を介してリポジトリをフォークし](https://github.com/qmk/qmk_firmware#fork-destination-box)、リポジトリをあなたの開発環境にクローンして変更を加え、それらをプッシュし、[プルリクエスト](https://github.com/qmk/qmk_firmware/pulls)を開くことです。
それ以外の場合は、`git clone https://github.com/qmk/qmk_firmware` を介して直接クローンすることができます。zip または tar ファイルをダウンロードしないでください。コンパイルするためのサブモジュールをダウンロードするために git リポジトリが必要です。
## コンパイル方法
コンパイルをする前に、AVR または ARM 開発のための[環境をインストール](ja/getting_started_build_tools.md)する必要があります。それが完了したら、`make` コマンドを使用して、以下の表記でキーボードとキーマップをビルドします。
make planck/rev4:default
これは、`planck``rev4` リビジョンを `default` キーマップでビルドします。全てのキーボードにリビジョン(サブプロジェクトまたはフォルダとも呼ばれます)があるわけではありません。その場合は省略されます:
make preonic:default
## カスタマイズ方法
QMK には、探求すべき多くの[機能](ja/features.md)と、深堀りするための[リファレンス ドキュメント](http://docs.qmk.fm)がたくさんあります。ほとんどの機能は[キーマップ](ja/keymap.md)を変更し、[キーコード](ja/keycodes.md)を変更することで活用されます。

130
docs/ja/_summary.md Normal file
View File

@@ -0,0 +1,130 @@
* [完全な初心者のガイド](ja/newbs.md)
* [はじめに](ja/newbs_getting_started.md)
* [初めてのファームウェアの構築](ja/newbs_building_firmware.md)
* [ファームウェアのフラッシュ](ja/newbs_flashing.md)
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [QMK における Git 運用作法](ja/newbs_git_best_practices.md)
* [あなたのフォークの master ブランチ](ja/newbs_git_using_your_master_branch.md)
* [マージの競合の解決](ja/newbs_git_resolving_merge_conflicts.md)
* [同期のとれていない git ブランチの再同期](ja/newbs_git_resynchronize_a_branch.md)
* [学習リソース](ja/newbs_learn_more_resources.md)
* [QMKの基本](ja/README.md)
* [QMK の導入](ja/getting_started_introduction.md)
* [QMK CLI](ja/cli.md)
* [QMK CLI 設定](ja/cli_configuration.md)
* [QMK への貢献](ja/contributing.md)
* [Github の使い方](ja/getting_started_github.md)
* [ヘルプ](ja/getting_started_getting_help.md)
* [破壊的な変更](ja/breaking_changes.md)
* [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
* [FAQ](ja/faq.md)
* [一般的な FAQ](ja/faq_general.md)
* [QMK のビルド/コンパイル](ja/faq_build.md)
* [QMK のデバッグ/トラブルシューティング](ja/faq_debug.md)
* [キーマップ](ja/faq_keymap.md)
* [Zadig を使ったドライバのインストール](ja/driver_installation_zadig.md)
* 詳細なガイド
* [ビルドツールのインストール](ja/getting_started_build_tools.md)
* [Vagrant のガイド](ja/getting_started_vagrant.md)
* [ビルド/コンパイルの説明](ja/getting_started_make_guide.md)
* [ファームウェアのフラッシュ](ja/flashing.md)
* [機能のカスタマイズ](ja/custom_quantum_functions.md)
* [キーマップの概要](ja/keymap.md)
* [ハードウェア](ja/hardware.md)
* [互換性のあるマイクロコントローラ](ja/compatible_microcontrollers.md)
* [AVR プロセッサ](ja/hardware_avr.md)
* [ドライバ](ja/hardware_drivers.md)
* リファレンス
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)
* [設定オプション](ja/config_options.md)
* [キーコード](ja/keycodes.md)
* [コーディング規約 - C](ja/coding_conventions_c.md)
* [コーディング規約 - Python](ja/coding_conventions_python.md)
* [ドキュメント ベストプラクティス](ja/documentation_best_practices.md)
* [ドキュメント テンプレート](ja/documentation_templates.md)
* [用語](ja/reference_glossary.md)
* [ユニットテスト](ja/unit_testing.md)
* [便利な関数](ja/ref_functions.md)
* [Configurator サポート](ja/reference_configurator_support.md)
* [info.json 形式](ja/reference_info_json.md)
* [Python CLI 開発](ja/cli_development.md)
* [機能](ja/features.md)
* [基本的なキーコード](ja/keycodes_basic.md)
* [US ANSI シフトキー](ja/keycodes_us_ansi_shifted.md)
* [Quantum キーコード](ja/quantum_keycodes.md)
* [Advanced キーコード](ja/feature_advanced_keycodes.md)
* [オーディオ](ja/feature_audio.md)
* [自動シフト](ja/feature_auto_shift.md)
* [バックライト](ja/feature_backlight.md)
* [ブルートゥース](ja/feature_bluetooth.md)
* [ブートマジック](ja/feature_bootmagic.md)
* [コンボ](ja/feature_combo.md)
* [コマンド](ja/feature_command.md)
* [デバウンス API](ja/feature_debounce_type.md)
* [DIP スイッチ](ja/feature_dip_switch.md)
* [動的マクロ](ja/feature_dynamic_macros.md)
* [エンコーダ](ja/feature_encoders.md)
* [グレイブ エスケープ](ja/feature_grave_esc.md)
* [触覚フィードバック](ja/feature_haptic_feedback.md)
* [HD44780 LCD コントローラ](ja/feature_hd44780.md)
* [キーロック](ja/feature_key_lock.md)
* [レイアウト](ja/feature_layouts.md)
* [リーダー キー](ja/feature_leader_key.md)
* [LED マトリクス](ja/feature_led_matrix.md)
* [マクロ](ja/feature_macros.md)
* [マウスキー](ja/feature_mouse_keys.md)
* [OLED ドライバ](ja/feature_oled_driver.md)
* [One Shot Keys](ja/feature_advanced_keycodes.md#one-shot-keys)
* [ポインティング デバイス](ja/feature_pointing_device.md)
* [PS/2 マウス](ja/feature_ps2_mouse.md)
* [RGB ライト](ja/feature_rgblight.md)
* [RGB マトリクス](ja/feature_rgb_matrix.md)
* [Space Cadet](ja/feature_space_cadet.md)
* [分割キーボード](ja/feature_split_keyboard.md)
* [Stenography](ja/feature_stenography.md)
* [Swap Hands](ja/feature_swap_hands.md)
* [タップ ダンス](ja/feature_tap_dance.md)
* [ターミナル](ja/feature_terminal.md)
* [感熱式プリンタ](ja/feature_thermal_printer.md)
* [ユニコード](ja/feature_unicode.md)
* [ユーザスペース](ja/feature_userspace.md)
* [Velocikey](ja/feature_velocikey.md)
* メーカーおよびモッダーのために
* [Hand Wiring ガイド](ja/hand_wire.md)
* [ISP 書き込みガイド](ja/isp_flashing_guide.md)
* [ARM デバッグ ガイド](ja/arm_debugging.md)
* [ADC ドライバ](ja/adc_driver.md)
* [I2C ドライバ](ja/i2c_driver.md)
* [WS2812 ドライバ](ja/ws2812_driver.md)
* [EEPROM ドライバ](ja/eeprom_driver.md)
* [GPIO コントロール](ja/internals_gpio_control.md)
* [カスタムマトリックス](ja/custom_matrix.md)
* [Proton C 規約](ja/proton_c_conversion.md)
* より深く知るために
* [キーボードがどのように動作するか](ja/how_keyboards_work.md)
* [QMK の理解](ja/understanding_qmk.md)
* 他の話題
* [Eclipse で QMK を使用](ja/other_eclipse.md)
* [VSCode で QMK を使用](ja/other_vscode.md)
* [サポート](ja/support.md)
* [翻訳を追加する方法](ja/translating.md)
* QMK の内部詳細(作成中)
* [定義](ja/internals_defines.md)
* [Input Callback Reg](ja/internals_input_callback_reg.md)
* [Midi ドライバ](ja/internals_midi_device.md)
* [Midi デバイスのセットアップ手順](ja/internals_midi_device_setup_process.md)
* [Midi ユーティリティ](ja/internals_midi_util.md)
* [Send Functions](ja/internals_send_functions.md)
* [Sysex Tools](ja/internals_sysex_tools.md)

92
docs/ja/arm_debugging.md Normal file
View File

@@ -0,0 +1,92 @@
# Eclipse を使った ARM デバッグ
<!---
original document: eae21eed7:docs/arm_debugging.md
git diff eae21eed7 HEAD -- docs/arm_debugging.md | cat
-->
このページでは、SWD アダプタとオープンソース/フリーツールを使って ARM MCU をデバッグするためのセットアップ方法について説明します。このガイドでは、GNU MCU Eclipse IDE for C/C++ Developers および OpenOCD を必要な依存関係と一緒にインストールします。
このガイドは上級者向けであり、あなたのマシンで、MAKE フローを使って、ARM 互換キーボードをコンパイルできることを前提にしています。
## ソフトウェアのインストール
ここでの主な目的は MCU Eclipse IDE を正しくマシンにインストールすることです。必要な手順は[この](https://gnu-mcu-eclipse.github.io/install/)インストールガイドから派生しています。
### xPack マネージャ
このツールはソフトウェアパッケージマネージャであり、必要な依存関係を取得するために使われます。
XPM は Node.js を使って実行されるため、[ここ](https://nodejs.org/en/)から取得してください。インストール後に、ターミナルを開き `npm -v` と入力します。バージョン番号が返ってくるとインストールは成功です。
XPM のインストール手順は[ここ](https://www.npmjs.com/package/xpm)で見つけることができ、OS 固有のものです。ターミナルに `xpm --version` と入力すると、ソフトウェアのバージョンが返ってくるはずです。
### ARM ツールチェーン
XPM を使うと、ARM ツールチェーンをとても簡単にインストールできます。`xpm install --global @xpack-dev-tools/arm-none-eabi-gcc` とコマンドを入力します。
### Windows ビルドツール
Windows を使っている場合は、これをインストールする必要があります!
`xpm install --global @gnu-mcu-eclipse/windows-build-tools`
### プログラマ/デバッガドライバ
プログラマのドライバをインストールします。このチュートリアルはほとんどどこでも入手できる ST-Link v2 を使って作成されました。
ST-Link を持っている場合は、ドライバは[ここ](https://www.st.com/en/development-tools/stsw-link009.html)で見つけることができます。そうでない場合はツールの製造元にお問い合わせください。
### OpenOCD
この依存関係により、SWD は GDB からアクセスでき、デバッグに不可欠です。`xpm install --global @xpack-dev-tools/openocd` を実行します。
### Java
Java は Eclipse で必要とされるため、[ここ](https://www.oracle.com/technetwork/java/javase/downloads/index.html)からダウンロードしてください。
### GNU MCU Eclipse IDE
最後に IDE をインストールする番です。[ここ](https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases/)のリリースページから最新バージョンを取得します。
## Eclipse の設定
ダウンロードした Eclipse IDE を開きます。QMK ディレクトリをインポートするために、File -> Import -> C/C++ -> Existing Code as Makefile Project を選択します。Next を選択し、Browse を使用して QMK フォルダを選択します。tool-chain リストから ARM Cross GCC を選択し、Finish を選択します。
これで、左側に QMK フォルダが表示されます。右クリックして、Properties を選択します。左側で MCU を展開し、ARM Toolchains Paths を選択します。xPack を押して OK を押します。OpenOCD Path で同じことを繰り返し、Windows の場合は、Build Tools Path でも同じことを繰り返します。Apply and Close を選択します。
ここで、必要な MCU パッケージをインストールします。Window -> Perspective -> Open Perspective -> Other... -> Packs を選択して、Packs perspective に移動します。Packs タブの横にある黄色のリフレッシュ記号を選択します。これは様々な場所から MCU の定義を要求するため、時間が掛かります。一部のリンクが失敗した場合は、おそらく Ignore を選択できます。
これが終了すると、ビルドやデバッグする MCU を見つけることができるはずです。この例では、STM32F3 シリーズの MCU を使います。左側で、STMicroelectronics -> STM32F3 Series を選択します。中央のウィンドウに、pack が表示されます。右クリックし、Install を選択します。それが終了したら、Window -> Perspective -> Open Perspective -> Other... -> C/C++ を選択してデフォルトのパースペクティブに戻ることができます。
Eclipse に QMK をビルドしようとするデバイスを教える必要があります。QMK フォルダを右クリック -> Properties -> C/C++ Build -> Settings を選択します。Devices タブを選択し、Devices の下から MCU の適切な種類を選択します。私の例では、STM32F303CC です。
この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。
## ビルド
全て正しくセットアップできていれば、ハンマーボタンを押すとファームウェアがビルドされ、.bin ファイルが出力されるはずです。
## デバッグ
### デバッガの接続
ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を 完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。
注意: SWCLK と SWDIO ピンがキーボードのマトリックスで使われていないことを確認してください。もし使われている場合は、一時的に他のピンに切り替えることができます。
### デバッガの設定
QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは stm32f3discovery.cfg と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。
注意: 私の場合、この設定スクリプトはリセット操作を無効にするために編集が必要です。スクリプトの場所は、通常はパス `openocd/version/.content/scripts/board` の下の実際の実行可能フィールドの中で見つかります。ここで、私は `reset_config srst_only``reset_config none` に編集しました。
Apply and Close を選択します。
### デバッガの実行
キーボードをリセットしてください。
虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止するので、Play ボタンを押します。全てのデバッガのほとんどの機能は ARM MCU で動作しますが、正確な詳細については google があなたのお友達です!
ハッピーデバッギング!

227
docs/ja/cli.md Normal file
View File

@@ -0,0 +1,227 @@
# QMK CLI
<!---
original document: d598f01cb:docs/cli.md
git diff d598f01cb HEAD -- docs/cli.md | cat
-->
このページは QMK CLI のセットアップと使用方法について説明します。
# 概要
QMK CLI を使用すると QMK キーボードの構築と作業が簡単になります。QMK ファームウェアの取得とコンパイル、キーマップの作成などのようなタスクを簡素化し合理化するためのコマンドを多く提供します。
* [グローバル CLI](#global-cli)
* [ローカル CLI](#local-cli)
* [CLI コマンド](#cli-commands)
# 必要事項
CLI は Python 3.5 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) にリストされているパッケージもインストールする必要があります。
# グローバル CLI :id=global-cli
QMK は、QMK ビルド環境のセットアップ、QMK の操作、および `qmk_firmware` の複数のコピーの操作を容易にできるインストール可能な CLI を提供します。これを定期的にインストールおよび更新することをお勧めします。
## Homebrew を使ったインストール (macOS、いくつかの Linux)
[Homebrew](https://brew.sh) をインストールしている場合は、タップして QMK をインストールすることができます:
```
brew tap qmk/qmk
brew install qmk
export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
```
## easy_install あるいは pip を使ってインストール
上のリストにあなたのシステムがない場合は、QMK を手動でインストールすることができます。最初に、python 3.5 (以降)をインストールしていて、pip をインストールしていることを確認してください。次に以下のコマンドを使って QMK をインストールします:
```
pip3 install qmk
export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を設定します
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
```
## 他のオペレーティングシステムのためのパッケージ
より多くのオペレーティングシステム用に `qmk` パッケージを作成および保守する人を探しています。OS 用のパッケージを作成する場合は、以下のガイドラインに従ってください:
* これらのガイドラインと矛盾する場合は、OS のベストプラクティスに従ってください
* 逸脱する場合は、理由をコメントに文章化してください。
* virtualenv を使ってインストールしてください
* 環境変数 `QMK_HOME` を設定して、ファームウェアソースを `~/qmk_firmware` 以外のどこかにチェックアウトするようにユーザに指示してください。
# ローカル CLI :id=local-cli
グローバル CLI を使いたくない場合は、`qmk_firmware` に付属のローカル CLI があります。`qmk_firmware/bin/qmk` で見つけることができます。任意のディレクトリから `qmk` コマンドを実行でき、常に `qmk_firmware` のコピー上で動作します。
**例**:
```
$ ~/qmk_firmware/bin/qmk hello
Ψ Hello, World!
```
## ローカル CLI の制限
グローバル CLI と比較して、ローカル CLI には幾つかの制限があります:
* ローカル CLI は `qmk setup` あるいは `qmk clone` をサポートしません。
* 複数のリポジトリがクローンされている場合でも、ローカル CLI は常に `qmk_firmware` ツリー上で動作します。
* ローカル CLI は virtualenv で動作しません。そのため依存関係が競合する可能性があります
# CLI コマンド :id=cli-commands
## `qmk cformat`
このコマンドは clang-format を使って C コードを整形します。引数無しで実行して全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。
**使用法**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
## `qmk compile`
このコマンドにより、任意のディレクトリからファームウェアをコンパイルすることができます。<https://config.qmk.fm> からエクスポートした JSON をコンパイルするか、リポジトリ内でキーマップをコンパイルすることができます。
**Configurator Exports での使い方**:
```
qmk compile <configuratorExport.json>
```
**キーマップでの使い方**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
## `qmk flash`
このコマンドは `qmk compile` に似ていますが、ブートローダを対象にすることもできます。ブートローダはオプションで、デフォルトでは `:flash` に設定されています。
違うブートローダを指定するには、`-bl <bootloader>` を使ってください。利用可能なブートローダの詳細については、<https://docs.qmk.fm/#/ja/flashing>
を見てください。
**Configurator Exports での使い方**:
```
qmk flash <configuratorExport.json> -bl <bootloader>
```
**キーマップでの使い方**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader>
```
**ブートローダのリスト**
```
qmk flash -b
```
## `qmk config`
このコマンドにより QMK の挙動を設定することができます。完全な `qmk config` のドキュメントについては、[CLI 設定](ja/cli_configuration.md)を見てください。
**使用法**:
```
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `qmk docs`
このコマンドは、ドキュメントを参照または改善するために使うことができるローカル HTTP サーバを起動します。デフォルトのポートは 8936 です。
**使用法**:
```
qmk docs [-p PORT]
```
## `qmk doctor`
このコマンドは環境を調査し、潜在的なビルドあるいは書き込みの問題について警告します。
**使用法**:
```
qmk doctor
```
## `qmk json-keymap`
QMK Configurator からエクスポートしたものから keymap.c を生成します。
**使用法**:
```
qmk json-keymap [-o OUTPUT] filename
```
## `qmk kle2json`
このコマンドにより、生の KLE データから QMK Configurator の JSON へ変換することができます。絶対パスあるいは現在のディレクトリ内のファイル名のいずれかを受け取ります。デフォルトでは、`info.json` が既に存在している場合は上書きしません。上書きするには、`-f` あるいは `--force` フラグを使ってください。
**使用法**:
```
qmk kle2json [-f] <filename>
```
**例**:
```
$ qmk kle2json kle.txt
☒ File info.json already exists, use -f or --force to overwrite.
```
```
$ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk list-keyboards`
このコマンドは現在 `qmk_firmware` で定義されている全てのキーボードをリスト化します。
**使用法**:
```
qmk list-keyboards
```
## `qmk new-keymap`
このコマンドは、キーボードの既存のデフォルトのキーマップに基づいて新しいキーマップを作成します。
**使用法**:
```
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk pyformat
```
## `qmk pytest`
このコマンドは python のテストスィートを実行します。python コードに変更を加えた場合、これの実行が成功することを確認する必要があります。
**使用法**:
```
qmk pytest
```

View File

@@ -0,0 +1,126 @@
# QMK CLI 設定
<!---
original document: d598f01cb:docs/cli_configuration.md
git diff d598f01cb HEAD -- docs/cli_configuration.md | cat
-->
このドキュメントは `qmk config` がどのように動作するかを説明します。
# はじめに
QMK CLI の設定はキーバリューシステムです。各キーはピリオドで区切られたサブコマンドと引数名で構成されます。これにより、設定キーと設定された引数の間で簡単かつ直接的な変換が可能になります。
## 簡単な例
例として、`qmk compile --keyboard clueboard/66/rev4 --keymap default` コマンドを見てみましょう。
設定から読み取ることができる2つのコマンドライン引数があります:
* `compile.keyboard`
* `compile.keymap`
これらを設定してみましょう:
```
$ qmk config compile.keyboard=clueboard/66/rev4 compile.keymap=default
compile.keyboard: None -> clueboard/66/rev4
compile.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
これで、毎回キーボードとキーマップを設定することなく、`qmk compile` を実行することができます。
## ユーザデフォルトの設定
複数のコマンド間で設定を共有したい場合があります。例えば、いくつかのコマンドは引数 `--keyboard` を受け取ります。全てのコマンドでこの値を設定する代わりに、その引数を受け取る全てのコマンドで使われるユーザ値を設定することができます。
例:
```
$ qmk config user.keyboard=clueboard/66/rev4 user.keymap=default
user.keyboard: None -> clueboard/66/rev4
user.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
# CLI ドキュメント (`qmk config`)
`qmk config` コマンドは基礎となる設定とやり取りするために使われます。引数無しで実行すると、現在の設定を表示します。引数が指定された場合、それらは設定トークンと見なされます。設定トークンは以下の形式の空白を含まない文字列です:
<subcommand|general|default>[.<key>][=<value>]
## 設定値の設定
設定キーに等号 (=) を入れることで、設定値を設定することができます。キーは常に完全な `<section>.<key>` 形式である必要があります。
例:
```
$ qmk config default.keymap=default
default.keymap: None -> default
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
## 設定値の読み込み
設定全体、単一のキー、あるいはセクション全体の設定値を読み取ることができます。1つ以上の値を表示するために複数のキーを指定することができます。
### 全体の構成例
qmk config
### セクション全体の例
qmk config compile
### 単一キーの例
qmk config compile.keyboard
### 複数キーの例
qmk config user compile.keyboard compile.keymap
## 設定値の削除
設定値を特別な文字列 `None` に設定することで、設定値を削除することができます。
例:
```
$ qmk config default.keymap=None
default.keymap: default -> None
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
## 複数の操作
複数の読み込みおよび書き込み操作を1つのコマンドに組み合わせることができます。それらは順番に実行および表示されます:
```
$ qmk config compile default.keymap=default compile.keymap=None
compile.keymap=skully
compile.keyboard=clueboard/66_hotswap/gen1
default.keymap: None -> default
compile.keymap: skully -> None
Ψ Wrote configuration to '/Users/example/Library/Application Support/qmk/qmk.ini'
```
# ユーザ設定オプション
| キー | デフォルト値 | 説明 |
|-----|---------------|-------------|
| user.keyboard | None | キーボードのパス (例: `clueboard/66/rev4`) |
| user.keymap | None | キーマップ名 (例: `default`) |
| user.name | None | ユーザの github のユーザ名。 |
# 全ての設定オプション
| キー | デフォルト値 | 説明 |
|-----|---------------|-------------|
| compile.keyboard | None | キーボードのパス (例: `clueboard/66/rev4`) |
| compile.keymap | None | キーマップ名 (例: `default`) |
| hello.name | None | 実行時の挨拶の名前 |
| new_keyboard.keyboard | None | キーボードのパス (例: `clueboard/66/rev4`) |
| new_keyboard.keymap | None | キーマップ名 (例: `default`) |

395
docs/ja/config_options.md Normal file
View File

@@ -0,0 +1,395 @@
# QMK の設定
<!---
original document: 9ff61601e:docs/config_options.md
git diff 9ff61601e HEAD -- docs/config_options.md | cat
-->
QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。
QMK には主に2種類の設定ファイルがあります- `config.h``rules.mk`。これらのファイルは QMK の様々なレベルに存在し、同じ種類の全てのファイルは最終的な設定を構築するために組み合わされます。最低の優先度から最高の優先度までのレベルは以下の通りです:
* QMK デフォルト
* キーボード
* フォルダ (最大5レべルの深さ)
* キーマップ
## QMK デフォルト
QMK での全ての利用可能な設定にはデフォルトがあります。その設定がキーボード、フォルダ、あるいはキーマップレべルで設定されない場合、これが使用される設定です。
## キーボード
このレベルにはキーボード全体に適用される設定オプションが含まれています。一部の設定は、リビジョンあるいはほとんどのキーマップで変更されません。他の設定はこのキーボードのデフォルトに過ぎず、フォルダあるいはキーマップによって上書きされる可能性があります。
## フォルダ
一部のキーボードには、異なるハードウェア構成のためのフォルダとサブフォルダがあります。ほとんどのキーボードは深さ1のフォルダのみですが、QMK は最大深さ5のフォルダの構造をサポートします。各フォルダは、最終的な設定に組み込まれる独自の `config.h``rules.mk` ファイルを持つことができます。
## キーマップ
このレベルには特定のキーマップのための全てのオプションが含まれています。以前の定義を上書きしたい場合は、`#undef <variable>` を使って定義を解除し、エラー無しで再定義することができます。
# `config.h` ファイル
これは最初に include されるものの 1 つである C ヘッダファイルで、プロジェクト全体(もし含まれる場合)にわたって持続します。多くの変数をここで設定し、他の場所からアクセスすることができます。`config.h` ファイルでは、以下のもの以外の、他の `config.h` ファイルやその他のファイルの include をしないでください:
#include "config_common.h"
## ハードウェアオプション
* `#define VENDOR_ID 0x1234`
* VID を定義します。ほとんどの DIY プロジェクトにおいて、任意のものを定義できます
* `#define PRODUCT_ID 0x5678`
* PID を定義します。ほとんどの DIY プロジェクトでは、任意のものを定義できます
* `#define DEVICE_VER 0`
* デバイスのバージョンを定義します (多くの場合リビジョンに使われます)
* `#define MANUFACTURER Me`
* 一般的に、誰もしくはどのブランドがボードを作成したか
* `#define PRODUCT Board`
* キーボードの名前
* `#define DESCRIPTION a keyboard`
* キーボードの簡単な説明
* `#define MATRIX_ROWS 5`
* キーボードのマトリックスの行の数
* `#define MATRIX_COLS 15`
* キーボードのマトリックスの列の数
* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }`
* 行のピン、上から下へ
* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
* 列のピン、左から右へ
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
* 参考として、キーボードで使われていないピン
* `#define MATRIX_HAS_GHOST`
* マトリックスにゴーストがあるか(ありそうにないか)定義します
* `#define DIODE_DIRECTION COL2ROW`
* COL2ROW あるいは ROW2COL - マトリックスがどのように設定されているか。COL2ROW は、スイッチとロウ(行)ラインの間にダイオードが黒い印をロウ(行)ラインに向けて置いてあることを意味します。
* `#define DIRECT_PINS { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* ロウ(行)ラインとカラム(列)ラインにマップされているピンを左から右に。各スイッチが個別のピンとグラウンドに接続されているマトリックスを定義します。
* `#define AUDIO_VOICES`
* (循環させるために)代替音声を有効にします
* `#define C4_AUDIO`
* ピン C4 のオーディオを有効にします
* `#define C5_AUDIO`
* ピン C5 のオーディオを有効にします
* `#define C6_AUDIO`
* ピン C6 のオーディオを有効にします
* `#define B5_AUDIO`
* ピン B5 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* `#define B6_AUDIO`
* ピン B6 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* `#define B7_AUDIO`
* ピン B7 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* `#define BACKLIGHT_PIN B7`
* バックライトのピン
* `#define BACKLIGHT_LEVELS 3`
* バックライトのレベル数 (off を除いて最大31)
* `#define BACKLIGHT_BREATHING`
* バックライトのブレスを有効にします
* `#define BREATHING_PERIOD 6`
* 1つのバックライトの "ブレス" の長さの秒数
* `#define DEBOUNCE 5`
* ピンの値を読み取る時の遅延 (5がデフォルト)
* `#define LOCKING_SUPPORT_ENABLE`
* メカニカルロックのサポート。キーマップで KC_LCAP、 KC_LNUM そして KC_LSCR を使えるようにします
* `#define LOCKING_RESYNC_ENABLE`
* キーボードの LED の状態をスイッチの状態と一致させ続けようとします
* `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)`
* マジックコマンドの使用を可能にするキーの組み合わせ (デバッグに便利です)
* `#define USB_MAX_POWER_CONSUMPTION 500`
* デバイスの USB 経由の最大電力(mA) を設定します (デフォルト: 500)
* `#define USB_POLLING_INTERVAL_MS 10`
* キーボード、マウス および 共有 (NKRO/メディアキー) インタフェースのための USB ポーリングレートをミリ秒で設定します
* `#define F_SCL 100000L`
* I2C を使用するキーボードのための I2C クロックレート速度を設定します。デフォルトは `400000L` ですが、`split_common` を使っているキーボードは別でデフォルトは `100000L` です。
## 無効にできる機能
これらのオプションを定義すると、関連する機能が無効になり、コードサイズを節約できます。
* `#define NO_DEBUG`
* デバッグを無効にします
* `#define NO_PRINT`
* hid_listen を使った出力やデバッグを無効にします
* `#define NO_ACTION_LAYER`
* レイヤーを無効にします
* `#define NO_ACTION_TAPPING`
* タップダンスと他のタップ機能を無効にします
* `#define NO_ACTION_ONESHOT`
* ワンショットモディファイアを無効にします
* `#define NO_ACTION_MACRO`
* 古い形式のマクロ処理を無効にします: MACRO() & action_get_macro
* `#define NO_ACTION_FUNCTION`
* fn_actions 配列(非推奨)からの action_function() の呼び出しを無効にします
## 有効にできる機能
これらのオプションを定義すると、関連する機能が有効になり、コードサイズが大きくなるかもしれません。
* `#define FORCE_NKRO`
* NKRO をデフォルトでオンにする必要があります。これにより EEPROM の設定に関係なく、キーボードの起動時に NKRO が強制的にオンになります。NKRO は引き続きオフにできますが、キーボードを再起動すると再びオンになります。
* `#define STRICT_LAYER_RELEASE`
* キーリリースがどのレイヤーから来たのかを覚えるのではなく、現在のレイヤースタックを使って強制的に評価されるようにします (高度なケースに使われます)
## 設定可能な挙動
* `#define TAPPING_TERM 200`
* タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照)
* `#define TAPPING_TERM_PER_KEY`
* キーごとの `TAPPING_TERM` 設定の処理を有効にします
* `#define RETRO_TAPPING`
* 押下とリリースの間に他のキーによる中断がなければ、TAPPING_TERM の後であってもとにかくタップします
* 詳細は [Retro Tapping](ja/feature_advanced_keycodes.md#retro-tapping) を見てください
* `#define TAPPING_TOGGLE 2`
* トグルを引き起こす前のタップ数
* `#define PERMISSIVE_HOLD`
* `TAPPING_TERM` にヒットしていなくても、リリースする前に別のキーが押されると、タップとフォールドキーがホールドを引き起こします
* 詳細は [Permissive Hold](ja/feature_advanced_keycodes.md#permissive-hold) を見てください
* `#define IGNORE_MOD_TAP_INTERRUPT`
* 両方のキーに `TAPPING_TERM` を適用することで、ホールド時に他のキーに変換するキーを使ってローリングコンボ (zx) をすることができるようにします
* 詳細は [Mod tap interrupt](ja/feature_advanced_keycodes.md#ignore-mod-tap-interrupt) を見てください
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
* キーごとの `IGNORE_MOD_TAP_INTERRUPT` 設定の処理を有効にします
* `#define TAPPING_FORCE_HOLD`
* タップされた直後に、デュアルロールキーを修飾子として使用できるようにします
* [Hold after tap](ja/feature_advanced_keycodes.md#tapping-force-hold)を見てください
* タップトグル機能を無効にします (`TT` あるいは One Shot Tap Toggle)
* `#define TAPPING_FORCE_HOLD_PER_KEY`
* キーごとの `TAPPING_FORCE_HOLD` 設定処理を有効にします。
* `#define LEADER_TIMEOUT 300`
* リーダーキーがタイムアウトするまでの時間
* タイムアウトする前にシーケンスを終了できない場合は、タイムアウトの設定を増やす必要があるかもしれません。あるいは、`LEADER_PER_KEY_TIMING` オプションを有効にすると良いでしょう。これは各キーがタップされた後でタイムアウトを再設定します。
* `#define LEADER_PER_KEY_TIMING`
* 全体では無く各キーを押すたびに実行されるリーダーキーコードのタイマーを設定します
* `#define LEADER_KEY_STRICT_KEY_PROCESSING`
* Mod-Tap および Layer-Tap キーコードのためのキーコードフィルタリングを無効にします。例えば、これを有効にすると、`KC_A` を使いたい場合は `MT(MOD_CTL, KC_A)` を指定する必要があります。
* `#define ONESHOT_TIMEOUT 300`
* ワンショットがタイムアウトするまでの時間
* `#define ONESHOT_TAP_TOGGLE 2`
* ワンショットトグルが引き起こされるまでのタップ数
* `#define QMK_KEYS_PER_SCAN 4`
* 走査ごとに1つ以上のキーを送信できるようにします。デフォルトでは、走査ごとに `process_record()` 経由で1つのキーイベントのみが送信されます。これはほとんどのタイピングにほとんど影響しませんが、多くのコードを入力しているか、走査レートが最初から遅い場合、キーイベントの処理に多少の遅延が生じる可能性があります。それぞれのプレスとリリースは別のイベントです。スキャン時間が 1ms 程度のキーボードの場合、とても高速なタイピストでさえ、実際にキーボードから数 ms 以上の遅延を発生させるのに必要な 500 キーストロークを1秒間に生成することはないでしょう。しかし、34ms の走査時間でコードを入力している場合はどうでしょうか?おそらくこれが必要です。
* `#define COMBO_COUNT 2`
* [コンボ](ja/feature_combo.md)機能で使っているコンボの数にこれを設定します。
* `#define COMBO_TERM 200`
* コンボキーが検出されるまでの時間。定義されていない場合は、デフォルトは `TAPPING_TERM` です。
* `#define TAP_CODE_DELAY 100`
* 適切な登録に問題がある場合(VUSB ボードで珍しくない)、`register_code``unregister_code` の間の遅延を設定します。値はミリ秒です。
* `#define TAP_HOLD_CAPS_DELAY 80`
* MacOS で特別な処理が行われるため、`KC_CAPSLOCK` を使う時にタップホールドキー (`LT`, `MT`) に遅延を設定します。この値はミリ秒で、定義されていない場合はデフォルトは80msです。macOS については、これを200以上に設定すると良いでしょう。
## RGB ライト設定 :id=rgb-light-configuration
* `#define RGB_DI_PIN D7`
* WS2812 の DI 端子につなぐピン
* `#define RGBLIGHT_ANIMATIONS`
* RGB アニメーションを実行します
* `#define RGBLED_NUM 12`
* LED の数
* `#define RGBLIGHT_SPLIT`
* 分割キーボードの左半分の RGB LED の出力を右半分の RGB LED の入力につなげるかわりに、それぞれの側で個別にコントローラの出力ピンが直接 RGB LED の入力に繋がっているときは、この定義が必要です。
* `#define RGBLED_SPLIT { 6, 6 }`
* 分割キーボードの各半分の `RGB_DI_PIN` に直接配線されている接続されている LED の数
* 最初の値は左半分の LED の数を示し、2番目の値は右半分です。
* RGBLED_SPLIT が定義されている場合、RGBLIGHT_SPLIT は暗黙的に定義されます。
* `#define RGBLIGHT_HUE_STEP 12`
* 色相の増減時のステップ単位
* `#define RGBLIGHT_SAT_STEP 25`
* 彩度の増減時のステップ単位
* `#define RGBLIGHT_VAL_STEP 12`
* 値(明度)の増減時のステップ単位
* `#define RGBW`
* RGBW LED のサポートを有効にします
## マウスキーオプション
* `#define MOUSEKEY_INTERVAL 20`
* `#define MOUSEKEY_DELAY 0`
* `#define MOUSEKEY_TIME_TO_MAX 60`
* `#define MOUSEKEY_MAX_SPEED 7`
* `#define MOUSEKEY_WHEEL_DELAY 0`
## 分割キーボードオプション
分割キーボード固有のオプション。あなたの rules.mk に 'SPLIT_KEYBOARD = yes' が有ることを確認してください。
* `SPLIT_TRANSPORT = custom`
* 標準の分割通信ルーチンをカスタムのものに置き換えることができます。現在、ARM ベースの分割キーボードはこれを使わなければなりません。
### 左右の設定
1つ覚えておかなければならないことは、USB ポートが接続されている側が常にマスター側であるということです。USB に接続されていない側はスレーブです。
分割キーボードの左右を設定するには、幾つかの異なる方法があります (優先度の順にリストされています):
1. `SPLIT_HAND_PIN` を設定します: 左右を決定するためにピンを読み込みます。ピンが high の場合、それが左側です。low であれば、その半分側が右側であると決定されます。
2. `EE_HANDS` を設定し、各半分に `eeprom-lefthand.eep`/`eeprom-righthand.eep` を書き込みます
* DFU ブートローダを搭載したボードでは、これらの EEPROM ファイルを書き込むために `:dfu-split-left`/`:dfu-split-right` を使うことができます
* Caterina ブートローダを搭載したボード (標準的な Pro Micros など)では、`:avrdude-split-left`/`:avrdude-split-right` を使ってください
* ARM DFU ブートローダを搭載したボード (Proton C など)では、`:dfu-util-split-left`/`:dfu-util-split-right` を使ってください
3. `MASTER_RIGHT` を設定します: USBポートに差し込まれた側はマスター側で右側であると決定されます(デフォルトの逆)
4. デフォルト: USB ポートに差し込まれている側がマスター側であり、左側であると見なされます。スレーブ側は右側です
#### 左右を定義します
* `#define SPLIT_HAND_PIN B7`
* high/low ピンを使って左右を決定します。low = 右手、high = 左手。`B7` を使っているピンに置き換えます。これはオプションで、`SPLIT_HAND_PIN` が未定義のままである場合、EE_HANDS メソッドまたは標準の Let's Splitが使っている MASTER_LEFT / MASTER_RIGHT 定義をまだ使うことができます。
* `#define EE_HANDS` (`SPLIT_HAND_PIN` が定義されていない場合のみ動作します)
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。
* `#define MASTER_RIGHT`
* マスター側が右側と定義されます。
### 他のオプション
* `#define USE_I2C`
* Serial の代わりに I2C を使う場合 (デフォルトは serial)
* `#define SOFT_SERIAL_PIN D0`
* serial を使う場合、これを定義します。`D0` あるいは `D1`,`D2`,`D3`,`E6`
* `#define MATRIX_ROW_PINS_RIGHT { <row pins> }`
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
* 右半分に左半分と異なるピン配置を指定したい場合は、`MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT` を定義することができます。現在のところ、`MATRIX_ROW_PINS` のサイズは `MATRIX_ROW_PINS_RIGHT` と同じでなければならず、列の定義も同様です。
* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* 右半分に左半分と異なる直接ピン配置を指定したい場合は、`DIRECT_PINS_RIGHT` を定義することができます。現在のところ、`DIRECT_PINS` のサイズは `DIRECT_PINS_RIGHT` と同じでなければなりません。
* `#define RGBLED_SPLIT { 6, 6 }`
* [RGB ライト設定](#rgb-light-configuration)を見てください。
* `#define SELECT_SOFT_SERIAL_SPEED <speed>` (デフォルトの速度は1です)
* serial 通信を使う時のプロトコルの速度を設定します。
* 速度:
* 0: 約 189kbps (実験目的のみ)
* 1: 約 137kbps (デフォルト)
* 2: 約 75kbps
* 3: 約 39kbps
* 4: 約 26kbps
* 5: 約 20kbps
* `#define SPLIT_USB_DETECT`
* マスタ/スレーブを委任する時に(タイムアウト付きで) USB 接続を検出します
* ARM についてはデフォルトの挙動
* AVR Teensy については必須
* `#define SPLIT_USB_TIMEOUT 2500`
* `SPLIT_USB_DETECT` を使う時のマスタ/スレーブを検出する場合の最大タイムアウト
# `rules.mk` ファイル
これは、トップレベルの `Makefile` から include される [make](https://www.gnu.org/software/make/manual/make.html) ファイルです。これは特定の機能を有効または無効にするだけでなく、コンパイルする MCU に関する情報を設定するために使われます。
## ビルドオプション
* `DEFAULT_FOLDER`
* キーボードに1つ以上のサブフォルダがある場合にデフォルトのフォルダを指定するために使われます。
* `FIRMWARE_FORMAT`
* ビルドの後でルート `qmk_firmware` フォルダにコピーされる形式 (bin, hex) を定義します。
* `SRC`
* コンパイル・リンクリストにファイルを追加するために使われます。
* `LIB_SRC`
* コンパイル・リンクリストにライブラリとしてファイルを追加するために使われます。
`LIB_SRC` で指定されたファイルは、`SRC` で指定されたファイルの後にリンクされます。
例えば、次のように指定した場合:
```
SRC += a.c
LIB_SRC += lib_b.c
SRC += c.c
LIB_SRC += lib_d.c
```
リンク順は以下の通りです。
```
... a.o c.o ... lib_b.a lib_d.a ...
```
* `LAYOUTS`
* このキーボードがサポートする[レイアウト](ja/feature_layouts.md)のリスト
* `LINK_TIME_OPTIMIZATION_ENABLE`
* キーボードをコンパイルする時に、Link Time Optimization (`LTO`) を有効にします。これは処理に時間が掛かりますが、コンパイルされたサイズを大幅に減らします (そして、ファームウェアが小さいため、追加の時間は分からないくらいです)。ただし、`LTO` が有効な場合、古いマクロと関数の機能が壊れるため、自動的にこれらの機能を無効にします。これは `NO_ACTION_MACRO` と `NO_ACTION_FUNCTION` を自動的に定義することで行われます。
* `LTO_ENABLE`
* LINK_TIME_OPTIMIZATION_ENABLE と同じ意味です。`LINK_TIME_OPTIMIZATION_ENABLE` の代わりに `LTO_ENABLE` を使うことができます。
## AVR MCU オプション
* `MCU = atmega32u4`
* `F_CPU = 16000000`
* `ARCH = AVR8`
* `F_USB = $(F_CPU)`
* `OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT`
* `BOOTLOADER = atmel-dfu` と以下のオプション:
* `atmel-dfu`
* `lufa-dfu`
* `qmk-dfu`
* `halfkay`
* `caterina`
* `bootloadHID`
* `USBasp`
## 機能オプション
これらを使って特定の機能のビルドを有効または無効にします。有効にすればするほどファームウェアが大きくなり、MCU には大きすぎるファームウェアを構築するリスクがあります。
* `BOOTMAGIC_ENABLE`
* 仮想 DIP スイッチ設定
* `MOUSEKEY_ENABLE`
* マウスキー
* `EXTRAKEY_ENABLE`
* オーディオ制御とシステム制御
* `CONSOLE_ENABLE`
* デバッグ用コンソール
* `COMMAND_ENABLE`
* デバッグ及び設定用のコマンド
* `COMBO_ENABLE`
* キーコンボ機能
* `NKRO_ENABLE`
* USB N-キーロールオーバー - これが動作しない場合は、ここを見てください: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `AUDIO_ENABLE`
* オーディオサブシステムを有効にします。
* `RGBLIGHT_ENABLE`
* キーボードアンダーライト機能を有効にします
* `LEADER_ENABLE`
* リーダーキーコードを有効にします
* `MIDI_ENABLE`
* MIDI 制御
* `UNICODE_ENABLE`
* Unicode
* `BLUETOOTH_ENABLE`
* Adafruit EZ-Key HID で Bluetooth を有効にするレガシーオプション。BLUETOOTH を見てください
* `BLUETOOTH`
* 現在のオプションは、AdafruitEzKey、AdafruitBLE、RN42
* `SPLIT_KEYBOARD`
* 分割キーボード (let's split や bakingpy のキーボードのようなデュアル MCU) のサポートを有効にし、quantum/split_common にある全ての必要なファイルをインクルードします
* `CUSTOM_MATRIX`
* 標準マトリックス走査ルーチンを独自のものに置き換えることができます。
* `DEBOUNCE_TYPE`
* 標準キーデバウンスルーチンを代替または独自のものに置き換えることができます。
* `WAIT_FOR_USB`
* キーボードが起動する前に、USB 接続が確立されるのをキーボードに待機させます
* `NO_USB_STARTUP_CHECK`
* キーボードの起動後の usb サスペンドチェックを無効にします。通常、キーボードはタスクが実行される前にホストがウェイク アップするのを待ちます。分割キーボードは半分はウェイクアップコールを取得できませんが、マスタにコマンドを送信する必要があるため、役に立ちます。
## USB エンドポイントの制限
USB 経由でサービスを提供するために、QMK は USB エンドポイントを使う必要があります。
これらは有限なリソースです: 各マイクロコントローラは特定の数しか持ちません。
これは一緒に有効にできる機能を制限します。
利用可能なエンドポイントを超えると、ビルドエラーをひきおこします。
以下の機能は個別のエンドポイントを必要とするかもしれません:
* `MOUSEKEY_ENABLE`
* `EXTRAKEY_ENABLE`
* `CONSOLE_ENABLE`
* `NKRO_ENABLE`
* `MIDI_ENABLE`
* `RAW_ENABLE`
* `VIRTSER_ENABLE`
エンドポイントの使用率を向上させるために、HID 機能を組み合わせて1つのエンドポイントを使うようにすることができます。
デフォルトでは、`MOUSEKEY`、`EXTRAKEY` および `NKRO` が単一のエンドポイントに結合されます。
基本キーボード機能も、`KEYBOARD_SHARED_EP = yes` を設定することで同じエンドポイントに結合することができます。
これによりもう1つのエンドポイントが解放されますが、一部の BIOS ではブートキーボードプロトコルの切り替えを実装しないため、キーボードが動作しなくなるかもしれません。
マウスの結合も、ブートマウス互換性を破壊します。
この機能が必要な場合は、`MOUSE_SHARED_EP = no` を設定することで、マウスを結合しないようにすることができます。

173
docs/ja/contributing.md Normal file
View File

@@ -0,0 +1,173 @@
# 貢献方法
<!---
original document: d47809575:docs/contributing.md
git diff d47809575 HEAD -- docs/contributing.md | cat
-->
👍🎉 まず、これを読み貢献する時間を作ってくれてありがとうございます!🎉👍
サードパーティの貢献は、QMK の成長と改善に役立ちます。プルリクエストと貢献プロセスを貢献者とメンテナの両方にとって便利で簡単なものにしたいです。この目的のために、大きな変更をせずにプルリクエストが受け入れられるように貢献者向けのガイドラインをまとめました。
* [プロジェクトの概要](#project-overview)
* [コーディング規約](#coding-conventions)
* [一般的なガイドライン](#general-guidelines)
* [行動規範は私にとって何を意味しますか?](#what-does-the-code-of-conduct-mean-for-me)
## この全てを読みたくはありません!単純に質問があります!
QMK について質問したい場合は、[OLKB Subreddit](https://reddit.com/r/olkb) あるいは [Discord](https://discord.gg/Uq7gcHh) ですることができます。
以下の事を覚えておいてください:
* 誰かがあなたの質問に答えるのに数時間掛かるかもしれません。しばらくお待ちください!
* QMK に関わる全ての人が彼らの時間とエネルギーを提供しています。QMK に関する作業や質問への回答に対する報酬はありません。
* できるだけ簡単に答えられるように質問してみてください。その方法が分からない場合は、以下に幾つかの良いガイドがあります:
* https://opensource.com/life/16/10/how-ask-technical-questions
* http://www.catb.org/esr/faqs/smart-questions.html
# プロジェクトの概要 :id=project-overview
QMK は主に C で書かれており、特定の機能と部品は C++ で書かれています。QMK は、キーボードの中の組み込みプロセッサ、特に AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) と ARM ([ChibiOS](http://www.chibios.com)) を対象にしています。すでに Arduino プログラミングに精通している場合は、多くの概念と制限がおなじみのものです。QMK に貢献するには Arduino を使用した経験は必要ありません。
<!-- FIXME: We should include a list of resources for learning C here. -->
# どこで助けを得られますか?
助けが必要であれば、[issue を開く](https://github.com/qmk/qmk_firmware/issues) か [Discord で会話する](https://discord.gg/Uq7gcHh)ことができます。
# どうやって貢献することができますか?
以前にオープンソースに貢献したことはありませんか? QMK で貢献がどのように機能するかが疑問ですか? ここに簡単な説明があります!
0. [GitHub](https://github.com) アカウントにサインアップします。
1. 貢献するためのキーマップをまとめるか、解決に興味がある[問題を見つける](https://github.com/qmk/qmk_firmware/issues)、あるいは追加したい[機能](https://github.com/qmk/qmk_firmware/issues?q=is%3Aopen+is%3Aissue+label%3Afeature)を見つけます。
2. 問題に関連付けられているリポジトリをあなたの GitHub アカウントにフォークします。これは、`GitHub上のあなたのユーザー名/qmk_firmware` の下にリポジトリのコピーを持つことを意味します。
3. `git clone https://github.com/GitHub上のあなたのユーザー名/repository-name.git` を使ってローカルマシンにリポジトリをクローンします。
4. 新しい機能に取り組んでいる場合は、issue を開きこれから行う作業について話し合うことを検討してください。
5. `git checkout -b branch-name-here` を使って修正用の新しいブランチを作成します。
6. 解決しようとしている問題、あるいは追加したい機能について適切な変更を加えます。
7. `git add insert-paths-of-changed-files-here` を使って変更されたファイルの内容を git がプロジェクトの状態を管理するために使用する "snapshot"、インデックスとしても知られている、に追加します。
8. `git commit -m "Insert a short message of the changes made here"` を使って、説明的なメッセージとともにインデックスの内容を保存します。
9. `git push origin branch-name-here` を使って GitHub 上のリポジトリに変更をプッシュします。
10. プルリクエストを [QMK Firmware](https://github.com/qmk/qmk_firmware/pull/new/master) にサブミットします。
11. 行われた変更の簡単な説明と、変更に関する問題またはバグ番号を使って、プルリクエストにタイトルを付けます。例えば、issue に "Added more log outputting to resolve #4352" のようなタイトルをつけることができます。
12. プルリクエストの説明では、行った変更、行ったプルリクエストに存在すると思われる問題、およびメンテナに対する質問を説明します。プルリクエストが完ぺきではない場合(プルリクエストが無い場合)でも問題ありません。レビュワーが問題の修正と改善を手伝います。
13. プルリクエストがメンテナによってレビューされるのを待ちます。
14. レビューをしているメンテナが変更を推奨する場合は、プルリクエストに変更を加えます。
15. プルリクエストがマージされた後で成功を祝います!
# コーディング規約 :id=coding-conventions
私たちのスタイルのほとんどは簡単に理解できます。C あるいは Python のいずれかに精通している場合は、ローカルスタイルにそれほど問題はないはずです。
* [コーディング規約 - C](ja/coding_conventions_c.md)
* [コーディング規約 - Python](ja/coding_conventions_python.md)
# 一般的なガイドライン :id=general-guidelines
QMK には幾つかの異なるタイプの変更があり、それぞれ異なるレベルの厳密さが必要です。どのような種類の変更を行っても、次のガイドラインに留意してください。
* PR を論理単位に分割します。例えば、2つの個別の機能をカバーする1つの PR を送信するのではなく、代わりに機能ごとに個別の PR をサブミットします。
* コミットする前に、`git diff --check` を使って不要な空白を確認します。
* コードの変更が実際にコンパイルされることを確認してください。
* キーマップ: `make keyboard:your_new_keymap` がエラーを返さないことを確認してください。
* キーボード: `make keyboard:all` がエラーを返さないことを確認してください。
* コア: `make all` がエラーを返さないことを確認してください。
* コミットメッセージがそれ自体で理解できることを確認してください。最初の行に短い説明(70文字以内)を入れ、2行目は空にし、3行目以降では必要に応じてコミットを詳細に説明する必要があります。例:
```
kerpleplork の fronzlebop を調整します
kerpleplork はエラーコード 23 で連続的に失敗していました。根本的な原因は fronzlebop 設定で、これにより kerpleplork はN回の繰り返しごとにアクティブになります。
私が使用できるデバイスの限られた実験では、kerpleplork の混乱を避けるために 7 は十分高い値であることを示していますが、念のため ARM デバイスを持つ人たちからフィードバックを得たいです。
```
!> **重要:** デフォルト以外のキーマップ、ユーザスペースおよびレイアウトのようなユーザコードへのバグ修正あるいは改善に貢献したい場合は、PR にコードの元の提出者にタグをつけてください。Git と GitHub のスキルレベルに関係なく、多くのユーザは知らないうちにコードが変更されることに混乱したりイライラしたりするかもしれません。
## ドキュメント
ドキュメントは QMK への貢献を始める最も簡単な方法の1つです。ドキュメントが間違っているか不完全な場所を見つけ、これらを修正するのは簡単です私たちもドキュメントを編集する人を非常に必要としています。編集するスキルがあるが、どこにどのように飛び乗ればいいのか分からない場合は、[助けをもとめて](#where-can-i-go-for-help)ください!
全てのドキュメントは `qmk_firmware/docs` ディレクトリの中にあります。あるいは web ベースのワークフローを使いたい場合は、https://docs.qmk.fm/ の各ページの下部にある "Edit this page" リンクをクリックすることができます。
ドキュメントの中にコードの例を提供する場合は、ドキュメント内の他の場所で使用されている命名規則を順守してください。例えば、一貫性を保つために、`my_layers` あるいは `my_keycodes` として列挙型を標準化します:
```c
enum my_layers {
_FIRST_LAYER,
_SECOND_LAYER
};
enum my_keycodes {
FIRST_LAYER = SAFE_RANGE,
SECOND_LAYER
};
```
### ドキュメントのプレビュー
開発環境をセットアップした場合は、プルリクエストを開く前に以下のコマンドを `qmk_firmware/` フォルダから実行することで、あなたの変更をプレビューすることができます:
./bin/qmk docs
または、Python 3 のみがインストールされている場合:
python3 -m http.server 8936
その後、ウェブブラウザで、`http://localhost:8936/` を表示します。
## キーマップ
ほとんどの初めての QMK 貢献者は、個人のキーマップから始めます。キーマップの標準はかなりカジュアルなものにしようとしています(キーマップは結局のところ作成者の性格を反映しています)が、他の人があなたのキーマップを簡単に見つけて学ぶことができるように、これらのガイドラインに従うようにお願いします。
* [the template](documentation_templates.md) を使って `readme.md` を書きます。
* 全てのキーマップの PR は squash されるため、コミットがどのように squash されるかを気にする場合は、自分で行う必要があります。
* キーマップの PR に機能をまとめないでください。最初に機能をサブミットし、次にキーマップのための2つ目の PR をサブミットします。
* `Makefile` をキーマップフォルダに含めないでください(もう使われていません)。
* ファイルヘッダの著作権を更新します (`%YOUR_NAME%` を探します)
## キーボード
キーボードは QMK の存在理由です。一部のキーボードはコミュニティによって管理されていますが、他のキーボードはそれぞれのキーボードを作成する責任者によって管理されています。`readme.md` を見るとそのキーボードを管理しているのが誰かが分かります。特定のキーボードに関する質問がある場合、[Issue を開いて](https://github.com/qmk/qmk_firmware/issues)質問にメンテナをタグ付けしてください。(訳注: タグ付け は [メンションする](https://help.github.com/ja/github/writing-on-github/basic-writing-and-formatting-syntax#mentioning-people-and-teams) という意味です。)
また以下のガイドラインに従うことをお願いします:
* [the template](ja/documentation_templates.md) を使って `readme.md` を書きます。
* コミットの数を適切に保ってください。そうでなければあなたの PR を squash します。
* コア機能を新しいキーボードにまとめないでください。最初に機能をサブミットし、次にキーボード用に別の PR をサブミットしてください。
* `.c`/`.h` ファイルにすぐ上の親フォルダに従って名前を付けます。例えば、`/keyboards/<kb1>/<kb2>/<kb2>.[ch]`
* `Makefile` をキーボードフォルダに含めないでください(もう使われていません)
* ファイルヘッダの著作権を更新します (`%YOUR_NAME%` を探します)
## Quantum/TMK コア
新しい機能をビルドするために多くの作業を行う前に、最適な方法で実装していることを確認する必要があります。[QMK の理解](ja/understanding_qmk.md)を読むことで、QMK の基本的な理解を得ることができます。これはあなたを QMK のプログラムフローのツアーに連れて行きます。ここから、あなたのアイデアを実装するための最良の方法の感覚をつかむために、私たちと話す必要があります。これを行うには主に2つの方法があります:
* [Discord でのチャット](https://discord.gg/Uq7gcHh)
* [Issue を開く](https://github.com/qmk/qmk_firmware/issues/new)
機能とバグ修正の PR は全てのキーボードに影響します。また、私たちは QMK の再編も進めています。このため、実装が行われる前に特に重要な変更について議論することが特に重要です。最初に私たちと話をせずに PR を開いた場合、あなたの選択が私たちの計画した方向とうまく合わない場合は幾つかの大きな再作業を行う覚悟をしてください。
機能やバグの修正に取り組む時に留意すべき幾つかの事があります。
* **デフォルトで無効** - QMK がサポートするほとんどのチップでメモリがかなり制限されており、現在のキーマップが壊れていないことが重要です。ですので、あなたの機能をオフにするのではなく**オン**にするようにしてください。デフォルトでオンにすべき場合、あるいはコードのサイズを小さくする必要がある場合は、相談してください。
* **サブミットする前にローカルでコンパイル** - これが明白であることを願っていますが、コンパイルする必要があります。私たちの Travis システムは全ての問題をキャッチしますが、結果が返ってくるのを待つ代わりに幾つかのキーボードをローカルでコンパイルする方が一般的に速いです。
* **リビジョンと異なるチップベースを考慮** - 僅かに異なる設定、さらには異なるチップベースを可能にするリビジョンを持つキーボードが幾つかあります。ARM および AVR でサポートされる機能を作成する、あるいは動作しないプラットフォームでは自動的に無効化するようにしてください。
* **機能の説明** - 新しいファイルあるいは既存のファイルの一部として、`docs/` の中に文章化します。文章化しないと、他の人はあなたの苦労から利益を得ることができません。
また以下のガイドラインに従うことをお願いします:
* コミットの数を適切に保ってください。そうでなければあなたの PR を squash します。
* キーボードあるいはキーマップをコアの変更にまとめないでください。コアの変更を最初にサブミットしてください。
* 機能のための[ユニット テスト](ja/unit_testing.md)を書いてください。
* 編集しているファイルのスタイルに従ってください。スタイルが明確でないか、スタイルが混在している場合は、上記の[コーディング規約](#coding-conventions)に準拠する必要があります。
## リファクタリング
QMK で物事がどのようにレイアウトされるかについて明確なビジョンを維持するために、私たちはリファクタリングを詳細に計画し、変更をする協力者がいます。リファクタリングのアイデアあるいは提案がある場合は、[issue を開いてください](https://github.com/qmk/qmk_firmware/issues)。QMK を改善する方法についてお話ししたいと思います。
# 行動規範は私にとって何を意味しますか? :id=what-does-the-code-of-conduct-mean-for-me
私たちの[行動規範](https://github.com/qmk/qmk_firmware/blob/master/CODE_OF_CONDUCT.md)は、身元に関係なくあなたがプロジェクトの全員を敬意と礼儀を持って扱う責任があることを意味します。あなたが行動規範に記載されている不適切な行動やコメントの被害者である場合は、私たちはあなたのためにここにおり、私たちのコードに従って虐待者が適切に懲戒されるように最善を尽くします。

View File

@@ -0,0 +1,53 @@
# Zadig を使ったブートローダドライバのインストール
<!---
original document: d598f01cb:docs/driver_installation_zadig.md
git diff d598f01cb HEAD -- docs/driver_installation_zadig.md | cat
-->
QMK はホストにたいして通常の HID キーボードデバイスとして振る舞うため特別なドライバは必要ありません。しかし、Windows でのキーボードへの書き込みは、多くの場合、キーボードをリセットした時に現れるブートローダデバイスで*行います*。
2つの注目すべき例外があります: 通常 Pro Micro で見られる Caterina ブートローダや、PJRC Teensy に書き込まれている HalfKay ブートローダは、それぞれシリアルポートと汎用 HID デバイスとして振る舞うため、ドライバは必要ありません。
[Zadig](https://zadig.akeo.ie/) ユーティリティを使うことをお勧めします。MSYS2 あるいは WSL を使って開発環境をセットアップした場合、`qmk_install.sh` スクリプトはドライバをインストールするかどうかをたずねます。
## インストール
`RESET` キーコード (別のレイヤにあるかもしれません)を押すか、通常はキーボードの下面にあるリセットスイッチを押して、キーボードをブートローダモードにします。どちらもキーボードに無い場合は、Escape または Space+`B` を押しながら接続してみてください (詳細は、[ブートマジック](ja/feature_bootmagic.md) ドキュメントを見てください)。一部のキーボードはブートマジックの代わりに[コマンド](ja/feature_command.md)を使います。この場合、キーボードが接続されている状態で「左Shift + 右Shift + `B`」あるいは「左Shift + 右Shift + Escape」を押すと、ブートローダモードに入ることができます。
一部のキーボードはブートローダに入るために特定の操作をする必要があります。例えば、[ブートマジック Lite](ja/feature_bootmagic.md#bootmagic-lite) キー (デフォルト: Escape) は別のキー(例えば、左Control)かもしれません。また、コマンドを有効にするキーの組み合わせ (デフォルト: 左Shift + 右Shift) は何か他のキー(例えば 左Control + 右Control)を押し続ける必要がある場合があります。不明な場合は、キーボードの README ファイルを参照してください。
USBaspLoader を使ってデバイスをブートローダモードにするには、`BOOT` ボタンを押しながら `RESET` ボタンをタップしてください。
あるいは `BOOT` を押し続けながら USB ケーブルを挿入します。
Zadig は自動的にブートローダデバイスを検知します。**Options → List All Devices** を確認する必要がある場合があります。
- Atmel AVR MCU を搭載したキーボードの場合、ブートローダは `ATm32U4DFU` に似た名前が付けられ、ベンダー ID は `03EB` です。
- USBasp ブートローダは `USBasp` として表示され、VID/PID は`16C0:05DC` です。
- QMK-DFU ブートローダを使って書き込まれた AVR キーボードは `<keyboard name> Bootloader` という名前が付けられ、VID は `03EB` です。
- ほとんどの ARM キーボードでは、`STM32 BOOTLOADER` と呼ばれ、VID/PID は `0483:DF11` です。
!> Zadig が `HidUsb` ドライバを使用する1つ以上のデバイスを表示する場合、キーボードはおそらくブートローダモードではありません。矢印はオレンジ色になり、システムドライバの変更を確認するように求められます。この場合、続行**しないでください**
矢印が緑色で表示されたら、ドライバを選択し、**Install Driver** をクリックします。`libusb-win32` ドライバは通常 AVR で動作し、`WinUSB`は ARM で動作しますが、それでもキーボードに書き込みできない場合は、リストから異なるドライバをインストールしてみてください。msys2 を使ってコマンドライン経由で USBaspLoader デバイスに書き込むには、`libusbk` ドライバがお勧めです。そうではなく書き込みに QMK Toolbox を使っている場合は `libusb-win32` がうまく動作します。
![ブートローダドライバが正常にインストールされた Zadig](https://i.imgur.com/b8VgXzx.png)
最後に、新しいドライバがロードされたことを確認するためにキーボードのプラグを抜いて再接続します。書き込みに QMK Toolbox を使う場合は、ドライバの変更を認識しない場合があるため、QMK Toolkit を終了して再起動します。
## 間違ったデバイスのインストールからの回復
キーボードが入力できなくなった場合は、ブートローダではなくキーボード自体のドライバを間違って入れ替えた可能性があります。これはキーボードがブートローダモードでない場合に起こりえます。これは Zadig で簡単に確認することができます - 健全なキーボードには、全てのインタフェースに `HidUsb` ドライバがインストールされています:
![Zadig から見た健全なキーボード](https://i.imgur.com/Hx0E5kC.png)
デバイスマネージャーを開き、キーボードと思われるデバイスを探します。
![デバイスマネージャーにおける、間違ったドライバがインストールされたキーボード](https://i.imgur.com/L3wvX8f.png)
右クリックし、**デバイスのアンインストール** をクリックします。最初に **このデバイスのドライバーソフトウェアを削除します** にチェックが付いていることを確認してください。
!["ドライバの削除"にチェックボックスにチェックが付いた、デバイスのアンインストールダイアログ](https://i.imgur.com/aEs2RuA.png)
**Action → Scan for hardware changes** をクリックします。この時点で、再び入力できるようになっているはずです。Zadig でキーボードデバイスが `HidUsb` ドライバを使っていることを再確認します。そうであれば完了です。キーボードは再び機能するはずです!
?> Windows が新しいドライバを使えるようにするために、この時点でコンピュータを完全に再起動する必要があるかもしれません。

11
docs/ja/faq.md Normal file
View File

@@ -0,0 +1,11 @@
# よくある質問
<!---
original document: d598f01cb:docs/faq.md
git diff d598f01cb HEAD -- docs/faq.md | cat
-->
* [一般](ja/faq_general.md)
* [QMK のビルドあるいはコンパイル](ja/faq_build.md)
* [QMK のデバッグとトラブルシューティング](ja/faq_debug.md)
* [キーマップ](ja/faq_keymap.md)

160
docs/ja/faq_build.md Normal file
View File

@@ -0,0 +1,160 @@
# よくあるビルドの質問
<!---
original document: 0f43c2652:docs/faq_build.md
git diff 0f43c2652 HEAD -- docs/faq_build.md | cat
-->
このページは QMK のビルドに関する質問を説明します。まだビルドをしていない場合は、[ビルド環境のセットアップ](ja/getting_started_build_tools.md) および [Make 手順](ja/getting_started_make_guide.md)ガイドを読むべきです。
## Linux でプログラムできません
デバイスを操作するには適切な権限が必要です。Linux ユーザの場合は、以下の `udev` ルールに関する指示を見てください。`udev` に問題がある場合は、回避策は `sudo` コマンドを使うことです。このコマンドに慣れていない場合は、`man sudo` コマンドでマニュアルを確認するか、[この web ページを見てください](https://linux.die.net/man/8/sudo)。
コントローラが ATMega32u4 の場合の `sudo` の使い方の例:
$ sudo dfu-programmer atmega32u4 erase --force
$ sudo dfu-programmer atmega32u4 flash your.hex
$ sudo dfu-programmer atmega32u4 reset
あるいは、単純に:
$ sudo make <keyboard>:<keymap>:dfu
`make``sudo` で実行することは一般的には良い考えでは***なく***、可能であれば前者の方法のいずれかを使うべきです。
### Linux の `udev` ルール
Linux では、MCU にアクセスするには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこれらのファイルを配置することで、アクセスすることができます。権限の追加が完了したら、以下を実行します:
```console
sudo udevadm control --reload-rules
sudo udevadm trigger
```
**/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"
```
**/etc/udev/rules.d/54-input-club-keyboard.rules:**
```
# Input Club keyboard bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
```
**/etc/udev/rules.d/55-caterina.rules:**
```
# ModemManager should ignore the following devices
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"
```
**注意:** ModemManager フィルタリングは厳格モードでは無い場合のみ動作します。以下のコマンドでその設定を変更することができます:
```console
sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service
sudo systemctl daemon-reload
sudo systemctl restart ModemManager
```
**/etc/udev/rules.d/56-dfu-util.rules:**
```
# stm32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666"
# Generic stm32
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
```
**/etc/udev/rules.d/57-bootloadhid.rules:**
```
# bootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", MODE:="0666"
```
### Linux のブートローダモードで Serial デバイスが検知されない
カーネルがデバイスを適切にサポートしていることを確認してください。デバイスが、Pro Micro (Atmega32u4) のように USB ACM を使う場合、`CONFIG_USB_ACM=y` を含めるようにしてください。他のデバイスは `USB_SERIAL` およびそのサブオプションを必要とするかもしれません。
## DFU ブートローダの不明なデバイス
Windows 上でキーボードを書き込む時に発生する問題は、ブートローダ用に間違ったドライバがインストールされているか、全くインストールされていないかによるものがほとんどです。
QMK インストールスクリプト (MSYS2 あるいは WSL 内の `qmk_firmware` ディレクトリから `./util/qmk_install.sh`) を再実行するか、QMK Toolbox の再インストールでこの問題が解決するかもしれません。別のやり方として、手動で [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) パッケージをダウンロードして実行することができます。
それでもうまく行かない場合は、Zadig をダウンロードして実行する必要があります。詳細な情報は [Zadig を使ったブートローダドライバのインストール](ja/driver_installation_zadig.md)を見てください。
## USB VID と PID
`config.h` を編集することで任意の ID を使うことができます。おそらく未使用の ID を使っても、他の製品と衝突するとても低い可能性があることを除いて、実際には問題はありません。
QMK のほとんどのキーボードは、vendor ID として、`0xFEED` を使います。他のキーボードを調べて、ユニークな ID を選択してください。
またこれも見てください。
https://github.com/tmk/tmk_keyboard/issues/150
ここで本当にユニークな VID:PID を買うことができます。個人的な使用にはこれは必要ないと思います。
- 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
## AVR のための BOOTLOADER_SIZE
Teensy2.0++ ブートローダのサイズは 2048 バイトであることに注意してください。一部の Makefile には間違ったコメントがあります。
```
# 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
```
## MacOS での `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)`
これは brew での更新に関する問題で、avr-gcc が依存するシンボリックリンクを壊します。
解決法は全ての影響を受けたモジュールを削除し再インストールすることです。
```
brew rm avr-gcc
brew rm avr-gcc@8
brew rm dfu-programmer
brew rm dfu-util
brew rm gcc-arm-none-eabi
brew rm arm-gcc-bin@8
brew rm avrdude
brew install avr-gcc@8
brew install dfu-programmer
brew install dfu-util
brew install arm-gcc-bin@8
brew install avrdude
brew link --force avr-gcc@8
brew link --force arm-gcc-bin@8
```
### `avr-gcc` と LUFA
`avr-gcc` を更新し、LUFA に関連するエラーが表示された場合、例えば:
`lib/lufa/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h:380:5: error: 'const' attribute on function returning 'void'`
今のところ、Homebrew で `avr-gcc` を 8 にロールバックする必要があります。
```
brew uninstall --force avr-gcc
brew install avr-gcc@8
brew link --force avr-gcc@8
```
### キーボードに書き込んだが何も起こらない、あるいはキーの押下が登録されない - ARM (rev6 planck、clueboard 60、hs60v2 など) でも同じ (Feb 2019)
ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなる*しれません*。EEPROM のリセットでこれが修正されます。
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使って eeprom のリセットを強制することができます。このイメージを書き込んだ後で、通常のファームウェアを書き込むと、キーボードが_通常_ の動作順序に復元されます。
[Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin)
いずれかの形式でブートマジックが有効になっている場合は、これも実行できるはずです (実行方法の詳細については、[ブートマジックドキュメント](feature_bootmagic.md)とキーボード情報を見てください)。

161
docs/ja/faq_debug.md Normal file
View File

@@ -0,0 +1,161 @@
# デバッグの FAQ
<!---
original document: 376419a4f:docs/faq_debug.md
git diff 376419a4f HEAD -- docs/faq_debug.md | cat
-->
このページは、キーボードのトラブルシューティングについての様々な一般的な質問を説明します。
# デバッグコンソール
## `hid_listen` がデバイスを認識できない
デバイスのデバッグコンソールの準備ができていない場合、以下のように表示されます:
```
Waiting for device:.........
```
デバイスが接続されると、*hid_listen* がデバイスを見つけ、以下のメッセージが表示されます:
```
Waiting for new device:.........................
Listening:
```
この 'Listening:' のメッセージが表示されない場合は、[Makefile] を `CONSOLE_ENABLE=yes` に設定してビルドしてみてください
Linux のような OS でデバイスにアクセスするには、権限が必要かもしれません。
- `sudo hid_listen` を試してください
## コンソールにメッセージが表示されない
以下を調べてください:
- *hid_listen* がデバイスを検出する。上記を見てください。
- **Magic**+d を使ってデバッグを有効にする。[マジックコマンド](https://github.com/tmk/tmk_keyboard#magic-commands)を見てください。
- `debug_enable=true` を設定します。[テストとデバッグ](ja/newbs_testing_debugging.md#debugging)を見てください
- デバッグ print の代わりに 'print' 関数を使ってみてください。**common/print.h** を見てください。
- コンソール機能を持つ他のデバイスを切断します。[Issue #97](https://github.com/tmk/tmk_keyboard/issues/97) を見てください。
## Linux あるいは UNIX のようなシステムはスーパーユーザ権限を必要とします
権限付きで *hid_listen* を実行するために 'sudo' を使ってください。
```
$ sudo hid_listen
```
または rules ディレクトリにファイルを置いて、TMK デバイスのための *udev rule* を追加します。ディレクトリは各システムで異なるかもしれません。
File: /etc/udev/rules.d/52-tmk-keyboard.rules (Ubuntu の場合)
```
# tmk keyboard products https://github.com/tmk/tmk_keyboard
SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
```
***
# 雑多なこと
## 安全性の考慮
あなたはおそらくキーボードを「文鎮化」したくないでしょう。文鎮化するとファームウェアを書き換えられないようになります。リスクがあまりに高い(そしてそうでないかもしれない)ものの一部のリストを示します。
- キーボードマップに RESET が含まれない場合、DFU モードに入るには、PCB のリセットボタンを押す必要があります。底部のネジを外す必要があります。
- tmk_core / common にあるファイルを触るとキーボードが操作不能になるかもしれません。
- .hex ファイルが大きすぎると問題を引き起こします; `make dfu` コマンドはブロックを削除し、
サイズを検査し(おっと、間違った順序です!)、エラーを出力し、
キーボードへの書き込みに失敗し、DFU モードのままになります。
- この目的のためには、Planck の最大の .hex ファイルサイズは 7000h (10進数で28672)であることに注意してください。
```
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
```
- 上のファイルのサイズは 22396/577ch で、28672/7000h より小さいです
- 適切な替わりの .hex ファイルがある限り、それをロードして再試行することができます
- あなたがキーボードの Makefile で指定したかもしれない一部のオプションは、余分なメモリを消費します; BOOTMAGIC_ENABLE、MOUSEKEY_ENABLE、EXTRAKEY_ENABLE、CONSOLE_ENABLE、API_SYSEX_ENABLE に注意してください
- DFU ツールは(オプションの余計なフルーツサラダを投げ込まない限り)ブートローダに書き込むことを許可しないので、
ここにはリスクはほとんどありません。
- EEPROM の書き込みサイクルは、約100000です。ファームウェアを繰り返し継続的に書き換えるべきではありません。それは最終的に EEPROM を焼き焦がします。
## NKRO が動作しません
最初に、**Makefile** 内でビルドオプション `NKRO_ENABLE` を使ってファームウェアをコンパイルする必要があります。
**NKRO** がまだ動作しない場合は、`Magic` **N** コマンド(デフォルトでは `LShift+RShift+N`)を試してみてください。**NKRO** モードと **6KRO** モード間を一時的に切り替えるためにこのコマンドを使うことができます。**NKRO** が機能しない状況、特に BIOS の場合は **6KRO** モードに切り替える必要があります。
ファームウェアを `BOOTMAGIC_ENABLE` でビルドした場合、`ブートマジック` **N** コマンドで切り替える必要があります (デフォルトでは `Space+N`)。この設定は EEPROM に格納され、電源を入れ直しても保持されます。
https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
## TrackPoint はリセット回路が必要です (PS/2 マウスサポート)
リセット回路が無いとハードウェアの不適切な初期化のために一貫性の無い結果になります。TPM754 の回路図を見てください。
- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## 16 を超えるマトリックの列を読み込めない
列が 16 を超える場合、[matrix.h] の `read_cols()` 内の `1<<16` の代わりに `1UL<<16` を使ってください。
C では、AVR の場合 `1` は [16 bit] である [int] 型の1を意味し、15 を超えて左にシフトすることはできません。`1<<16` すると予期しないゼロが発生します。`1UL` として [unsigned long] 型を使う必要があります。
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## 特別なエクストラキーが動作しない (システム、オーディオコントロールキー)
QMK でそれらを使うには、`rules.mk` 内で `EXTRAKEY_ENABLE` を定義する必要があります。
```
EXTRAKEY_ENABLE = yes # オーディオ制御とシステム制御
```
## スリープから復帰しない
Windows では、**デバイスマネージャ**の**電源の管理**タブ内の `このデバイスで、コンピュータのスタンバイ状態を解除できるようにする` 設定を調べてください。また BIOS 設定も調べてください。
スリープ中に任意のキーを押すとホストが起動するはずです。
## Arduino を使っていますか?
**Arduino のピンの命名は実際のチップと異なることに注意してください。** 例えば、Arduino のピン `D0``PD0` ではありません。回路図を自身で確認してください。
- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
Arduino の Leonardo と micro には **ATMega32U4** が載っていて、TMK 用に使うことができますが、Arduino のブートローダが問題になることがあります。
## JTAG を有効にする
デフォルトでは、キーボードが起動するとすぐに JTAG デバッグインタフェースが無効になります。JTAG 対応 MCU は `JTAGEN` ヒューズが設定された状態で出荷されており、キーボードがスイッチマトリックス、LED などに使用している可能性のある MCU の特定のピンを乗っ取ります。
JTAG を有効にしたままにしたい場合は、単に以下のものを `config.h` に追加します:
```c
#define NO_JTAG_DISABLE
```
## USB 3 の互換性
USB 3 ポートで問題がある人がいると聞きました。USB 2 ポートを試してください。
## Mac の互換性
### OS X 10.11 と Hub
https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
## リジューム (スリープとウェークアップ)/電源サイクルの問題
一部の人がキーボードが BIOS で動作しなくなった、またはリジューム(電源サイクル)の後で動作しなくなったと報告しました。
今のところ、この問題の根本は明確ではないですが、幾つかのビルドオプションが関係しているようです。Makefileで、`CONSOLE_ENABLE``NKRO_ENABLE``SLEEP_LED_ENABLE` あるいは他のオプションを無効にしてみてください。
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
## FLIP が動作しない
### `AtLibUsbDfu.dll` が見つかりません
デバイスマネージャから現在のドライバを削除し、FLIP が提供するものを再インストールします。
http://imgur.com/a/bnwzy

20
docs/ja/faq_general.md Normal file
View File

@@ -0,0 +1,20 @@
# よくある質問
<!---
original document: d598f01cb:docs/faq_general.md
git diff d598f01cb HEAD -- docs/faq_general.md | cat
-->
## QMK とは何か?
Quantum Mechanical Keyboard の略である [QMK](https://github.com/qmk) は、カスタムキーボードのためのツールをビルドしている人々のグループです。[TMK](https://github.com/tmk/tmk_keyboard) の大幅に修正されたフォークである [QMK ファームウェア](https://github.com/qmk/qmk_firmware)から始まりました。
## QMK と TMK の違いは何か?
TMK は [Jun Wako](https://github.com/tmk) によって設計され実装されました。QMK は [Jack Humbert](https://github.com/jackhumbert) の Planck 用 TMK のフォークとして始まりました。しばらくして、Jack のフォークは TMK からかなり分岐し、2015年に Jack はフォークを QMK に名前を変えることにしました。
技術的な観点から、QMK は幾つかの新しい機能を追加した TMK に基づいています。最も注目すべきことは、QMK は利用可能なキーコードの数を増やし、`S()``LCTL()` および `MO()` などの高度な機能を実装するためにこれらを使っています。[キーコード](keycodes.md)でこれらのキーコードの完全なリストを見ることができます。
プロジェクトとコミュニティの管理の観点から、TMK は公式にサポートされている全てのキーボードを自分で管理しており、コミュニティのサポートも少し受けています。他のキーボード用に別個のコミュニティが維持するフォークが存在するか、作成できます。デフォルトでは少数のキーマップのみが提供されるため、ユーザは一般的にお互いにキーマップを共有しません。QMK は集中管理されたリポジトリを介して、キーボードとキーマップの両方を共有することを奨励しており、品質基準に準拠する全てのプルリクエストを受け付けます。これらはほとんどコミュニティで管理されますが、必要な場合は QMK チームも支援します。
どちらのアプローチもメリットとデメリットがあり、理に適う場合は TMK と QMK の間でコードは自由にやり取りされます。

149
docs/ja/faq_keymap.md Normal file
View File

@@ -0,0 +1,149 @@
# キーマップの FAQ
<!---
original document: 376419a4f:docs/faq_keymap.md
git diff 376419a4f HEAD -- docs/faq_keymap.md | cat
-->
このページは人々がキーマップについてしばしば持つ疑問について説明します。まだ読んだことが無い場合には、[キーマップの概要](ja/keymap.md)を最初に読むべきです。
## どのキーコードを使えますか?
あなたが利用可能なキーコードのインデックスについては、[キーコード](ja/keycodes.md)を見てください。より広範なドキュメントがある場合は、そこからリンクしてあります。
キーコードは実際には [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h) で定義されています。
## デフォルトのキーコードとは何か?
世界中で使用されている ANSI、ISO および JIS の3つの標準キーボードがあります。北米では主に ANSI が使われ、ヨーロッパおよびアフリカでは主に ISO が使われ、日本では JIS が使われます。言及されていない地域では、ANSI あるいは ISO が使われています。これらのレイアウトに対応するキーコードは以下の通りです:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
![キーボードのレイアウトイメージ](https://i.imgur.com/5wsh5wM.png)
## 一部のキーが入れ替わっているか、または動作しない
QMK には2つの機能、ブートマジックとコマンドがあり、これによりその場でキーボードの動作を変更することができます。これには Ctrl/Caps の交換、Gui の無効化、Alt/GUI の交換、Backspace/Backslash の交換、全てのキーの無効化およびその他の動作の変更が含まれますが、これらに限定されません。
迅速な解決策として、キーボードを接続している時に `Space`+`Backspace` を押してみてください。これはキーボードに保存されている設定をリセットし、これらのキーを通常の操作に戻します。うまく行かない場合は、以下を見てください:
* [ブートマジック](ja/feature_bootmagic.md)
* [コマンド](ja/feature_command.md)
## メニューキーが動作しない
ほとんどの最近のキーボードにある、`KC_RGUI``KC_RCTL` の間にあるキーは、実際には `KC_APP` と呼ばれます。これは、そのキーが発明された時に、関連する標準にすでに `MENU` という名前のキーが存在していたため、MS はそれを `APP` キーと呼ぶことを選択したためです。
## `KC_SYSREQ` が動作しません
`KC_SYSREQ` の代わりに、Print Screen(`KC_PSCREEN` あるいは `KC_PSCR`) のキーコードを使ってください。'Alt + Print Screen' のキーの組み合わせは、'システムリクエスト' と認識されます。
[issue #168](https://github.com/tmk/tmk_keyboard/issues/168) と以下を見てください
* http://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request
## 電源キーが動作しません
やや紛らわしいことに、QMK には2つの "Power" キーコードがあります: キーボード/キーパッド HID usage page では `KC_POWER`、Consumer page では `KC_SYSTEM_POWER` (あるいは `KC_PWR`)。
前者は macOS でのみ認識されますが、後者 `KC_SLEP` および `KC_WAKE` は3つの主要なオペレーティングシステム全てでサポートされるため、これらを使うことをお勧めします。Windows ではこれらのキーはすぐに機能しますが、macOS ではそれらはダイアログが表示されるまで押し続ける必要があります。
## ワンショットモディファイア
私の個人的な 'the' の問題を解決します。'The' ではなく 'the' あるいは 'THe' を間違って入力することがありました。ワンショットシフトはこれを軽減します。
https://github.com/tmk/tmk_keyboard/issues/67
## モディファイヤ/レイヤスタック
修飾キーあるいはレイヤは、レイヤの切り替えが適切に設定されていない場合、スタックするかもしれません。
修飾キーおよびレイヤ切り替えの場合、リリースイベント時に修飾キーの登録を解除する、もしくは前のレイヤに戻るために、目的のレイヤの同じ位置に `KC_TRANS` を配置する必要があります。
* 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
## メカニカルロックスイッチのサポート
この機能は [Alps](http://deskthority.net/wiki/Alps_SKCL_Lock) のような*メカニカルロックスイッチ*用です。以下を `config.h` に追加することで有効にすることができます:
```
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
```
この機能を有効にした後で、キーマップでキーコード `KC_LCAP``KC_LNUM` および `KC_LSCR` を使います。
古いビンテージメカニカルキーボードにはロックスイッチが付いている場合がありますが、最新のものにはありません。***ほとんどの場合この機能は必要なく、単にキーコード `KC_CAPS``KC_NLCK` および `KC_SLCK`*** を使います。
## セディーユ 'Ç' のような ASCII 以外の特別文字の入力
[ユニコード](ja/feature_unicode.md) 機能を見てください。
## macOS での `Fn` キー
ほとんどの Fn キーと異なり、Apple のキーボードの Fn キーには実際には独自のキーコードのようなものがあります。基本的な 6KRO HID レポートの6番目のキーコードの代わりになります -- つまり、Apple キーボードは実際には 5KRO のみです。
QMK にこのキーを送信させることは技術的に可能です。ただし、そうするには Fn キーの状態を追加するためにレポート形式の修正を必要とします。
さらに悪いことに、キーボードの VID と PID が実際の Apple のキーボードのものと一致しない限り、認識されません。公式の QMK がこの機能をサポートすることで法的な問題が起きるため、サポートされることはないでしょう。
詳細については、[この issue](https://github.com/qmk/qmk_firmware/issues/2179) を見てください。
## Mac OSX でサポートされるキーは?
このソースコードから、どのキーコードが OSX でサポートされるかを知ることができます。
`usb_2_adb_keymap` 配列は、キーボード/キーパッドページの Page usages を ADB スキャンコード(OSX 内部キーコード)にマップします。
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/Cosmo_USB2ADB.c
`IOHIDConsumer::dispatchConsumerEvent` は Consumer page usages を処理します。
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp
## Mac OSX での JIS キー
`無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` のような日本語 JIS キーボード固有のキーは OSX では認識されません。**Seil** を使ってこれらのキーを使うことができます。以下のオプションを試してください。
* PC キーボードで NFER キーを有効にする
* PC キーボードで XFER キーを有効にする
* PC キーボードで KATAKANA キーを有効にする
https://pqrs.org/osx/karabiner/seil.html
## RN-42 Bluetooth が Karabiner で動作しない
Karabiner - Mac OSX 上のキーマッピングツール - は、デフォルトでは RN-42 モジュールからの入力を無視します。Karabiner をキーボードで動作させるにはこのオプションを有効にする必要があります。
https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237
この問題の詳細についてはこれらを見てください。
https://github.com/tmk/tmk_keyboard/issues/213
https://github.com/tekezo/Karabiner/issues/403
## 単一のキーでの Esc と<code>&#96;</code>
[Grave Escape](feature_grave_esc.md) 機能を見てください。
## Mac OSX での Eject
`KC_EJCT` キーコードは OSX で動作します。https://github.com/tmk/tmk_keyboard/issues/250
Windows 10 はコードを無視し、Linux/Xorg は認識しますが、デフォルトではマッピングがありません。
実際の Apple キーボードにある Eject キーコードは実際には分かりません。HHKB は Mac モードでは Eject キー (`Fn+f`) に `F20` を使いますが、これはおそらく Apple の Eject キーコードと同じではありません。
## `action_util.c` の `weak_mods` と `real_mods` は何か
___改善されるべきです___
real_mods は実際の物理的な修飾キーの状態を保持することを目的にしていますが、weak_mods は実際の修飾キーの状態に影響しない仮想あるいは一時的なモディファイアの状態を保持します。
物理的な左シフトキーを押しながら ACTION_MODS_KEY(LSHIFT, KC_A) を入力するとします
weak_mods では、
* (1) 左シフトキーを押し続ける: real_mods |= MOD_BIT(LSHIFT)
* (2) ACTION_MODS_KEY(LSHIFT, KC_A) を押す: weak_mods |= MOD_BIT(LSHIFT)
* (3) ACTION_MODS_KEY(LSHIFT, KC_A) を放す: weak_mods &= ~MOD_BIT(LSHIFT)
real_mods はモディファイアの状態を維持します。
weak mods 無しでは、
* (1) 左シフトキーを押し続ける: real_mods |= MOD_BIT(LSHIFT)
* (2) ACTION_MODS_KEY(LSHIFT, KC_A) を押す: real_mods |= MOD_BIT(LSHIFT)
* (3) ACTION_MODS_KEY(LSHIFT, KC_A) を放す: real_mods &= ~MOD_BIT(LSHIFT)
ここで、real_mods は 'physical left shift' '物理的な左シフト' の状態を見失います。
キーボードレポートが送信される時、weak_mods は real_mods と論理和がとられます。
https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57

View File

@@ -0,0 +1,20 @@
# 助けを得る
<!---
original document: d598f01cb:docs/getting_started_getting_help.md
git diff d598f01cb HEAD -- docs/getting_started_getting_help.md | cat
-->
QMK に関して助けを得るための多くのリソースがあります。
## リアルタイム チャット
メインの [Discord server](https://discord.gg/Uq7gcHh) で QMK の開発者とユーザを見つけることができます。サーバには、ファームウェア、Toolbox、ハードウェアおよび Configurator についてチャットするための特定のチャンネルがあります。
## OLKB Subreddit
公式の QMK フォーラムは [reddit.com](https://reddit.com) の [/r/olkb](https://reddit.com/r/olkb) です。
## Github Issues
[GitHub で issue](https://github.com/qmk/qmk_firmware/issues) を開くことができます。issue が長期的な議論あるいはデバッグを必要とする場合は、特に便利です。

View File

@@ -0,0 +1,70 @@
# QMK で Github を使う方法
<!---
original document: d598f01cb:docs/getting_started_github.md
git diff d598f01cb HEAD -- docs/getting_started_github.md | cat
-->
Github は慣れていない人には少し注意が必要です - このガイドは、QMK におけるフォーク、クローン、プルリクエストのサブミットの各ステップについて説明します。
?> このガイドでは、あなたがコマンドラインでの実行にある程度慣れており、システムに git がインストールされていることを前提にしています。
[QMK Github ページ](https://github.com/qmk/qmk_firmware)を開くと、右上に "Fork" というボタンが見えます:
![Git でのフォーク](http://i.imgur.com/8Toomz4.jpg)
あなたが組織の一員である場合は、どのアカウントにフォークするかを選択する必要があります。ほとんどの場合、あなたの個人のアカウントにフォークしたいでしょう。フォークが完了したら(しばらく時間が掛かる場合があります)、"Clone or Download" ボタンをクリックします:
![Git からダウンロード](http://i.imgur.com/N1NYcSz.jpg)
必ず "HTTPS" を選択し、リンクを選択してコピーします:
![HTTPS リンク](http://i.imgur.com/eGO0ohO.jpg)
ここから、`git clone --recurse-submodules ` をコマンドラインに入力し、リンクを貼り付けます:
```
user@computer:~$ git clone --recurse-submodules https://github.com/whoeveryouare/qmk_firmware.git
Cloning into 'qmk_firmware'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 183883 (delta 5), reused 4 (delta 4), pack-reused 183874
Receiving objects: 100% (183883/183883), 132.90 MiB | 9.57 MiB/s, done.
Resolving deltas: 100% (119972/119972), done.
...
Submodule path 'lib/chibios': checked out '587968d6cbc2b0e1c7147540872f2a67e59ca18b'
Submodule path 'lib/chibios-contrib': checked out 'ede48346eee4b8d6847c19bc01420bee76a5e486'
Submodule path 'lib/googletest': checked out 'ec44c6c1675c25b9827aacd08c02433cccde7780'
Submodule path 'lib/lufa': checked out 'ce10f7642b0459e409839b23cc91498945119b4d'
Submodule path 'lib/ugfx': checked out '3e97b74e03c93631cdd3ddb2ce43b963fdce19b2'
```
ローカルマシンに QMK のフォークができるので、キーマップの追加、コンパイル、キーボードへの書き込みができます。変更に満足したら、以下のようにそれらをフォークへ追加、コミットおよびプッシュすることができます:
```
user@computer:~$ git add .
user@computer:~$ 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
user@computer:~$ 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
```
あなたの変更は今では Github 上のフォークにあります - フォーク (`https://github.com/<whoeveryouare>/qmk_firmware`)に戻ると、"New Pull Request" ボタンをクリックすることで新しいプルリクエストを作成することができます:
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg)
ここでは、コミットした内容を正確に確認することができます - 全て良いように見える場合は、"Create Pull Request" をクリックすることで最終的に承認することができます:
![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg)
サブミットの後で、私たちはあなたの変更について話し、変更を依頼し、最終的にそれを受け入れるでしょうQMK に貢献してくれてありがとう :)

View File

@@ -0,0 +1,65 @@
# はじめに
<!---
original document: d598f01cb:docs/getting_started_introduction.md
git diff d598f01cb HEAD -- docs/getting_started_introduction.md | cat
-->
このページでは、QMK プロジェクトで作業するために知っておくべき基本的な情報について説明しようと思います。Unix シェルの操作に精通していることを前提としていますが、C について、または make を使ったコンパイルについて精通しているとは想定していません。
## 基本的な QMK の構造
QMK は [Jun Wako](https://github.com/tmk) の [tmk_keyboard](https://github.com/tmk/tmk_keyboard) プロジェクトのフォークです。変更された元の TMK コードは、`tmk_core` フォルダで見つけることができます。プロジェクトへの QMK の追加は、`quantum` フォルダで見つけることができます。キーボードプロジェクトは `handwired` および `keyboard` フォルダで見つけることができます。
### ユーザスペースの構造
`users` フォルダ内は各ユーザのためのディレクトリです。これはユーザがキーボード間で使うかもしれないコードを置くためのフォルダです。詳細は[ユーザスペース機能](ja/feature_userspace.md) のドキュメントを見てください。
### キーボードプロジェクトの構造
`keyboards` フォルダ、そのサブフォルダ `handwired`、ベンダと製品のサブディレクトリ (例えば、`clueboard`) の中には、各キーボードプロジェクトのためのディレクトリ (例えば `qmk_firmware/keyboards/clueboard/2x1800`) があります。その中には、以下の構造があります:
* `keymaps/`: ビルドできる様々なキーマップ
* `rules.mk`: デフォルトの "make" オプションを設定するファイル。このファイルを直接編集しないでください。代わりにキーマップ固有の `rules.mk` を使ってください。
* `config.h`: デフォルトのコンパイル時のオプションを設定するファイル。このファイルを直接編集しないでください。代わりにキーマップ固有の `config.h` を使ってください。
* `info.json`: QMK Configurator のためのレイアウトの設定に使われるファイル。詳細は [Configurator サポート](ja/reference_configurator_support.md)を見てください。
* `readme.md`: キーボードの簡単な概要
* `<keyboardName>.h`: このファイルは、キーボードのスイッチマトリックスに対してキーボードレイアウトが定義されるファイルです。
* `<keyboardName>.c`: このファイルには、キーボードのためのカスタムコードがあります。
プロジェクトの構造についての詳細は、[QMK キーボードガイドライン](ja/hardware_keyboard_guidelines.md)を見てください。
### キーマップ構造
全てのキーマップフォルダには、以下のファイルがあります。`keymap.c` だけが必須で、残りのファイルが見つからない場合は、デフォルトのオプションが選択されます。
* `config.h`: キーマップを設定するためのオプション
* `keymap.c`: 全てのキーマップコード。必須
* `rules.mk`: 有効になっている QMK の機能
* `readme.md`: キーマップの説明。他の人が使う方法および機能の説明。imgur のようなサービスに画像をアップロードしてください。
# `config.h` ファイル
3つの `config.h` の場所が考えられます:
* キーボード (`/keyboards/<keyboard>/config.h`)
* ユーザスペース (`/users/<user>/config.h`)
* キーマップ (`/keyboards/<keyboard>/keymaps/<keymap>/config.h`)
ビルドシステムは自動的に上の順に config ファイルを取得します。前の `config.h` で設定された設定を上書きしたい場合は、変更したい設定の準備のために最初に定型コードを置く必要があります。
```
#pragma once
```
次に、前の `config.h` ファイルの設定を上書きするために、設定を `#undef` し再び `#define` する必要があります。
定型コードと設定は、以下のようになります:
```
#pragma once
// ここに上書きします!
#undef MY_SETTING
#define MY_SETTING 4
```

View File

@@ -1,8 +1,9 @@
# QMK 初心者ガイド
<!---
original document: ed0575fc8:docs/newbs.md
$ git diff ed0575fc8 HEAD docs/newbs.md
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: adf4acf59:docs/newbs.md
git diff adf4acf59 HEAD -- docs/newbs.md | cat
-->
QMK は、メカニカルキーボード用の強力なオープンソースファームウェアです。
@@ -18,18 +19,18 @@ QMK は[多くの趣味のキーボード](http://qmk.fm/keyboards/)をサポー
このガイドには7つの主要なセクションがあります。
* [はじめに](newbs_getting_started.md)
* [コマンドラインを使用して初めてのファームウェアを構築する](newbs_building_firmware.md)
* [オンライン GUI を使用して初めてのファームウェアを構築する](newbs_building_firmware_configurator.md)
* [ファームウェアを書きこむ](newbs_flashing.md)
* [テストとデバッグ](newbs_testing_debugging.md)
* [Git の最良の慣行](newbs_best_practices.md)
* [さらに学ぶための学習リソース](newbs_learn_more_resources.md)
* [はじめに](ja/newbs_getting_started.md)
* [コマンドラインを使用して初めてのファームウェアを構築する](ja/newbs_building_firmware.md)
* [オンライン GUI を使用して初めてのファームウェアを構築する](ja/newbs_building_firmware_configurator.md)
* [ファームウェアを書きこむ](ja/newbs_flashing.md)
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [QMK における Git 運用作法](ja/newbs_git_best_practices.md)
* [さらに学ぶための学習リソース](ja/newbs_learn_more_resources.md)
このガイドは、これまでソフトウェアをコンパイルしたことがない人を支援することに特化しています。
その観点から選択と推奨を行います。
これらの手順の多くには代替方法があり、これらの代替方法のほとんどをサポートしています。
タスクを達成する方法について疑問がある場合は、[案内を求めることができます](getting_started_getting_help.md)。
タスクを達成する方法について疑問がある場合は、[案内を求めることができます](ja/getting_started_getting_help.md)。
## 追加のリソース(英語)

View File

@@ -1,168 +0,0 @@
# Best Practices
<!---
original document: ed0575fc8:docs/newbs_best_practices.md
$ git diff ed0575fc8 HEAD docs/newbs_best_practices.md
-->
## Or, "How I Learned to Stop Worrying and Love Git."
This document aims to instruct novices in the best ways to have a smooth experience in contributing to QMK. We will walk through the process of contributing to QMK, detailing some ways to make this task easier, and then later we'll break some things in order to teach you how to fix them.
This document assumes a few things:
1. You have a GitHub account, and have [forked the qmk_firmware repository](getting_started_github.md) to your account.
2. You've [set up your build environment](newbs_getting_started.md?id=environment-setup).
## Your fork's master: Update Often, Commit Never
It is highly recommended for QMK development, regardless of what is being done or where, to keep your `master` branch updated, but ***never*** commit to it. Instead, do all your changes in a development branch and issue pull requests from your branches when you're developing.
To reduce the chances of merge conflicts &mdash; instances where two or more users have edited the same part of a file concurrently &mdash; keep your `master` branch relatively up-to-date, and start any new developments by creating a new branch.
### Updating your master branch
To keep your `master` branch updated, it is recommended to add the QMK Firmware repository ("repo") as a remote repository in git. To do this, open your Git command line interface and enter:
```
git remote add upstream https://github.com/qmk/qmk_firmware.git
```
To verify that the repository has been added, run `git remote -v`, which should return the following:
```
$ git remote -v
origin https://github.com/<your_username>/qmk_firmware.git (fetch)
origin https://github.com/<your_username>/qmk_firmware.git (push)
upstream https://github.com/qmk/qmk_firmware.git (fetch)
upstream https://github.com/qmk/qmk_firmware.git (push)
```
Now that this is done, you can check for updates to the repo by running `git fetch upstream`. This retrieves the branches and tags &mdash; collectively referred to as "refs" &mdash; from the QMK repo, which now has the nickname `upstream`. We can now compare the data on our fork `origin` to that held by QMK.
To update your fork's master, run the following, hitting the Enter key after each line:
```
git checkout master
git fetch upstream
git pull upstream master
git push origin master
```
This switches you to your `master` branch, retrieves the refs from the QMK repo, downloads the current QMK `master` branch to your computer, and then uploads it to your fork.
### Making Changes
To make changes, create a new branch by entering:
```
git checkout -b dev_branch
git push --set-upstream origin dev_branch
```
This creates a new branch named `dev_branch`, checks it out, and then saves the new branch to your fork. The `--set-upstream` argument tells git to use your fork and the `dev_branch` branch every time you use `git push` or `git pull` from this branch. It only needs to be used on the first push; after that, you can safely use `git push` or `git pull`, without the rest of the arguments.
!> With `git push`, you can use `-u` in place of `--set-upstream` &mdash; `-u` is an alias for `--set-upstream`.
You can name your branch nearly anything you want, though it is recommended to name it something related to the changes you are going to make.
By default `git checkout -b` will base your new branch on the branch that is checked out. You can base your new branch on an existing branch that is not checked out by adding the name of the existing branch to the command:
```
git checkout -b dev_branch master
```
Now that you have a development branch, open your text editor and make whatever changes you need to make. It is recommended to make many small commits to your branch; that way, any change that causes issues can be more easily traced and undone if needed. To make your changes, edit and save any files that need to be updated, add them to Git's *staging area*, and then commit them to your branch:
```
git add path/to/updated_file
git commit -m "My commit message."
```
`git add` adds files that have been changed to Git's *staging area*, which is Git's "loading zone." This contains the changes that are going to be *committed* by `git commit`, which saves the changes to the repo. Use descriptive commit messages so you can know what was changed at a glance.
!> If you've changed a lot of files, but all the files are part of the same change, you can use `git add .` to add all the changed files that are in your current directory, rather than having to add each file individually.
### Publishing Your Changes
The last step is to push your changes to your fork. To do this, enter `git push`. Git now publishes the current state of `dev_branch` to your fork.
## Resolving Merge Conflicts
Sometimes when your work in a branch takes a long time to complete, changes that have been made by others conflict with changes you have made to your branch when you open a pull request. This is called a *merge conflict*, and is what happens when multiple people edit the same parts of the same files.
### Rebasing Your Changes
A *rebase* is Git's way of taking changes that were applied at one point, reversing them, and then applying the same changes to another point. In the case of a merge conflict, you can rebase your branch to grab the changes that were made between when you created your branch and the present time.
To start, run the following:
```
git fetch upstream
git rev-list --left-right --count HEAD...upstream/master
```
The `git rev-list` command entered here returns the number of commits that differ between the current branch and QMK's master branch. We run `git fetch` first to make sure we have the refs that represent the current state of the upstream repo. The output of the `git rev-list` command entered returns two numbers:
```
$ git rev-list --left-right --count HEAD...upstream/master
7 35
```
The first number represents the number of commits on the current branch since it was created, and the second number is the number of commits made to `upstream/master` since the current branch was created, and thus, the changes that are not recorded in the current branch.
Now that the current states of both the current branch and the upstream repo are known, we can start a rebase operation:
```
git rebase upstream/master
```
This tells Git to undo the commits on the current branch, and then reapply them against QMK's master branch.
```
$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Applying: Commit #1
Using index info to reconstruct a base tree...
M conflicting_file_1.txt
Falling back to patching base and 3-way merge...
Auto-merging conflicting_file_1.txt
CONFLICT (content): Merge conflict in conflicting_file_1.txt
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 Commit #1
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
```
This tells us that we have a merge conflict, and gives the name of the file with the conflict. Open the conflicting file in your text editor, and somewhere in the file, you'll find something like this:
```
<<<<<<< HEAD
<p>For help with any issues, email us at support@webhost.us.</p>
=======
<p>Need help? Email support@webhost.us.</p>
>>>>>>> Commit #1
```
The line `<<<<<<< HEAD` marks the beginning of a merge conflict, and the `>>>>>>> Commit #1` line marks the end, with the conflicting sections separated by `=======`. The part on the `HEAD` side is from the QMK master version of the file, and the part marked with the commit message is from the current branch and commit.
Because Git tracks *changes to files* rather than the contents of the files directly, if Git can't find the text that was in the file previous to the commit that was made, it won't know how to edit the file. Re-editing the file will solve the conflict. Make your changes, and then save the file.
```
<p>Need help? Email support@webhost.us.</p>
```
Now run:
```
git add conflicting_file_1.txt
git rebase --continue
```
Git logs the changes to the conflicting file, and continues applying the commits from our branch until it reaches the end.

View File

@@ -1,8 +1,9 @@
# 初めてのファームウェアを構築する(コマンドライン版)
<!---
original document: ed0575fc8:docs/newbs_building_firmware.md
$ git diff ed0575fc8 HEAD docs/newbs_building_firmware.md
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0f43c2652:docs/newbs_building_firmware.md
git diff 0f43c2652 HEAD -- docs/newbs_building_firmware.md | cat
-->
ビルド環境をセットアップしたので、カスタムファームウェアのビルドを開始する準備ができました。
@@ -55,7 +56,7 @@ macOS または Windows を使用している場合は、キーマップフォ
この行はレイヤーのリストの開始を表わしています。
その下には、`LAYOUT` または `KEYMAP` のいずれかを含む行があり、これらの行はレイヤーの開始を表わしています。
その行の下には、その特定のレイヤーを構成するキーのリストがあります。
その行の下には、そのレイヤーを構成するキーのリストがあります。
!> キーマップファイルを編集するときは、カンマを追加したり削除したりしないように注意してください。そうするとファームウェアのコンパイルができなくなり、余分であったり欠落していたりするカンマがどこにあるのかを容易に把握できない場合があります。
@@ -66,9 +67,9 @@ macOS または Windows を使用している場合は、キーマップフォ
あるレイヤー全体が必要ない場合はレイヤーを削除することもでき、必要があれば、合計 32 個までレイヤーを追加することもできます。
ここで定義できる内容については、次のドキュメントを参照してください。
* [キーコード](keycodes.md)
* [機能](features.md)
* [FAQ](faq.md)
* [キーコード](ja/keycodes.md)
* [機能](ja/features.md)
* [FAQ](ja/faq.md)
?> キーマップがどのように機能するかを感じながら、各変更を小さくしてください。大きな変更は、発生する問題のデバッグを困難にします。
@@ -95,4 +96,4 @@ Checking file size of planck_rev5_xyverz.hex
## ファームウェアを書きこむ
[「ファームウェアを書きこむ」](newbs_flashing.md) に移動して、キーボードに新しいファームウェアを書き込む方法を学習します。
[「ファームウェアを書きこむ」](ja/newbs_flashing.md) に移動して、キーボードに新しいファームウェアを書き込む方法を学習します。

View File

@@ -1,8 +1,9 @@
# QMK Configurator
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: ed0575fc8:docs/newbs_building_firmware_configurator.md
$ git diff ed0575fc8 HEAD docs/newbs_building_firmware_configurator.md
git diff ed0575fc8 HEAD -- docs/newbs_building_firmware_configurator.md | cat
-->
[QMK Configurator](https://config.qmk.fm) は、QMKファームウェアの hex ファイルを生成するオンライングラフィカルユーザーインターフェイスです。
@@ -62,7 +63,7 @@ QMK Configurator は Chrome/Firefox で最適に動作します。
2分割の右シフト: 両方とも右シフトで埋めます。
左シフトとISOサポート用に1つずつ: 両方とも左シフトで埋めます。
左シフトと ISO サポート用に1つずつ: 両方とも左シフトで埋めます。
5分割だが4キーのみ: 以前やったことがある人を推測して確認するか尋ねてください。
@@ -72,7 +73,7 @@ QMK Configurator は Chrome/Firefox で最適に動作します。
後日、`Import Keymap` ボタンを押すことで、この .json ファイルをロードできます。
!> **注意:** このファイルは、kbfirmware.com またはその他のツールに使用される .jsonファイルと同じ形式ではありません。これらのツールにこれを使用したり、QMK Configurator でこれらのツールの .json を使用しようとすると、キーボードが **爆発** する可能性があります。
!> **注意:** このファイルは、kbfirmware.com またはその他のツールに使用される .json ファイルと同じ形式ではありません。これらのツールにこれを使用したり、QMK Configurator でこれらのツールの .json を使用しようとすると、キーボードが **爆発** する可能性があります。
## ファームウェアファイルを生成する
@@ -82,7 +83,7 @@ QMK Configurator は Chrome/Firefox で最適に動作します。
## キーボードに書き込む(フラッシュする)
[ファームウェアを書きこむ](newbs_flashing.md) を参照してください。
[ファームウェアを書きこむ](ja/newbs_flashing.md) を参照してください。
## トラブルシューティング

View File

@@ -1,8 +1,9 @@
# ファームウェアを書きこむ
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: ed0575fc8:docs/newbs_flashing.md
$ git diff ed0575fc8 HEAD docs/newbs_flashing.md
git diff ed0575fc8 HEAD -- docs/newbs_flashing.md | cat
-->
カスタムファームウェアは出来たので、キーボードに書き込みたくなるでしょう/フラッシュしたくなるでしょう。
@@ -12,7 +13,7 @@
キーボードに書き込む最も簡単な方法は [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) を使うことです。
ただし、QMK Toolbox は、現在は Windows と macOS でしか使えません。
Linuxを使用している場合(および、コマンドラインでファームウェアを書き込みたい場合)は、下の方で概説する[方法](newbs_flashing.md#コマンドラインでファームウェアを書き込む)で行なう必要があります。
Linux を使用している場合(および、コマンドラインでファームウェアを書き込みたい場合)は、下の方で概説する[方法](ja/newbs_flashing.md#flash-your-keyboard-from-the-command-line)で行なう必要があります。
### QMK Toolbox にファイルをロードする
@@ -64,7 +65,7 @@ planck_rev5_default.hex
* 基板(PCB)に付けられている物理的な `RESET` ボタンを押す
* PCB 上の `BOOT0``RESET` のラベルの付いたヘッダピンを探し、PCB 接続中にそれらを互いにショートする
うまくいけば、QMK Toolboxに次のようなメッセージが表示されます。
うまくいけば、QMK Toolbox に次のようなメッセージが表示されます。
```
*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
@@ -97,7 +98,7 @@ QMK Toolbox の `Flash` ボタンをクリックします。
*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390
```
## コマンドラインでファームウェアを書き込む
## コマンドラインでファームウェアを書き込む :id=flash-your-keyboard-from-the-command-line
これは、以前のものと比較して非常に単純になりました。
ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
@@ -120,9 +121,9 @@ QMK Toolbox の `Flash` ボタンをクリックします。
この場合、あなたは明示的にブートローダを指定する方法を使わなければなりません。
ブートローダは主に 5 種類のものが使われています。
Pro Micro とそのクローンは Caterina を、Teensy は HalfKay を、OLKBの AVR ボードは QMK-DFU を、その他の ATmega32U4 ボードは DFU を、そして多くの ARM ボードは ARM DFU を使います。
Pro Micro とそのクローンは Caterina を、Teensy は HalfKay を、OLKB の AVR ボードは QMK-DFU を、その他の ATmega32U4 ボードは DFU を、そして多くの ARM ボードは ARM DFU を使います。
より詳しいブートローダの情報は、[Flashing Instructions and Bootloader Information](flashing.md) にあります。
より詳しいブートローダの情報は、[Flashing Instructions and Bootloader Information](ja/flashing.md) にあります。
使用しているブートローダがわかっているならば、ファームウェアをコンパイルするときに、実は `make` コマンドにブートローダを指定するテキストを追加して、書き込みプロセスを自動化できます。
@@ -171,16 +172,16 @@ Checking file size of planck_rev5_xyverz.hex
>>> dfu-programmer atmega32u4 reset
```
?> `dfu-programmerno device present` など、これに関する問題がある場合は、[よくある質問](faq_build.md) を参照してください。
?> `dfu-programmerno device present` など、これに関する問題がある場合は、[よくある質問](ja/faq_build.md) を参照してください。
#### DFU コマンド
ファームウェアを DFU デバイスに書き込むために使用できる DFU コマンドがいくつかあります。
* `:dfu` - これが通常のオプションで、DFUデバイスが使用可能になるまで待機したのちファームウェアを書き込みます。5秒ごとに、DFUデバイスが存在するかチェックしています。
* `:dfu` - これが通常のオプションで、DFU デバイスが使用可能になるまで待機したのちファームウェアを書き込みます。5秒ごとに、DFU デバイスが存在するかチェックしています。
* `:dfu-ee` - 通常の hex ファイルの代わりに `eep` ファイルを書き込みます。これを使用するのはまれです。
* `:dfu-split-left` - デフォルトオプション (`:dfu`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」 EEPROMファイルも書き込まれます。_これは、Elite C ベースの分割キーボードに最適です。_
* `:dfu-split-right` - デフォルトオプション (`:dfu`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」EEPROMファイルも書き込まれます。_これは、Elite C ベースの分割キーボードに最適です。_
* `:dfu-split-left` - デフォルトオプション (`:dfu`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」 EEPROM ファイルも書き込まれます。_これは、Elite C ベースの分割キーボードに最適です。_
* `:dfu-split-right` - デフォルトオプション (`:dfu`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」EEPROM ファイルも書き込まれます。_これは、Elite C ベースの分割キーボードに最適です。_
### Caterina
@@ -258,8 +259,8 @@ avrdude.exe done. Thank you.
* `:avrdude` - これが通常のオプションで、Caterina デバイスが(新しい COM ポートを検出して)使用可能になるまで待機し、ファームウェアを書き込みます。
* `:avrdude-loop` - これは `:avrdude` と同じです。ただし書き込みが終了すると再び Caterina デバイスの書き込み待ちに戻ります。これは何台ものデバイスへの書き込みに便利です。_Control+C を押して、手動でこの繰り返しを終了させる必要があります。_
* `:avrdude-split-left` - デフォルトオプション(`:avrdude`)と同様に通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」EEPROMファイルもフラッシュされます。 _これは、Pro Micro ベースの分割キーボードに最適です。_
* `:avrdude-split-right` - デフォルトオプション(`:avrdude`)と同様に通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」EEPROMファイルもフラッシュされます。 _これは、Pro Micro ベースの分割キーボードに最適です。_
* `:avrdude-split-left` - デフォルトオプション(`:avrdude`)と同様に通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」EEPROM ファイルもフラッシュされます。 _これは、Pro Micro ベースの分割キーボードに最適です。_
* `:avrdude-split-right` - デフォルトオプション(`:avrdude`)と同様に通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」EEPROM ファイルもフラッシュされます。 _これは、Pro Micro ベースの分割キーボードに最適です。_
### HalfKay
@@ -396,4 +397,4 @@ Uploading 22016 (0x5600) bytes starting at 0 (0x0)
おめでとうございます! カスタムファームウェアがキーボードにプログラムされました!
使ってみて、すべてがあなたの望むように動作するかどうか確認してください。
この初心者ガイドを完全なものにするために [テストとデバッグ](newbs_testing_debugging.md) を書いたので、カスタム機能のトラブルシューティング方法については、こちらをご覧ください。
この初心者ガイドを完全なものにするために [テストとデバッグ](ja/newbs_testing_debugging.md) を書いたので、カスタム機能のトラブルシューティング方法については、こちらをご覧ください。

View File

@@ -1,8 +1,9 @@
# イントロダクション
<!---
original document: docs/newbs_getting_started.md
$ git diff 161d469 HEAD docs/newbs_getting_started.md
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 161d469:docs/newbs_getting_started.md
git diff 161d469 HEAD -- docs/newbs_getting_started.md | cat
-->
キーボードにはプロセッサが入っており、それはコンピュータに入っているものと大して違わないものです。
@@ -11,7 +12,7 @@ QMK は、そのソフトウェアの役割を果たし、ボタンの押下を
カスタムキーマップを作るということは、キーボード上で動くプログラムを作るということなのです。
QMK は、簡単なことは簡単に、そして、難しいことを可能なことにすることで、あなたの手にたくさんのパワーをもたらします。
パワフルなキーマップを作るためにプログラムを作成する方法を知る必要はありません。いくつかのシンプルな文法に従うだけでOKです。
パワフルなキーマップを作るためにプログラムを作成する方法を知る必要はありません。いくつかのシンプルな文法に従うだけで OK です。
# はじめに
@@ -19,7 +20,7 @@ QMK は、簡単なことは簡単に、そして、難しいことを可能な
ファームウェアをコンパイルするキーボードの数に関わらず、この作業を一度だけ実行する必要があります。
もし、GUI で作業をしたい場合、オンラインで作業できる [QMK Configurator](https://config.qmk.fm) を使ってください。
使い方は [Building Your First Firmware using the online GUI](newbs_building_firmware_configurator.md) を参照してください。
使い方は [オンライン GUI を使用して初めてのファームウェアを構築する](ja/newbs_building_firmware_configurator.md) を参照してください。
## ソフトウェアのダウンロード
@@ -44,7 +45,7 @@ QMK Toolbox は、Windows と macOS で使える GUI を備えたプログラム
* Windows 版: `qmk_toolbox.exe` (portable) または `qmk_toolbox_install.exe` (installer)
* macOS 版: `QMK.Toolbox.app.zip` (portable) または `QMK.Toolbox.pkg` (installer)
## 環境構築
## 環境構築 :id=set-up-your-environment
私たちは、QMK を可能な限り簡単に構築できるように努力しています。
Linux か Unix 環境を用意するだけで、QMK に残りをインストールさせることができます。
@@ -76,9 +77,9 @@ Git のインストールが必要です。既にインストールされてい
* Fedora / Red Hat / CentOS: `yum install git`
* Arch: `pacman -S git`
?> 全てのプラットフォームにおいて、Docker を使うことも可能です。[詳細はこちらをクリックしてください](getting_started_build_tools.md#docker)。
?> 全てのプラットフォームにおいて、Docker を使うことも可能です。[詳細はこちらをクリックしてください](ja/getting_started_build_tools.md#docker)。
## QMK の設定
## QMK の設定 :id=set-up-qmk
Linux/Unix 環境が準備できたら QMK のダウンロードの準備は完了です。Git を使用して QMK のリポジトリを「クローン」することで QMK をダウンロードします。ターミナルか MSYS2 MinGW ウィンドウを開いて、このガイドの残りの部分では開いたままにします。そのウィンドウ内で、次の2つのコマンドを実行します。
@@ -87,7 +88,7 @@ git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
?> 既に [GitHub の使いかた](getting_started_github.md)を知っているなら、clone ではなく fork を勧めます。この一文の意味が分からない場合、このメッセージは無視してかまいません。
?> 既に [GitHub の使いかた](ja/getting_started_github.md)を知っているなら、clone ではなく fork を勧めます。この一文の意味が分からない場合、このメッセージは無視してかまいません。
QMK には、必要な残りの設定を手助けするスクリプトが含まれています。
セットアップ作業を完了させるため、次のコマンドを実行します。
@@ -118,4 +119,4 @@ Checking file size of clueboard_66_rev3_default.hex
# キーマップの作成
これであなた専用のキーマップを作成する準備ができました!
次は [Building Your First Firmware](newbs_building_firmware.md) で専用のキーマップを作成します。
次は [Building Your First Firmware](ja/newbs_building_firmware.md) で専用のキーマップを作成します。

View File

@@ -0,0 +1,24 @@
# QMK における Git 運用作法 :id=best-git-practices-for-working-with-qmk
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: adf4acf59:docs/newbs_git_best_practices.md
git diff adf4acf59 HEAD -- docs/newbs_git_best_practices.md | cat
-->
## または、"如何にして私は心配することをやめて Git を愛することを学んだか。"
このセクションは、QMK への貢献をスムーズに行なう最もよい方法を初心者に教えることを目的としています。
QMK に貢献するプロセスを順を追って説明し、この作業を簡単にするいくつかの方法を詳しく説明します。
その後、意図的に一部を壊してみせて、それらを修正する方法を説明します。
このセクションは以下のことを前提としています:
1. あなたは GitHub アカウントがあり、アカウントに [qmk_firmware リポジトリをフォーク](ja/getting_started_github.md) している。
2. あなたは、[環境構築](ja/newbs_getting_started.md#set-up-your-environment) と [QMK の設定](ja/newbs_getting_started.md#set-up-qmk) を両方とも完了している。
---
- パート 1: [あなたのフォークの master ブランチ: 更新は頻繁に、コミットはしないこと](ja/newbs_git_using_your_master_branch.md)
- パート 2: [マージの競合の解決](ja/newbs_git_resolving_merge_conflicts.md)
- パート 3: [同期のとれていない git ブランチの再同期](ja/newbs_git_resynchronize_a_branch.md)

View File

@@ -0,0 +1,94 @@
# マージの競合の解決
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: adf4acf59:docs/newbs_git_resolving_merge_conflicts.md
git diff adf4acf59 HEAD -- docs/newbs_git_resolving_merge_conflicts.md | cat
-->
ブランチでの作業の完了に時間がかかる場合、他の人が行った変更が、プルリクエストを開いたときにブランチに加えた変更と競合することがあります。
これは *マージの競合* と呼ばれ、複数の人が同じファイルの同じ部分を編集すると発生します。
?> このドキュメントは [あなたのフォークの master ブランチ: 更新は頻繁に、コミットはしないこと](ja/newbs_git_using_your_master_branch.md) で詳述されている概念に基づいています。
その概念に慣れていない場合は、まずそれを読んでから、ここに戻ってください。
## 変更のリベース
*リベース* は、コミット履歴のある時点で適用された変更を取得し、それらを元に戻し、次に同じ変更を別のポイントに適用する Git の方法です。
マージの競合が発生した場合、ブランチをリベースして、ブランチを作成してから現在までに行われた変更を取得できます。
開始するには、次を実行します:
```
git fetch upstream
git rev-list --left-right --count HEAD...upstream/master
```
ここに入力された `git rev-list` コマンドは、現在のブランチと QMK の master ブランチで異なるコミットの数を返します。
最初に `git fetch` を実行して、upstream リポジトリの現在の状態を表す refs があることを確認します。
入力された `git rev-list` コマンドの出力は2つの数値を返します:
```
$ git rev-list --left-right --count HEAD...upstream/master
7 35
```
最初の数字は、現在のブランチが作成されてからのコミット数を表し、2番目の数字は、現在のブランチが作成されてから `upstream/master` に対して行われたコミットの数であり、したがって、現在のブランチに記録されていない変更です。
現在のブランチと upstream リポジトリの両方の現在の状態がわかったので、リベース操作を開始できます:
```
git rebase upstream/master
```
これにより、Git は現在のブランチのコミットを取り消してから、QMK の master ブランチに対してコミットを再適用します。
```
$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Applying: Commit #1
Using index info to reconstruct a base tree...
M conflicting_file_1.txt
Falling back to patching base and 3-way merge...
Auto-merging conflicting_file_1.txt
CONFLICT (content): Merge conflict in conflicting_file_1.txt
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 Commit #1
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
```
これにより、マージの競合があることがわかり、競合のあるファイルの名前が示されます。
テキストエディタで競合するファイルを開くと、ファイルのどこかに次のような行があります:
```
<<<<<<< HEAD
<p>For help with any issues, email us at support@webhost.us.</p>
=======
<p>Need help? Email support@webhost.us.</p>
>>>>>>> Commit #1
```
`<<<<<<< HEAD` はマージ競合の始まりを示し、行 `>>>>>>> commit #1` は終了を示し、競合するセクションは `=======` で区切られます。
`HEAD` 側の部分はファイルの QMK master バージョンからのものであり、コミットメッセージでマークされた部分は現在のブランチとコミットからのものです。
Git はファイルの内容ではなく *ファイルへの変更* を直接追跡するため、Git がコミットの前にファイル内にあったテキストを見つけられない場合、ファイルの編集方法がわかりません。
ファイルを再編集して、競合を解決します。
変更を加えてから、ファイルを保存します。
```
<p>Need help? Email support@webhost.us.</p>
```
そしてコマンド実行:
```
git add conflicting_file_1.txt
git rebase --continue
```
Git は、競合するファイルへの変更をログに記録し、ブランチのコミットが最後に達するまで適用し続けます。

View File

@@ -0,0 +1,88 @@
# 同期のとれていない git ブランチの再同期
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: adf4acf59:docs/newbs_git_resynchronize_a_branch.md
git diff adf4acf59 HEAD -- docs/newbs_git_resynchronize_a_branch.md | cat
-->
仮にあなたの `master` ブランチにあなたのコミットを行い、そしてあなたの QMK リポジトリの更新が必要になったとします。
(フォーク元の) QMK の `master` ブランチをあなたの `master` ブランチに `git pull` することもできますが、GitHub は、あなたのブランチが `qmk:master` より何コミットか先行していると通知します、この状態で QMK にプルリクエストを行う場合、問題が発生する可能性があります。
(訳注この通知は、GitHub のあなたのリポジトリの code ペインのブランチ選択メニューの下のあたりで `This branch is 3 commit ahead of qmk:master` という様な文面で表示されています。)
?> このドキュメントは [あなたのフォークの master ブランチ: 更新は頻繁に、コミットはしないこと](ja/newbs_git_using_your_master_branch.md) で詳述されている概念に基づいています。その概念に慣れていない場合は、まずそれを読んでから、ここに戻ってください。
(訳注:この文書で言う、「同期のとれていない git ブランチ」とは、master ブランチに関する、この「コミットしない」方針を逸脱して、QMK の master リポジトリに存在しないコミットがあなたのフォークの master ブランチに入っている状態を指します。)
## あなた自身の `master` ブランチでの変更のバックアップ(オプション)
救えるものなら自分の行った変更を失いたくはないでしょう。
あなたの `master` ブランチに既に加えた変更を保存したい場合、最も簡単な方法は、単に「ダーティな」`master` ブランチの複製を作成することです:
```sh
git branch old_master master
```
これで、 `master` ブランチの複製である `old_master` という名前のブランチができました。
## あなたのブランチの再同期
さあ、`master` ブランチを再同期します。
この手順では、QMK のリポジトリを git のリモートリポジトリとして設定する必要があります。
設定済みのリモートリポジトリを確認するには、`git remote -v` を実行し、次のような結果が返されなければなりません。
```sh
QMKuser ~/qmk_firmware (master)
$ git remote -v
origin https://github.com/<your_username>/qmk_firmware.git (fetch)
origin https://github.com/<your_username>/qmk_firmware.git (push)
upstream https://github.com/qmk/qmk_firmware.git (fetch)
upstream https://github.com/qmk/qmk_firmware.git (push)
```
もし、上記のようにならずに以下のように参照されるフォークが、1つだけ表示される場合
```sh
QMKuser ~/qmk_firmware (master)
$ git remote -v
origin https://github.com/qmk/qmk_firmware.git (fetch)
origin https://github.com/qmk/qmk_firmware.git (push)
```
新しいリモートリポジトリを追加します:
```sh
git remote add upstream https://github.com/qmk/qmk_firmware.git
```
次に、`origin` リモートリポジトリを、あなた自身のフォークにリダイレクトします:
```sh
git remote set-url origin https://github.com/<あなたのユーザ名>/qmk_firmware.git
```
両方のリモートリポジトリが設定されたので、次を実行して、QMK である `upstream` リポジトリの参照を更新する必要があります。
```sh
git fetch upstream
```
この時点で、次を実行してあなたの(訳注master)ブランチを QMK のブランチに再同期します。
(訳注: 今現在 `master` ブランチがチェックアウトされていなければなりません。
そうなってなければ、`git checkout master` を先に実行しておく必要があります。)
```sh
git reset --hard upstream/master
```
これらの手順により、あなたのコンピュータ上のリポジトリが更新されますが、あなたの GitHub 上のフォークはまだ同期されていません。
GitHub 上のフォークを再同期するには、あなたのフォークにプッシュして、ローカルリポジトリに反映されていないリモート変更をオーバーライドするように Git に指示する必要があります。
これを行うには、次を実行します:
```sh
git push --force-with-lease
```
!> 他のユーザーがコミットを投稿するフォークで `git push --force-with-lease` を**実行しないでください**。これをすると、かれらのコミットが消去されてしまいます。
これで、あなたの GitHub フォーク、あなたのローカルファイル、および QMK のリポジトリはすべて同じになりました。
ここから、[ブランチを使って](ja/newbs_git_using_your_master_branch.md#making-changes)さらに必要な変更を加え、通常どおりそれらを投稿できます。

Some files were not shown because too many files have changed in this diff Show More