Compare commits

...

791 Commits

Author SHA1 Message Date
Ryan
555b1640b2 Add layout: 65_iso_blocker_split_bs (#10733)
* Add layout: 65_iso_blocker_split_bs

* Add layout to readme
2020-10-26 16:56:34 -07:00
Sergey Vlasov
f149c07d68 Fix KEYBOARD_SHARED_EP incompatibility with VIA (#9930)
The `KEYBOARD_SHARED_EP=yes` option was breaking the VIA support,
because the raw HID interface number in this case was 0 instead of 1,
and the VIA app depends on the exact interface number for raw HID.
Change the interface ordering to put the shared interface before the raw
HID interface if `KEYBOARD_SHARED_EP` is enabled, so that the raw HID
interface can keep its number.
2020-10-27 10:40:59 +11:00
Ryan
2c92ee1f56 Allow modified keycodes in Unicode input (#10658) 2020-10-27 06:14:56 +11:00
Zach White
0c42f91f4c Generate api data on each push (#10609)
* add new qmk generate-api command, to generate a complete set of API data.

* Generate api data and push it to the keyboard repo

* fix typo

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* fixup api workflow

* remove file-changes-action

* use a more mainstream github action

* fix yaml error

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* more uniform date handling

* make flake8 happy

* Update lib/python/qmk/decorators.py

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-25 14:48:44 -07:00
James Young
8ef82c466e manta60: update Configurator layout data (#10756) 2020-10-25 18:07:02 +00:00
Erovia
ad86894ae7 Rename keyboard-level readmes to lower-case (#10759)
This is the recommendation in the [PR
Checklist](https://docs.qmk.fm/#/pr_checklist?id=keyboard-prs) and it
will make working with them easier in the CLI/API/etc.
2020-10-25 15:23:42 +00:00
Filip Paryż
af455a8368 [Keyboard] Freoduo - handwired split ortho keyboard. (#10724)
* Freoduo v1 - with fixes from @fauxpark and rebased to master branch of QMK.

* One more suggested fix from @fauxpark

* Fixes after @drashna review.
2020-10-24 16:54:38 -07:00
James Young
ac37a94e49 emajesty/eiri: fix info.json key sequence (#10751)
* emajesty/eiri: info.json debug linting

* fix info.json key sequence
2020-10-25 00:07:30 +01:00
Blake
24ae9232e2 draytronics/scarlet: add website and key labels to info.json (#10747)
* Correctly name keyboard in info.json

* Added website and layout key labels to info.json
2020-10-24 12:28:34 -07:00
AlisGraveNil
14cb662280 [keyboard] Add Roadster support (#10698)
* Roadster

* Update keyboards/clawsome/roadster/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/clawsome/roadster/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-24 19:17:07 +01:00
James Young
3d183ed7a0 draytronics/scarlet: fix info.json data (#10746) 2020-10-24 13:09:28 +01:00
James Young
4e30f4d102 doodboard/duckboard: fix info.json data (#10745) 2020-10-24 13:07:10 +01:00
Joel Challis
bf92957ff2 Add additional auto labeler rules (#10704)
* Auto label all the things

* Makefiles are core changes

* Add label to submodule changes
2020-10-24 01:29:17 +01:00
stanrc85
33bd17a68a [Keymap] my alice community layout (#10696) 2020-10-23 17:11:52 -07:00
Benjamin Grosse
7daad08a91 [Keymap] plaid keymap with custm LED animation (#10701) 2020-10-23 17:10:45 -07:00
Anne Demey
d689f76110 [Keyboard] Add Terrazzo Keyboard (#10408)
* Ciao Terrazzo!

* Keymap updates

* Adding info json
Cleaning up keymap files
Readme updates with template

* Coding style updates

* Removing vscode files

* PR feedback updates

* biton32 -> get_highest_layer update
Adding license headers
2020-10-23 15:14:17 -07:00
Alabahuy
5d2deaca06 [Keyboard] add via support and fix info.json for rartlice (#10690)
* Update info.json

* Create keymap.c

* Create config.h

* Create rules.mk

* Update keymap.c

* Update keymap.c
2020-10-23 14:58:54 -07:00
Fidel Coria
8e7517aebc [Keyboard] Add pteron44 keyboard (#10708)
* Add pteron44

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Apply suggestions from code review part 2

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 14:31:24 -07:00
null-ll
b5f425b275 [Keyboard] add Basketweave keyboard (#10729)
* add basketweave keyboard

* Fixed missing key in info.json layout

* Update keyboards/basketweave/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/basketweave/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 14:18:55 -07:00
kb-elmo
47ce1a9ed0 [Keyboard] make Canoe Gen2 indicator configurable (#10722) 2020-10-23 14:12:03 -07:00
Leon Anavi
85f344db49 [Keymap] Add Zoom keymap for ANAVI Macro Pad 8 (#10715)
Zoom keymap for ANAVI Macro Pad 8 with the following shortcuts:

* Alt+V: Start/stop video
* Alt+A: Mute/unmute my audio
* Alt+M: Mute/unmute audio for everyone except the host
* Alt+S: Start/stop screen sharing
* Alt+R: Start/stop local recording
* Alt+P: Pause/resume recording
* Alt+C: Start/stop cloud recording
* Switch to 2nd layout to control backlighting and underlighting

Signed-off-by: Leon Anavi <leon@anavi.org>
2020-10-23 14:11:17 -07:00
coarse
225af5d161 [Keyboard] Add Cordillera PCB (#10711)
* Add initial Cordillera config

* Update readme

* Update info.json layouts

* Update preview image

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

* Remove extra rules

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update bootmagic rule

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 14:10:04 -07:00
Ryan
870cc37365 Fix two qmk info complaints (#10737)
* Fix two `qmk info` complaints

* Oops
2020-10-23 21:03:06 +01:00
Drashna Jaelre
9093f877a2 [Keyboard] Fix Moonlander indicator LEDs during sleep (#10683) 2020-10-23 20:13:14 +11:00
Xelus22
5e9c078c78 [Core] IS31FL3731/36/37 bug fix (#10612)
* 3731 bug fix

* bug fixes
2020-10-23 18:08:17 +11:00
André Silva
fe50bee988 Update shell.nix (#10712)
* nix-shell: update nixpkgs reference

* nix-shell: add missing python dependency
2020-10-23 17:50:05 +11:00
Jay Greco
999326acc8 Add nullbits nibble (#9250)
* Add NIBBLE keyboard

* Update VID for VIA compatibility

* Add QMK PR feedback

* Update matrix_init_remote_kb()

* Update with requested changes

Clean up config, makefile rules, and keymap files

* Update with changes for unified ANSI/ISO layout

* Add NO_USB_STARTUP_CHECK note in readme

* Add license info, update with PR changes

-Refactor encoder, via_extras code
-Refactor VIA specific code to live in keymap folder
-Remove non-inclusive naming in remote keyboard.c/h
-Add documentation to remote_keyboard.c
-Add compiler check for vusb_detect for non-avr micros

* Fix print formatter in encoder handler

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Small PR updates

-Remove unneded matrix code from nibble.c
-Clean up include code in nibble_encoder.h

* Update Big LED headerfile

-Declare Big LED functions in header file (derp)

* Update keyboards/nullbitsco/nibble/nibble.c

-Update with drashna's suggested CAPS LED code change

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

* Update keyboards/nullbitsco/nibble/rules.mk

-Update with drasha's suggested makefile formatting changes

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

* Fix caps_lock typo

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-23 17:47:14 +11:00
KgOfHedgehogs
8cbaea9e8d [Keyboard] Fix jian backlight related ifdefs (#10679)
* Add jian backlight enabled ifdefs

* Fix adavnced layout LAYOUT_dips usage
2020-10-22 20:16:33 -07:00
Mika Kuitunen
e7d8ccdbb2 [Keyboard] Add support for Tunks Ergo33 keyboard (#10665)
* [Keyboard] Add support for Tunks Ergo33

* [Keyboard] Ergo33: Code style fixes

* [Keyboard] Ergo33: Add GPL license headers

* [Keyboard] Ergo33: remove keymap_config declarations

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-22 20:08:56 -07:00
mechlovin
c45d7e526c Add Cospad VIA support (#10642)
* Add Cospad VIA support

* Update keymap.c
2020-10-22 20:06:50 -07:00
mechlovin
f078980fb1 [Keyboard] Add infinity88 PCB, add VIA support for Kanu (#10531)
* add infinity88 PCB

* Update rules.mk

* Update info.json

* Add VIA support Kanu PCB

* Update keyboards/mechlovin/infinity88/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-22 19:55:32 -07:00
Draevin
619eb0071e [Keymap] Add Draevin userspace and maps (#10581)
* Initial userspace

* DZ60 map

* Quefrency map

* Sinc map

* Set up MAKE key for all personal maps

* Light userspace cleanup

* Formatting and comments zzz...

* Licensing and userspace README

* Swap: EXTRAFLAGS -> LTO_ENABLE in userspace rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Improve KC_MAKE: KC_ENT -> \n

Co-authored-by: Ryan <fauxpark@gmail.com>

* Swap left grouping on _FN for pairs

* Add '?' -> backslash on _FN

* Remove commented code

* Organize lines in rules.mk

* Add left hand scroll keys

* Move configs to config.h

* License blitz

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-22 19:46:46 -07:00
Ryan
2b9b267e8e Fix RGB matrix for ATmegaxxU2 (#10723) 2020-10-23 12:21:56 +11:00
Ryan
f9bd9d3b26 c2json: Fix TypeError on MSYS2 (#10709) 2020-10-23 12:21:32 +11:00
Félix Sanz
168ce1a743 Update keymap_spanish_dvorak.h (#10213)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 04:42:34 +11:00
Adrian
120c42255b Added EEPROM emulation for STM32F042x6 series processors (#10685)
* Added STM32F042x6 support for EEPROM emulation

* Default to lower stack size on STM32F042

* Moved stack setting

* Re-moved stack definition

* Removed unnecessary check
2020-10-22 21:05:01 +11:00
csc027
f9853433c1 csc027/keymap-updates (#10250) 2020-10-22 20:12:55 +11:00
James Young
caf61a19c6 GH60 v1.3: update default keymap (#10703) 2020-10-21 15:52:56 -07:00
Ramon Imbao
ca6a3e0832 Add the Mona keyboard (#10702) 2020-10-21 10:04:39 +01:00
Joel Challis
4b2da8daf4 Update PR labeler to use pull_request_target (#10695)
* Update labeler to use pull_request_target

* Add back whitespace

* Add CI label
2020-10-20 14:01:53 +01:00
Ryan
c3ce06c2e7 Fix CLI warning for Massdrop udev rule (#10691) 2020-10-20 04:36:18 +11:00
M-AS
9f1f43bb86 [Keymap] Updated personal Massdrop CTRL keymap (#10649)
* initial port of keymap to latest qmk version

* forgot to add space cadet shift, fixed

* corrected colors and added color macros

* added custom rgb matrix effects

* enabled extrakey

* updated readme

* Added GPL3 License Headers

* Added images to readme

* clang-format

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* renamed README.md to readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 16:30:24 -07:00
AnthonyL
c4d87f3073 [Keyboard] Add IDOBAO ID87 (#10577)
* Add IDOBAO ID87.

* Layout changes.

 * Updated rules.mk
 * Implemented capslock led.
 * Updated readme to new version.
 * Fixed the info.info.json for the new layout.
 * Updated RGB number config.h.
 * Update rules.mk to try and line up nicely.

* Fix via keymap.keymap.c

* Fix all the auto-created labels.

 * Update keymaps again.

* Add additional RGB commands.

* Update keyboards/id87/info.json

Format update.

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/id87/readme.md

Remove quotations.

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/id87/readme.md

Change Flash to Flashing

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/id87/rules.mk

Alignment Fix

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/id87/info.json

Remove qmk_converter link meta.

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-18 16:16:42 -07:00
Casey Webster
8bb2eeaabb [Keymap] add cwebster2 userspace and keymaps (#10541)
* Adding my keymap

* Add a starter keymap for kyria

* Updated keymap

* Add auto shift, tapping modifications and gravatar oled bitmap

* Add flashing helper scripts

* Updates to my keymap

* Enable raw hid and rgblight sleep

* Cleanup

* Updated keymap and board features

* Remove some RGB modes for space

* Start working on a miryoku-like keymap.

This adds homerow mods to my keymap on the base layer and adds
a game layer that doesnt have them

* more work on keymaps

* Fine tuning home row mods

* update keymap

* Keymap update

* add split transport

* keymap

* cherry pick from develop

* merge develop

* fix

* keymap iterations

* Refactoring

* continued refactoring

* messing with rgb

* update layer coloring

* continued refactoring

* more features

* modifier color

* Move stuff to userspace

* Moving stuff out to userspace

* refactoring into userspace

* More refactoring

* Fixing some errors in the keymap and changing the oled output

* Sync zen1 keymap to my userspace config

* Update copyright notices and revert transport.c to master

* Swap tab and esc

* Remove a file accidentally created

* Use LTO_ENABLE to turn on Link_Time_Optimization

* Drop modtap thumbs on game layout

* Update game keymap

* More iteration on the game keymap

* Add oled indications of kitty and i3 mod

* Promote colemak to default

* Update tapping term for modtap keys

* Add per key tapping term

* Use left modifiers on right side
2020-10-18 13:55:38 -07:00
GG
c492dd7912 [Keyboard] Add support for ikki68 (#10576)
* ikki68 from wuquestudio

* NEW ikki68

* Add support for ikki68

* Update readme.md

Co-authored-by: root <root@LAPTOP-GZH.localdomain>
2020-10-18 13:52:03 -07:00
Jack Humbert
7622678bd0 [Keymap] Adds Jack's 4x12 grid keymap (#10586)
* add jack's planck keymap

* move to community layouts

* add image to readme

* fix imgae

* fix image for real

* Update layouts/community/ortho_4x12/jackhumbert/config.h

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-18 13:51:15 -07:00
mexsistor
0728a6b753 [Keyboard] Add mexsistor/ludmila (#10506)
* Add files via upload

* Update keyboards/mexsistor/ludmila/config.h

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

* Update keyboards/mexsistor/ludmila/ludmila.h

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

* Update ludmila.h

* Update keymap.c

Disable unnecessary code

* Update rules.mk

* Update matrix.c

* Update keyboards/mexsistor/ludmila/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keymap.c

* Update keyboards/mexsistor/ludmila/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keymap.c

* Update keymap.c

* Update ludmila.h

* Update keyboards/mexsistor/ludmila/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mexsistor/ludmila/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mexsistor/ludmila/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mexsistor/ludmila/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mexsistor/ludmila/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mexsistor/ludmila/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add files via upload

* Add files via upload

* Delete config.h

* Delete

* Update readme.md

* Update readme.md

* Delete tapdance timing

* Delete matrix.c

* Create matrix.c

* Deleted ludmila, add ludmila_v1

* Update readme.md

* add ludmila

* delete ludmila_v1, create ludmila

* Create matrix.c

* Change in matrix.c code and sustitute yes/lite custom_matrix in rules.mk

* Update keymap.c

* Add description; Change on RGB PIN

* Revert "Add description; Change on RGB PIN"

This reverts commit cfbe534925.

* config.h and rules.mk update

* Update keyboards/mexsistor/ludmila/info.json

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

* Update keyboards/mexsistor/ludmila/info.json

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

* Update keyboards/mexsistor/ludmila/rules.mk

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: U-MEXSISTOR\Macropads <Kevin M>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-18 13:45:47 -07:00
Alabahuy
e468380be6 [Keyboard] add rartlice (#10495)
* Create bootloader_defs.h

* Create chconf.h

* Create config.h

* Create halconf.h

* Create info.json

* Create mcuconf.h

* Create rartlice.c

* Create rartlice.h

* Create readme.md

* Update readme.md

* Create rules.mk

* Create keymap.c

* Update config.h

* Update rules.mk

* Update config.h

* Update keymap.c

* Update rules.mk

* Delete bootloader_defs.h

* Update rules.mk
2020-10-18 13:41:53 -07:00
Joel Challis
8456625655 Initial auto PR labeler config (#9814)
* Initial auto PR labeler config

* Update .github/labeler.yml

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

* Update since develop merged

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-10-18 20:40:37 +01:00
npspears
6ad813e811 [Keyboard] Plexus75 (#10668)
* Added Plexus75 PCB

* Update keyboards/plexus75/readme.md

* Update keyboards/plexus75/rules.mk

* Update config.h

* Update config.h

* Update keyboards/plexus75/readme.md

* Update keyboards/plexus75/rules.mk

* Update keyboards/plexus75/config.h

* Update keyboards/plexus75/readme.md

* Update keyboards/plexus75/info.json

* Update keyboards/plexus75/info.json

* Update keyboards/plexus75/info.json

* Added License Header

* Update plexus75.h

added license header
2020-10-18 11:07:22 -07:00
MelGeek
4d22bc9de0 [Keyboard] Melgeek Mojo75 (#10426)
* [Keyboard]  Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

* Update keyboards/melgeek/mj61/mj61.c

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

* Update keyboards/melgeek/mj61/rev1/config.h

* Update keyboards/melgeek/mj61/rev1/rules.mk

* Update keyboards/melgeek/mj61/mj61.c

* Update keyboards/melgeek/mj61/mj61.c

* [Keyboard] Support MoJo75 which is a 75% Hotswap RGB keyboard

* Update melgeek/mojo75 vid and pid
Add    melgeek/mojo75/rev1/rev1.c

* Update MelGeek mojo75 VIA layout
2020-10-18 11:05:01 -07:00
yiancar
d49dcdd667 Nebula12 RGBLIGHT buffer workaround (#10555)
* Work around for rgblight buffer

* Update config.h

* Prettify

* Clip led range
2020-10-19 00:37:33 +11:00
Cmdr. Emily
f952d4f7b7 Support OpenDeck 32 keyboard (#10305)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 18:37:02 +11:00
Dylan Straw
8be058d55d Enabled the use of VIA for KPRepublic BM40 (#10677)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 18:36:43 +11:00
Drashna Jaelre
40e694ea0d Add last breaking changes log to sidebar (#10680)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 15:46:47 +11:00
Zach White
445cd95d17 Improve ANSI support and --no-color (#10537)
* Improve ANSI support and --no-color

* tweak when levelname gets stripped of ansi

* sync with latest milc

* make questions work with both milc versions

* pyformat
2020-10-17 21:01:11 -07:00
Morten Linderud
7d5ba88e6f 50-qmk.rules: Move udev rules from documentation into a file (#10664)
This makes it overall easier to package for downstream distributions
instead of keeping tabs with inline documentation.

Signed-off-by: Morten Linderud <morten@linderud.pw>
2020-10-17 20:30:18 +01:00
Pierre Chevalier
704934c427 Ferris reorganization (#10564)
* Add my own keymap

* Layer 0: Workman
* Layer 1: RSTHD (my own take on it)
* Layer 2: Mouse
* Layer 3: Navigation
* Layer 4: Symbols right
* Layer 5: Symbols left
* Layer 6: Fn keys
* Layer 7: Numbers
* Layer 8: Vim and misceallaneaous accessible from any other layer

* Move the current code to a 0.1 folder in preparation for upcoming changes

Version 0.2 is currently being prototyped and uses an arm chip which
will need its own firmware.

There is also the Ferris sweep which uses a pro-micro compatible board
which will need its own directory.

* Move Ferris out of handwired and into the light

The keyboard is now well out of the prototype phase as tens of them have
been produced and acquired by various people.

With 0.2 coming out, adoption is going to increase again as the board
will be available for sale at some recognized vendors.

Now is probably a good time to recognize its status as more than a
prototype :)

* Add code for the Ferris Sweep (a.k.a cradio)

The Ferris Sweep is a creation of the talented @davidphilipbarr, a.k.a DPB.
It has the key layout of a Ferris and uses a pro-micro connected to the
switches via direct pins so that diodes are not needed and the soldering
is minimal.

With their blessing, I took the code for it from DPB's own repo:
https://github.com/davidphilipbarr/36keys/tree/master/qmk/cradio
and did some adaptations such as removing commented out code, enabling
EE_HANDS and mouse keys for consistency with my existing Ferris code.

* Fix indentation in rules.mk

* Fix indentation in sweep's config

* Remove unnecessary lines from sweep's rules.mk

* Remove unnecessary lines from sweep's rules.mk

* Rename 0.1 to 0_1

This avoids the dot looking like the separation between a filename and
its extension.

In the same commit, bring matrix.c to the 0_1 folder as this was needed
for the code to compile properly (matrix.c is referred to in the readme
under `0_1` and is specific to that revision of the firmware).

* Update copyright statements for Sweep
2020-10-17 12:20:34 -07:00
dezli
47ea522e79 [Keymap] Add miniMACRO5 User Keymaps (#10595)
* add kabraxcis keymap

this is a user keymap for a member of my group-buy. this is the creation commit

* add voaraq keymap

this is a user keymap for a member of my group-buy

* update kabraxcis keymap

* add licenses
2020-10-17 12:16:28 -07:00
Sendy YK
f663ba5ed0 mrsendyyk Keymap Cleanup (#10539)
* Cleanup

* Update info.json

* Update license notice

* Fix license notice

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Add RGB Light Mode Static Gradient 26

* Update
2020-10-17 12:14:02 -07:00
Sönke Hahn
de0153f339 [Keymap] moonlander:shahn-neo (#10667)
* basic keys working

* more stuff

* more stuff

* empty upper layers

* more stuff

* cleanup

* more stuff

* add the letter 'j'

* add '0' to layer 4

* implement umlauts and eszett with menu key as compose key

* add comment

* renamed layout

* change copyright notice

* add separate readme file
2020-10-17 12:09:03 -07:00
yulei
3633330e1a Fix iNETT Studio SQUARE.X overcurrent issue (#10660) 2020-10-17 12:05:21 -07:00
Drashna Jaelre
855dd2d218 [Keymap] Drashna Code Cleanup (#10656)
* Add Launchpad keymap

Note: RGB and Audio won't work when using B pins for audio

* Add support for rgb matrix on launchpad

* Update config for launchpag

* Disable wait on layer change

* Update config for ErgoDox EZ

* Fixup rgb light userspace code

* Move Corne layout to community layouts folder

* Update config for corne to support community layouts

* Add license header to files

* Minor cleanup of userspace config

* Update Pimironi Trackball code

* Increase debounce time on ergodox

* Fix keymap handling

* Enable wait for USB for moonlander

* Update/add license headers

* fix review issues
2020-10-17 11:46:57 -07:00
Ramon Imbao
aa1c1c3865 [Keyboard] AELITH (#10652)
* Add AELITH keyboard

* Add AELITH keyboard

* Update keyboards/ramonimbao/aelith/rules.mk

* Update keyboards/ramonimbao/aelith/config.h

* Update keyboards/ramonimbao/aelith/keymaps/via/rules.mk

* Update keyboards/ramonimbao/aelith/readme.md

* Update keyboards/ramonimbao/aelith/readme.md

* Update keyboards/ramonimbao/aelith/config.h

* Update keyboards/ramonimbao/aelith/config.h

* Change layouts based on suggestions

* Add LAYOUT_alice macro
2020-10-17 11:40:30 -07:00
James Young
de68d294ec [Docs] add "Adding Default Keymaps to QMK Configurator" doc (#10049) 2020-10-18 03:50:32 +11:00
Ryan
f0a1ab5488 MSYS and WSL installation improvements (#10593) 2020-10-18 02:45:21 +11:00
Ryan
1a2a838bc2 [CLI] Remove check for Input Club boards (#10636) 2020-10-18 02:44:38 +11:00
Blake
67474f7e3f [Keyboard] Draytronics Scarlet (#10655)
* Initial test version of Scarlet keyboard

* First commit of DElec Scarlet

* Change to new Draytronics branding

* Update to keyboard details

Update to keyboard details and link to Draytronics website.

* Update keyboards/draytronics/scarlet/scarlet.h

* Update keyboards/draytronics/scarlet/rules.mk

* Update keyboards/draytronics/scarlet/readme.md

* Update keyboards/draytronics/scarlet/keymaps/default/keymap.c

* Update keyboards/draytronics/scarlet/config.h

* Update keymap.c

* Update config.h

* Update scarlet.h

* Update keyboards/draytronics/scarlet/config.h

* Update keyboards/draytronics/scarlet/config.h

* Update keyboards/draytronics/scarlet/scarlet.h

* Update keyboards/draytronics/scarlet/keymaps/default/keymap.c
2020-10-17 03:58:51 -07:00
shela
39c473a639 [Docs] Update feature_combo.md of Japanese document (#10671) 2020-10-17 03:19:06 -07:00
cole smith
f871f7a56f [Keyboard] Boardsource spooky (#10521)
* added spooky keyboard t
o boardsouce folder

* restoring to clean start I think

* added back in my files for this keyboard

* Update keyboards/boardsource/holiday/spooky/config.h

* Update keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c

* Update keyboards/boardsource/holiday/spooky/readme.md

* Update keyboards/boardsource/holiday/spooky/spooky.h

* updated all keymaps to support 2x3 ortho

* Apply suggestions from code review
2020-10-17 03:17:44 -07:00
Reid Sox-Harris
e0bdd51177 [Keymap] add keyhive/maypad:eosti (#10663)
* adds eosti/maypad keymap

* remove empty function calls
2020-10-17 02:31:21 -07:00
JagdPietr Reneksson
fba7d4e32f Move Drakon to jagdpietr directory (#10155)
* move drakon to jagdpietr directory

* Updates

Recommended changes implemented in this commit due to progress loss in last commit

* Update vusb

* Update keyboards/jagdpietr/drakon/drakon.c
2020-10-17 02:11:51 -07:00
Danny
cab49809ad Add Levinson VIA support (#10631)
* Add Levinson VIA keymap

* Update product IDs for Levinson to embed version number

* Add layer 3 access

* Apply suggestions from code review
2020-10-17 00:38:35 -07:00
Danny
42696a4f8c Update Nyquist VIA support and default keymap (#10632)
* Update default and via keymaps

* Update PID and enabled build options

* Update keyboards/keebio/nyquist/keymaps/via/keymap.c

* Update keyboards/keebio/nyquist/rev3/rules.mk

* Update keyboards/keebio/nyquist/rev2/rules.mk
2020-10-17 00:30:26 -07:00
Xelus22
a4dfa45f37 [Keyboard] Add Kangaroo (#10511)
* roo initial

* update scannign t imes

* enable dma

* rename kangaroo

* updates

* update rules.mk

* keymap

* fix up config

* fix reamde

* fix up config

* update license headers

* rules.mk update

* info json

* Update keyboards/xelus/kangaroo/rules.mk
2020-10-17 00:18:50 -07:00
Garret G
616dc7dd5d [Keyboard] 45-ATS (#10104)
* add ats folder

* fix duplicate matrix key

* fix matrix issues

* fix missing comma in info.json

* clean up info.json

* rm game layer toggle in via keymap

* update via keymap rules.mk

* Update info.json

* clear up layout graphics

* Apply suggestions from code review

* Update 45_ats.c

* Update 45_ats.h

* Update config.h

* Update config.h

* Update keyboards/45_ats/keymaps/default/config.h

* Update keymap.c

* Update keyboards/45_ats/keymaps/default/keymap.c

* Update keymap.c

* Update keyboards/45_ats/keymaps/via/keymap.c

* Apply suggestions from code review

* Update keyboards/45_ats/config.h
2020-10-16 22:19:55 -07:00
Jakob Stendahl
44f9017cb8 Bm60rgb iso nordic keymap with sleepmode functional (#10510)
* Add nordic keymap

Changes from default:
- Change button right of `LSHIFT` to `KC_NUBS`
- Add some more keys to the second layer.

* Add sleepmode functionality

Added a sleepmode, this turns of the rgb_matrix if no key was pressed for x minutes. Not default on, so you have to enable it by defining `SLEEPMODE_ENABLED`.

* Move all sleepmode config to config.h, rename keymap

- Move all configurations for sleepmode to keymap config.h
- rename keymap to include reference to it having sleepmode (suggestion from guy the discord-server)
- add copyright in config.h

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/config.h

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
2020-10-16 21:29:15 -07:00
Harshit Goel
3c4fa68000 Make VIA config for redox_w (#10578)
* Make via config for redox_w

* Add missing layer function back, fixed typo and maintainer name
2020-10-16 16:01:19 -07:00
MelGeek
cb556b7a16 [Keyboard] Melgeek MJ64 (#10425)
* [Keyboard] Support MJ64 which is a 60% Hotswap RGB keyboard with arrows
and the size of left shift is 2.25U

* Update keyboards/melgeek/mj64/mj64.h

* Update keyboards/melgeek/mj64/keymaps/default/keymap.c

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/keymaps/default/keymap.c

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/rev2/rules.mk

* Update keyboards/melgeek/mj64/rev1/rules.mk

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/info.json

* Update keyboards/melgeek/mj64/info.json

* Update keyboards/melgeek/mj64/rev1/config.h

* Update keyboards/melgeek/mj64/rev2/config.h

* Update the VID and PID in mj64/config.h
add the rev1/rev1.c
add the rev2/rev2.c
2020-10-16 15:18:06 -07:00
James Young
87317a3af6 [Keyboard] GH60 v1.3 (#10575)
* [Keyboard] GH60 v1.3 Support

* clean up info.json

Update key sizes and positioning.

* add readme

* add image to readme

* fix up info.json LAYOUT_all

* add LAYOUT_60_ansi

I'm guessing at this based on a photo of the PCB. Chances are high that this isn't fully functional.

* add matrix block comment to v1p3.h

* add default_ansi keymap

* add keymap readme files

* fix LAYOUT_60_ansi macro

* enable 60_ansi Community Layout support

* add layouts for 60_ansi_arrow

Add LAYOUT_60_ansi_arrow and LAYOUT_60_ansi_arrow_split_bs macros. (The user helping me test runs the split Backspace variant.)

* add Tsangan, HHKB, and 64_ansi layout macros

* add factory keymaps and layout info

* update copyright headers

I mean... if someone's gotta "own" this code...

* fix broken factory_* keymaps
2020-10-16 22:23:32 +01:00
jotix
92b7dff3ae Jotix ortho_4x12_layout (#10647)
* back_to_the_roots

* mouse layer is gone

* mouse layer is gone
2020-10-16 11:09:57 -07:00
MelGeek
0dc74dd8c4 [Keyboard] Add Z70Ultra - a Hotsawp RGB 65% keyboard (#9202)
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard

* Update keyboards/melgeek/z70ultra/z70ultra.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/z70ultra.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/z70ultra.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/z70ultra.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/z70ultra.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/z70ultra.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update readme.md

* Update info.json

update the name of layout to consistent the keyboard.

* Update keyboards/melgeek/z70ultra/z70ultra.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/z70ultra.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add Z70Ultra

* Support Z70Ultra
  [Modified] info.json to support two different layouts
  [Add]      rules.mk to support default folder

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/z70ultra/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* remove excessive arguments from LAYOUT_split_space

* Update keyboards/melgeek/z70ultra/info.json

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

* Update keyboards/melgeek/z70ultra/info.json

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.h

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

* Update keyboards/melgeek/z70ultra/z70ultra.h

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Use macro replace with the literal for CS & SW

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* [Keyboard]  Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

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

* Update keyboards/melgeek/mj61/mj61.c

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

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/rev1/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/rev1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/mj61.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/mj61.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add GPL for files

* Update keymaps/default/keymap.c

* Update keymaps/via/keymap.c

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-16 09:11:17 -07:00
holtenc
6529cbac0d [Keyboard] Add Prime_E RGB PCB (#10615)
* add Prime_E RGB PCB

* Update keyboards/primekb/prime_e/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/primekb/prime_e/std/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/primekb/prime_e/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/primekb/prime_e/rgb/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/rgb/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/rgb/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/std/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/prime_e/std/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-15 22:41:44 -07:00
Andre Azzolini
139d28eaae [Docs] Add link to Tap-Hold Configuration Options from Mod-Tap (#10548) 2020-10-15 21:23:24 -07:00
Salicylic-acid3
a1f129edd5 [Keyboard] Added via support for JISplit89 (#10547)
-Changing the VID
-Add a keymap via
-Keymap and copyright fixes
2020-10-15 21:22:25 -07:00
Salicylic-acid3
73699cccbc [Keyboard] Add 7splus keyboard (#10538)
* Add 7splus keyboard.

A 85 keys ANSI Layout split keyboard.
Salicylic-acid3

* Update keyboards/7splus/keymaps/default/keymap.c

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

* Update keyboards/7splus/keymaps/salicylic/keymap.c

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

* Update keyboards/7splus/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Added VIA keymap and a few updates

Adding a VIA Keymap
Updating the key layout diagram
Copywrite added for salicylic keymap

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-15 21:12:09 -07:00
Spaceman
229dbcc547 Add via keymap for pancake (#10551)
* Add via keymap for pancake

* Add license to keymap

* Update rules.mk

* Update rules.mk

* Update keyboards/spaceman/pancake/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-15 22:11:33 +01:00
Joel Challis
c738ce2f65 Move SP-111 to vendor folder (#10633)
* Move SP-111 to vendor folder

* Fix space indentation
2020-10-15 12:05:44 -07:00
George Mao
c0b3034721 Add alice community layout (#10518)
* Added LAYOUT_alice

* Added fauxpark's suggestions as well as updating keymap graphic

* Added file header and used noroadleft's fix to the info.json for fast input mode
2020-10-15 19:23:35 +01:00
Raleigh Wayland
f90688e550 Adding Opus keyboard (#10628)
* Adding opus keyboard

* Preparing keyboard for PR

* Adding images to default keymap readme

* Changing VENDOR_ID

* Minor changes

* Changing PRODUCT_ID

* Removing comment

* Fixing tap dance issue

* #pragma once instead of #ifndef

* Resolving PR suggestions

* Removing ifndef

* Using lower resolution image

* Formatting comments

* Adjusting copyright year

Co-authored-by: Raleigh Wayland <raleigh.wayland@stormapp.com>
2020-10-15 19:19:51 +01:00
Harshit Goel
0f453bc5f7 Add VIA code to ergoTravel (#10493)
* Add VIA code to ergoTravel, VendorId changed to allow via

* Update LTO_ENABLE for via

* Accept comments from the QMK PR discussion

* Restore original rules.mk from qmk master, update via rules to remove redundant bootmagic

* rules update

* find and use unique VID without qmk. Used 0x4A50, did not find clash

* Removed unused via layer

* Reset hard to last clean commit, redo changes for Hex Translation and Enum
2020-10-15 11:11:23 -07:00
Reid Sox-Harris
21357b658a [keyboard] Maypad: Add additional layout (#10643)
* add split plus layout

* update README

* rename splitPlus to split_plus

* Update keyboards/keyhive/maypad/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-15 18:41:04 +01:00
Reid Sox-Harris
2c5ad9189c update eosti keymaps (#10610)
* adds eosti/planck keymaps

* updates eosti keymaps

* add header guard to bdn9 config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* reduce file size of compiled firmware

* move console disable to rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-15 03:08:28 +01:00
Ryan
b0dbe7365b Fix STM32duino bootloader (#10648) 2020-10-15 02:55:31 +01:00
Reid Sox-Harris
af2c506383 adds eosti/planck keymaps (#10616) 2020-10-15 02:10:15 +01:00
MechMerlin
59d503e3b9 [keyboard] Add Caps Lock LED Logic to exclusive/e85/soldered (#10639)
* on behalf of VashtaNerada commiting his code to get caps lock led working on the soldered E8d E8.5

* Update keyboards/exclusive/e85/soldered/soldered.c

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-15 01:37:11 +01:00
MakotoKurauchi
b63b2106d8 Fix config for Helix rev3 4rows (#10641)
* update "Hardware Availability"

* add a section of "How to build"

* update "Hardware Supported"

* add SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT for rev3_4rows/config.h

Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
2020-10-15 05:16:17 +09:00
shela
a2af0a352b Update other_vscode.md of Japanese document (#10604)
* Update Japanese document

* Fix inline code

* Update docs/ja/other_vscode.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-10-15 03:24:26 +09:00
Drashna Jaelre
6aae926b5f Fix issues with suspend code for ZSA split boards (#10640) 2020-10-14 16:23:08 +01:00
gtips
49dd1edb69 Update reviung34 PRODUCT_ID (#10480)
* update reviung34 PRODUCT_ID
2020-10-14 02:50:35 -07:00
Ryan
7437a38899 Whitefox refactor (#10175) 2020-10-14 15:06:05 +11:00
Filip Paryż
381884fa9b Fix for issue #10386 - Can't compile preonic:dudeofawesome (#10557)
Co-authored-by: FilipParyz <paryz.1i12@op.p>
2020-10-14 13:41:34 +11:00
shela
f706e1e80e Update Japanese document (#10607) 2020-10-14 05:09:59 +09:00
Takeshi ISHII
46c77febf7 [Docs] Japanese translation of docs/pr_checklist.md (#10415)
* japanese translation of docs/pr_checklist.md

* update docs/ja/pr_checklist.md

* update docs/ja/pr_checklist.md

* update docs/ja/pr_checklist.md

* add :id=lite to docs/ja/custom_matrix.md

* add :id=... to docs/ja/custom_quantum_functions.md

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/pr_checklist.md

* Update docs/ja/pr_checklist.md

* Update docs/ja/pr_checklist.md

Co-authored-by: s-show <s1shimz@gmail.com>

* Update docs/ja/pr_checklist.md

Co-authored-by: s-show <s1shimz@gmail.com>

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: s-show <s1shimz@gmail.com>
2020-10-14 05:08:26 +09:00
Taylor Walla
fdbf67e0da [Keyboard] Add Voyager60-Alps keyboard (#10516)
* add voyager60_alps

* add readme, add gpl headers

* add info.json

* include all keys in info.json

* fix typo in config.h

* Update keyboards/ai03/voyager60_alps/keymaps/default/keymap.c

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

* Update keyboards/ai03/voyager60_alps/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ai03/voyager60_alps/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ai03/voyager60_alps/rules.mk

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

* Update keyboards/ai03/voyager60_alps/voyager60_alps.c

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-13 04:46:21 -07:00
Christian Eiden
bb35f6a6f5 [Keymap] Add own KBD67 MKII keymap (#10532)
* own KBD67 MKII keymap

Signed-off-by: Christian Eiden <christian@eiden.ch>

* Update keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>
Signed-off-by: Christian Eiden <christian@eiden.ch>

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-13 04:40:47 -07:00
Drashna Jaelre
c87b2efef8 Add VIA keymap for EVE Meteor. (#10454)
* Add VIA keymap for EVE Meteor.

* Remove bootmagic flag and add vendor/product IDs.

* Update keyboards/eve/meteor/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Increment EVE Vendor ID to be unique.

* Change product IDs.

Make the EVE Meteor IDs both unique and somewhat logical based on the product name.

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-13 04:36:17 -07:00
Drashna Jaelre
2a65709db6 [Keyboard] Update to ZSA Boards (#10119)
* Add VID/PIDs to ErgoDox EZ

* Add VID/PIDs for Planck EZ and Glow revision

* Make names consistent

* fix typo in docs

* Move LED config back, for maximum compatibility

* Add revisions for ErgoDox EZ boards

* Fix embarassing typo

* Typooooo

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update Licensing info

* Update Moonlander default keymap to match Oryx's default

* Fix formatting based on suggestions

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

* Make indicator LEDs more configurable

* Update default keymap

* Handle older eeprom settings

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-13 04:35:36 -07:00
Nate Stein
451e600476 [Keyboard] update boot-mode method for EVE Meteor docs (#10453) 2020-10-13 04:35:02 -07:00
MelGeek
6f391094ab [Keyboard] Melgeek mj63 (#10424)
* [Keyboard]  Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

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

* Update keyboards/melgeek/mj61/mj61.c

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

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/rev1/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/rev1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/mj61.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/melgeek/mj61/mj61.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* [Keyboard] Support MJ63 which is a 60% hotswap RGB keyboard with arrows
and the size of left shift is 2U

* Update keyboards/melgeek/mj63/mj63.h

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

* Update keyboards/melgeek/mj63/keymaps/default/keymap.c

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

* Update keyboards/melgeek/mj63/keymaps/via/keymap.c

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

* Update keyboards/melgeek/mj63/keymaps/via/keymap.c

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

* Update keyboards/melgeek/mj63/rev1/rules.mk

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

* Update keyboards/melgeek/mj63/keymaps/via/keymap.c

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

* Update keyboards/melgeek/mj63/info.json

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

* Update keyboards/melgeek/mj63/keymaps/default/keymap.c

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

* Update keyboards/melgeek/mj63/keymaps/via/keymap.c

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

* Update keyboards/melgeek/mj63/keymaps/default/keymap.c

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

* Update keyboards/melgeek/mj63/mj63.c

Co-authored-by: Joel Challis <git@zvecr.com>

* [Keyboard] MelGeek MJ63
    * Change the VID and PID
    * move the mj63.c to the rev1/rev1.c

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-13 04:31:45 -07:00
Evgenii
5b067ffc16 [Keyboard] update keymap of zergo keyboard (#10402)
* Rename keyboards/handwired/zergo/keymap.c to keyboards/handwired/zergo/keymaps/default/keymap.c

* Update rules.mk

* Update rules.mk

* Update bootloader.mk

* Update rules.mk

* Update bootloader.mk

* Update info.json

* Update rules.mk

* Update zergo.h

* Update info.json

* Update keymap.c

* Update keyboards/handwired/zergo/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

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

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

* update layout

* update zergo layout

* update layout

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-10-13 04:16:10 -07:00
shela
b4e7d4ffae Update tags to check for document updates (#10606) 2020-10-13 17:03:17 +09:00
Silvio Gulizia
30c65a2547 updating my own keyboard layout (#10626) 2020-10-13 13:41:36 +11:00
shela
4d59657b83 Fix typo within debounce documentation (#10600) 2020-10-13 01:46:16 +01:00
Ryan
d46b8ef67c Add STM32Duino to bootloader selection (#10558) 2020-10-13 03:19:50 +11:00
Ryan
adc06c5b3b Remove bootloader_defs.h for some F072 boards (#10582) 2020-10-13 03:18:21 +11:00
Ryan
6c78f80fa1 Partial fix for sendstring_french.h (#10623) 2020-10-13 03:17:11 +11:00
shela
3d9fff1d28 Update Japanese document (#10605) 2020-10-13 01:08:38 +09:00
shela
975c2422f3 Update Japanese document (#10601) 2020-10-13 01:07:59 +09:00
shela
a4efb55a39 Update Japanese document. (#10599) 2020-10-13 01:07:11 +09:00
shela
96ac448a0f Update feature_bluetooth.md of Japanese document. (#10594)
* Update Japanese document.

* Left justified.

* Update docs/ja/feature_bluetooth.md

Co-authored-by: s-show <s1shimz@gmail.com>

* Update docs/ja/feature_bluetooth.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: s-show <s1shimz@gmail.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-10-13 01:06:06 +09:00
shela
216f9ed2c1 Update Japanese document. (#10589) 2020-10-13 01:05:28 +09:00
shela
c66d65df58 Update Japanese document (#10603) 2020-10-13 01:02:52 +09:00
Takeshi ISHII
f7e5d712c2 [Docs] Japanese translation of docs/isp_flashing_guide.md (#9896)
* start translation docs/ja/isp_flashing_guide.md

* Japanese translation is in progress.

* Japanese translation is in progress.

* Japanese translation is in progress.

* Japanese translation is in progress.

* Japanese translation is in progress.

* Japanese translation is in progress.

* Japanese translation is in progress.

* update docs/ja/isp_flashing_guide.md

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: Takuya Urakawa <urkwtky@gmail.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: Takuya Urakawa <urkwtky@gmail.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: Takuya Urakawa <urkwtky@gmail.com>

* Update docs/ja/isp_flashing_guide.md

Co-authored-by: Takuya Urakawa <urkwtky@gmail.com>

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: Takuya Urakawa <urkwtky@gmail.com>
2020-10-13 01:01:07 +09:00
Jan-Frederick Musiol
49abff9071 changed type of process_combo_event argument in tutorial (#10621)
in tutorial for combos feature, changed type of compo_index argument of process_combo_event form uint8_t to uint16_t
2020-10-13 02:14:37 +11:00
MakotoKurauchi
2d4ae0fe7b Fix configurator layout helix/rev3_4rows (#10618)
Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
2020-10-13 00:30:55 +11:00
MakotoKurauchi
4f923b1673 [Keyboard] Add Helix rev3 (#10297)
* add Helix Type-R keyboard

* add default 4Rows keymaps

* cleanup 4row keymaps

* update about SPLIT_HAND_MATRIX_GRID and DIP_SWITCH_MATRIX_GRID

* change how to toggle mac/win

* update "Hardware Availability"

* add a section of "How to build"

* update "Hardware Supported"

* add dip-sw sections

* comment updated in function `encoder_update_user`

* revert how to toggle mac/win

* remove 4Rows variant build options

* rename helix_type_r to helix_5r

* add helix type-R 4Rows edition

* small modifications in keymap.c

* small modifications according to renaming

* change project root directory

* continuous work on ee2c39f1f9

* cleanup unused files

* update info.json files

* cleanup 5rows' keymaps

* rename and update readme.md

* update config.h

* update helix's readme.md and rules.mk

* update keymaps' overviews

* split into each keyboard

* optimize firmware size for via keymaps

* fix LAYOUT to LAYOUT4 in 4rows/rev3.h

* remove LAYOUT_kc lines from both keymaps

* rename tyep-r to rev3

* enable to SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT

* remove image from readme

* clean up for PR

* delete unnecessary comments

* change keyboard directory

* rename LAYOUT4 to LAYOUT for rev3_4rows

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

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

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

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

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

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

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

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

* Update keyboards/helix/rev3_4rows/keymaps/via/keymap.c

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

* Update keyboards/helix/rev3_4rows/keymaps/via/keymap.c

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

* Update keyboards/helix/rev3_4rows/keymaps/via/keymap.c

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

* Update keyboards/helix/rev3_4rows/rules.mk

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

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

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

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

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

* Update keyboards/helix/rev3_5rows/keymaps/via/keymap.c

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

* Update keyboards/helix/rev3_5rows/keymaps/via/keymap.c

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

* Update keyboards/helix/rev3_5rows/keymaps/via/keymap.c

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

* Update keyboards/helix/rev3_5rows/rules.mk

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

* Cleanup ADJUST Layer code for VIA

* change SEND_STRING to tap_code

* update readme

* moved the oled code from the keymap to the keyboard

* moved the dip switch code from the keymap to the keyboard

* change layout name for info.json

* Update keyboards/helix/rev3_4rows/rev3_4rows.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/rev3_4rows.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/rev3_4rows.h

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/rev3_5rows.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/rev3_5rows.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

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

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/keymaps/via/keymap.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/keymaps/via/keymap.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/oled_display.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

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

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/rev3_5rows.h

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

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

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

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

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/keymaps/via/keymap.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/keymaps/via/keymap.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/oled_display.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/oled_display.c

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

* Update keyboards/helix/rev3_5rows/config.h

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

* Update keyboards/helix/rev3_5rows/info.json

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

* Update keyboards/helix/rev3_4rows/oled_display.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_5rows/oled_display.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/helix/rev3_4rows/config.h

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* Update keyboards/helix/rev3_4rows/oled_display.c

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* deleted key_count in info.json

Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-12 11:37:31 +09:00
Joakim Tufvegren
cacf495c91 Ergodox Infinity: Add EE_HANDS support. (#9527)
Including a guide to set these EEPROM values (in the readme).
2020-10-11 01:48:52 +01:00
shela
a88cfa395b Update feature_backlight.md of Japanese document. (#10592)
* Update Japanese document.

* Update tag
2020-10-10 18:16:32 +09:00
shela
6e78655e17 Update Japanese document. (#10591) 2020-10-10 18:15:22 +09:00
shela
b0c8cbe462 Update Japanese document. (#10590) 2020-10-10 18:12:04 +09:00
shela
962adbea3a Update Japanese document. (#10588) 2020-10-10 18:00:11 +09:00
Dave Rowe
7c32fbf493 XD68 - Adjust the VIA keymap to more closely match vendor (#10566) 2020-10-10 15:41:19 +11:00
Erovia
459f672879 CLI: Fix stripping of ANY from Configurator exports (#10585)
058737f broke it ¯\_(ツ)_/¯
2020-10-09 18:46:49 +01:00
Evan Travers
cd0e32ff9e [Keyboard] Keyboardio Atreus (#10570)
* Initial support for the Keyboardio Atreus

Many thanks to noroadsleft for reviews & suggestions.

* Add QMK Configurator layout support

* Update the fn layer of the Keyboardio Atreus to the new layout.

Previously this was using the Classic Atreus layout.

* Implement noroadleft's changes from #8492

* Follow Erovia's recommendations

qmk/qmk_firmware#8492

* Correct braces

* Change correct rules.mk

* Remove comments

* Fix BOOTMAGIC_ENABLE

I had edited the wrong file earlier.

* Remove comment

* Updates rules.mk

Thank you noroadsleft.

Co-authored-by: Gergely Nagy <algernon@keyboard.io>
Co-authored-by: Phil Hagelberg <phil@hagelb.org>
2020-10-08 23:17:25 -07:00
Ryan
7229997e7d CLI: Fix MCU lists for qmk info (#10574) 2020-10-09 11:43:07 +11:00
moyi4681
5fbd55999b bella soldered small fix (#10544) 2020-10-08 23:37:20 +01:00
Joel Challis
ff1b625168 Add smk65/revf support (#10434)
* Move existing files out the way

* Convert to community layouts

* Add smk65/revf support

* Disable stuff by default

* Update IDs for via

* Align LAYOUT macros for community layouts

* Align LAYOUT macros for community layouts - Fix configurator ordering

* Update via keymap

* remove stub _kb function

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-08 21:58:08 +01:00
EMajesty
fe5bcae8b3 [Keyboard] New keyboard - eiri (#10529)
* eiri default keymap compiles

* pic, info.json

* Added picture for default layout, changed PRODUCT_ID

* Changes to default keymap

* Cleaned unused template remnants from files

* Update keyboards/emajesty/eiri/readme.md

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

Co-authored-by: EMajesty <deceit66@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-07 17:04:49 -07:00
Chus
cba4c1deb5 [Keymap] Add niu mini dye sub keymap (#10525)
* Add niu mini dye sub keymap

* Fix spacing

* Fix for blank spacing on layout

* Remove unused code

Co-authored-by: Joel Challis <git@zvecr.com>

* Remove audio and console settings

Co-authored-by: Joel Challis <git@zvecr.com>

* Updates rules and readme

* Add license GPL2 to keymap

Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-07 16:56:22 -07:00
Reibl János Dániel
d79fe65291 Clean ChibiOS platform files (#10505)
* Clean ChibiOs platform files

* Remove I2C and timer definitions

* Remove unnecessary files and rename readme

Co-authored-by: Janos Daniel Reibl <janos.daniel.reibl@protonmail.com>
2020-10-08 10:20:23 +11:00
Tom Swartz
ee6c86d8e9 [Keyboard] LeftyNumpad Keyboard (#10500)
* Clean LeftyNumpad code

* Fix typo in recently renamed file

* Fix issues with keymap layout

* Initial PR Feedback fixes

* Update keyboards/handwired/leftynumpad/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/leftynumpad/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* Apply suggestions from code review

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>

* Add fixes based on PR feedback

* Update keyboards/handwired/leftynumpad/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-07 15:35:42 -07:00
moyi4681
0a69225637 [Keyboard] add maja capslock indicator (#10151)
* add  maja capslock indicator

add  maja capslock indicator

* Update keyboards/kbdfans/maja/maja.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-07 13:48:30 -07:00
Nate Stein
b84b6107ff Change product IDs.
Make the EVE Meteor IDs both unique and somewhat logical based on the product name.

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-07 10:49:51 -07:00
a_p_u_r_o
bc79e51990 Fix issue introduced by PR#10404 (#10559) 2020-10-07 13:30:43 +11:00
Erovia
a67b32425b Docs: fix udev rules
Apparently, udev does not like inline comments.
Rules with them are ignored, oops.
2020-10-06 17:29:47 -07:00
Erovia
058737f116 [CLI] Add c2json (#8817)
* Basic keymap parsing finally works

* Add 'keymap.json' creation to the qmk.keymap module

* Add tests and fix formatting

* Fix/exclude flake8 errors

* Convert keymap.c to valid keymap.json

* Fix some errors

* Add tests

* Finalize keymap.json creation, add json template

* Add docs

* Move pygments to the standard requirements

* Add support for nameless layers, fix tests

* Fix things after rebase

* Add missing 'keymap' value.

* Fix missing layer numbers from advanced keycodes

Buckwich noticed that if the advanced keycode / layer toggling key
contains a number, it goes missing.
Now we properly handle them.
Thx for noticing!

* Apply suggestions from code review

* fixup tests

Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: skullY <skullydazed@gmail.com>
2020-10-06 17:10:19 -07:00
Ryan
c9a06965c9 Improve LAYOUT macro searching (#9530)
* Improve LAYOUT macro searching

* Apply suggestions from code review

Co-authored-by: Zach White <skullydazed@users.noreply.github.com>

* Adjust signature

* Try to copy the makefile's handling of DEFAULT_FOLDER

* Move it further up, into `info_json()`

* Move it even further up so that keyboard_folder is correct

* Update lib/python/qmk/info.py

Co-authored-by: Zach White <skullydazed@drpepper.org>

* Update lib/python/qmk/info.py

Co-authored-by: Zach White <skullydazed@drpepper.org>

Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@drpepper.org>
2020-10-06 16:57:40 -07:00
Ryan
2c9ffd4739 CLI: update subcommands to use return instead of exit() (#10323) 2020-10-06 16:46:10 -07:00
stein3
f7cffcbcd4 Increment EVE Vendor ID to be unique. 2020-10-06 07:25:49 -07:00
stein3
2e402741a8 Merge branch 'master' into meteor 2020-10-06 07:15:41 -07:00
Joe Strong
2013f63134 Fixes small typo in docs (#10515) 2020-10-05 19:21:39 +11:00
Gergely Peidl
32661df8cd Update personal keymap for Let's Split keyboard. (#10536)
* 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

* Remove Auto Shift feature.

* Remove Gaming layer.
2020-10-05 02:06:53 +01:00
Reibl János Dániel
661f4aaa8a [Keymap] Move my custom functions and keymaps to userspace (#10502)
* Move my custom functions and keymaps to userspace to be able to add the STM32F411 variant of my keyboard with mostly the same functionality

* Move keymaps to community layouts

* Remove keymaps from userspace readme.md

Co-authored-by: Janos Daniel Reibl <janos.daniel.reibl@protonmail.com>
2020-10-04 15:35:28 -07:00
Jakob
27f9f3196d [Keyboard] add support for ymd75 rev3 (#10483)
* add support for ymd75 rev3

* Update keyboards/ymd75/rev3/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ymd75/rev3/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* remove DESCRIPTION

* only apply offset for rev3

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-04 15:19:34 -07:00
Thomas Holt-Ronczy
89446bafb8 [Keyboard] Add soy20 PCB (#10440)
* Add soy20 PCB

adds default and VIA Keymaps for soy20 pcb by DrewKeys

* Update keyboards/soy20/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/rules.mk

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/soy20.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/keymaps/via/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/keymaps/via/keymap.c

Agreed. It was left over from the original file provided by the board makers original configurator file.

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/rules.mk

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/soy20/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/soy20.h

Co-authored-by: Ryan <fauxpark@gmail.com>

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

Co-authored-by: Ryan <fauxpark@gmail.com>

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

Co-authored-by: Ryan <fauxpark@gmail.com>

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

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/soy20/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Updating *.c & *.h files with GPL3 license

* Delete rules.mk

* Delete keymap.c

* Corrected Header Comments

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-04 14:48:13 -07:00
3araht
2bcac45650 Fix for MIDI sustain effect issue (#10361) 2020-10-04 14:32:24 -07:00
QMK Bot
c8cff1489a format code according to conventions [skip ci] 2020-10-04 20:54:31 +00:00
Drashna Jaelre
c4f910b1b3 Merge pull request #10404 from cmdremily/opendeck-core
Allow the use of only one IS31FL3731 LED driver
2020-10-04 13:05:26 -07:00
tomic1785
edebe56f6b [Keyboard] Add Yugo-M Controller (#10389)
* Created folder structure and blank files

* Update the yugo_m initial blank files

* Add yugo_m default keymap

* Update yugo_m info.json

* Fix yugo_m keymap.c

* keymap.c update

* Changed subfolder name

* File names

* Fixed lock LEDs problem

* Returned old subfolder name; LEDs fix

* Activated anti-ghosting feature in config.h

* Update readme.md

* Changed LAYOUT to LAYOUT_all

* Updated keymap.c

* corrected LAYOUT to LAYOUT_all in info.json

* Rewritten readme.md according to the template

* Removed backslashes from keymap.c

* Fixed readme.md

* Fixed readme.md again

* Tidying up readme.md

* Tidying up comments and readme.md

* Removed a line from rules.mk

* Update keyboards/yugo_m/model_m_101/model_m_101.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Removed chconf, halconf, mcuconf

* Updated LED control

* Update keyboards/yugo_m/model_m_101/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/yugo_m/model_m_101/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/yugo_m/model_m_101/config.h

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

* Update keyboards/yugo_m/model_m_101/config.h

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

* Update keyboards/yugo_m/model_m_101/model_m_101.c

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

* Update keyboards/yugo_m/readme.md

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

* Updated readme.md, there was an outdated info

* Update keyboards/yugo_m/model_m_101/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/yugo_m/model_m_101/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/yugo_m/model_m_101/model_m_101.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/yugo_m/model_m_101/model_m_101.c

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Nidzo Tomic <tomicn8@hotmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-04 12:50:03 -07:00
Sergey Vlasov
3a8e13a74a [Keymap] Add onekey keymap for OLED testing (#10380)
* Add onekey keymap for OLED testing

* Add license header
2020-10-04 12:41:03 -07:00
Isaac
1afb394d59 [Keymap] Add winterNebs keymaps (#10328)
* Add kyria keymap

* Add planck keymap

* Add nyquist keymap

* Add vim movement instead of regular movement layer

* Use partial home row mods :)

* Update keyboards/keebio/nyquist/keymaps/winterNebs/config.h

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

* Update keyboards/keebio/nyquist/keymaps/winterNebs/keymap.c

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

* Update keyboards/keebio/nyquist/keymaps/winterNebs/keymap.c

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

* Update keyboards/keebio/nyquist/keymaps/winterNebs/keymap.c

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

* Update keyboards/keebio/nyquist/keymaps/winterNebs/keymap.c

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

* Update keyboards/kyria/keymaps/winterNebs/keymap.c

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

* Update keyboards/kyria/keymaps/winterNebs/rules.mk

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

* Update keyboards/planck/keymaps/winterNebs/keymap.c

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

* Update keyboards/planck/keymaps/winterNebs/keymap.c

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

* Update keyboards/planck/keymaps/winterNebs/keymap.c

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

* Fix outdated function call

* Apply suggestions from code review

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/kyria/keymaps/winterNebs/keymap.c

somehow this wasn't added to the batch?

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

* remove deprecated function

* Rename to lowercase

* Update keyboards/planck/keymaps/winterNebs/keymap.c

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

* fix oled path

* rebase and add back nyquist that was lost by rename

* Add licenses

* License in the wrong file

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-04 12:35:03 -07:00
Fred Silberberg
1aacbc44d1 [Keymap] Added 333fred 5x6_5 keymap (#10272)
* First pass at manuform layout.

* Updates from actual usage on my board. Fixed a couple of bugs, added a stormlight quote randomizer.

* Use a 32-bit timer that can actually hit 5 minutes.

* Some updates after a day of usage:

* Turn off WPM. It's too inaccurate and takes up a decent amount of space that can be devoted to quotes.
* Turn off the OLEDs after 5 minutes
* Move the keys around a bit.
* Add many more quotes.

* Adjust the quotes to make room for missing and misswritten WoT quote. Adjusted the keymap slightly. Adjust the mods display to include one_shots.

* Revert osm on lgui as it makes start menu search impossible to use.

* Use LTO_ENABLE flag.

* License all of my (333fred's) keymaps as MIT.

* Update users/333fred/rgb.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-04 12:24:35 -07:00
mechlovin
793de76bb4 [Keyboard] Add hannah60rgb rev.2 PCB (#10287)
* add hannah60rgb_rev2

* add

* Update rev2.c

* fixed rgb matrix

* Update rev2.c

* update rules.mk

* update readme

* update

* Update config.h

* Update rules.mk
2020-10-04 12:23:35 -07:00
swampmonster
f176daa1ca Adding VIA support to katana60 rev2 (#10442)
Co-authored-by: swampmonster <>
2020-10-04 13:55:54 +01:00
Sergey Vlasov
459ccb681f OLED driver fixes (#10377)
* Fix dirtying in oled_write_pixel()

Set the dirty bit for the block only if oled_write_pixel() actually
changed the buffer state.  Without this check oled_write_pixel() could
not be used inside the oled_task_user() code using the “redraw always”
style, because the blocks touched by oled_write_pixel() would always
appear dirty, and oled_render() would not proceed beyond the first such
dirty block.

* Fix oled_write_pixel() with 90/270 degree rotation

Use oled_rotation_width instead of OLED_DISPLAY_WIDTH, so that a rotated
display would be handled correctly.

* Fix compilation with custom OLED_BLOCK_COUNT and OLED_BLOCK_SIZE

Some OLED sizes (e.g., 64×48) may require a nonstandard value of
OLED_BLOCK_COUNT.  The documentation says that this value may be
redefined in config.h, but actually trying to redefine it caused a
compile error, because the macro was redefined in oled_driver.c.
Make the OLED_BLOCK_COUNT definition in oled_driver.c respect any
user override, and do the same for OLED_BLOCK_SIZE just in case.

* Fix handling of out-of-range bits in oled_dirty

If a custom OLED_BLOCK_COUNT value is specified, some bits in oled_dirty
may not correspond to existing blocks; however, if those bits are set
somewhere (e.g., by code with sets oled_dirty to ~0 or even -1),
oled_render() would try to handle them and could access memory beyond
oled_buffer and perform hardware operations with out of range values.
Prevent this by masking off unused bits in oled_render(), and also avoid
setting those bits in other functions.

* Fix potentially wrong dirtying in oled_write_char()

oled_write_char() tried to mark the position just beyond the written
character as dirty; use (OLED_FONT_WIDTH - 1) to dirty the last position
still belonging to the character instead.

* Fix `#define OLED_BLOCK_TYPE uint32_t` on AVR

Using uint32_t as OLED_BLOCK_TYPE did not work properly on AVR, because
some bit shifts were performed using 16-bit int.  Add explicit casts to
OLED_BLOCK_TYPE to those shifts.
2020-10-04 05:44:19 +11:00
a_p_u_r_o
1fe7743af8 IS31FL3741 driver fixup (#10519)
* Fix issue with data transfer of CS1_SW7 to CS18_SW7.

* Fix issue with handling of scaling register buffer's dirty flag.

* Remove unused extern declaration.

* Compaction of struct is31_led utilizing bit fields.
2020-10-04 05:15:44 +11:00
Simon
a0467fda38 add info.json for XD75 keyboard (#10523)
Currently the XD75 is missing a info.json
attributing to non standardised use of QMK
2020-10-03 15:43:36 +01:00
George Mao
9e9b604234 Mark 'key_count' as optional within info.json docs (#10513)
* Update reference_info_json.md

key_count is now an optional field because it is better to get the keycount by counting the elements in the layout array.

* Updated Japanese documentation as well
2020-10-03 00:42:11 +01:00
James Young
eb4cf713bc Update info.json for Slice RGB (#10514)
- add data for LAYOUT_all macro
- correct some rounding errors
- make the indentation consistent
- remove trailing whitespace
2020-10-02 21:20:00 +01:00
Nick Abe
9395a8700c Add Slice RGB VIA Support (#10407)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-02 17:27:16 +01:00
Joe Strong
4bbef61d60 Add joestrong keymap for quefrency rev 2 (#10503) 2020-10-02 17:26:05 +01:00
AlisGraveNil
266ff3339a [Keyboard] FightPad! macropad by Clawsome (#10507)
* 1 Oct 20

* Update keyboards/clawsome/fightpad/config.h

* Update keyboards/clawsome/fightpad/rules.mk

* Update keyboards/clawsome/fightpad/info.json

* Update keyboards/clawsome/fightpad/readme.md

* Update keyboards/clawsome/fightpad/readme.md

* Update keyboards/clawsome/fightpad/info.json

* Update keyboards/clawsome/fightpad/config.h
2020-10-01 22:53:37 -07:00
Sturek
c01eb55109 [Keymap] VIA keymap for the Sofle (#10446)
* Added via support

* Now uses LTO_ENABLE

* Deactivated console to save space

* Update keyboards/sofle/keymaps/via/readme.md

* Added GPL license

* Update keyboards/sofle/keymaps/via/keymap.c

* Update keyboards/sofle/keymaps/via/keymap.c

* Update keyboards/sofle/keymaps/via/keymap.c

* Update keyboards/sofle/keymaps/via/keymap.c
2020-10-01 22:52:30 -07:00
Nic Lake
6e9b4a8309 [Keymap] niclake keymap for Boardwalk (#10488)
* Initializing Boardwalk layout

* rules.mk newline

* config.h newline

* qwerty num toggle -> tap-toggle

* errant K, and _LOWER momentary toggles

* Lack of autosave sucks

* Converting to HHKB layout

* TT(_NUM) added to num layer

* Final updates for Boardwalk initialization

* Final refinements

* newline

* Removal of extra includes

* Update keyboards/boardwalk/keymaps/niclake/config.h

#pragma once

* Removing comment block from rules

* Updates to my layout
2020-10-01 22:42:23 -07:00
Peter Peterson
1e5df7117d [keyboard] add BM60Poker support (#10475)
* WIP working on new keymap

* tweaking keymap

* updated keymap

* cleaned up a little bit

* New preonic keymap

* my preonic keymap

* added mac layout

* preonic map update

* cleaning up old repo

* cleaning up to match upstream

* more cleanup

* removing old keymaps

* Added BM60 Poker

* Apply suggestions from code review

* Added license

* updated license

* updated license

* Fixed remaining licenses and added layout to rules
2020-10-01 17:13:34 -07:00
Žan Pevec
6888165b48 Fixed some small things and replaced deprecated definitions (#10414)
* Fixed some small things and replaced deprecated definitions

* Improvements

* Reverted kemyap change
2020-10-02 00:17:57 +01:00
yulei
8070b1ba88 Added replacement pcb for the matrix cain keyboard (#10436)
* added replacement pcb for the matrix cain keyboard

* update usb descriptor

* fixed led polarity

* Update keyboards/matrix/cain/cain.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/matrix/cain/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Apply suggestions from code review

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

* rename from cain to cain_re

* Update keyboards/matrix/cain_re/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-02 00:07:14 +01:00
ridingqwerty
726499553c New keyboard: wsk/g4m3ralpha (#10431)
* adding alpha variants

* adding cajal layouts

* adding V2 PCB support

adding additional layouts for new PCB version, and correecting incorrect image in info file

* Cleanup master -- remove alpha9

* Cleanup master -- remove g4m3ralpha

* Cleanup master -- remove cajal & sl40

* Master cleanup -- re-add sl40

* Master cleanup -- correct SL40 image

* Add new keyboard: wsk/g4m3ralpha

* Added license attribution to .{c,h} files

* Update keyboards/wsk/g4m3ralpha/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wsk/g4m3ralpha/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wsk/g4m3ralpha/g4m3ralpha.c

Co-authored-by: Joel Challis <git@zvecr.com>

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

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wsk/g4m3ralpha/config.h

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

* Update keyboards/wsk/g4m3ralpha/info.json

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

* Update keyboards/wsk/g4m3ralpha/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: worldspawn00 <mcmancuso@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-01 23:58:13 +01:00
James Young
1d7e57ab85 BM60RGB ISO: update default keymap and layout macro (#10494)
* BM60RGB ISO: fix and extend default keymap

- correctly assigns the Non-US Backslash and Hash keys
- adds Function and Navigation keys
- use KC_GESC instead of KC_ESC to make Grave accent available

* Update layout macro

The layout is the ISO equivalent of QMK's `LAYOUT_60_ansi_arrow`.
2020-10-01 23:00:03 +01:00
nopunin10did
0cb7133e0d Doc followup 9942 (#10473)
* Update feature_advanced_keycodes.md

* Update mod_tap.md
2020-10-01 22:19:57 +01:00
Jordan
f63a60a72a Port mechmini v2 for VIA support (#10497)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-01 22:19:01 +01:00
Danilo de Klerk
f68bb0cc3d Add ddeklerk split_3x6_3 layout (#10470) 2020-10-01 22:14:46 +01:00
Juno Nguyen
2f01c6ee18 Update make rules for community/ortho_4x12/junonum (#10467) 2020-10-01 22:13:13 +01:00
James Young
10f5767010 Add 64_ansi and 64_iso Community Layouts (#10463)
* Add 64_ansi Community Layout

* Add 64_iso Community Layout

* Add readme.md with layout drawings

* Edit readme.md - fix layout drawings

Fix 65_ansi_blocker_split_bs and 65_ansi_blocker_tsangan drawings.

* Edit readme.md - suggestions per fauxpark

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-01 21:57:56 +01:00
ai03
b5d6f287d9 Southpaw Fullsize: Add VIA support (#10469)
* Add via configurator support

* Remove layers to fix via

* Re-add extra via layers since it seems to work now

* Replace tabs with spaces

* Update readme.md
2020-10-01 13:44:29 -07:00
Nate Stein
3e5e4f7427 Update keyboards/eve/meteor/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-01 13:23:44 -07:00
Nic Lake
a13e918d47 [Keymap] Adding 2x2u default layout for Boardwalk (#10486)
* Adding 2x2u default layout for Boardwalk

* Defining the _RAISE layer
2020-10-01 12:39:36 -07:00
MechMerlin
b31df1af94 KBDFans KBD19x: VIA Support & LAYOUT macro fixing (#10401)
* first pass at fixing the key labeling

* second pass of fixing key labeling

* third pass of this key naming

* another pass of changing key naming

* another pass

* another pass

* another pass

* renamed it all

* give a good vid and pid

* add via keymap

* add on to the comments

* update readme and comments

* one more small change
2020-10-01 12:36:52 -07:00
yhr0x43
7a2124db6b Crkbd implementing return value for matrix_scan() (#10422) 2020-10-02 04:41:21 +10:00
Tom Swartz
45f044907c xd75re Multi-layer keymap (#10499)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-01 19:25:30 +01:00
sol
01d2a03258 Fix SPLIT_KEYBOARD compilation for ATMega*U2, which doesn't have VBUS/OTG control (#10460)
Co-authored-by: s-ol <s-ol@users.noreply.github.com>
2020-10-02 04:17:03 +10:00
yiancar
1960e25048 Enable Mediakeys for yiancar's 328p keyboards (#10476) 2020-10-01 19:05:47 +01:00
Adam Gwilliam
8fbea13a8f resolve extra param issue in boardsource/5x12 via keymap (#10501)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Danny <nooges@users.noreply.github.com>
Co-authored-by: Adam Gwilliam <agwilliam@yaharasoftware.com>
2020-10-01 18:38:12 +01:00
thompson-ele
d78a2b8145 [Keymap] VIA Support for Nein Macropad (#10496)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-01 18:33:18 +01:00
yiancar
76e35e02cc Rename nebula65 -> nebula68 (#10490)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-01 17:27:18 +10:00
Jean Potier
272b3309dd [Keymap] samae keymap for RGBKB Zen rev1 (#10350)
* Add samae's keymap to zen rev1

* Docs update

* Less animations

* A few cleanups

* Update keyboards/rgbkb/zen/rev1/keymaps/samae/keymap.c

* Update keyboards/rgbkb/zen/rev1/keymaps/samae/keymap.c

* Update keyboards/rgbkb/zen/rev1/keymaps/samae/keymap.c

* Update keyboards/rgbkb/zen/rev1/keymaps/samae/keymap.c

* Review fix: add copyright statement
2020-09-30 21:14:05 -07:00
Drashna Jaelre
11c308d436 [Keyboard] Convert ErgoDox EZ to Matrix Lite (#10189)
* Convert ErgoDox EZ to lite matrix

* Add initial config from Dactyl config

Based on ErinCall's work to generalize the mcp i/o expander matrix code

* formatting

* Fix number of pins

* Remove unused defines
2020-09-30 16:52:47 -07:00
Ryan
482c9fbbf2 MSYS2: Switch to arm-none-eabi-gcc package (#10421) 2020-10-01 04:10:02 +10:00
Keebz Dot Net
5ecb1b2d39 Wazowski 23-19 VIA Support (#9730)
* fixed keymap placement

- online configurator keys were in the wrong location and needed to be fixed
- fixed a key being to high on the y position

* Create rules.mk

* Create keymap.c

* Update rules.mk

added VIA support

* Changed wazowski via keymap to include skipped switch

* changed the vendor ID

* Update keyboards/keebzdotnet/wazowski/config.h

* Removed VIA enable from keyboard rules.mk

* Update keyboards/keebzdotnet/wazowski/rules.mk

* Fixed wazowski via keymap build errors

* Added multi-layer support for Wazowski via keymap
2020-09-30 01:50:55 -07:00
MakotoKurauchi
8b90822f6e add tester keymaps for yushakobo/quick7 (#10282)
* update "Hardware Availability"

* add a section of "How to build"

* update "Hardware Supported"

* add tester keymaps for yushakobo/quick7

* update license headers in keymaps/tester/config.h

Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
2020-09-30 06:46:49 +09:00
Brandon Claveria
9f36aa640e [Keyboard] Add astro65 handwired (#10449)
* Add pandemic keyboard

* Fix default keymap

* Add via keymap

* Fix via keymap

* Fix keymaps and pandamic.h

* add info.json

* update info.json

* Apply suggestions from code review

* Update keyboards/handwired/swiftrax/pandamic/info.json

* make suggested changes

* Add astro65

* fix info.json

* Apply suggestions from code review

* add more layers for via

* Apply suggestions from code review

* halp

* add other layout

* fix astro65.h

* commit suggestions

* Update keyboards/handwired/swiftrax/astro65/info.json
2020-09-29 04:30:14 -07:00
Reibl János Dániel
284a5267d5 Add Unicode modes for handwired/riblee_f401:riblee (#10461)
* Add unicode modes

* Update keyboards/handwired/riblee_f401/keymaps/riblee/config.h
2020-09-28 21:48:35 -07:00
Sendy YK
d844f5af70 Update mrsendyyk Community Layouts (#10338)
* Add layouts/community/numpad_5x4/mrsendyyk

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Rename my community layouts

* Rename

* Rename

* Cleanup my code

* Update readme.md

* Cleanup

* Update keymap.c

* Delete unnecessary files
2020-09-28 21:32:38 -07:00
Joel Schneider
2eeb30cd5a [Keyboard] Add SiCK-PAD handwired keyboard (#10429)
* Add sick_pad

* Adjust setup for Proton C

* Add readme

* Add info.json

* Make requested changes

* Resolve PR issues
2020-09-28 21:25:53 -07:00
stein3
1531087617 Remove bootmagic flag and add vendor/product IDs. 2020-09-28 11:05:54 -07:00
MechMerlin
c7599bf49f Swapparoo of bottom row keys (#10277) 2020-09-28 11:46:24 +10:00
Ryan
45c2a05e3a Merge pull request #10457 from 2Moons-JP/trifecta_keymap 2020-09-28 11:41:24 +10:00
Drashna Jaelre
fbdc65e2e9 [Keyboard] Add PloopyCo devices (#7935)
* Initial Commit for Ploopyco Trackball

This is a WIP at this point.  Most of it compiles, but the SPI commands are non-functioning as they come from Arduino, so don't exist in LUFA

* Convert SPI commands from arduino to LUFA

But I have no idea if this is actually correct or not

* Update keyboard readme

* Clean up ploopyco trackball

* Update readme

* Update mouse key stuff

* last minutue cleanup

* Add caveat about scroll wheel

* Fixup to code

* Additional fixup

* Add movement multiplier

* Rename folders

* mid changes

* temp

* Got it working!!!!!

* Additional cleanup of code

* Make unused pin calls more compact

* Rotation info

* Add debouncing checks

* Make everything replaceable

* Add info.json

* Include ISP flashing info

* Better handling for user customization

* Reconfigure CPI stuff

* fix issues with debug printing

* Fix tiny scroll issue

* Add and update scroll code from ploopy mouse

* Update licensing

* Add PloopyCo Mouse

* Cleanup and layout stuff

* Move common files to main folder for reuse

* Increase polling rate

* Update image for mouse

* Apply changes from code review

* Add VIA support
2020-09-27 15:11:41 -07:00
ridingqwerty
34b9c51d9c Keyboard update: SL40 (#10445)
* adding alpha variants

* adding cajal layouts

* adding V2 PCB support

adding additional layouts for new PCB version, and correecting incorrect image in info file

* Cleanup master -- remove alpha9

* Cleanup master -- remove g4m3ralpha

* Cleanup master -- remove cajal & sl40

* Master cleanup -- re-add sl40

* Master cleanup -- correct SL40 image

* Keyboard addenda: Production version of sl40

Co-authored-by: worldspawn00 <mcmancuso@gmail.com>
2020-09-27 23:04:24 +01:00
Joel Challis
50835bb138 [keyboard] Add SP-111 support (#10193)
* Initial sp111 support

* Align with template
2020-09-27 13:04:27 +01:00
Ryan
e7acd39b78 Consolidate udev rules into a single file (#9693)
* Consolidate udev rules into a single file

* Update rules in doctor.py

* Simplify doctor rule checking

* Fix errors

* Add TMK "FEED" VID to list of deprecated udev rules

* A comma would be nice

* Split rules back up into bootloaders

* Link to docs page in "missing" case

* Add Pololu VID

* Be more specific about Caterina devices, and add LilyPad PID
2020-09-27 20:36:33 +10:00
Ryan
70fce6564f Add logic for AT90USBxx7 where needed (#10203) 2020-09-27 20:33:03 +10:00
2Moons-JP
323c6dfe72 Trifecta Keymap 2020-09-27 13:19:49 +09:00
stein3
bb1550313c Add VIA keymap for EVE Meteor. 2020-09-26 19:06:57 -07:00
precondition
28ff51175b [Docs] Wording & formatting changes in the Tapping Force Hold section of the Tap Hold page + removed trailing whitespaces (#10391)
* Wording & formatting changes in Tapping Force Hold

The Permissive Hold and the Ignore Mod Tap Interrupt sections were also modified to remove the quotes
around "tapping".

* Removed all trailing whitespaces from tap hold doc

* "it's simply really:" → "it's simple really:"

* "This allows to keep the ability" → "This allows keeping the ability"

Used the gerund form of "to keep" in the Tapping Force Hold section of the Tap Hold docs.

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-09-26 19:11:40 -04:00
Ryan
c16ee22784 setrgb(): Use arrow operator (#10451) 2020-09-26 19:42:40 +01:00
Evy Dekkers
1b7101f065 [Keyboard] add Percent Canoe Gen2 (#10344)
* Add Canoe Gen2

* Fix info.json

* Update info.json

* Changes

* Move canoegen2 to canoe_gen2

* Update canoe_gen2.h
2020-09-25 22:39:14 -07:00
mechlovin
c4cc697aef [Keyboard] add hannah65 by Team Mechlovin (#10284)
* add hannah65

* add iso layout, ansi layout

* Update readme.md

* add mechlovin9

* update

* update

* update

* Update keyboards/mechlovin/hannah65/mechlovin9/info.json

* Update keyboards/mechlovin/hannah65/mechlovin9/info.json

* Update keyboards/mechlovin/hannah65/mechlovin9/readme.md

* Update keyboards/mechlovin/hannah65/readme.md

* Update keyboards/mechlovin/hannah65/rev1/info.json

* Update keyboards/mechlovin/hannah65/rev1/info.json

* Update keyboards/mechlovin/hannah65/rev1/rev1.h

* Update keyboards/mechlovin/hannah65/rev1/rev1.h

* Update keyboards/mechlovin/hannah65/mechlovin9/info.json

* update

* Update keyboards/mechlovin/hannah65/mechlovin9/info.json

* Update keyboards/mechlovin/hannah65/mechlovin9/info.json
2020-09-25 22:33:49 -07:00
Ryan
b6f9ca3b09 Fix Belgian sendstring properly (#10444) 2020-09-26 14:14:34 +10:00
jackytrabbit
603c8d1f06 Add VIA support for lazydesigners/the30 (#10374)
* Create rules.mk

* Add files via upload

* Update keyboards/lazydesigners/the30/keymaps/via/keymap.c
2020-09-25 18:45:36 -07:00
doodboard
4a83021fe0 [Keyboard] add duckboard by doodboard (#10318)
* Adding duckboard to QMK

Adding duckboard support to QMK

* added duckboard under doodboard

* changed debouncing delay to debounce

* Update keyboards/doodboard/duckboard/config.h

* Update keyboards/doodboard/duckboard/config.h

* Update keyboards/doodboard/duckboard/kb.h

* Update keyboards/doodboard/duckboard/keymaps/default/keymap.c

* Update keyboards/doodboard/duckboard/rules.mk

* Update keyboards/doodboard/duckboard/kb.h

* Update keyboards/doodboard/duckboard/kb.c

* Update code per review

Update code per review

* folder name errod

folder name errod

* Update keyboards/doodboard/duckboard/config.h

* Update keyboards/doodboard/duckboard/rules.mk

* Update keyboards/doodboard/duckboard/rules.mk

* Update keyboards/doodboard/duckboard/config.h

* Create info.json

* Update keyboards/doodboard/duckboard/duckboard.h

* Update keyboards/doodboard/duckboard/info.json

* Update keyboards/doodboard/duckboard/info.json

* Update keyboards/doodboard/duckboard/duckboard.h

* Update keyboards/doodboard/duckboard/readme.md
2020-09-25 14:30:52 -07:00
Drashna Jaelre
9570b1bbb4 Fix Belgian sendstring file (#10443)
Specifically, the `BE_CIRC` is an alt-ed keycode, which means it 
doesn't fit into the 8 bit keycode range...  It should be `BE_SECT`,
as it is already alt-ed by the alt lut.

Confirmed that this change fixes compilation warnings and works 
correctly, on reddit. 
https://www.reddit.com/r/olkb/comments/iywin1/unsigned_conversion_from_int_to_unsigned_char/g6jvfgl/
2020-09-26 05:34:38 +10:00
Felix Jen
4511201d80 [Keyboard] added Bolsa65 keyboard by FJLabs (#10394)
* Modifed for BKS65

* Added test board

* attempts

* Working compile

* updated rules for processor frequency and documented

* Disabed some deprecated features

* Removed extraneous code

* remove test code

* Renamed board

* LED and layer code

* Added via support

* Update keyboards/fjlabs/bolsa65/bolsa65.c

Fixed indentation as suggested.

* Update keyboards/fjlabs/bolsa65/config.h

Removed extraneous defaults

* Update keyboards/fjlabs/bolsa65/keymaps/default/keymap.c

Different layer enumeration method

* Update keyboards/fjlabs/bolsa65/keymaps/via/keymap.c

New layer enumeration method.

* Update keyboards/fjlabs/bolsa65/config.h

Removed extraneous description.

* Update keyboards/fjlabs/bolsa65/keymaps/via/rules.mk

Removed extraneous bootmagic

* Update keyboards/fjlabs/bolsa65/rules.mk

Updated rules

* Update keyboards/fjlabs/bolsa65/readme.md

Markdown list formatting

* Update keyboards/fjlabs/bolsa65/bolsa65.h

Changed layout name

* Update keyboards/fjlabs/bolsa65/info.json

Changed layout name

* Update keyboards/fjlabs/bolsa65/keymaps/via/keymap.c

Changed Layout name

* Update keyboards/fjlabs/bolsa65/keymaps/via/keymap.c

Change layout name

* Changed layout names

* Updated readme to reflect new keyboard name

* Update keyboards/fjlabs/bolsa65/config.h

Removed extraneous code

* Added license file header

* Removed VSCode folder

* Update keyboards/fjlabs/bolsa65/keymaps/via/keymap.c

* Update keyboards/fjlabs/bolsa65/info.json

* Update keyboards/fjlabs/bolsa65/keymaps/via/keymap.c
2020-09-23 23:55:59 -07:00
Ryan
5f23f21216 CLI/Doctor: Print QMK_HOME (#10398) 2020-09-24 15:16:00 +10:00
Albert Dong
086c9c714e Add Wyvern Keyboard (#10378)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-24 15:15:18 +10:00
George Mao
9c596c1c5b Adding Bear 65 Ergo Keyboard To QMK (#10384)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-24 14:10:40 +10:00
MechMerlin
cd64425fdd VIA Support: Gray Studio HB85 (#10329)
* edit vid and pid

* add VIA keymap

* add my name to the readme

* Update keyboards/gray_studio/hb85/keymaps/via/config.h

* we have a third endpoint, no need to disable mousekeys

* Update keyboards/gray_studio/hb85/keymaps/via/keymap.c

* add license header
2020-09-23 20:53:08 -07:00
QMK Bot
860deb774e format code according to conventions [skip ci] 2020-09-24 02:35:14 +00:00
Sendy YK
ec7ce15c11 Add ai03/soyuz VIA Support (#10336)
* Add ai03/soyuz:via

* Update config.h

* Update keymap.c

* Revert "Update keymap.c"

This reverts commit e3766b3b60.

* Update keymap.c

* Update keymap.c

* Update keyboards/ai03/soyuz/config.h
2020-09-23 19:34:22 -07:00
gooberpsycho
30ffae2317 [Keyboard] add 3dp660 handwired (#10296)
* Create keymap.c

* Add files via upload

* Added files for handwired 3d printed clueboard 660

* create via layout files

* added layout files for via

* updated product ID to fix id conflicts

* change product ID to fix ID conflicts.

* fixed capitalization error that was causing issues

* fixed capitalization issues.

* fix syntax errors

* Fixed syntax errors (stray punctuation)

* Compatibility fixes

* Compatibility fixes

* Compatibility fixes

* Compatibility fixes

* capitalization fixes

* Compatibility fixes

* Compatibility fixes

* Compatibility Fixes

* Compatibility fixes

* Compatibility fixes

* Compatibility changes

* upkeep, fixing typos

* Update keyboards/handwired/3dp660/config.h

Removed Description line

* Update keyboards/handwired/3dp660/rules.mk

correct bootloader

* Update keyboards/handwired/3dp660/3dp660.h

fix case sensitive typos

* Update keyboards/handwired/3dp660/keymaps/default/keymap.c

change tab indentation to space indentations.

* Update keyboards/handwired/3dp660/keymaps/via/keymap.c

change tab indentations to space indentations

* Delete 3dp660.json

This file was for VIA, and shouldn't be in this repo. I placed it here so I wouldn't misplace it in my filesystem. My apologies.

* Update info.json

change suggestions to other file said to lowercase "ansi", caused reference issues, changed all instances of "ANSI" to "ansi".

* Update keymap.c

change suggestions to other file said to lowercase "ansi", caused reference issues, changed all instances of "ANSI" to "ansi".

* Update keymap.c

more capitalization fixes

* Update keyboards/handwired/3dp660/readme.md

shortened imgur url

* Update keyboards/handwired/3dp660/rules.mk

remove extraneous comments

* Delete config.h

* Update keyboards/handwired/3dp660/rules.mk

* Update 3dp660.c

add license headers to all .c and .h files

* Update 3dp660.h

added license header to all .c and .h files.

* Update keymap.c

added license header to all .c and .h files.

* Update keymap.c

added license header to all .c and .h files.

* Update keyboards/handwired/3dp660/readme.md

Add maintainer URL

* Update keyboards/handwired/3dp660/keymaps/default/keymap.c

remove extraneous default keymap layers

* Update keyboards/handwired/3dp660/keymaps/default/rules.mk

* Update rules.mk

Moved LTO to keyboard level.

* Update rules.mk

Moved LTO to keyboard level.

* Delete rules.mk

Made obsolete by LTO move to keyboard level.

* Update keyboards/handwired/3dp660/rules.mk

capitalization errors.

* Apply suggestions from code review

Housekeeping, changing code for readability.
2020-09-23 19:32:33 -07:00
MechMerlin
940280c435 VIA Support for flehrad Big Switch (#10325)
* add VIA keymap

* Update keyboards/flehrad/bigswitch/keymaps/via/keymap.c
2020-09-23 18:52:04 -07:00
2Moons-JP
940c294d26 [Keyboard] add Basekeys Trifecta (#10375)
* Trifecta 09-20

* Update keyboards/basekeys/trifecta/config.h

* Update keyboards/basekeys/trifecta/config.h

* Update keyboards/basekeys/trifecta/config.h

* Update keyboards/basekeys/trifecta/keymaps/default/keymap.c

* Update keyboards/basekeys/trifecta/keymaps/via/keymap.c

* Update keyboards/basekeys/trifecta/rules.mk

* Update rules.mk

Suggested Changes

* Update keyboards/basekeys/trifecta/readme.md

* Update keyboards/basekeys/trifecta/readme.md

* Tap Dance Removal

* Update keyboards/basekeys/trifecta/keymaps/default/keymap.c

* Update keyboards/basekeys/trifecta/keymaps/default/keymap.c

* Update keyboards/basekeys/trifecta/keymaps/via/keymap.c
2020-09-23 18:47:27 -07:00
MelGeek
f2dec4d3cf [Keyboard] add MelGeek MJ61 (#10341)
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

* Update keyboards/melgeek/mj61/mj61.c

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

* Update keyboards/melgeek/mj61/rev1/config.h

* Update keyboards/melgeek/mj61/rev1/rules.mk

* Update keyboards/melgeek/mj61/mj61.c

* Update keyboards/melgeek/mj61/mj61.c
2020-09-23 18:45:43 -07:00
cmdremily
ef7c79b781 Fix issues with unused variables and functions preventing a clean compile. 2020-09-23 14:15:25 +02:00
cmdremily
8711dda0d3 Allow the use of a single IS31FL3731 LED driver 2020-09-23 14:15:25 +02:00
myfreeweb
8b9617f93d [Keyboard] Add Spider Island split 78 key ps2avrGB based keyboard (#9900) 2020-09-22 21:17:36 -07:00
Sendy YK
96101adea9 Minor updates ai03/soyuz:mrsendyyk (#10333)
* Minor updates ai03/soyuz:mrsendyyk

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update readme.md
2020-09-23 02:31:05 +01:00
kingwangwong
d828e991a9 [Keymap] update to king keymaps by kingwangwong (#10299)
Adding my kbd67mkii keymap and some changes to kumo

Keymaps for kbdfans/kbd67/mkii_soldered and thevankeyboards/minivan

* Changes to minivan layout

* KBD67 keymap

* commiting my files
2020-09-22 17:58:45 -07:00
Isaac
afb9179b65 Add swap hands config for kyria (#10397)
* add swap hands config

* move to rev1
2020-09-23 01:35:04 +01:00
Brandon Claveria
5faf5383ad add handwired/swiftrax/retropad (#10331)
* add retropad

* fix indicator leds

* fix bootmagic

* fix led indicators

* fix keymap

* fix keymap

* fix keymap

* fix keymap

* fix license headers

* Apply suggestions from code review

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

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Swiftrax <swiftrax@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-22 23:39:09 +01:00
umi
4bf5f9424e [Docs] Japanese translation of docs/understanding_qmk.md (#10136)
* add understanding_qmk.md translation

* update based on comment

* update based on comment

* update based on comment

* update based on comment

* update based on comment
2020-09-22 14:54:33 -07:00
Max Drasbeck
2fbf68f2d2 [Keymap] Adding drasbeck keymaps for lily58pro and preonic (#10013)
* added danskish keymap

* Added readme.md

* Clean up in keymap.c

* Added license

* Changed name of keymap

* adjusting tapping term

* added encoder functionality

* housekeeping

* layouts resemble the layout now

* implemented suggestions from drashna

* added keymap for preonic rev3

* added default layer to readme.md

* removed backslashes

* Update keyboards/lily58/keymaps/drasbeck/keymap.c

* Update keyboards/preonic/keymaps/drasbeck/readme.md

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

* Update keyboards/preonic/keymaps/drasbeck/keymap.c

* Update keyboards/preonic/keymaps/drasbeck/keymap.c

* Update keyboards/preonic/keymaps/drasbeck/keymap.c

* Update keyboards/preonic/keymaps/drasbeck/keymap.c

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

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

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

* Update keyboards/preonic/keymaps/drasbeck/rules.mk
2020-09-22 14:42:55 -07:00
Brian Marsh
9c31a7adba [Keymap] Add pezhore preonic keymap (#10269)
* Squashing commits - adding preonic keymap

This adds a custom keymap, including numpad layer, emoji, and kamoji
key mappings.

* Removing unnecessary trailing backslash characters

* removing the unnecessary json keymap

* removing unnecessary trailing slashes from the default keymap

* switching to tap_code

* Apply suggestions from code review

This should enable a toggleable numpad

* adding license

* Stripping out FN keycodes in favor of a momentary layer
2020-09-22 13:02:01 -07:00
Roman Bange
1ff51579ec Add VIA support for YD60MQ (#10321)
* add via support for yd60mq

* switch to bootmagic lite, to decrease firmware size

* Update PRODUCT_ID comment

* add license header
2020-09-22 12:39:50 -07:00
2Moons-JP
e52fc935b0 Add VIA Support for Basekeys Slice rev1 (#10385)
* Slice Via

* Keymap Update

* Update keyboards/basekeys/slice/rev1/keymaps/via/keymap.c
2020-09-22 12:28:54 -07:00
Dmitry Nosachev
539cc45fba [Keyboard] Fujitsu T111 keyboard (#10262)
* Fujitsu T111 keyboard

* info.json: fixed missing key on top row

* info.json: fixed name and maintaner fields

* Update keyboards/handwired/t111/keymaps/oleg/keymap.c

* Update keyboards/handwired/t111/config.h

* Update keyboards/handwired/t111/keymaps/oleg/keymap.c

* Update keyboards/handwired/t111/keymaps/oleg/keymap.c

* Apply suggestions from code review

* Update keyboards/handwired/t111/readme.md
2020-09-22 12:26:19 -07:00
Ethan Nguyen
57dd756507 [Keymap] Add ethan605 keymap for kbd75 (#10343)
* Add my KBD75 keymaps

* Acknowledge PR reviews

* Acknowledge PR reviews
2020-09-22 11:47:03 -07:00
Seaton Jiang
e3395beda0 [Keyboard] Add Longnald Corin Keyboard (#10280)
* [Keyboard] Add Longnald Corin

* feat: optimized firmware

* feat: optimized firmware

* fix: keyboards/longnald/corin/rules.mk

* feat: rename layout macros

* feat: rename layout macros

* feat: rename layout macros

* feat: rename layout macros

* feat: rename layout macros

* feat: rename layout macros

* feat: rename layout macros
2020-09-22 11:44:51 -07:00
Reibl János Dániel
7a3a57e457 Updates to handwired/riblee_f401 keymaps (#10376)
* Add new keymap with Hungarian accent support
Add flashing support

* Remove unnecessary mcu config

* Use bootmagic instead of custom macros
2020-09-22 11:39:07 -07:00
Peter Landoll
0fbb1e550a Add description in Bluetooth docs for requiring NKRO to be disabled (#10359) 2020-09-22 22:31:37 +10:00
moyi4681
0976db7e5e [Keyboard] add Bella soldered keyboard (#10381)
* Add bella soldered keyboard

* Create info.json

* Update keyboards/kbdfans/bella/soldered/rules.mk

* Update keyboards/kbdfans/bella/soldered/rules.mk

* Update keyboards/kbdfans/bella/soldered/rules.mk

* Update keyboards/kbdfans/bella/soldered/rules.mk

* Update keyboards/kbdfans/bella/soldered/info.json
2020-09-22 00:48:55 -07:00
Spaceman
207f0b00fa [Keyboard] add Handwired/Curiosity (#10369)
* Add curiosity

* Add default keymap

* Update config.h

* Apply suggestions from code review

* Update keyboards/handwired/curiosity/rules.mk

* Update keymap.c

* Apply suggestions from code review
2020-09-22 00:33:39 -07:00
DonutCables
4a37af79e9 [Keyboard] Budget96 info cleanup and updates (#10268)
* Cleanup/updates to Budget96 info

* Add personal keymap

* Requested config.h update

Co-authored-by: Ryan <fauxpark@gmail.com>

* Requested rules.mk update

Co-authored-by: Ryan <fauxpark@gmail.com>

* Requested keymap.c update

* Requested config.h update

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-21 23:44:23 -07:00
Croktopus
e4a4ed3b0c moved encoder code to timberwolf.c (#10317)
* moved encoder code to timberwolf.c

* Update keyboards/metamechs/timberwolf/timberwolf.c

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-21 22:54:55 -07:00
Sergey Vlasov
7ddae97c89 Fix backlight for F401/F411 blackpill onekey examples (#10320)
Fix configs to make the `handwired/onekey/blackpill_f401:backlight` and
`handwired/onekey/blackpill_f411:backlight` examples actually compile
and work:

 - Use `PWMD5` instead of `PWMD2` for backlight, which matches the
   default value of `BACKLIGHT_PAL_MODE` (AF02 for pin A0 is `TIM5_CH1`)
   and does not conflict with the default value of `STM32_ST_USE_TIMER`.

 - Enable `HAL_USE_PWM` in halconf.h and `STM32_PWM_USE_TIM5` in
   mcuconf.h, so that `PWMD5` could be used.
2020-09-21 22:50:39 -07:00
Rustam Zagirov
ea0cf42eef [Keymap] Add stamm layout for ergodox_ez (#10365)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-21 22:12:29 -07:00
dezli
bfbcfbc83e [Keyboard] Add miniMACRO5 Macropad (#10392)
* add miniMACRO5

add all nessecary files for the miniMACRO5

I have rewritten the readme, and changed the keymaps to be more simple. I have tested compiling, and everything works perfectly.

* update miniMACRO5 readme

add the make example into the readme file

* Update keyboards/minimacro5/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

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

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/minimacro5/keymaps/media/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/minimacro5/keymaps/media/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/minimacro5/minimacro5.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/minimacro5/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Apply suggestions from code review

applied all suggestions.

Co-authored-by: Ryan <fauxpark@gmail.com>

* drashna suggestions - enum rather than define

committed enum update by drashna

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

* update keymap.c

incorrect brackets

Co-authored-by: dezli <m@dez.li>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-21 22:03:03 -07:00
Ole Westendorff
967ed19d77 [keyboard] xd60: add split layout for ansi and iso (#10337) 2020-09-21 20:35:51 -07:00
Jonathan Rascher
342ab6ab80 Update bcat keymaps for crkbd and lily58(#10298)
* Swap ergo lower layer shortcuts for zoom keys
2020-09-21 20:32:56 -07:00
marksard
0b2eae7686 Fixed info.json file for treadstone48/rev2 (#10290)
* 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

* Fixed info.json file.
2020-09-21 19:16:43 -07:00
jotix
924823cfb4 update jotix ortho_4x12 keymap: add some missing keycodes (#10289) 2020-09-21 18:54:09 -07:00
codecoffeecode
ccab502241 [Keymap] add codecoffeecode keymap for Preonic (#10364)
* Adding preonic layout

* deleting unnecessary files

* Fixing spacing

* I need to not commit things while I'm not sober

* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c

* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c

* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c

* Adding license header
2020-09-21 18:41:36 -07:00
Fred Silberberg
c23667608c Add OLED driver function to determine if the screen is currently on (#10382) 2020-09-21 18:39:50 -07:00
Adam Gwilliam
dc037f1391 update vendor id of 4x12 to match 3x4 and 5x12 for boardsource (#10306) 2020-09-21 17:57:00 -07:00
2Moons-JP
b86fa3daf3 Copyright Updates for basekeys/slice (#10383)
* Copyright Updates

* Copyright Updates
2020-09-21 17:33:17 -07:00
Eric N. Vander Weele
bc8fe91fd1 massdrop/alt: Remove unused user functions and config in default keymaps (#10313)
The default keymaps don't make use of the global `keymap_config` 
variable nor the `matrix_*_user()` functions.  Therefore, remove them to
avoid confusion for future keymap authors.
2020-09-21 17:29:04 -07:00
Samuel Baumgartner
e3f9569acd bm60rgb_iso: add underglow support (#10307)
* add underglow definition
2020-09-21 17:25:29 -07:00
Dan
ebbcb83998 Add Amethyst keybindings for some dcompact implementations (#10345)
* Fix missing VAI

* Add amethyst keybindings

* Add amethyst bindings for planck
2020-09-21 14:47:46 -07:00
Brandon Schlack
6bebb1233d Enable Extrakey in VIA for CFTKB keyboards (#10308) 2020-09-21 14:44:18 -07:00
Dan
e4cf0a40a5 [Keymap] Add delivrance's keymap for 40percentclub/mf68 (#10294) 2020-09-21 14:06:51 -07:00
MakotoKurauchi
b3508271f8 add VIA support for Quick7 (#10281)
* update "Hardware Availability"

* add a section of "How to build"

* update "Hardware Supported"

* add VIA keymaps

* add 2 layers to VIA keymaps

Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
2020-09-21 13:40:53 -07:00
Sendy YK
c4eb0df428 Minor updates dz60:mrsendyyk (#10334)
* Minor updates dz60:mrsendyyk

* Update keymap.c

* Update keymap.c

* Update readme.md
2020-09-21 13:34:57 -07:00
Sendy YK
becaf325a3 Minor updates 60_ansi_arrow (#10332)
* Minor updates 60_ansi_arrow

* Update keymap.c

* Update keymap.c

* Minnor updates

* Minnor updates

* Update readme.md
2020-09-21 13:34:06 -07:00
Dustin Bosveld
2f637e4ea1 [Docs] Clarify functionality of update_tri_layer_state (#10370)
* Add information to docs
- If layer z is not a higher layer than both x and y, the layer change code
does not function correctly.

* Update docs/ref_functions.md

* Update docs/ref_functions.md

* Update docs/ref_functions.md
2020-09-21 11:35:26 -07:00
Thierry Michel Philippe Kleist
0384237544 [Keyboard] knife66 added (#9877)
* feat: keyboard knife66 added

* fix: requested changes applied

* docs: updated readme

* feat: added support for ws2812

* fix: adjusted headers and readme

* fix: moved to LAYOUT_all
2020-09-21 11:12:22 -07:00
Wilba
bc7a745227 Fix typo in via.c (#10000) 2020-09-21 04:21:19 -07:00
worldspawn00
7f34a6b635 [Keyboard] adding V2 support (#10309)
updating image for V2 options
2020-09-20 20:39:02 -07:00
Spaceman
9f0a2a78a0 Fix media keys in via keymap for 2% milk (#10357)
* Allow media keys in milk via

* Update rules.mk

* Update rules.mk

* Update rules.mk
2020-09-20 20:54:16 +01:00
Sergey Vlasov
fee953c4f8 Disable the command feature for onekeys (#10366)
There is no way to invoke the command feature while having just a single
physical key, and disabling that feature fixes build for keymaps like
`handwired/onekey/promicro:rgb` without resorting to LTO (the command
feature consumes more than 4900 bytes with avr-gcc 8.4.0).
2020-09-20 20:50:52 +01:00
James Young
fb4a6ad30e KBD67 MkII Soldered: ISO layout patches (#10367)
* KBD67 MkII Soldered: Fix ISO blocker layout

Matrix data was wrong; KC_NUHS key did not work.

* KBD67 MkII Soldered: Add ISO blocker with Split Backspace layout
2020-09-19 23:37:31 -07:00
coseyfannitutti
a2ff3c4d14 [Keyboard] add iso compatibility for mysterium rev1.1 pcb (#10348) 2020-09-19 19:40:15 -07:00
muuko
ed2ba645c0 [Keymap] Add lily58/muuko keymap (#10355)
* lily58 layout with working bongo cat timeout

* lily58 layout with working bongo cat timeout

* spacing

* spacing

* spacing

* spacing

* spacing

* layout

* spacing

* keymap

* keymap

* spacing

* keymap

* spacing

* Update keyboards/lily58/keymaps/muuko/config.h

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

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

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

* review

* spacing

* remove unnecessary func

* changed proximity of layer button

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-19 19:07:50 -07:00
Richard Titmuss
e1437c1859 [Keyboard] Add Torn keyboard (#10207)
* Add Torn keyboard

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Remove via json file

* Add mcp23081_pin_t

* Apply suggestions from code review

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>

* Apply suggestions from code review

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

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Richard Titmuss <richardt@spotify.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-19 17:48:43 -07:00
pabile
741856dd57 [Keyboard] add P40 Ortho, P42, and P20 ver2 by pabile (#9980)
* Add files via upload

* removed

* Add files via upload

* Rename pabile40.c to p40.c

* Rename pabile40.h to p40.h

* Add files via upload

* Update p40.c

* Update p40.h

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Updated readme file

* Updated readme file

* Add files via upload

* modified:   keyboards/pabile/p18/config.h
	modified:   keyboards/pabile/p18/keymaps/default/keymap.c
	modified:   keyboards/pabile/p18/p18.h
	modified:   keyboards/pabile/p18/rules.mk
	modified:   keyboards/pabile/p40/config.h
	modified:   keyboards/pabile/p40/keymaps/default/keymap.c

* config update

* Delete README.md.save

* Delete keymap.c.save

* Delete keymaps.c

* modified:   keyboards/pabile/p18/keymaps/default/keymap.c

* Update p18.h

* testing layout config

* Create info.json

* Create info.json

* Create readme.md

* Update readme.md

* Updated description

* Updated description

* Update config.h

updated vendor ID to 0000

* Update keymap.c

removed unnecessary comments

* Update keyboards/pabile/p18/p18.h

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

* Update keyboards/pabile/p18/p18.h

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

* Update p18.h

removed unnecessary comments

* Update keyboards/pabile/p18/rules.mk

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

* Update keyboards/pabile/p18/rules.mk

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

* Update config.h

updated vendor id and removed unnecessary comments

* Update keyboards/pabile/p40/info.json

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

* Update keyboards/pabile/p40/keymaps/default/keymap.c

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

* Update keyboards/pabile/p40/p40.h

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

* Update keyboards/pabile/p40/p40.h

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

* Update keyboards/pabile/p40/p40.h

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

* Update keyboards/pabile/p40/rules.mk

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

* Update keyboards/pabile/p40/rules.mk

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

* Added p20 macropad

* Update README.md

* Updated VID and PID

* Updated VID and PID

* Update rules.mk

* Update config.h

* Update config.h

* Update config.h

* Update keymap.c

* Replaced blank keys with KC_NO

* Update keyboards/pabile/p18/keymaps/default/keymap.c

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

* Update keyboards/pabile/p18/p18.h

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

* Update keyboards/pabile/p18/rules.mk

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

* Update keyboards/pabile/p20/keymaps/default/keymap.c

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

* Update keymap.c

* Update keymap.c

* Update keyboards/pabile/p20/rules.mk

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

* Update keyboards/pabile/p40/info.json

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

* Update keyboards/pabile/p20/p20.h

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

* Updated product ID

* Updated product ID

* Update keyboards/pabile/p20/config.h

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

* Update keyboards/pabile/p20/p20.h

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

* Update keyboards/pabile/p20/p20.h

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

* Update keyboards/pabile/p20/keymaps/default/keymap.c

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

* Update keyboards/pabile/p18/readme.md

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

* Update keyboards/pabile/p20/README.md

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

* Update keyboards/pabile/p20/rules.mk

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

* Update keyboards/pabile/p20/rules.mk

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

* Update keyboards/pabile/p20/rules.mk

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

* Update keyboards/pabile/p20/rules.mk

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

* Update keyboards/pabile/p40/README.md

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

* Update keyboards/pabile/p40/rules.mk

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

* Update keyboards/pabile/p40/rules.mk

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

* Update keyboards/pabile/p18/rules.mk

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

* Update keyboards/pabile/p18/rules.mk

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

* Update keyboards/pabile/p40/config.h

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

* Update keyboards/pabile/p40/config.h

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

* Update keyboards/pabile/p18/readme.md

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

* Changed to lowercase filename

* Rename README.md to readme.md

* Update keyboards/pabile/p18/rules.mk

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

* Add files via upload

* typo

* New keyboard

* Updated image link

* Updated default ortho keymap

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* default firmware

* Delete pabile_p40_ortho.hex

* Update keymap.c

added KC_SPC to make keymap compatible with both grid and MIT. keymap is designed for MIT.

* Update keymap.c

* Update info.json

added MIT layout

* Update p40.h

added MIT layout option

* Added support for version 2 PCB

New/corrected pin locations. (Backlight) LED pin now on B6. Up to 3 rotary encoder support.

* Update readme.md

update for PCB v2

* Update readme.md

updated link

* Update readme.md

* Update readme.md

* Update readme.md

* Update config.h

removed backlight pins

* Update keymap.c

added encoder. simplified layout.

* Update keymap.c

* Update p42.h

* Update keymap.c

simplified

* Update keymap.c

* Update readme.md

replaced photo

* Added new keyboard

Initially placed under p40. separated as a new keyboard following an advise from gh.

* start rename

* removed old folder

* reverted to last merge

* revert to last merge

* Update p40.h

reverted to last merge

* Update keymap.c

* Update keymap.c

removed encoder support

* Update config.h

removed encoder support

* Update config.h

removed encoder support

* Update keymap.c

removed encoder support

* Update readme.md

removed encoder support

* Update info.json

* Update keymap.c

* Update keymap.c

* Update keyboards/pabile/p20/rules.mk

added numpad option

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

* added numpad option

* Update keyboards/pabile/p40/keymaps/ortho/config.h

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

* Update keyboards/pabile/p18/config.h

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

* Update keyboards/pabile/p20/config.h

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

* moved to p40_ortho keyboard rather than a keymap

* moved to p40_ortho keyboard rather than a keymap

* moved to p40_ortho keyboard rather than a keymap

* Update config.h

Added copyright details.

* Update keyboards/pabile/p20/p20.h

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

* Update keyboards/pabile/p20/p20.h

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

* Update keymap.c

alignment

* Update keyboards/pabile/p42/rules.mk

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

* Update keyboards/pabile/p42/rules.mk

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

* Update keyboards/pabile/p40_ortho/config.h

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

* Update keyboards/pabile/p40_ortho/info.json

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

* Update keyboards/pabile/p40_ortho/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/p42.h

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

* Update keyboards/pabile/p40_ortho/keymaps/default/keymap.c

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

* Update keyboards/pabile/p40_ortho/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p40_ortho/keymaps/default/keymap.c

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

* Update keyboards/pabile/p40_ortho/keymaps/default/keymap.c

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

* Update keyboards/pabile/p40_ortho/p40_ortho.h

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

* Update keyboards/pabile/p40_ortho/p40_ortho.h

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/info.json

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

* Update keyboards/pabile/p42/config.h

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

* Update keyboards/pabile/p40_ortho/rules.mk

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

* Update keyboards/pabile/p40_ortho/rules.mk

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

* Update keyboards/pabile/p40_ortho/rules.mk

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

* Update keyboards/pabile/p20/keymaps/ver2/config.h

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

* Update config.h

Added copyright statement

* Update config.h

Added copyright statement

* Update config.h

Added license header

* Update keymap.c

Added license header

* Update p20.h

Added license header

* Update p40_ortho.c

Added license header

* Update p40_ortho.h

Added license header

* Update keymap.c

Added license header

* Update keyboards/pabile/p42/rules.mk

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

* Update keymap.c

Updated LAYOUT to LAYOUT_default in response to Run failed: PR Lint keyboards - master (0f278a2)

* Update p42.h

Updated LAYOUT to LAYOUT_default in response to Run failed: PR Lint keyboards - master (0f278a2)

* Update p42.h

Added license header

* Update keyboards/pabile/p42/p42.h

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* Update keyboards/pabile/p42/keymaps/default/keymap.c

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

* add pabile/p20/ver2

* add missing license header

* Update keyboards/pabile/p20/ver2/keymaps/default/keymap.c

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

* Update keyboards/pabile/p20/ver1/ver1.c

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

Co-authored-by: root <root@HP8200.localdomain>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-19 17:42:56 -07:00
Stephen Huan
3abb609348 Add stephen-huan keymap and fix LED problem in the default Plaid keymap (#9306)
* change layers, add pinmode to fix LEDs

* fix LEDs by setting the pin mode

* edit README

* edit GPIO documentation, edit keymap

* add markov chain

* simplify LED logic

* undo documentation changes

* keymap changes, fix LED enum logic
2020-09-19 17:30:46 -07:00
Joakim Tufvegren
6eab8a0b61 [Keyboard] Make WPM sync between halves on Ergodox Infinity (#9526)
* Make WPM able to sync between keyboard halves on Ergodox Infinity.

* Fix mixed indentation in ergodox_infinity.c.
2020-09-19 16:25:20 -07:00
Patricio Gonzalez del Valle
08ef4b4a96 [Keymap] Adds pagondel layout for dz65rgb v2 (#9914)
* Adds pagondel layout for dz65rgb v2

* Adds license information

* replaces define by enums

* Update license year

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-19 16:00:45 -07:00
jrdsgl
12fe78ee57 Align RoMac+ vendor and product info (#10349)
* Update config.h

adding vendor and product info so VIA will recognize it.

* Update keyboards/kingly_keys/romac_plus/config.h

thank you for this. commiting suggestion.

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-19 21:02:35 +01:00
Xyverz
bdb1b10e99 Update Xyverz ortho_5x12 keymap (#10346)
* Fixing my 5x12 Ortho layout

Minor fixes.
2020-09-19 12:59:45 -07:00
Baris Tosun
a0efe93239 Refactored the Katana60 folders under a rominronin parent folder (#10255)
* refactored the Katana60 folders under a rominronin parent folder

* Update keyboards/rominronin/katana60/info.json

removed 'keyboard_folder' line

* Update keyboards/rominronin/katana60/info.json

removed 'key_count' line

* Update keyboards/rominronin/katana60_rev2/config.h

removed '#define DESCRIPTION' line

* Update keyboards/rominronin/katana60_rev2/rules.mk

Removed more attributes

* Update keyboards/rominronin/katana60_rev2/rules.mk

removed 'FAUXCLICKY_ENABLE' line

* Update keyboards/rominronin/katana60_rev2/rules.mk

Updated some comments

* Update keyboards/rominronin/katana60_rev2/config.h

Removed redundant comments

* Update keyboards/rominronin/katana60_rev2/config.h

removed redundant comments

* Update keyboards/rominronin/katana60_rev2/config.h

removed redundant comments

* Update keyboards/rominronin/katana60/keymaps/default/keymap.c

Fixed a non-standard keycode

* Update keyboards/rominronin/katana60/keymaps/rominronin/keymap.c

Removed deprecated code

* Update keyboards/rominronin/katana60/rules.mk

removed redundant comments

* Update keyboards/rominronin/katana60_rev2/katana60_rev2.c

removed redundant code

* Update keyboards/rominronin/katana60_rev2/keymaps/rominronin_7u/keymap.c

removed redundant code

* Update keyboards/rominronin/katana60_rev2/rules.mk

removed redundant comments

* Update keyboards/rominronin/katana60_rev2/rules.mk

updated some comments

* Update keyboards/rominronin/katana60_rev2/rules.mk

removed redundant code

* Update keyboards/rominronin/katana60_rev2/keymaps/rominronin_7u/keymap.c

optimised the layers definition

* Update keyboards/rominronin/katana60/rules.mk

removed redundant code

* added the info.json file for every Tsuka60 layout

* updated the info.json file details

* removed broken keymap file, updated other files

* updated the Katana60 rev2 info.json file

* split katana60 into revisions

* assign unique Vendor/Product ID pairings

* modernize codebase

#pragma once on included files; rules.mk templating

* fix rev2 layout macros

* updated the keymaps for correct automated building.

* updated the default layout file

* updated default rominronin 7u layout file

* Update keyboards/rominronin/katana60/rev1/readme.md

resized an image

* Update keyboards/rominronin/katana60/rev2/readme.md

resized an image

* remove dead space from rev2 info.json file
2020-09-18 20:54:08 -07:00
Ryan
bbfb709a6a Add STM32F401/F411 to ARM_PROCESSORS (#10362) 2020-09-18 20:48:02 -07:00
Ryan
0140baf7e0 Add STM32F401/F411 to mcu_selection.mk (#10278)
* Reorder STM32 MCUs

* Add STM32F4xx to mcu_selection.mk

* Set MCU for phoenix and tkw/stoutgat/v2/f411
2020-09-18 20:00:18 -07:00
4pplet
b0024470ed [Keyboard] 4pplet keyboards (#10251)
* added 4pplet keyboards

added 4pplet keyboards

* Update keyboards/4pplet/aekiso60_rev_a/aekiso60_rev_a.h

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

* Update keyboards/4pplet/aekiso60_rev_a/config.h

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

* Update keyboards/4pplet/aekiso60_rev_a/config.h

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

* Update keyboards/4pplet/waffling60_rev_a/config.h

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

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

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

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

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

* Update keyboards/4pplet/waffling60_rev_a/rules.mk

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

* Update keyboards/4pplet/waffling60_rev_a/rules.mk

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

* Update keyboards/4pplet/steezy60_rev_a/config.h

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

* Delete info.json

* Delete info.json

* Delete info.json

* removed VIA_ENABLE

* Update config.h

* Update rules.mk

* Update steezy60_rev_a.h

* Update config.h

* Removed VIA_ENABLE

* Update keyboards/4pplet/steezy60_rev_a/rules.mk

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

* Removed VIA_ENABLE

* Update config.h

* Update config.h

* Update config.h

* adding fauxpark suggestion

* Update keyboards/4pplet/aekiso60_rev_a/config.h

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

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

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

* some updates recommended by noroadsleft, still work in progress 

some updates recommended by noroadsleft, still work in progress

* made directorys for revisions per noroadsleft  suggestion

made directorys for revisions per noroadsleft  suggestion

* renamed keyboard_pre_init_user to keyboard_pre_init_kb

* Update keyboards/4pplet/aekiso60/rev_a/config.h

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

* Update keyboards/4pplet/waffling60/rev_a/rev_a.c

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

* Update keyboards/4pplet/waffling60/rev_a/rev_a.c

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

* started working on refactoring led function for waffling60

* removed LED functionality

* Update keyboards/wilba_tech/zeal60/rules.mk

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

* Update keyboards/wilba_tech/zeal60/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/waffling60/rev_a/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/steezy60/rev_a/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/4pplet/aekiso60/rev_a/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update config.h

added debounce to prevent stuttering with some switches

* Update README.md

* Adding masterwork classy_tkl

* Update keyboards/masterwork/classy_tkl/rev_a/rev_a.c

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

* Update keyboards/masterwork/classy_tkl/rev_a/rules.mk

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

* Update keyboards/masterwork/classy_tkl/rev_a/rules.mk

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

* Update rev_a.c

* Update rev_a.c

* updated name from masterwork to masterworks

* Update keyboards/masterworks/classy_tkl/info.json

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

* Update keyboards/masterworks/classy_tkl/info.json

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

* Update keyboards/masterworks/classy_tkl/info.json

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

* added license header to keymap

* Update keyboards/masterworks/classy_tkl/info.json

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

* Update keyboards/masterworks/classy_tkl/rev_a/config.h

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

* Update keyboards/masterworks/classy_tkl/rev_a/rev_a.c

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

* Update keyboards/masterworks/classy_tkl/rev_a/rules.mk

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

* Update keyboards/masterworks/classy_tkl/rev_a/rules.mk

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

* Update keyboards/masterworks/classy_tkl/readme.md

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

* Update keyboards/masterworks/classy_tkl/rev_a/rev_a.h

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

* Update keyboards/masterworks/classy_tkl/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-18 19:31:44 -07:00
Rys Sommefeldt
ccbbf16389 Matrix Noah 6.25U bottom row plus personal keymap using it (#10134)
* 6.25U bottom row ISO layout for Matrix Noah

* Personal map for Matrix Noah using new 6.25U bottom row ISO

* Switch to 65_iso_blocker and add that to info.json

* Switch to 65_iso_blocker for the new layout

* Fix whitespace issues
2020-09-18 17:56:38 -07:00
fauxpark
a0305f5e7e Be more specific about Caterina devices, and add LilyPad PID 2020-09-19 05:40:25 +10:00
fauxpark
c2a0cebf8b Add Pololu VID 2020-09-19 05:21:33 +10:00
fauxpark
ef1b050b32 Link to docs page in "missing" case 2020-09-19 05:21:32 +10:00
fauxpark
4bee445c2f Split rules back up into bootloaders 2020-09-19 05:21:32 +10:00
fauxpark
7921c5d9b8 A comma would be nice 2020-09-19 05:21:31 +10:00
fauxpark
72b1ff5899 Add TMK "FEED" VID to list of deprecated udev rules 2020-09-19 05:21:31 +10:00
fauxpark
eee6dd3544 Fix errors 2020-09-19 05:21:31 +10:00
fauxpark
510138f525 Simplify doctor rule checking 2020-09-19 05:21:30 +10:00
fauxpark
07e37c857c Update rules in doctor.py 2020-09-19 05:21:30 +10:00
fauxpark
a21e487fbc Consolidate udev rules into a single file 2020-09-19 05:21:29 +10:00
yossiyossy
9eeb6048ff [Keyboard] Add maJIStic keyboard (#10258)
* add maJIStic

* fix for format

* fix directory name

* rm old directory of maJIStic

* fix for comment

* ISO/JIS Enter move to the home row.
2020-09-18 12:01:43 -07:00
holtenc
f079dd90ed Meridian initial commit (#10196)
* Meridian initial commit

* requested changes

* Update keyboards/primekb/meridian/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/primekb/meridian/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* made requested changes

* Update meridian.c

* Update keyboards/primekb/meridian/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-17 20:17:22 -07:00
David Cuthbert
b846480d5a Output an error message if LINK_TIME_OPTIMIZATION_ENABLE is set but LTO_ENABLE is not (#10217)
* Output an error message if LINK_TIME_OPTIMIZATION_ENABLE is set but LTO_ENABLE is not.

* Update common.mk

Specify that LINK_TIME_OPTIMZATION_ENABLE has been renamed, not deprecated.
2020-09-17 15:14:39 -07:00
spotpuff
abec529e62 [Keymap] coppertop and spotpuff keymaps for DZ60 (#10216)
* initial keymap commit

* Keymap for coppertop commit

* removed define for layers/kc_no/kc_trns

* Modified keymap to remove definitions and add layer enum

* initial keymap commit

* Keymap for coppertop commit

* removed define for layers/kc_no/kc_trns

* Modified keymap to remove definitions and add layer enum

* Changed KC_NO and KC_TRNS to 7X and 7_

* Fixed spacing on keymaps

* TMO50: use layer_state_set_kb at keyboard level (#10150)

* Change TMO to use layer_state_set_kb as is customary at the keyboard level.

This also factors out `process_indicator_led` to a separate method.

* [Keymap] update dz60:mrsendyyk (#10160)

Update DZ60 Personal readme.md and keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update keymap.c

* Update readme.md

* Update

* Update readme.md

* Update keymap.c

* Update readme.md

* [Keyboard] YMDK NP21 refactor (#10181)

* [Keyboard] 1upkeyboards/1up60rgb: fix broken Enter (#10188)

The recent change to unnest macros put the enter on the wrong matrix key. On the 1uprgb, the ANSI and ISO enters share the same cell as does the ANSI and ISO backslash.

* no idea what this is

* Update keyboards/dz60/keymaps/coppertop/keymap.c

* Update keyboards/dz60/keymaps/coppertop/keymap.c

* Update keyboards/dz60/keymaps/coppertop/keymap.c

* Update keyboards/dz60/keymaps/spotpuff/keymap.c

* Update keyboards/dz60/keymaps/spotpuff/keymap.c

* Update keyboards/dz60/keymaps/spotpuff/keymap.c

* Added Trns labels to keymap comments.

* Revert "no idea what this is"

This reverts commit dd950f9eb3.

* Reverted dd950f9eb3

* fix vusb submodule

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

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

* Update users/spotpuff/rules.mk

* Added GNU copyright license text
2020-09-17 14:55:19 -07:00
umi
bc010d62ca [Docs] Japanese translation of docs/tap_hold.md (#10017)
* add tap_hold.md translation

* update based on comment

* update based on comment

* update based on comment
2020-09-17 12:04:07 -07:00
TJ
bc15c4f4ab Update led_conf_t example (#10327) 2020-09-17 18:45:42 +01:00
Drashna Jaelre
f37a134f71 [Keyboard] Convert Corne Keyboard to Split Common (#6001)
* [Keyboard] Convert Corne Keyboard to Split Common

* Add VIA Support

* Makes sure that ol(e)d and new OLED implementation can't coexist

* Add licensing header to files

* Add changes based on feedback from foostan

* Fixes
2020-09-17 00:41:55 -07:00
Dan White
f650b03fb7 [Keymap] Badger keymaps/userspace (#10239)
* Badger keymaps

* bug fix - linter

* code review feedback and ortholinear bugs

* cleanup

* backing out suspect bug after doing additional research

* code review feedback

* code review feedback

* changing default badger keymap and small bugfix
2020-09-16 21:03:28 -07:00
Joel Challis
410d09675a Fix TWIlib compilation on avr-gcc 10 (#9273) 2020-09-17 10:45:07 +10:00
Joel Challis
e9b3a12c6e Fix ssd1306 compilation on avr-gcc 10 (#9267) 2020-09-17 10:42:24 +10:00
Adam Gwilliam
424eeb8af7 add VIA support for boardsource/5x12 (#10236)
* add via support for boardsource/5x12

* make product id for 5x12 unique (there is already an 0x0512) by setting it to 0x5012

* un-swap the readme's for 3x4 and 5x12

* Update keyboards/boardsource/5x12/config.h

update vendor id

* Update keyboards/boardsource/5x12/keymaps/via/keymap.c

use correct number of layers for VIA

* update product id to use same pattern as others

* Update keyboards/boardsource/5x12/keymaps/via/readme.md

* Update keyboards/boardsource/5x12/keymaps/via/readme.md
2020-09-16 16:57:09 -07:00
Xelus22
97122d203b [Core] DYNAMIC_KEYMAP_EEPROM_MAX_ADDR check (#10315)
* add error check

* remove quotes

* update error message

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-16 16:16:01 +10:00
vattern
06d4c0a396 [Keyboard] add Stoutgat v2; move Stoutgat v1 (#10233)
* initial add

* stoutgat working

* Ready for release

* Ready for release

* Ready for release

* Ready for release

* Ready for release

* fix typos

* update flash instructions in readme

* update copyright

* Update keyboards/tkw/stoutgatv2/keymaps/default/keymap.c

* Apply suggestions from code review

* Fix typo

* Update lib/vusb

* Update keyboards/tkw/stoutgatv2/rules.mk

* Update desc add v2

* Add ANSI

* Move to v1 and v2 folders

* fix typo

* fix v1 readme

* Fix copypasta from v1 keymap

* fix missing trailing slash

* Delete keymap.json

* Apply suggestions from code review

Fixed layout and removed erroneous keymap.json
2020-09-15 00:57:55 -07:00
Lasse Bjerre
0050033aca Add ISO layouts for YMD75 (#10244)
* Update rev2.h

* Update info.json

* Create keymap.c

* Add ISO layout to rev1

* Removed redundant keycount

* Add fix for rev1 board + additional key

* Updated default iso keymap

* Add layout with 1.5u keys to the right of spacebar

* Fixed rev2 rwkl and added default layout
2020-09-14 18:41:30 -07:00
Nick Blyumberg
b58f9ef1e2 [Keymap] Hub16 AutoHotKey Companion (#10159)
* Hub16 AutoHotKey Companion

* Revised after PR comments by Drashna

* Update keyboards/hub16/keymaps/ahk_companion/readme.md

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

* Update keyboards/hub16/keymaps/ahk_companion/readme.md

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

* Update keyboards/hub16/keymaps/ahk_companion/readme.md

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

* Update keyboards/hub16/keymaps/ahk_companion/readme.md

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

* Update keyboards/hub16/keymaps/ahk_companion/readme.md

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

* Update keyboards/hub16/keymaps/ahk_companion/keymap.c

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-14 18:15:25 -07:00
LSChyi
02551ae499 [Keyboard] add Phoenix keyboard (#10256)
* setup keyboard

* fit v1 board setting

* remove unused def and add ergodox_pretty

* add user hooks

* add ergodox_pretty to info

* apply suggestions

* use default split usb timeout
2020-09-14 03:33:43 -07:00
undermark5
6499eb6a3c Fixed typo in vscode docs (#10303)
.vscode/c_cpp_properies.json -> .vscode/c_cpp_properties.json
2020-09-13 14:28:30 +01:00
Frans de Jonge
2b9f200a2a [fix] dfu-programmer <0.7 doesn't support --force flag (#10292)
Fixes <https://github.com/qmk/qmk_firmware/issues/10286>.
2020-09-13 02:17:47 +01:00
Darren Meehan
9e99a9b98c Remove use of sudo in lily58 make docs (#10301) 2020-09-12 20:40:31 +01:00
binepad
e4d46a1c00 [Keyboard] add binepad/bn003 (#10276)
* ADD BINEPAD/BN003

* Update keyboards/binepad/bn003/config.h

* Update keyboards/binepad/bn003/config.h

* Update keyboards/binepad/bn003/rules.mk

* Update keyboards/binepad/bn003/keymaps/via/keymap.c

* Update readme.md

added macro pad info

* Update keyboards/binepad/bn003/readme.md

* Update keyboards/binepad/bn003/bn003.c

* Update keyboards/binepad/bn003/config.h

* Update keyboards/binepad/bn003/config.h

* Update keyboards/binepad/bn003/info.json

* Update keyboards/binepad/bn003/rules.mk

* Update keyboards/binepad/bn003/rules.mk

* Update keyboards/binepad/bn003/rules.mk

* Update bn003.c

* Update keyboards/binepad/bn003/readme.md

* Update keyboards/binepad/bn003/rules.mk

* Update keyboards/binepad/bn003/config.h

* Update keyboards/binepad/bn003/keymaps/via/rules.mk

* Update keyboards/binepad/bn003/rules.mk
2020-09-12 03:11:30 -07:00
TheLibra23
7141de19d9 added VIA keymap for Keebio Viterbi (#10168)
* added via keymap

* replaced PRODUCT_ID 0x1157 with PRODUCT_ID 0x2157

replaced product id to distinguish rev2 from rev1.
bakingpy gave me permission through discord chat.

* Update keyboards/keebio/viterbi/keymaps/via/keymap.c

* Update keyboards/keebio/viterbi/keymaps/via/rules.mk

* made a simplier keymap.c for via folder

Based from the default keymap, removed unnecessary codes.
2020-09-12 00:55:52 -07:00
Ben
c82865efab Add VIA keymap for Plaid-Pad (#10057)
* Add via keymap for Plaid-Pad

- Add VIA support for the Plaid-Pad
- Changes Vendor ID and Product ID (to follow VIA's guidelines)

* Add extra encoder pads for rev1.1

* Change Product Id from pp to PP (hex value)

* improved readme

- detailed informations about rotary encoder, bootloader and firmware

* Improved encoder informations in via keymap

* Improved encoder infos and code in default keymap

* add revision folder for rev1 and rev1.1

* change encoder assignment for defaul a via keymap

* Update keyboards/keycapsss/plaid_pad/config.h

* change revision number

* 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

* add license to header of *.h and *.c files

* remove the list of alternate bootloaders

- due to the pr checklist

* Update keyboards/keycapsss/plaid_pad/rules.mk
2020-09-11 18:19:05 -07:00
Takeshi ISHII
d8d65bbf5f [Docs] Update Japanese translation of feature_split_keyboard.md (#10283)
Apply #10242 changes to ja/feature_split_keyboard.md
2020-09-11 13:10:30 -07:00
hidenori
58d7e9fa0e [Keymap] Added ToyoshimaHidenori's keymap for Ergodash mini (#10228)
* Add ToyoshimaHidenori's keymap

* Remove some dead code and characters

* Change the folder name from uppercase to lowercase

* Remove uppercase folder
2020-09-11 13:06:38 -07:00
yulei
6de4a53c7c [Keyboard] added SQUARE.X by iNETT Studio (#10066)
* added SQUARE.X keyboard from the iNETT Studio

* split to two sub directories

* Apply suggestions from code review

* Update keyboards/inett_studio/sqx/universal/universal.h

* Apply suggestions from code review

* update the matrix control keycodes settings

* use the offical macro to the rgb matrix control

* fixed led position issue

* Apply suggestions from code review

* removed the redundant #endif

* update default keymap

* Apply suggestions from code review

* add license header
2020-09-11 02:28:23 -07:00
Alvaro Muente
3d3c2e1d3f Add VIA support for JJ40 (#10263)
* via support

* Removing backspaces from jj40 keymap.c

* Updating jj40/via/rules.mk
2020-09-11 00:03:49 -07:00
Callum Oakley
3d4f0028d6 [Keymap] major keymap overhaul (#10185)
* experiment with userspace

* reorganise

* readme

* missing oneshot shift from ignored keys

* recombine hands in layout macro
2020-09-09 15:37:34 -07:00
Ryan
6e948feb6a Use the force when flashing with dfu-programmer (#10070) 2020-09-10 00:00:27 +10:00
Nick Christus
076b9d482f [Keymap] Added nchristus userspace (#10261)
* userspace: added nchristus

* userspace: updates per PR review
2020-09-08 22:33:38 -07:00
Ramon Imbao
08f6e64137 [Keyboard] Add Squishy65 keyboard (#10266)
* Add Squishy65 keyboard

* Edit info.json

* Fix incorrect ISO layout

* Add missing license in files

* Update keyboards/ramonimbao/squishy65/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ramonimbao/squishy65/keymaps/via/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ramonimbao/squishy65/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-08 22:32:47 -07:00
Jan Kolkmeier
4b9c3dc2e5 add keyboard: bemeier/bmek (revisited) (#10144)
* bmek keyboard support

* Update keyboards/bemeier/bmek/bmek.h

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

* Update keyboards/bemeier/bmek/rules.mk

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

* moved shutdown behavior to shutdown hook

* removed dynamic macro option statement

* Apply suggestions from code review

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>

* change layout name in via

* move/copy root rules to revs

* Apply suggestions from code review

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

* Apply suggestions from code review

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-08 22:25:13 -07:00
boss566y
ba3ec0f081 [Keymap] Romac Keymap with VIA and OLED Support (#10249)
* Add Personal Keymap with VIA and OLED

* Update keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c

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

* Update keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c

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

* Update keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kingly_keys/romac/keymaps/boss566y/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-08 21:24:23 -07:00
Nick Blyumberg
d3cea9ed93 [Keyboard] Added the proper RGB settings to allow via control (#10223) 2020-09-08 21:10:30 -07:00
umi
5f00df0c4c [Docs] Japanese translation of docs/reference_keymap_extras.md (#10138)
* add reference_keymap_extras.md translation

* update based on comment

* update based on comment

* update based on comment
2020-09-08 14:44:36 -07:00
MakotoKurauchi
cd73949682 updated readme.md of yushakobo/quick7 keyboard (#10243)
* update "Hardware Availability"

* add a section of "How to build"

* update "Hardware Supported"
2020-09-07 23:20:16 -07:00
marksard
4e3a96ff3e Update treadstone48/rev2 info.json (#10241)
* 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

* Updated treadstone48 info.json file

* remove kc define

* Nested layout macro 1/2

* Nested layout macro 2/2
2020-09-07 23:00:19 -07:00
marksard
ae7a076964 Update marksard/leftover30 info.json (#10240)
* 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

* Updated leftover30 info.json file
2020-09-07 22:37:15 -07:00
James Young
78d5224a1d Remove HD44780 References, Part 3 (#10238)
* remove HD44780_ENABLE rules: G-H

* remove HD44780_ENABLE config: G-H
2020-09-07 22:28:18 -07:00
Takeshi ISHII
088888937a Replace figures in docs/feature_split_keyboard.md (#10242)
* Replace figures in feature_split_keyboard.md

* fig update

* Update docs/feature_split_keyboard.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-06 21:15:55 -07:00
Drashna Jaelre
9fe3fc4c04 Add Bakeneko 65 (#10234)
* Add Bakeneko 65

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-06 21:03:58 -07:00
Vitja Makarov
6b1c58629f [Keyboard] Fix adb_usb/aek layout keypad equal key (#10248) 2020-09-06 21:03:16 -07:00
QMK Bot
3b1abe0dee format code according to conventions [skip ci] 2020-09-07 03:50:14 +00:00
gitdrik
3b14c032e0 [Keymap] Added Finnish SFS 5966 keymap for planck. (#10200)
* Added Finnish SFS 5966 keymap for planck.

* Modified comments and added copyright header.
2020-09-06 20:49:20 -07:00
jackytrabbit
fb66f0a3fb [Keyboard] Add VIA support for lazydesigners\bolt (#10218)
* Add VIA support for lazydesigners\bolt

Add VIA support for lazydesigners\bolt

* Update keyboards/lazydesigners/bolt/via/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-06 20:47:52 -07:00
Adam Gwilliam
1d8b0ccc81 [Keyboard] add via support for boardsource/4x12 (#10220)
Co-authored-by: Adam Gwilliam <agwilliam@yaharasoftware.com>
2020-09-06 18:10:18 -07:00
nathanvercaemert
92e5361fc5 [Keymap] Personal Keymap (nathanvercaemert) Update (#10107)
* updates to incorporate combined mouse key acceleration functionality

* tab switching in chrome works, updated readme

* updated keymap image

* updated keymap image

Co-authored-by: Nathan Vercaemert <nathan.vercaemert@gmail.com>
2020-09-06 17:55:39 -07:00
moyi4681
8ea8a80c5b [Keyboard] add Maja soldered keyboard (#10152)
* add maja_soldered keyboard

add maja_soldered keyboard

* Update info.json

* update keymap

* Update keyboards/kbdfans/maja_soldered/config.h

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

* Update keymap.c

* Update keyboards/kbdfans/maja_soldered/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kbdfans/maja_soldered/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keymap.c

* Update keymap.c

* Update keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-06 17:55:06 -07:00
Alvaro Muente
788cbcf828 [Keyboard] Update JJ40 VID and PID (#10215)
Co-authored-by: Alvaro <afmuente@outlook.com>
2020-09-06 17:52:57 -07:00
Koichi Katano
28e10eedda Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-07 09:33:12 +09:00
stanrc85
6c3e404839 [Keymap] Add indicator light bootup fanfare (#10158)
* Add indicator light bootup fanfare

* move fanfare code to new file

* fanfare code in new file and remove unused boards

* new startup fanfare code

* add lock/unlock indicator animation

* input key presses before changing lights

* remove old code
2020-09-06 15:04:29 -07:00
Purdea Andrei
f7ccbfcea8 quantum/debounce: rename debouncing algorithms (#9564)
* quantum/debounce: rename debouncing algorithms according to Issue 8763

This is the second attempt at implementation, with no ts_ and cy_ prefixes, since those will be implemented with macros.

* Debouncing documentation: Refactor, add some generic info, and merge into a single document
2020-09-06 13:13:49 -07:00
Daniel Rodríguez Rivero
8ac9940a76 [Keymap] danielo515/redox-1 (#9935)
* chore: pulled the latest from master

Bring my redox layout from my latest redox branch
Bring my latest user stuff from my redox branch

* Update users/danielo515/config.h

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

* chore: small cleanup

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-09-06 13:13:18 -07:00
Erovia
ac24f203cc Docs/PR_checklist: Reorder, unify and pet-peeves (#10253)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-09-06 13:06:12 +01:00
Maarten Dekkers
d0eabd083e [Keyboard] add Plume Keyboards Plume65 (#10176)
* Add Plume65

* Changes
2020-09-06 00:33:43 -07:00
Maarten Dekkers
e0b7c70743 [Keyboard] add Solheim68 by Maartenwut (#10190)
* Add Solheim68

* Update info.json

* Layout rename and config cleanup
2020-09-05 23:07:34 -07:00
Olivier Li
9bca381b98 Unflip < and > for canadian mutlilingual (#10222)
Co-authored-by: Olivier Li <olivierli@google.com>
2020-09-06 09:51:38 +10:00
Brandon Claveria
d612d617ee [Keyboard] add Pandamic handwired (#10227)
* Add pandemic keyboard

* Fix default keymap

* Add via keymap

* Fix via keymap

* Fix keymaps and pandamic.h

* add info.json

* update info.json

* Apply suggestions from code review

* Update keyboards/handwired/swiftrax/pandamic/info.json

* make suggested changes
2020-09-05 11:37:05 -07:00
Ryan
687d05dfb1 Update file changes action (#10245) 2020-09-05 14:37:25 +01:00
umi
a8a714c46e [Docs] Japanese translation of docs/reference_configurator_support.md (#9879)
* add reference_configurator_support.md translation

* update based on comment

* update based on comment

* update based on comment

* update based on comment
2020-09-05 13:53:19 +09:00
marksard
6e32dd123f [Keyboard] add rhymestone by marksard (#9708)
* 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

* Add keyboard the Rhymestone

* fixed by PR review

* fixed by review

* Update keyboards/rhymestone/readme.md

fixed

* Fixed possible changes to oled_write_P

* Change the name of the layout definition

* Update keyboards/rhymestone/info.json

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

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

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

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

* Update keyboards/rhymestone/keymaps/switch_tester/keymap.c

* Update keyboards/rhymestone/keymaps/switch_tester/keymap.c

* Update keyboards/rhymestone/rev1/rev1.h

* add empty rules.mk in rev1

* Update from other review

* Update keyboards/rhymestone/rules.mk

* fixed other review

* move rhymestone to marksard directory

* move rhymestone to marksard directory (Commit the necessary modifications)

* remove
2020-09-04 04:14:34 -07:00
Takeshi ISHII
82a830196f fix link in docs/ja/*.md (#10232)
* fix link in docs/ja/feature_split_keyboard.md

* fix link in docs/ja/faq_build.md

* fix link in docs/ja/faq_general.md

* fix link in  docs/ja/faq_keymap.md

* fix link in docs/ja/how_a_matrix_works.md

* fix link in docs/ja/reference_glossary.md
2020-09-04 04:12:43 -07:00
marksard
6a79d99ea2 [Keyboard] add leftover30 by marksard (#10140)
* 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

* Add keyboard leftover30

* update keymap

* Update keyboards/marksard/leftover30/config.h

I guess I was mistaken. Thank you.

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/leftover30.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* Update keyboards/marksard/leftover30/keymaps/default/keymap.c

* changed user led custom method

* Update keyboards/marksard/leftover30/config.h

* Update keyboards/marksard/leftover30/config.h

* Update keyboards/marksard/leftover30/keymaps/default/rules.mk

* Update keyboards/marksard/leftover30/rules.mk

* Update from other review

* Update keyboards/marksard/leftover30/readme.md

* fixed kanji key procedure

* Update keyboards/marksard/leftover30/config.h

* Update keyboards/marksard/leftover30/config.h

* Update keyboards/marksard/leftover30/config.h

* fixed by review
2020-09-04 03:31:36 -07:00
umi
2e4a75e2bc [Docs] Japanese translation of docs/serial_driver.md (#10014)
* add serial_drive.md translation

* update table style

* update based on comment

* update based on comment
2020-09-03 19:58:03 -07:00
umi
c3f3b34d7c [Docs] Japanese translation of api_*.md (#9992)
* add api related translation

* update based on comment

* update based on comment

* update based on comment
2020-09-03 19:54:23 -07:00
umi
98278968b7 [Docs] Japanese translation of docs/reference_glossary.md (#9880)
* add reference_glossary.md translation

* update based on comment

* update based on comment

* update based on comment
2020-09-03 19:44:39 -07:00
umi
361003934e [Docs] Japanese translation of docs/quantum_keycodes.md (#10137)
* add quantum_keycodes.md translation

* update based on comment
2020-09-03 19:01:37 -07:00
umi
c10b011828 [Docs] Japanese translation of docs/syllabus.md (#10016)
* add syllabus.md translation

* update based on comment

* update based on comment
2020-09-03 18:56:04 -07:00
umi
6eefc20c2a [Docs] Japanese translation of docs/support.md (#10015)
* add support.md translation

* update based on comment
2020-09-03 18:50:53 -07:00
umi
2282104526 [Docs] Japanese translation of docs/translating.md (#10018)
* add translating.md translation

* update based on comment

* update based on comment
2020-09-04 03:28:53 +09:00
umi
9b9587527f [Docs] Japanese translation of docs/reference_info_json.md (#9881)
* add reference_info_json.md translation

* update based on comment

* update based on comment
2020-09-04 03:25:21 +09:00
Koichi Katano
461153150b Add Bakeneko 65 2020-09-04 02:02:40 +09:00
Koichi Katano
c1a6b5f430 [Keyboard] add Bakeneko 60 (#10212)
* Add Bakeneko 60 keyboard

* Apply suggestions from code review
2020-09-03 09:09:36 -07:00
QMK Bot
25e93b4b67 format code according to conventions [skip ci] 2020-09-03 11:25:14 +00:00
MelGeek
2f26e14dc6 Update ISSI3741 (#9912)
* [Driver] bugfix reset the scaling register flag to FALSE

* Update drivers/issi/is31fl3741.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add CS & SW defines for ISSI3741

* Make IS31FL3741 control register update clearer

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jumail Mundekkat <mundekkat@hotmail.com>
2020-09-03 20:37:04 +10:00
gtips
bad589ec59 [Keyboard] reviung33 (#10162)
* [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

* Update readme.md

Change the image photo of readme.md.

* [Keyboard] Add reviung61

* Update readme.md

* fix keyboards/reviung61/ and add keymap default_rgb

* fix keyboards/reviung61/info.json

* fix keyboards/reviung61/info.json

* remove keyboards/reviung61/keymaps/default/config.h

* [keyboard] Fixed readme.md for reviung39 and 61.

* [keyboard] add keyboard reviung33

* fix keyboards/reviung33/rules.mk

* modified: keyboards/reving33/config.h

* modified: keyboards/reving33/info.json

* modified: keyboards/reving33/keymaps/default/keymap.c
2020-09-03 01:42:09 -07:00
Sendy YK
eead2c6087 Update DZ60 Information (#10186)
* Remove #define DESCRIPTION

* Update readme.md

* Update keyboards/readme.md

* Update keyboards/readme.md
2020-09-03 01:36:04 -07:00
jrdsgl
04293bcd5b [Keymap] add sixkeyboard:via (#10172)
* Adding VIA support for sixkeyboard

* Update keyboards/sixkeyboard/keymaps/via/keymap.c

* Update keyboards/sixkeyboard/keymaps/via/keymap.c

* Update keyboards/sixkeyboard/keymaps/via/keymap.c

* Update keyboards/sixkeyboard/keymaps/via/keymap.c

* Update keymap.c

added suggested header. left my name out and changed year to 2020.
2020-09-03 01:34:42 -07:00
jotix
e7cc5a35c2 [Keymap] update ortho_4x12 jotix (#10157)
* mouse_layout

* add_mouse_btns

* reset_with_ctrl+esc+bspc

* add_mousekeys_on_right

* mod-tap-mouse-layer

* fn_layer
2020-09-03 01:28:07 -07:00
mujimanic
9808bfaf26 [Keyboard] add Sneakbox Alice Clone (#9792)
* Initial Commit for alice clone pcb

Initial commit for alice clone pcb

* Update keyboards/sneakbox/aliceclone/config.h

Change to #pragma once. Thanks.

* Update keyboards/sneakbox/aliceclone/config.h

* Update keyboards/sneakbox/aliceclone/kb.c

* Rename kb.h to aliceclone.h

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

Got it. Thanks.

* Update keyboards/sneakbox/aliceclone/readme.md

* Update keyboards/sneakbox/aliceclone/readme.md

* Update keyboards/sneakbox/aliceclone/rules.mk

* Update keymap.c

* Rename kb.c to aliceclone.c

* Update keyboards/sneakbox/aliceclone/config.h

* Update keyboards/sneakbox/aliceclone/aliceclone.h

* Update keyboards/sneakbox/aliceclone/aliceclone.h

* Update keyboards/sneakbox/aliceclone/aliceclone.h

* Update keyboards/sneakbox/aliceclone/config.h

Got it. Thanks.

* Update keyboards/sneakbox/aliceclone/readme.md

Got it, the parent company folder needs to be added for make to find the source. Forgot that. Thanks.

* Update keyboards/sneakbox/aliceclone/config.h

* Info.json now reflects QMK configurator metadata

Previously, .json represented via metadata.

* Changed typo ) to } at end of line 9.

* Update keymap.c

Updated the spacing of the keymap layout to be more readable.

* Update keymap.c

Updated this VIA keymap for formatting to make it more readable.

* Update keymap.c

Updated formatting of the rotary encoder function

* Update keymap.c

* Update info.json

Corrected key layout and aligned for straight keymap, removed rotation references

* Update keymap.c

Adjusted formatting for key layout for readability

* Adjusted formatting for key layout for readability

Adjusted formatting for key layout for readability

* Added GPLv2 License header

* Added GPLv2 license header

* Update aliceclone.c

* Updated the LAYOUT map 

LAYOUT map now resembles the actual keymap with correct KXY keys corresponding to switch position.

* GPLv2 license header added

* Update keyboards/sneakbox/aliceclone/config.h

* GPLv2 License Header added

* Updated License Header, Added keymap layers

Added total of 4 keymap layers, fixed keymap visual formatting. License header GPLv2

* Added extra layers, corrected layer references

* Updated formatting for keymap.c LAYOUT

* Update keyboards/sneakbox/aliceclone/aliceclone.h

Updated

* Update keyboards/sneakbox/aliceclone/info.json

Updated

* Update keyboards/sneakbox/aliceclone/info.json

Updated

* Update keyboards/sneakbox/aliceclone/info.json

Updated formatting

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

Reviewed and approved. Thanks.

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

Reviewed. Understood. Thanks.

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

Got it. Removed.

* Update keyboards/sneakbox/aliceclone/keymaps/via/keymap.c

Agreed. Thanks for the suggestion.

* Update keyboards/sneakbox/aliceclone/readme.md

* Update keyboards/sneakbox/aliceclone/readme.md

* Update keymap.c

tabs spaces formatting

* Update keymap.c

Tabs and spaces. Remove L3 L4

* syntax in enum layer_names

removed comma after "_FN"

* Update aliceclone.h

renamed LAYOUT_all to LAYOUT

* Update keymap.c

Updated keymap

* Update keymap.c

* Update keyboards/sneakbox/aliceclone/readme.md

* Update keyboards/sneakbox/aliceclone/keymaps/via/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/via/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/via/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/via/keymap.c

* Update keyboards/sneakbox/aliceclone/aliceclone.h

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c

* Update keyboards/sneakbox/aliceclone/keymaps/default/keymap.c
2020-09-03 01:24:55 -07:00
Andy Jack
2ab307a940 [Keymap] add 40percentclub/mf68:andyjack (#10208)
* Initial checkin of my 40percentclub/mf68 keymap

* Add gplv2 license header
2020-09-01 23:31:57 -07:00
t-miyajima
4086729f5e [Keyboard] Add Chavdai40% rev2 (#10210)
* add chavdai40 rev2

* add chavdai40 rev2

* change include quantum.h to top of h files
2020-09-01 23:29:17 -07:00
Matthew Lyon
4701001524 add centromere:mattly keymap (#10177)
* mattly's mirrored centromere layout

* Update keyboards/centromere/keymaps/mattly/keymap.c

* Update keyboards/centromere/keymaps/mattly/rules.mk
2020-09-01 18:01:24 -07:00
4pplet
6e618baa57 update 4pplet/waffling60 keyboard (#10143)
* Update config.h

added debounce to prevent stuttering with some switches

* Update README.md
2020-09-01 17:36:00 -07:00
Blake
825ef0bd96 add keebio/bdn9:ghostseven keymap (#10154)
Keebio BDN9 Additional Keymap - Rev Encoders
2020-09-01 17:31:34 -07:00
Salicylic-acid3
58600d3f65 (setta21 & getta25) Keymaps Update (#10170)
OLED is turned off by default.
2020-09-01 17:28:55 -07:00
MechMerlin
f145696dad E85 Hotswap/Soldered Fixes (#10173)
* split up the e85 into hotswap and soldered variants

* remove layout_all LAYOUT macro for hotswap pcb

* add copyright header to  to all config files

* remove list of alternate bootloaders

* spruce up config file

* comply with PR check list

* Update keyboards/exclusive/e85/hotswap/info.json

* Update keyboards/exclusive/e85/hotswap/info.json

* Update keyboards/exclusive/e85/hotswap/info.json

* Update keyboards/exclusive/e85/rules.mk

* Update keyboards/exclusive/e85/config.h

* Update keyboards/exclusive/e85/hotswap/config.h

* Update keyboards/exclusive/e85/soldered/config.h

* remove LAYOUT_all in hotswap and also remove superfluous comments

* remove the soldered tsangan map
2020-09-01 14:45:25 -07:00
Sendy YK
7fe01239dd update ai03/soyuz:mrsendyyk keymap (#10161)
Update ai03 Soyuz readme.md and keymap.c

* Update readme.md

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md
2020-09-01 09:18:36 -07:00
Bradford
32910738fd add bm60rgb:jbradforddillon keymap (#10133)
* Added bm60rgb keymap

* Fix copyright
2020-09-01 09:11:16 -07:00
Bradford
4889625015 bm60rgb: fixed LED layout; add underglow support (#10132)
* Fixed the LED layout for the bm60rgb

* Added underglow support
2020-09-01 09:09:24 -07:00
Josh Hinnebusch
744940bbd9 hineybush/h88: update h88 LED stuff (#10101)
* update h88.c

* Update keyboards/hineybush/h88/h88.c
2020-09-01 09:05:03 -07:00
TheLibra23
0bec817479 keebio/viterbi/rev2/: replaced change PRODUCT_ID (#10167)
* replaced #define PRODUCT_ID 0x1157 with #define PRODUCT_ID 0x2157 

replaced product id to distinguish rev2 from rev1.
bakingpy gave me permission through discord chat.
2020-09-01 08:55:31 -07:00
umi
80fd81ad6b [Docs] Japanese translation of docs/ref_functions.md (#9878)
* add ref_functions.md translation

* modify internal link for ja

* update based on comment

* reflect #9892 change

* update based on comment

* update based on comment
2020-09-01 18:31:25 +09:00
Joe Wasson
d16d866597 [Keyboard] 1upkeyboards/1up60rgb: fix broken Enter (#10188)
The recent change to unnest macros put the enter on the wrong matrix key. On the 1uprgb, the ANSI and ISO enters share the same cell as does the ANSI and ISO backslash.
2020-08-31 22:41:41 -07:00
Ryan
0032cb026b [Keyboard] YMDK NP21 refactor (#10181) 2020-08-31 22:30:07 -07:00
Sendy YK
854a94f383 [Keymap] update dz60:mrsendyyk (#10160)
Update DZ60 Personal readme.md and keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update keymap.c

* Update readme.md

* Update

* Update readme.md

* Update keymap.c

* Update readme.md
2020-08-31 22:26:52 -07:00
Joe Wasson
4a6cfb06c5 TMO50: use layer_state_set_kb at keyboard level (#10150)
* Change TMO to use layer_state_set_kb as is customary at the keyboard level.

This also factors out `process_indicator_led` to a separate method.
2020-08-31 22:19:51 -07:00
Danilo de Klerk
a9a2817f3a [Keymap] Add ddeklerk ortho_4x12 layout (#10109)
* Add ddeklerk ortho_4x12 layout

* Add license header
2020-08-31 21:44:47 -07:00
gorbachev
4286b81af0 [Keymap] add dmqdesign/spin:gorbachev (#9919)
* Add keymap for DQM Design Spin macropad

* changes from code review

* state -> layer_state

* Formatting fixes

* Formatting fixes

* Formatting fixes

* Formatting fixes

* Formatting fixes
2020-08-31 21:23:29 -07:00
mechlovin
fa740c1286 [Keyboard] Mechlovin Delphine (#9835)
* add

* ADD

* update

* update

* update

* update

* Update rgb_led.c

* Update rgb_led.c
2020-08-31 17:20:19 -07:00
Félix Sanz
69804bb243 Fixed Spanish keymap extra ES_DIAE symbol (#10211)
* Fixed Spanish keymap extra ES_DIAE symbol

`ES_DIAE` should be `S(ES_ACUT)` not `S(ES_GRV)`

* Update quantum/keymap_extras/keymap_spanish.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-09-01 08:23:31 +10:00
QMK Bot
a3db72df72 format code according to conventions [skip ci] 2020-08-29 22:57:48 +00:00
James Young
000eb14d78 update "Breaking Changes" doc 2020-08-29 14:30:02 -07:00
James Young
d3721bdff9 Revert "Branch point for 2020 Aug 29 Breaking Change"
This reverts commit 7259126e8d.
2020-08-29 14:30:02 -07:00
James Young
c56b9a1ce9 Add ChangeLog for 2020 Aug 29 Breaking Changes 2020-08-29 14:30:02 -07:00
Zach White
bdd8d2679b Allow joysticks to be used without analog pins (#10169)
* Allow joysticks to be used without analog pins

* change how analog/digital joysticks are specified
2020-08-29 14:30:02 -07:00
Ryan
629cfc7f5e K-Type refactor (#9864)
* K-Type refactor

* Declare QMK in product name again

* Hopefully fix matrix scanning

* Maybe this time

* Partial (literally) RGB Matrix support

* Put RGB_MATRIX_ENABLE into rgb keymap for now

* Add ifdefs for RGB config

* Set layer 1 to actually be layer 1...

* Update keyboards/k_type/readme.md

* Put all RGB config in keymap for now

* Set SDB high?

* Before `rgb_matrix_init()` would be best

* User level, not keyboard

* Combating dropped keys

* Nope

* Readme for RGB keymap

* Remove custom matrix
2020-08-29 14:30:02 -07:00
Ryan
0f596881b3 Remove support for Adafruit EZ-Key (#10103)
* Remove support for Adafruit EZ-Key

* Update docs/ja/feature_bluetooth.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-08-29 14:30:02 -07:00
Sergey Vlasov
15df82cdf3 Fix DMA stream ID calculation in ws2812_pwm (#10008)
Some STM32 chips have STM32_DMA1_STREAM1 as the first DMA stream, others
(F4xx, F7xx, H7xx) have STM32_DMA1_STREAM0.  Instead of those names, use
STM32_DMA_STREAM(0), which should always give the first stm32_dma_stream_t
structure in the DMA streams array, so that the stream ID would be
calculated correctly.
2020-08-29 14:30:02 -07:00
Nick Brassel
1de39e5632 Define STM32_DMA_REQUIRED when using DMA-based WS2812 driver on STM32. (#10127) 2020-08-29 14:30:02 -07:00
Ryan
b89b2030af Kiibohd bootloader, take 2 (#10129) 2020-08-29 14:30:02 -07:00
Richard
fa6cf85727 Add a method to read the OLED display buffer from user space (#8777)
* Adding extern and declaration

* Change to mediated buffer read

* Adding raw byte read

* Restore write raw... D'Oh

* Working struct return

* Pack that struct

* Remove conditional packing and add example to docs

* Cleanup tab/spaces

* Update docs/feature_oled_driver.md

Prettify formatting

* Update drivers/oled/oled_driver.h

Prettify formatting
2020-08-29 14:30:02 -07:00
Drashna Jaelre
92385b3fb6 Better handle LTO_ENABLE (#9832)
* Better handle LTO_ENABLE

Especially when calling from command line

* Replace LINK_TIME_OPTIMIZATION_ENABLE with LTO_ENABLE

* Remove long for LTO from show_options.mk
2020-08-29 14:30:02 -07:00
Ryan
3f392c09b6 More Bluetooth refactoring (#9905) 2020-08-29 14:30:02 -07:00
yiancar
47f8947bf5 Update vusb to match 3rd endpoint. (#9020)
* Update vusb to match 3rd endpoint.

- With the addition of https://github.com/qmk/v-usb/pull/1 a 3rd endpoint (endpoint4) becomes available.
- We can assign mouse/extrakeys to that endpoint as its a desirable feature and leave rawhid and console to compete for the 2nd endpoint.

NOTE: The version of vusb.c in future branch is older than master. Just remember that it will need a #error if both raw_hid and console are enabled at the same time.

* Final Fixes

* Update tmk_core/protocol/vusb/vusb.c

* Update tmk_core/protocol/vusb/vusb.c

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Update tmk_core/protocol/vusb/usbconfig.h

* Updated vusb submodule to latest commit
2020-08-29 14:30:02 -07:00
Ryan
9ef4526a2f Remove unused CORTEX_VTOR_INIT (#10053) 2020-08-29 14:30:02 -07:00
Joel Challis
15b5ff1dc2 Remove f072 backlight warning (#10040)
* Remove f072 backlight warning

* Remove f072 backlight warning from docs
2020-08-29 14:30:02 -07:00
Joel Challis
21a00b7f02 ARM backlight - timer implementation (#8291)
* Add GPT timer based backlight driver

* Update to tim15 to avoid conflict with audio

* Update quantum/backlight/backlight_timer.c
2020-08-29 14:30:02 -07:00
Greg Wright
568cae28ec #define AUTO_SHIFT_SETUP (#8441)
* #define AUTO_SHIFT_SETUP

* Clarification

Changed `#ifndef` to `#ifdef` and moved enable disable outside AUTO_SHIFT_SETUP

* AUTO_SHIFT_NO_SETUp
2020-08-29 14:30:02 -07:00
Nick Brassel
167daa9cf8 Add ability to dump all makefile variables for the specified target. (#8256) 2020-08-29 14:30:02 -07:00
Sergey Vlasov
d00ac5dfb6 Add st-flash flash target (#9964)
* Add `st-flash` flash target

Add support for flashing the firmware via the `st-flash` utility from
the STLink Tools package (https://github.com/stlink-org/stlink).

* Add `st-flash` to the `qmk flash -b` output
2020-08-29 14:30:02 -07:00
Danny
ea43bc8972 Keebio RGB wiring update (#7754)
* Change RGB wiring for Levinson

* Update RGB wiring for Iris

* Update RGB wiring for Nyquist

* Update RGB wiring for Quefrency

* Update RGB wiring for Viterbi

* Update RGB wiring for Fourier

* Update RGB wiring for BFO

* Handle redefinition of RGBLED_SPLIT
2020-08-29 14:30:02 -07:00
David Kosorin
dba8148764 Fix Czech keycodes (#9987) 2020-08-29 14:30:02 -07:00
Ryan
12333b7c5e Fix joystick compile issues (#9949) 2020-08-29 14:30:02 -07:00
Tynan Beatty
e34eca361f Noeeprom functions for rgb_matrix (#9487)
* Add eeprom_helpers for toggle, mode, sethsv, speed; add set_speed; add noeeprom versions of toggle, step, hue, sat, val, and speed

* qmk cformat rgb_matrix

* Add rgb_matrix_set_speed and *_noeeprom functions

* Do not expose rgb_matrix_*_eeprom_helper functions
2020-08-29 14:30:02 -07:00
Nick Brassel
c990dc1e6c Add support for hsv->rgb conversion without using CIE curve. (#9856)
* Add support for hsv->rgb conversion without using CIE curve.

* Modify anavi/macropad8 to disable unicode (was unused), otherwise firmware size is too large.
2020-08-29 14:30:02 -07:00
flehrad
200444f8d2 [Keyboard] relocating boards by flehrad (#9635)
Co-authored-by: flehrad <flehrad@users.noreply.github.com>
2020-08-29 14:30:02 -07:00
TerryMathews
4764aa8711 The Key Company project consolidation (#9547)
* Consolidate TKC projects and increase VIA keymap count to 4.

* Updated readme files.

* Removed config.h via limitation of 2 dynamic keymaps

* Reduce dynamic keymaps from 4 to 3 due to EEPROM space limitations.

* Update dynamic_keymap.c

* Restore 4 dynamic keymaps for VIA in TKC projects.

* Update quantum/dynamic_keymap.c
2020-08-29 14:30:02 -07:00
Drashna Jaelre
e6266b19be Initialize Layer State on startup (#8318)
* Initialize Layer State on startup

Right now, on startup, the default layer state gets called and set, triggering the callback functions for the default layer state. However, the normal layer state never actually gets initialized.  It's set to 0 directly, by default, but the callback functions are never actually called.  This creates some inconsistency in the behavior for end users.  This adds a simple "clear" that triggers the callback on startup.  This should produce more consisten behavior between the two functions and layer masks.

* Stupid hack

* Fix type casting?

* Fix compile issues with magic is disabled
2020-08-29 14:30:02 -07:00
Max Rumpf
4b74f985ec Tweak the Christmas animation effect to be less harsh on the eyes (#7648)
* Tweak the Christmas animation effect to be less harsh on the eyes

* Further improve the tweaked Christmas animation code

- Use constants where it makes sense
- Instead of complicated math, use a static variable to keep track if it's animating from or to red
- Don't use pow (but a simple macro instead)
- Using floating point math is necessary for the fraction in the cubic bezier function to work

* Update docs for the tweaked Christmas animation effect

* Further improve memory usage

- Don't use floats, but 32 bit ints instead (where needed)
- Replace limits.h with constant

* Fix typo
2020-08-29 14:30:02 -07:00
a-chol
d4be07dad3 Hid joystick interface (#4226)
* add support for hid gamepad interface
add documentation for HID joystick
Add joystick_task to read analog axes values even when no key is pressed or release. update doc
Update docs/feature_joystick.md
Manage pin setup and read to maintain matrix scan after analog read

* Incorporates patches and changes to HID reporting

There are some patches provided by @a-chol incorporated on this commit,
and also some changes I made to the HID Report structure.

The most interesting is the one dealing with number of buttons: Linux
doesn't seem to care, but Windows requires the HID structure to be byte
aligned (that's in the spec). So if one declares 8/16/32... buttons they
should not have any issues, but this is what happens when you have 9
buttons:

```
 bits |0|1|2|3|4|5|6|7|
      |*|*|*|*|*|*|*|*| axis 0 (report size 8)
      |*|*|*|*|*|*|*|*| ...
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*| axis 6
      |*|*|*|*|*|*|*|*| first 8 buttons (report size 1)
      |*| | | | | | | | last of 9 buttons, not aligned
```

So for that I added a conditonal that will add a number of reports with
size 1 to make sure it aligns to the next multiple of 8. Those reports
send dummy inputs that don't do anything aside from aligning the data.

Tested on Linux, Windows 10 and Street Fighter (where the joystick is
recognized as direct-input)

* Add save and restore of each pin used in reading joystick (AVR).
Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc
instead of an output pin from the MCU.

Fix joystick report id

Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes)

Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis.

Documentation fixes

* Fix port addressing for joystick analog read

* The other required set of changes
As per the PR, the changes still holding it up.
Add onekey for testing.
Fix ARM builds.
Fix device descriptor when either axes or buttons is zero.
Add compile-time check for at least one axis or button.
Move definition to try to fix conflict.
PR review comments.
qmk cformat

* avoid float functions to compute range mapping for axis adc reading

* Remove V-USB support for now. Updated docs accordingly.

* Update tmk_core/protocol/lufa/lufa.c

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

* Update tmk_core/protocol/usb_descriptor.c

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

* Update tmk_core/protocol/usb_descriptor.c

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

* Update tmk_core/protocol/usb_descriptor.c

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

* Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios

* Fix HID joystick report sending for ChibiOS.
Add one analog axis to the onekey:joystick keymap.
Fix pin state save and restore during joystick analog read for STM32
MCUs.

* Update tmk_core/protocol/chibios/usb_main.c

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

* Update tmk_core/protocol/lufa/lufa.c

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

* Add missing mcuconf.h and halconf.h to onekey:joystick keymap.
Add suggested fixes from PR.

* Switch saveState and restoreState signature to use pin_t type.
onekey:joystick : add a second axis, virtual and programmatically animated.

* Update docs/feature_joystick.md

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

* Update docs/feature_joystick.md

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

* Add PR corrections

* Remove halconf.h and mcuconf.h from onekey keymaps

* Change ADC_PIN to A0

Co-authored-by: achol <allecooll@hotmail.com>
Co-authored-by: José Júnior <jose.junior@gmail.com>
Co-authored-by: a-chol <achol@notamail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-29 14:30:02 -07:00
Drashna Jaelre
9d3b26a475 Update features to use Custom Tapping Term when appropriate (#6259)
* Update Space Cadet to use Custom Tapping Term functionality

* Detect correct keycode for space cadet tapping term

* Update tap dancing to use global custom tapping term

* Update documentation for Tap Dances

* formatting pass

* Apply suggestions from code review

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

* Update docs/feature_tap_dance.md

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

* Update for future

* Update user keymaps for space cadet

* Fix typos

* Clean up tapping term stuff

* Fix compiler issue if NO_ACTION_TAPPING is enabled

Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-29 14:30:02 -07:00
Drashna Jaelre
3c74edbc69 Disable NKRO on V-USB controllers (#9054)
* Disable NKRO on V-USB controllers

* not _currently_ supported text

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-29 14:30:02 -07:00
Nick Brassel
686a9d35ff Re-fix the STM32 dual-bank bootloader stuff. (#9738)
* Re-fix the dual-bank bootloader stuff.

* Use wait_ms() instead of using nop's for a delay, as ChibiOS is actually running at the time of bootloader jump.
2020-08-29 14:30:02 -07:00
Pete Sevander
b0335b2731 Bigger combo index (#9318)
* Add change log

* Change combo index from uint8_t to uint16_t
2020-08-29 14:30:02 -07:00
Nick Brassel
93e7a8f74c Add dual-bank STM32 bootloader support, given GPIO toggle on BOOT0 to charge RC circuit. (#8778) 2020-08-29 14:30:02 -07:00
dhong44
d0abad27ab Fix the mousekey scrolling (#9174)
Mousekey scrolling should have a separate repeat variable
to keep track of scrolling acceleration, instead of being
tied to mouse movement scolling in mousekeys. The send function
should record when the last movement was made since this is
when movement is actually sent. Doing this fixes the bug where
the initial press of a mousekey scroll button causes a double scroll.

Signed-off-by: Daniel Hong <daniel.hong@live.com>
2020-08-29 14:30:02 -07:00
Nick Brassel
86e30c2609 F303/Proton-C migration. (#9315) 2020-08-29 14:30:02 -07:00
Nick Brassel
c6b7a0d386 Add support for DMAMUX-capable MCU configuration with WS2812 PWM driver. (#9471) 2020-08-29 14:30:02 -07:00
Ryan
8a4a0c25fd Change analogRead calls to analogReadPin (#9023)
* Change analogRead calls to analogReadPin

* Add ChangeLog

* Update docs, remove mention of `analogRead()`

* Retarget changelog for next round
2020-08-29 14:30:02 -07:00
Nick Brassel
60e5733c48 qmk cformat on develop (#9501) 2020-08-29 14:30:02 -07:00
Ryan
3b34858b77 Don't compile outputselect.c if Bluetooth is disabled (#9356) 2020-08-29 14:30:02 -07:00
Ryan
e7434c874b Remove inclusion of adafruit_ble.h from ssd1306.c (#9355) 2020-08-29 14:30:02 -07:00
Ryan
69e0ad1b2c Additional cleanups for V-USB code (#9310) 2020-08-29 14:30:02 -07:00
Nick Brassel
a3933bdbe7 Attempt to fix CI for non-master branches. (#9308) 2020-08-29 14:30:02 -07:00
Ryan
1193e45bf4 Convert CONSUMER2BLUEFRUIT() and CONSUMER2RN42() macros to static inline functions (#9055) 2020-08-29 14:30:02 -07:00
Ryan
f209f91c7c Various tidyups for USB descriptor code (#9005) 2020-08-29 14:30:02 -07:00
Nick Brassel
385d49cc39 Initial work for consolidation of ChibiOS platform files (#8327)
* Initial work for consolidation of board files and default ChibiOS configs.

* Migrate F401/F411 black pills for testing.

* Add early init bootloader jump flag.

* Add support for I2C in order to use i2c_scanner keymap.

* Add F401/F411 HSE bypass to get things booting.

* Exempt "hooked" ChibiOS conf files from updater script.

* Fix up ordering for bootloader_defs file check.

* Match previous $(KEYBOARD_PATHS) value for Proton-C, updated for all board configs.
2020-08-29 14:30:02 -07:00
Ryan
5cc3ab38c9 Remove iWRAP protocol (#9284) 2020-08-29 14:30:02 -07:00
James Young
3dbbd4cf44 Branch point for 2020 Aug 29 Breaking Change
Update readme.md
2020-08-29 14:30:02 -07:00
Ryan
0f9b7b9768 Add debug logging to run() (#9986) 2020-08-28 08:03:42 -07:00
Evgenii
c9eaf1ac2b update info.json file for handwired/zergo (#10117)
* Rename keyboards/handwired/zergo/keymap.c to keyboards/handwired/zergo/keymaps/default/keymap.c

* Update rules.mk

* Update rules.mk

* Update bootloader.mk

* Update rules.mk

* Update bootloader.mk

* Update info.json

* Update rules.mk

* Update zergo.h

* Update info.json

* Update keymap.c

* Update keyboards/handwired/zergo/info.json

* Update keyboards/handwired/zergo/keymaps/default/keymap.c
2020-08-26 12:36:23 -07:00
Ryan
d949932c08 Fix ChibiOS backlight not turning off on suspend (#10114)
* Fix ChibiOS backlight not turning off on suspend

* Add missing code for backlight as caps lock too
2020-08-26 11:15:43 -07:00
Jonathan Dayton
2f9eb4cd22 [Keyboard] For Science (#9607)
* Add a compiling layout based on minidox

* Add the correct pins

* Add old for science code

* Update to 2020 standards

* Get the keymap working

* update config

* Update pinout

* Fix pins

* Make requested changes

* Add info.json for configurator

* for science - PR comments

* Apply suggestions from code review
2020-08-26 09:55:18 -07:00
Fidel Coria
bad662b830 [Keyboard] Handwired pteron38 (#10035)
* setup handwired pteron38

* Clean up readme

* readme follow template

* c formatting conventions

* remove  file size comments from rules.mk

* use direct link to imgur image

* Apply suggestions from code review

* add license
2020-08-26 01:12:19 -07:00
rupa
c3ab20511d kbd67/mkiirgb - allow disabling rgb matrix (#10147)
* kbd67/mkiirgb - allow disabling rgb matrix

wrap rgb matrix funs in defines

* kbd67mkiirgb - changes per review

remove kb funcs that just call the user version. what's left is all rgb
matrix stuff so we can just wrap the whole file.
2020-08-26 01:09:45 -07:00
James Young
78362b1dc1 Fix Configurator data: underscore33/rev1
Missed this on a previous PR.
2020-08-25 17:13:06 -07:00
tominabox1
eb84f134c1 [Keyboard] _33 v2 (#9899)
* Initial prep for PR

* Fixing jsons for revs

* Remove old keymap ref in readme

* Add Rev1 default layout

* Fix extra comma in default r1 keymap

* Changed default keymap for r1 to match new split bottom row macro name, updated via keymap readme, updated r1 json to match layout macro name, updated split space macro for r1

* Moved combo configs to default keymaps, removed unused bootloader selections

* Update keyboards/underscore33/rev1/rules.mk

* Update keyboards/underscore33/rev2/rules.mk

* Refactor _33 folder structure

* Add VIA keymap to rev1

* Rename macros and product_id as suggested
2020-08-25 12:47:16 -07:00
QMK Bot
b3987d7b3a format code according to conventions [skip ci] 2020-08-25 09:47:03 +00:00
eli
1f09fcaa69 [Keyboard] Pink Labs e88 (#9865)
* Add files via upload

* Update readme.md

* Update readme.md

* Delete info.json

* Delete rules.mk

* Delete readme.md

* Delete f13.h

* Delete f13.c

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Add files via upload

* Update keymap.c

* Update config.h

* Update config.h

* Update rules.mk

* Update keyboards/e88/config.h

* Update keyboards/e88/readme.md

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

* Update keyboards/e88/rules.mk

* Update keyboards/e88/rules.mk

* Update keyboards/e88/config.h

* Update keyboards/e88/rules.mk

* Update keyboards/e88/rules.mk

* Create info.json

* Update config.h

* Update keyboards/e88/info.json

* Update keyboards/e88/readme.md

* Update keyboards/e88/config.h

* Update keyboards/e88/info.json
2020-08-25 02:29:11 -07:00
Drashna Jaelre
b338a4d886 Add noeeprom speed function for RGBLIGHT (#9706)
* [Docs] Add Speed functions to RGB Light docs

* Add noeeprom functions for speed

* Fix wording in doc

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-25 19:08:09 +10:00
Drashna Jaelre
1fd2f2f022 Compiler warning when using WS2812 (#9955)
Specifically, when rgb matrix is enabled and using the ws2812 driver, and rgb light is enabled at the same time, print a message about coexistance because it can cause issues, since you cannot change pins/config for the WS2812 driver.
2020-08-25 19:05:39 +10:00
Ryan
c9c63806a7 MSYS2: install packages for AVR toolchain (#10078) 2020-08-25 19:04:42 +10:00
yiancar
5460489b51 [Keyboard] Barleycorn (#10118)
* Initial commit

* Barleycorn rename

* Update readme.md

* PR checklist fixes

* Update info.json

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/config.h

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/config.h

* Update keyboards/barleycorn/info.json

* Update keyboards/barleycorn/info.json

* Update keyboards/barleycorn/readme.md

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/rules.mk

* PR review

* Update keyboards/barleycorn/readme.md

* Update keyboards/barleycorn/rules.mk

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

* Update keyboards/barleycorn/keymaps/iso/readme.md

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/readme.md

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/matrix.c

* Update keyboards/barleycorn/barleycorn.c

* added ansi/iso keymaps!

* Update keyboards/barleycorn/info.json
2020-08-24 20:37:01 -07:00
AKiwi92
ecb2121069 [Keyboard] KiwiKeebs MacroBoard v1.0 (#10080)
* KiwiKeebs v.10 QMK

* Rename files and folder structure for QMK pull request

* Deleted unused files

* Added starter keymap

* Changes to make pull request compliant

* Removed lines for PR error

* Error fix in json for PR

* Update keyboards/kiwikeebsmacro/kiwikeebsmacro.h

* Update keyboards/kiwikeebsmacro/readme.md

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

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

* Update keyboards/kiwikeebsmacro/info.json

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

* Update keyboards/kiwikeebsmacro/config.h

* Changed structure to allow for future boards

* Update keyboards/kiwikeebs/macro/config.h

* Update keyboards/kiwikeebs/macro/info.json

* Update keyboards/kiwikeebs/macro/keymaps/default/keymap.c

* Update keyboards/kiwikeebs/macro/keymaps/default/keymap.c

* Amended rotarty to use kb instead of user

* Updated structure after pull request commits

* Update keyboards/kiwikeebs/macro/config.h

* Update keyboards/kiwikeebs/macro/info.json
2020-08-24 20:36:05 -07:00
Cassandra de la Cruz-Munoz
1272371f15 [Keymap] add miuni32:cassdelacruzmunoz (#10108)
* created keymap for miuni32:cassdelacruzmunoz

* add license headers

* fixed error
2020-08-24 16:56:27 -07:00
Pierre Chevalier
80d92525db Upstream a good default keymap for the Ferris handwired (#9926)
* Proper default keymap

* Update keyboards/handwired/ferris/keymaps/default/readme.md
2020-08-24 14:56:48 -07:00
Josh Hinnebusch
297bda1c1f add num lock indicator functionality to hineybush/h10 (#10100)
* add num lock indicator functionality to h10

* Update keyboards/hineybush/h10/h10.c
2020-08-24 14:55:49 -07:00
haierwangwei2005
5772ac8bf6 [Keyboard] 10 ble oled usbhub pad (#10095)
* Create rules.mk

* Create glcdfonr.c

* Create keymap.c

* Create keymap.c

* Create rules.mk

* Add files via upload

* Update readme.md

* Update readme.md

* Update readme.md

* Update config.h

* Update 10bleoledhub.h

* Update 10bleoledhub.c

* Update info.json

* Update keymap.c

* Update keymap.c

* Rename glcdfonr.c to glcdfont.c

* Update config.h

* Update config.h

* Update config.h

* Update rules.mk

* Update 10bleoledhub.c

* Update 10bleoledhub.h

* Update info.json

* Update config.h

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update glcdfont.c

* Update keyboards/10bleoledhub/rules.mk

* Update keyboards/10bleoledhub/keymaps/via/keymap.c

* Update keyboards/10bleoledhub/keymaps/default/keymap.c

* Update keyboards/10bleoledhub/config.h

* Update keyboards/10bleoledhub/config.h

* Update keyboards/10bleoledhub/10bleoledhub.h
2020-08-24 11:55:24 -07:00
Naoki Katahira
958e3f85cb Update Lily58 Keymaps and VendorID (#9979)
* Update keymaps and venderID

* update config.h

* Update keyboards/lily58/keymaps/yuchi/keymap.c
2020-08-24 09:08:35 -07:00
Nick Blyumberg
b139d34924 Update Ortho60 VIA keymap (#10130)
* Added the license header and made the layers generic
2020-08-24 07:49:25 -07:00
Chris Alves
0ea476a311 [Keymap] chrisae9 dz60 updates (#10098)
* Changed keyboard layout and updated some keys

* Updated keymap

* Updated layout and pictures

* Remove old keymap

Co-authored-by: chis <chis@chis.chis.dev>
2020-08-23 23:13:11 -07:00
kakunpc
8937c14514 FIX rabbit_capture_plan info.json (#10139) 2020-08-23 00:27:01 -07:00
JagdPietr
92da1f0b97 [Keyboard] Drakon (#10071)
* Drakon60

* Updates

* Update: Deletion of XXX in WKL keymap

* Update keymap.c

* Revert "Updates"

This reverts commit b4f97d3877.

* Update keyboards/drakon/info.json

* Update keyboards/drakon/info.json

* Update keyboards/drakon/info.json

* Update keyboards/drakon/config.h

* Update keyboards/drakon/config.h

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/keymaps/wkl/readme.md

* Update keyboards/drakon/keymaps/logo/keymap.c

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

* Update keyboards/drakon/keymaps/wkl/keymap.c

* Update keyboards/drakon/config.h

* Update keyboards/drakon/config.h

* Update keyboards/drakon/keymaps/logo/readme.md

* Update keyboards/drakon/config.h

* Update keyboards/drakon/readme.md

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/drakon.c

* Update config.h

Deletion as recommended

* Update config.h

Correction of the deletion

* Update config.h

Deletion of line as recommended

* Update config.h

Deleted line as recommended

* Update keymap.c

Deleted line as recommended

* Deletion of File

* Delete config.h

* Delete config.h

* Delete config.h

* Update keyboards/drakon/config.h

* Update keyboards/drakon/keymaps/wkl/keymap.c

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

* Update keyboards/drakon/keymaps/wkl/keymap.c
2020-08-22 18:24:09 -07:00
kakunpc
a7cb1ceade [Keyboard] Add "rabbit capture plan" keyboard (#9895)
* add rabbit_capture_plan

* update keymap.c

* Update keyboards/rabbit_capture_plan/paw3204.c

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

* move bto_to keymap

* remove paw3204

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-08-22 16:18:53 -07:00
Michael Schwingen
42eeb315a5 [Keyboard] add support for ModelM USB board (#9846)
* add support for ModelM USB board

* EMI improvement: remove unnecessary toggling of MOSI pin

* address review comments

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/config.h

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

* Update keyboards/mschwingen/modelm/config.h

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/keymaps/default/keymap.c

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

* update printf usage

* add comment

* EMI improvement: remove unnecessary toggling of MOSI signal

* remove trailing space

* use shorter macros as suggested in review by noroadsleft, re-format table to line up columns

* Update keyboards/mschwingen/modelm/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/README.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/README.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Apply suggestions from code review

use spi_read from core insteads of our own copy

Co-authored-by: Ryan <fauxpark@gmail.com>

* include spi_master.c to use spi_read()

* Update keyboards/mschwingen/modelm/README.md

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

* Apply suggestions from code review: correct indenting in keymap

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

* Apply suggestions from code review

use automatic variant defines from makefile instead of defining our own

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

* Update keyboards/mschwingen/modelm/rules.mk: use QUANTUM_LIB_SRC for uart.c

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

Co-authored-by: Michael Schwingen <michael@schwingen.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-22 16:02:16 -07:00
yulei
ac3dfa742a [Keyboard] added matrix 8xv2.0 additional (#9470)
* added matrix 8xv2.0 additional keyboard

* Apply suggestions from code review

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

* add copyright and speed up the matrix scanning

* Update keyboards/matrix/m20add/rules.mk

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-08-22 13:45:06 -07:00
myoung34
e02f4798f9 [Keyboard] Pterodactyl handwired (#9884)
* Working bluetooth fork of dactyl

* Refactor thanks to zvecr

* Final refactor per PR comments

* Pragma once

* Update keyboards/handwired/pterodactyl/pterodactyl.h

* Update keyboards/handwired/pterodactyl/readme.md

* Update keyboards/handwired/pterodactyl/rules.mk

* Update keyboards/handwired/pterodactyl/rules.mk

* Update keyboards/handwired/pterodactyl/config.h

* Update keyboards/handwired/pterodactyl/pterodactyl.h

* Update keyboards/handwired/pterodactyl/config.h

* Update keyboards/handwired/pterodactyl/pterodactyl.h

* update readme

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

* Update keyboards/handwired/pterodactyl/info.json

* Update keyboards/handwired/pterodactyl/readme.md

* Update keyboards/handwired/pterodactyl/config.h

* Update keyboards/handwired/pterodactyl/info.json

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

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

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

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

* Update keyboards/handwired/pterodactyl/pterodactyl.h

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

* Update keyboards/handwired/pterodactyl/matrix.c

* Fix/add formatting and info/keymap.json

* Update keyboards/handwired/pterodactyl/keymaps/default/keymap.json

* lint default/keymap.json

* format info.json
2020-08-22 12:59:24 -07:00
cBachoo
cf4b493c24 [Keyboard] Nemui (#10020)
* added nemui layout

* via support working

* added license headers for c and h files

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

* Update keyboards/nemui/nemui.c

* Update keyboards/nemui/config.h

* Update keyboards/nemui/readme.md

* Update keyboards/nemui/rules.mk

* removed nemui.json as it was supposed to only be in via repo

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

* Update keyboards/nemui/info.json

* Update keyboards/nemui/info.json

* Update keyboards/nemui/keymaps/via/keymap.c

* Update keyboards/nemui/keymaps/via/keymap.c
2020-08-22 12:40:55 -07:00
Drashna Jaelre
220b1c9db4 [Keyboard] Add ZSA Moonlander (#9853) 2020-08-22 07:44:42 -07:00
Ikta
346bfb2a05 Update i2c_driver.md (#10131)
Update i2c_driver.md to change ARM pin number documentation, line 84 and 85
2020-08-22 14:06:16 +01:00
zeriyoshi
0f0530c5a4 Fix IDOBAO ID80 board configurations. (#9796)
* Fix IDOBAO 80 disable console and LEDs.

* Re-enabling to IDOBAO80s underglow rgb light

* fix define legacy declarements
2020-08-22 01:12:19 -07:00
Nick Blyumberg
08acb7ab68 Ortho48 VIA keymap (#10128) 2020-08-22 16:14:52 +10:00
Nick Brassel
70ce4ba56f Revert "Add Kiibohd bootloader type to bootloader.mk (#9908)" (#10126)
This reverts commit e2d4cd1a41.
2020-08-21 15:42:28 -07:00
Sendy YK
1b0272e801 Fixed Soyuz LAYOUT_numpad_5x4 Preview on QMK Configurator (#10123) 2020-08-21 14:25:28 -07:00
Sendy YK
22ceab9c08 Fixed DZ60 LAYOUT_60_ansi_arrow Preview on QMK Configurator (#10122) 2020-08-21 14:24:02 -07:00
gtips
930446fe96 Update reviung39 PRODUCT_ID (#10001) 2020-08-21 11:10:05 +10:00
rupa
dd763f2988 [Keymap] userspace and keymap for rupa (#9786)
* first iteration of my keymap

* * move to userspace
* "script" modes
* keymap bling

* OM and RUPA keys

and tryin to micro-optimize in process_records.c

* woops

swap shifted rupas
forgot to add codepoint for OM

* Apply suggestions from code review

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

* add call to process_record_keymap, per review

* fall through to process_record_keymap

* license headers

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-08-20 17:07:09 -07:00
Salicylic-acid3
83c7c66e8c [Keyboard] AJisai74 (#10021)
* Add keyboard ajisai74

Add ajisai74 keyboard.

A 74 keys ANSI/JIS Layout keyboard.
Salicylic-acid3

* Update keyboards/ajisai74/keymaps/salicylic/keymap.c

* Update keyboards/ajisai74/keymaps/via/keymap.c

* Update keyboards/ajisai74/keymaps/via/keymap.c

* Update keyboards/ajisai74/rules.mk

* Update keyboards/ajisai74/rev1/rev1.h

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

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

* Update keyboards/ajisai74/keymaps/jis/keymap.c

* Keymap update

Fixed an unnecessary symbol at the end of the file.

* Update keyboards/ajisai74/readme.md

* Update keyboards/ajisai74/rev1/config.h

* Delete Rev1 directory

I removed the directory because I don't have any plans to update now.

* Update keyboards/ajisai74/rules.mk

* Added copyright

Added copyright to all files.

* Update keyboards/ajisai74/ajisai74.h
2020-08-19 18:50:43 -07:00
MechMerlin
ec7abc2ce2 [Keyboard] HolySwitch Co Southpaw75 (#10011)
* add in drewguy's code with a few additions to the keymap

* add VID and PID

* fixup defualt keymap

* add VIA keymap

* thanks to bigchimpo for reminding me to put an Fn key in the default keymap

* make sure we have the right gitugithub url for drew

* remove description as per PR checklist

* append readme with more information

* Update keyboards/holyswitch/southpaw75/config.h

* Update keyboards/holyswitch/southpaw75/info.json

* Update keyboards/holyswitch/southpaw75/southpaw75.h

* Update keyboards/holyswitch/southpaw75/info.json
2020-08-19 18:49:31 -07:00
LucW
0b894ca99c [Keymap] update dvorak_42_key keymaps for atreus and ergodox_ez: add VSCode shortcuts (#10054)
* remove obsolete cloud9 macros, add vscode macros on the KEYNAV layer

* add vscode layer and shortcuts

* remove duplicate VSCODE layer and macros

* apply review changes
2020-08-19 18:38:52 -07:00
Jason Fields
cdb69da86e Fix typo in docs/feature_dynamic_macros (#10085)
s/completly/completely
2020-08-19 22:59:59 +01:00
Nick Blyumberg
c18cbcc5ad [Keymap] VIA keymap for Cannonkeys Ortho60 (#10086)
* Adding VIA support

* Fixed Vendor ID

* Update keyboards/cannonkeys/ortho60/config.h

* Update keyboards/cannonkeys/ortho60/keymaps/via/keymap.c

* Update keyboards/cannonkeys/ortho60/config.h
2020-08-19 12:31:56 -07:00
fvolpe83
c23e6dff78 [Keymap] xd60:shura30 (#10089)
* added my xd60 layout

* added my xd60 layout

* Update keyboards/xd60/keymaps/shura30/keymap.c

* Update keyboards/xd60/keymaps/shura30/keymap.c

* Update keyboards/xd60/keymaps/shura30/config.h
2020-08-19 12:30:00 -07:00
Evgenii
4f4c6e04d9 Rename keyboards/handwired/zergo/keymap.c to keyboards/handwired/zergo/keymaps/default/keymap.c (#10094) 2020-08-19 12:00:36 -07:00
Damien
057bc5da80 [Keymap] added dbroqua keymap for kbdfans/kbd6x (#10072)
* [kbdfans] Added dbroqua layout for kbd6x

Add dbroqua keymap for kbd6x

Add dbroqua layout for kbd6x with HHKB style and RGB.

* Update keymap.c

  * Change based on zvecr
  * Added RESET button
2020-08-19 11:21:39 -07:00
satt99
e4a0a5f4e1 [Keyboard] Vision keyboard by SatT (#9768)
* Add vision keyboard

* Remove bootloader_defs.h

* Update keyboards/satt/vision/readme.md

* Change Vendor ID

* Update keyboards/satt/vision/config.h

* Update keyboards/satt/vision/rules.mk

* Fix info.json

* Apply suggestions from code review

* Add license header

* Apply suggestions from code review
2020-08-19 11:18:52 -07:00
Sendy YK
993d4058a1 60_ansi_arrows Community Layout; mrsendyyk keymaps for dz60 and maartenwut/eon65 (#9993)
* Add Layout and Keymap

* Add and Update Keymap

* Update readme.md

* Update keymap.c

* Update readme.md

* Update

* delete

* update

* Revert "update"

This reverts commit 91a3ff800c.

* Update config.h

remove `DESCRIPTION` as per PR checklist

* Update config.h

* Revert "Update config.h"

This reverts commit 269df0535e.

* Revert "Update config.h"

This reverts commit cad5a33201.

* Update keyboards/dz60/dz60.h

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keyboards/dz60/keymaps/mrsendyyk/keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update readme.md

* Update

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update readme.md

* Update readme.md

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Rename readme.md to README.md

* Rename readme.md to README.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Update rules.mk

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update readme.md

* Update

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update info.json

* Update keyboards/dz60/dz60.h

* Update keyboards/dz60/dz60.h

* Update keyboards/dz60/rules.mk

* Update layouts/community/60_ansi_arrow/mrsendyyk/keymap.c

* Update layouts/community/60_ansi_arrow/mrsendyyk/keymap.c

* Update layouts/community/60_ansi_arrow/mrsendyyk/keymap.c

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c

* Update layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c

* Update layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c

* Update layouts/default/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/mrsendyyk/readme.md

* Update layouts/community/60_ansi_arrow/mrsendyyk/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md
2020-08-19 11:16:10 -07:00
Xelus22
79f080a43f [Keyboard] add Xelus Valor (#10079)
* praxis avr

* rgb

* valor initial

* rgb limit

* readme update

* update rules.mk and include valor

* update readme

* Update rules.mk

* update readme and copyright + layout macro

* oops didnt save
2020-08-18 20:20:22 -07:00
jackytrabbit
d57bd0f65c [Keyboard] Add support for keyboard 'Bolt' (#10046)
* Add support for keyboard 'Bolt'

Add support for keyboard 'Bolt'

* Update info.json

* Update info.json

* Update keyboards/lazydesigners/bolt/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/lazydesigners/bolt/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/lazydesigners/bolt/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

* Update info.json

* Update keyboards/lazydesigners/bolt/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/lazydesigners/bolt/bolt.h

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

* Update keyboards/lazydesigners/bolt/info.json

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

* Update keyboards/lazydesigners/bolt/keymaps/default/keymap.c

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

* Update keyboards/lazydesigners/bolt/info.json

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

* Update keyboards/lazydesigners/bolt/keymaps/default/keymap.c

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

* Update keyboards/lazydesigners/bolt/keymaps/default/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-18 19:29:09 -07:00
Alpha Chen
d9fe855923 [Keymap] update kejadlen keymaps (#9954)
Standardizing my keymaps under my username, rather than a keymap name.
2020-08-18 19:21:50 -07:00
jotix
df1467c86d [Keymap] jotix_ortho_4x12_layout (#10075) 2020-08-18 18:48:40 -07:00
kingwangwong
7c81ae287c Changes to thevankeyboards/minivan:king keymap (#10032)
* Changes to minivan layout
2020-08-18 18:18:32 -07:00
mechlovin
3710522549 Refactor Adelais PCB (#10069)
Enable RGBLIGHT for standard pcb rev2&3

* Update rules.mk

* Update rules.mk
2020-08-18 18:13:16 -07:00
yiancar
1ff68165b8 [Keyboard] NK87 (#9965)
* Initial commit

* Fix1

* Final Prettify

* Update keyboards/nk87/config.h

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

* Update keyboards/nk87/keymaps/via/keymap.c

* Update keyboards/nk87/rules.mk

* Remove unnecessary junk

* Update keyboards/nk87/readme.md

* Update keyboards/nk87/readme.md

* Update keyboards/nk87/readme.md

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

* Update keyboards/nk87/keymaps/via/readme.md
2020-08-18 17:56:40 -07:00
Yoonbae Cho
33579efee3 Update keymap for Keebio/iris4/rev4 (#10062) 2020-08-19 09:13:55 +10:00
Xelus22
588991af69 Dawn60 update that breaks travis keyboard builds (#10082) 2020-08-19 08:13:18 +10:00
Adam Gwilliam
5aa55a7154 add VIA keymap for boardsource/3x4 (#10043)
* via keymap for boardsource/3x4

* fix formatting

* Apply suggestions from code review

fix rules.mk

* Update keyboards/boardsource/3x4/rules.mk

* use unique product ID

* update vendor id to be unique, update product id to make more sense
2020-08-18 14:36:46 -07:00
JesseLeung97
03090d6571 [Keyboard] generic_panda/panda65_01 (#10006)
* First commit

* Added ChibiOS files

* renamed files to remove capital letters

* Fixed layout references

* fixed image reference

* Fixing errors

* Fixed config.h

* changed second up to fn key

* renamed files and added beginning of via compatibility

* renamed keyboard

* removed vscode files

* fixing files for via compatibility

* adding via files

* working via compatibility

* Update readme.md

* Update readme.md

* First commit

* Added ChibiOS files

* renamed files to remove capital letters

* Fixed layout references

* fixed image reference

* Fixing errors

* Fixed config.h

* changed second up to fn key

* renamed files and added beginning of via compatibility

* renamed keyboard

* removed vscode files

* fixing files for via compatibility

* adding via files

* working via compatibility

* added license header to via file

* preparing for pull request

* Fixed firmware according to pull request feedback

* fixed readme according to pull request feedback

* Updated readme and removed unnecessary layers in default/keymap.c

* removed whitespace

* updated keymap readme to match suggestion
2020-08-18 14:28:25 -07:00
Evgenii
f99f46773e [Keyboard] zErgo handwired (#9990)
* Create readme.md

* Add files via upload

* Update readme.md

* Create info.json

* Update info.json

* Update and rename kb.c to zergo.c

* Rename kb.h to zergo.h

* Add files via upload

* Update keymap.c

* Update config.h

* Update zergo.c

* Update zergo.h

* Update rules.mk

* Update keymap.c

* Rename Makefile to makefile

* Update zergo.c

* Update zergo.h

* Update keymap.c

* Update config.h

* Update config.h

* Update zergo.h

* Update rules.mk

* Update rules.mk

* Update config.h

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/zergo.h

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/rules.mk

* Update keyboards/handwired/zergo/keymap.c

* Update readme.md

* Update readme.md

* Update keyboards/handwired/zergo/readme.md

* Update readme.md

* Update keyboards/handwired/zergo/config.h

* Update keyboards/handwired/zergo/config.h

* Update keyboards/handwired/zergo/info.json

* Update readme.md

* Update keyboards/handwired/zergo/readme.md

* Update keyboards/handwired/zergo/readme.md

* Delete makefile
2020-08-18 14:24:50 -07:00
Blake
66de3308e5 [Keyboard] Bento handwired macro pad (#9973)
* [Keyboard] Add ghostseven/bento

* Correct attribution, Dwin17

* Formatting change

* Markdown formating

* Update keyboards/ghostseven/bento/info.json

* Update keyboards/ghostseven/bento/readme.md

* Update keyboards/ghostseven/bento/rev1/config.h

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/config.h

* Update keyboards/ghostseven/bento/rev1/rev1.c

* Update keyboards/ghostseven/bento/rev1/rev1.c

* Update keyboards/ghostseven/bento/rev1/config.h

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/readme.md

* Delete config.h

* Delete config.h

* Update rules.mk

* Rename keyboards/ghostseven/bento/readme.md to keyboards/handwired/bento/readme.md

* Rename keyboards/ghostseven/bento/rules.mk to keyboards/handwired/bento/rules.mk

* Rename keyboards/ghostseven/bento/info.json to keyboards/handwired/bento/info.json

* Rename keyboards/ghostseven/bento/bento.h to keyboards/handwired/bento/bento.h

* Rename keyboards/ghostseven/bento/bento.c to keyboards/handwired/bento/bento.c

* Rename keyboards/ghostseven/bento/rev1/rules.mk to keyboards/handwired/bento/rev1/rules.mk

* Rename keyboards/ghostseven/bento/rev1/rev1.h to keyboards/handwired/bento/rev1/rev1.h

* Rename keyboards/ghostseven/bento/rev1/rev1.c to keyboards/handwired/bento/rev1/rev1.c

* Rename keyboards/ghostseven/bento/rev1/config.h to keyboards/handwired/bento/rev1/config.h

* Rename keyboards/ghostseven/bento/keymaps/default/keymap.c to keyboards/handwired/bento/keymaps/default/keymap.c

* Update bento.h

* Change make location to handwired dir.

* added alt keymap submited by cbc02009

* Added mac dev keymap

* Licence updates
2020-08-18 13:45:33 -07:00
Nick Blyumberg
0e542b297d Super16 VIA support (#10076)
* Added via support for Super16
2020-08-18 13:10:43 -07:00
cole smith
c0df341f5c [Keyboard] Boardsource Microdox (#9971)
* microdox keyboard workidng

* updated readme

* cleaned up for pr

* Apply suggestions from code review

* Apply suggestions from code review

* added license headers

* Update keyboards/boardsource/microdox/keymaps/default/keymap.c

* Update keyboards/boardsource/microdox/rules.mk

* Update keyboards/boardsource/microdox/rules.mk

* Update keyboards/boardsource/microdox/rules.mk
2020-08-18 12:46:09 -07:00
JuanTapMan
186b1b2ba2 function96 keyboard added (#10024)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-18 18:25:43 +10:00
Yu-Xi Lim
4237d35e83 [Keyboard] HHKB Lite 2 (#9188)
* Initial commit for HHKB Lite 2

* Rearrange keymap

* Clean up config

* Fix pin assignments

* Code and filename cleanup

* Add README

* Apply suggestions from code review

Code cleanup

* Update keyboards/hhkb_lite_2/README.md

Documentation cleanup

* Change Vendor ID to unused

* One more LAYOUT

* Via keymap for HHKB Lite 2

* Remove redundant keymap.c

* Add README for Via keymap

* Fix vendorId for Via keymap

* Apply suggestions from code review

Cleanup based on review feedback

* Clean up via keymap makefile rules

* Switch to C keymap instead of JSON for Via layout

* Move bootmagic key config to main

Moved to main keyboard config to be shared by all keymaps.

* Address PR feedback

* Reformat config comments

* Format rules.mk comments

* Rename README -> readme

* Use `make` instead of `qmk` in examples
2020-08-18 00:06:19 -07:00
rate
0d65bbaa44 [Keyboard] Pistachio (#10003)
* Add keyboard Pistachio

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

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

* Update keyboards/pistachio/config.h

* Fix Build error.

* Apply suggestions from code review
2020-08-17 23:46:56 -07:00
Wilba
70acf36d16 [Keyboard] Added RAMA WORKS M65-B, M65-BX, M10-C, M50-A (#9991)
* Added RAMA WORKS M65-B, M65-BX, M10-C, M50-A

* Review changes

* Review changes

* Review changes

* Increase layers to 10 for M10-C, M10-B
2020-08-17 23:44:35 -07:00
Richard Goulter
c59a81b792 [Keyboard] Update bm40hsrgb with RGB Matrix support (#10044)
* bm40rgb: copy from kbfirmware.com

* bm40rgb: align default keymap

* bm40rgb: rename kb.c/h to bm40rgb.c/h

* bm40rgb: adjust with changes from the noroadsleft converter

* bm40rgb: adjust keyboard to support plant_mit and ortho_4x12 layouts

* bm40rgb: Add keyboard readme.md

* bm40rgb: add RGB Matrix support

* bm40rgb: remove bm40hsrgb layout

* Apply suggestions from PR

- Fix alignment in keyboards/bm40rgb/bm40rgb.c
- Remove redundant DESCRIPTION in keyboards/bm40rgb/config.h
- Tidy keyboards/bm40rgb/readme.md
- Tidy MANUFACTURER, PRODUCT in keyboards/bm40rgb/config.h
- Tidy rules.mk keyboards/bm40rgb/rules.mk
- Use PRODUCT_ID computed from SHASUM of keyboard name in keyboards/bm40rgb/config.h
- Define LAYOUT_all in keyboards/bm40rgb/bm40rgb.h

* Update keyboards/bm40rgb/info.json

* Tidy comment

* Apply suggestions from code review

* Apply suggestions from code review

* Revert "bm40rgb: remove bm40hsrgb layout"

This reverts commit 1f69a03551.

* Move the rgbmatrix change over to bm40hsrgb

* Wrap g_led_config declaration with
2020-08-17 23:39:17 -07:00
markva
3f5f6030f8 [Keyboard] BM60 RGB ISO (#9975)
* Add BM60 RGB ISO Keyboard

* fixed link to picture

* Update keyboards/bm60rgb_iso/bm60rgb_iso.c

* Update keyboards/bm60rgb_iso/config.h

* Update keyboards/bm60rgb_iso/config.h

* Update keyboards/bm60rgb_iso/info.json

* Update keyboards/bm60rgb_iso/info.json

* Update keyboards/bm60rgb_iso/rules.mk

* Delete vscode file

* Update my new username

* Disable console and commands

* Apply suggestions from code review
2020-08-17 23:28:47 -07:00
Xelus22
b21faf768e [Keyboard] AEBoards Constellation (#9972)
* open drain

* ext65 initial

* clean up messy code

* clean up  init

* update docs stm32 only and applies  to all 3 driver

* fix USE_GPIOIv1

* place documentation at bottom

* constellation initial

* cleanup

* fix ws2812.c

* Clean up rules.mk

* Update config.h

* Update config.h

* Update readme.md

* Update rules.mk

* Update rules.mk

* add license header
2020-08-17 23:12:55 -07:00
Yoonbae Cho
3b09add349 [Keymap] yoonbae81 keymap for JJ50 (#10052)
* Create keymap for jj50

* Update rules.mk

* Update rules.mk

* Update

* Update keymap.c
2020-08-17 22:03:55 -07:00
HASU
613e5752d7 latinpad ADD BOOTMAGIC_ENABLE = lite (#10056)
* Update rules.mk

* Update config.h

* Update keyboards/latinpad/config.h
2020-08-17 21:36:16 -07:00
Maarten Dekkers
4c82a40a0a [Keyboard] Maartenwut GH80-1800 (#9981)
* Add GH80-1800

* Update readme.md
2020-08-17 21:33:27 -07:00
kaylanm
86ea85e3ab [Keymap] Add via keymap for singa (#10050) 2020-08-17 21:26:42 -07:00
dp
3942b6f372 Redox: sync RGB on left and right sides (#10022) 2020-08-17 03:16:52 -07:00
Callum Oakley
c72c01afd4 [Keymap] Removing #4072 workaround! (#9995)
* move media keys in to move layer; rearragne f keys; use send_string for rev5 compatability

* remove send_string workaround for #4072
2020-08-17 03:12:40 -07:00
Wilba
cb87f5fbeb [Keyboard] wilba.tech WT65-XT and WT65-XTX (#9999)
* Added wilba.tech WT65-XT, WT65-XTX

* Review changes

* Review changes
2020-08-17 02:21:02 -07:00
Joel Challis
d02301e59d Swap git diff logic to github action when running qmk info (#9978)
* swap git diff logic to github action

* Print out layouts when linting
2020-08-17 02:12:45 -07:00
nopunin10did
b4ae7badd4 Issue 9942: Add LSA, RSA, RCS, LSA_T, RSA_T, and RCS_T (#9943)
* Issue 9942: Add Quantum defines

Add codes to quantum_keycodes for LSA, RSA, RCS, and their corresponding _T macros

* 9942: Add documentation for new defines

Add documentation for new defines in feature request 9942. Also define SAGR and SAGR_T as aliases for RSA and RSA_T.

* Update quantum/quantum_keycodes.h

* Update docs/keycodes.md

* Update docs/keycodes.md

* Update docs/keycodes.md

* Update docs/keycodes.md
2020-08-17 02:08:15 -07:00
stanrc85
2ddcd81020 [Keymap] layer indicator lights (#10004)
* move caps lock indicator position

* use num lock and scroll lock as layer indicators
2020-08-17 01:33:57 -07:00
codecoffeecode
869b648088 Keymap Updates for DMQ Design SPIN, Boardsource 4x12, and Gingham (#9911)
* Updating keymaps for Gingham and DMQ Design SPIN and adding keymap for BoardSource 4x12

* Update keyboards/boardsource/4x12/keymaps/codecoffeecode/keymap.c
2020-08-17 01:32:07 -07:00
Takeshi ISHII
00af37a659 [Docs] Japanese translation of docs/proton_c_conversion.md (#9927)
* start translation docs/ja/proton_c_conversion.md

* Japanese translation is in progress.

* Japanese translation is in progress.

* update

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* update docs/ja/_summary.md: GPIO congtrol
2020-08-17 01:19:52 -07:00
Maarten Dekkers
792a480244 [Keyboard] Maartenwut GH80-3700 (#9960)
* Add GH80-3700

* Add via keymap

* Update gh80_3700.h

* Update config.h

* LAYOUT_all -> LAYOUT_ortho_6x4

* Update readme.md
2020-08-16 19:15:30 -07:00
Mike Rix Wolfe
febf27361a update mikefightsbears keymap for Lily58 (#9988) 2020-08-16 18:44:56 -07:00
kelvinhall05
3b3a1b2a63 [Keyboard] Southpaw75 (#9844)
* adding southpaw75

* Added readme.md for Southpaw75

* adding info.json

* Update keyboards/southpaw75/rules.mk

* Update keyboards/southpaw75/southpaw75.h

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

* Update keyboards/southpaw75/config.h

* Update keyboards/southpaw75/southpaw75.h

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

* Update keyboards/southpaw75/rules.mk

* Update keyboards/southpaw75/rules.mk

* Update keyboards/southpaw75/config.h

* Update keyboards/southpaw75/readme.md

* Update keyboards/southpaw75/readme.md

* Update config.h

* Update keymap.c

* Update readme.md

* Update southpaw75.c

* Update southpaw75.h
2020-08-16 18:42:26 -07:00
Viet Yen Nguyen
194dc0984e [Keyboard] Kinesis + Pro Micro (#9944)
* [Keyboard] Kinesis + Pro Micro init

- docs for DIY
- custom matrix = lite
- a near-factory dvorak mapping
- optimized debouncing for lower latency

* chore: reformatting

* chore: update doc

* chore: cleanups according to PR feedback

* chore: PR feedback

* fix: compile error

* chore: add include

* fix: LEDs hanging after USB disconnect

* chore: enable QMK goodies by default

* chore: use semantic write pin
2020-08-16 18:37:42 -07:00
Rossman360
e071206c58 [Keyboard] Wabi handwire (#9704)
* cleaning up

* got some working bones

* working pretty well

* really livin' now

* all done

* copyright adjustments

* default keymap

* readme

* no descrip

* remove trailing slashes

* remove blank line

* remove trailing slashes

* clean up readme

* clean up rules spacing

* bootloader spacing

* made quick json from KLE converter

* remove postageboard mini references

* add actual manu and product values

* add make example

* rework

* remove double bootload define

* smoller image

* liscensed

* correct dimensions

* dimensions
2020-08-16 18:33:20 -07:00
Ryan
48bd8263a3 Fix sendstring call in onekey ADC keymap (#10031) 2020-08-17 08:10:48 +10:00
shela
249eab34e1 Update Japanese translation of _summary.md. (#10051) 2020-08-16 18:58:33 +01:00
Sendy YK
7c7feb44b2 Add numpad llayout to ai03/soyuz & personal keymap (#10030)
* ai03 Soyuz

## Description
@ai03-2725 Soyuz:
1. Update `soyuz.h` (Add `LAYOUT_5x4`)
2. Added `keymap.c`
3. Added `readme.md`

* Update readme.md

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update soyuz.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/ai03/soyuz/soyuz.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/ai03/soyuz/keymaps/mrsendyyk/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/ai03/soyuz/keymaps/mrsendyyk/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update rules.mk

* Update soyuz.h

* Update soyuz.h

* Update

* Rename readme.md to README.md

* Update keymap.c

* Rename README.md to readme.md

Co-authored-by: Joel Challis <git@zvecr.com>
2020-08-16 02:26:48 +01:00
shela
f64245b10b [keymap] Fixed an issue that long pressed alt key does not work on PSN_FN layer. (#10039) 2020-08-15 13:54:52 +01:00
Drashna Jaelre
acc4bedddc [Keyboard] Fix Planck/Rev6 compiler issue (#9953)
Specifically, don't want to have both RGBLight and RGB Matrix (with WS2812) enabled at the same time.  This will cause issues in usage, but apparently not when compiling.  Additionally, the led matrix was not encapsulated with preprocessor code.
2020-08-15 13:18:13 +01:00
Ramon Imbao
c02666c4cb Add indicator LEDs for GHS.RAR (#10028)
* Add indicator LEDs for GHS.RAR

* Update keyboards/ghs/rar/rar.c

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2020-08-14 14:56:27 +01:00
Ryan
517f6d2c22 MSYS2: install packages for dfu-programmer, dfu-util, teensy-loader-cli (#10007) 2020-08-13 23:26:14 +01:00
Ibnu Daru Aji
156ed69b46 Fixing squiggle's layouts in the config.qmk.fm (#10019)
* the `layout`s in `info.json` should actually reflects the `layout`s
macros in the `rev1/rev1.h`.

* fixed complicated's thumb keys.
2020-08-13 23:14:19 +01:00
Dimiter Geelen
7c7078faf3 [Keymap] DZ60RGB - Add personal keymap (#9989)
* DZ60RGB V1 - Add personal configuration

(cherry picked from commit 313ce586e998f5604ed1b559bbe90de381f0b782)

* [Keymap] Didel - Add license headers

* [Keymap] Didel - Reformat Keymap

* [Keymap] Didel - Add named layers
2020-08-12 17:28:37 -07:00
Xelus22
c957eed04b [Keyboard] AEboards Ext65 rev2 (#9482)
* ext65rev2 initial

* open drain change and config

* pwm

* pwm streams

* spi

* ws2812 spi

* oled

* enable sleep

* keymap and dissable oled

* readd oleds

* nooled

* led_update_kb revised

* update and remove board specific files and add to ext65rev2.c

* Update OLED usb status

* Update  keyboards led state

* Layer state set kb

* Return state

* Update  keyboards led state

* Update OLED usb status

* merge master and merge rev folders

* add readme

* move board_init to only if OLED is enabled

* update readme

* update rules.mk

* Remove OLED from rules.mk

* Update config.h

* show AEBoards

* Update keyboards/aeboards/ext65/rev2/rules.mk
2020-08-12 17:24:40 -07:00
Brandon Claveria
f1299f3292 fix handwired/swiftrax/cowfish PID and VID (#9922)
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2020-08-13 00:08:41 +10:00
KgOfHedgehogs
ce5cdc6f8a Add jian/keymaps/via/config.h (#9948) 2020-08-13 00:05:02 +10:00
Ryan
e2d4cd1a41 Add Kiibohd bootloader type to bootloader.mk (#9908) 2020-08-12 12:28:20 +10:00
Woongki Sung
98e1e18f6b [Keyboard] Add Flatbread60, Vaneela, and VaneelaEx by nckiibs (#9817)
* creOnic added

* made requested changed by a moderator

* device name changed

* fixed flatbread60 files

* add vaneela and vaneelaEX support

* Update keyboards/nckiibs/vaneelaex/rules.mk

* vaneela rgb disabled

* include error fxied

* vaneelaex Via keymap fixed

* vaneelaex keymap fixed

* all fixed except clang part

* vaneelaex config.h error fixed, clang fixed

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/rules.mk

done

* line endings were fixed as requested

* Apply suggestions from code review

Thank you!

* requests applied and rebased

* pics changed

* flatbread via fixed

* Apply suggestions from code review

Thanks!

* Apply suggestions from code review

Done!

* Apply suggestions from code review except VIA keymaps

Questions regarding VIA keymaps are pending

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* flatbread via keymap changed

* Apply suggestions from code review
2020-08-09 07:50:48 -07:00
Andrew Kannan
215b71716a Cannonkeys via keymap fixes (#9977) 2020-08-09 18:40:52 +10:00
Drashna Jaelre
c7b56bee96 [Bug] Fix Swap Hands bug introduced by OSH (#9968)
Fixes the handling for the oneshot cleanup, so it only cleans up if it is active.  It should not cleanup of SHO is off (eg using a normal oneshot key), nor if it's actively pressed or used.  

Previous behavior BROKE swap hand key.
2020-08-08 16:41:10 -07:00
TripTrap
b506c498a7 [Keyboard] Dumbo (#9656)
* added dumbo keyboard

* added my personal keymap

* changed picture in readme

* removed rev1 folder to reduce clutter and confusion

* missed a few changes in last commit, everything should be added now

* Apply suggestions from code review

Committed all of the suggested changes except for removing the bootloader reference comments in rules.mk as i think it is handy.

* Update keyboards/dumbo/rules.mk

Removed the bootloader reference as suggested

* Apply clean up of info.json

* Apply suggestions from noroadsleft to support community layout LAYOUT_SPLIT_3x6_4 in the future_4
2020-08-08 11:24:10 -07:00
Maarten Dekkers
a536e1bd8f [Keyboard] Add Quackfire controller (#9958)
* Add Quackfire controller

* Comply with PR checklist

* Update VIA keymap

* Update keyboards/maartenwut/quackfire/readme.md
2020-08-08 10:49:21 -07:00
David Camp
78fef0a46a [Keyboard] Add "Selene" to the handwired section (#9920)
* Added handwired/selene based on handwired/106_with_trackpoint

* now at least parially working

* Selene Firmware 1, ready

* Updated Readme to align more with Template

* Added URL to info.json

* Fix status Lights being wired incorrectly

* Update keyboards/handwired/selene/config.h

* Update keyboards/handwired/selene/keymaps/Bpendragon/keymap.c

* Update keyboards/handwired/selene/selene.c

* Update keyboards/handwired/selene/selene.h

* Changes for PR requested by fauxpark

* Adds `default` keymap
* Renames `Bpendragon` to `bpendragon`
* Removes uneeded descriptors and options
* Simplifies return statement in `keymap.c`
* Removes trailing slashes from layout in `keymap.c`
* Updates `readme.mk` to reflect default keymap
* Aligns comments in `rules.mk`

* Forced folder name update to lowercase

* Apply suggestions from code review
2020-08-07 13:31:22 -07:00
t-miyajima
245797f6b9 [keyboard] Add chavdai40 keyboard (#9820)
* On branch add_chavdai40_keyboard

Changes to be committed:
	new file:   keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.c
	new file:   keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.h
	new file:   keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.mk
	new file:   keyboards/chavdai40/bootloader_defs.h
	new file:   keyboards/chavdai40/chavdai40.c
	new file:   keyboards/chavdai40/chavdai40.h
	new file:   keyboards/chavdai40/chconf.h
	new file:   keyboards/chavdai40/config.h
	new file:   keyboards/chavdai40/halconf.h
	new file:   keyboards/chavdai40/info.json
	new file:   keyboards/chavdai40/keymaps/42keys-dvorak/config.h
	new file:   keyboards/chavdai40/keymaps/42keys-dvorak/keymap.c
	new file:   keyboards/chavdai40/keymaps/42keys-eucalyn/config.h
	new file:   keyboards/chavdai40/keymaps/42keys-eucalyn/keymap.c
	new file:   keyboards/chavdai40/keymaps/42keys-qwerty/config.h
	new file:   keyboards/chavdai40/keymaps/42keys-qwerty/keymap.c
	new file:   keyboards/chavdai40/keymaps/44keys-dvorak/config.h
	new file:   keyboards/chavdai40/keymaps/44keys-dvorak/keymap.c
	new file:   keyboards/chavdai40/keymaps/44keys-eucalyn/config.h
	new file:   keyboards/chavdai40/keymaps/44keys-eucalyn/keymap.c
	new file:   keyboards/chavdai40/keymaps/44keys-qwerty/config.h
	new file:   keyboards/chavdai40/keymaps/44keys-qwerty/keymap.c
	new file:   keyboards/chavdai40/keymaps/default/config.h
	new file:   keyboards/chavdai40/keymaps/default/keymap.c
	new file:   keyboards/chavdai40/mcuconf.h
	new file:   keyboards/chavdai40/readme.md
	new file:   keyboards/chavdai40/rules.mk

* commit suggestions of zvecr and fauxpark, thanks

* commit suggestions of fauxpark, thanks

* commit suggestions of fauxpark, thanks

* commit suggestions of drashna, thanks
2020-08-07 11:27:20 -07:00
KDon
a260cbbea6 [Keyboard] Add kabedon keyboards (#9929)
* Add kabedon keyboards

* #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047

* change README.md

* Update README.md

* Update config.h

* Update keymap.c

* Update rules.mk

* Update rules.mk

* Update README.md

* Update info.json

* Update kabedon980.c

* Update keymap.c

* Update rules.mk

* Update config.h

* Update config.h

* Update info.json

* Update README.md

* Update rules.mk

* Update README.md

* Update kabedon980.c

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update README.md

* Update README.md

* Update info.json
2020-08-07 11:12:14 -07:00
ai03
99905dcfa3 [Keyboard] Add ai03 Vega (#9850)
* Make initial set of files

* Update keymap

* Cleanup rules.mk

* Update keyboards/ai03/vega/keymaps/via/keymap.c

* Update keyboards/ai03/vega/config.h

* Update keyboards/ai03/vega/readme.md

* Update keyboards/ai03/vega/readme.md

* Update keyboards/ai03/vega/rules.mk

* Add license headers

* Apply suggestions from code review
2020-08-07 10:39:29 -07:00
Yasuhiro SHIMIZU
55102ed980 update yshrsmz lily58 keymap (#9937) 2020-08-07 10:36:32 -07:00
Tom Barnes
24c898218b [Keymap] add mini_bom chorded keymap (#9916)
* add mini_bom chorded keymap

* Update keymap.c

* Update config.h

* Update keyboards/centromere/keymaps/mini_bom/config.h

* Update keyboards/centromere/keymaps/mini_bom/keymap.c

* Update keyboards/centromere/keymaps/mini_bom/rules.mk

* Update keyboards/centromere/keymaps/mini_bom/keymap.c
2020-08-07 10:26:02 -07:00
Jan Christoph Ebersbach
7d2cfadb55 handwired/dactyl_manuform/5x6_5: fix broken keyboard and keymap reference (#9921) 2020-08-07 04:40:41 -07:00
Maarten Dekkers
06f698a496 Fix Eon95 info.json (#9934) 2020-08-07 04:13:35 -07:00
TerryMathews
395fd7bb56 Blocked65: add support for VIA Configurator (#9938)
* Update config.h

* Create keymap.c

* Create rules.mk
2020-08-07 03:59:41 -07:00
mechlovin
fc8cf8ec82 [Keyboard] Adelais En Ciel rev2 (#9834)
* add

* update

* update

* update

* Update config.h

* delete description config.h & change default folder
2020-08-07 03:46:16 -07:00
Ibnu Daru Aji
242336d475 keymap for squiggle goldberg. (#9909) 2020-08-07 19:43:08 +10:00
James Young
4e8af9d41b Remove HD44780 References, Part 2 (#9918)
* remove HD44780_ENABLE rules: C-F

* remove HD44780_ENABLE config: C-F
2020-08-07 02:06:14 -07:00
Whale Mo
871d35aa43 [Keyboard] Add Whale's Split Keyboard(ver.3) (#9859)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-06 22:47:59 -07:00
kb-elmo
2d8703f6cc [Keyboard] add kb-elmo boards (#9898)
* add kb-elmo boards

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* fix wrong names

* fix VID and UID
2020-08-06 20:47:00 -07:00
Philip (Han) Suh
c125d0a7a0 [Keyboard] Re-initial commit of ztboards (#9869)
* Re-initial commit of ztboards

* Added info.json

* Made changes to info.json

* Update keyboards/ztboards/after/config.h

* Update keyboards/ztboards/after/rules.mk

* Update keyboards/ztboards/noon/rules.mk

* Update keyboards/ztboards/noon/config.h

* Update keyboards/ztboards/after/config.h

* Update keyboards/ztboards/noon/config.h

* Update keyboards/ztboards/after/config.h

* Update keyboards/ztboards/after/info.json

* Update keyboards/ztboards/noon/info.json

* Update noon.h

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update noon.h

* Update keymap.c

* Update keymap.c

* Update noon.h
2020-08-06 20:20:11 -07:00
NightlyBoards
997d1b2bb5 Added a via keymap folder for n87 (#9885)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Added a via keymap folder

* Edited files based on requested changes
2020-08-06 15:41:15 -07:00
x1
db54a7b79e [Keyboard] Add kudox via compatibility (#9875)
* Modify VENDOR_ID of kudox-keyboard series.

* Add via support for kudox/rev3.

* Add via support for kudox/columner.

* Add via support for kudox-game keyboard.

* Remove info.json from kudox/rev1.

* Revert kudox/rev1/info.json.

* Remove redundancy spaces.

* Add key_count on kudox/**/info.json.

* Remove unsupported items from info.json.

* Modify to use rgblight_mode from rgblight_mode_noeeprom

* Remove unneed line from info.json

* Revert keyboards/kudox/rev1/info.json
2020-08-06 15:32:32 -07:00
Reibl János Dániel
671d066c84 [Keyboard] Add handwired 12*5 blackpill keyboard (#9855)
* Add new handwired keyboard with F401 blackpill

* Re-indent

* Add README.md

* Apply suggestions from code review

* Re-indent

* Add README.md

* Apply suggestions from code review

* Fix spacing

* Modify keymap
Add license header
2020-08-06 15:30:16 -07:00
vattern
b531bd3b04 [Keyboard] Add new "stoutgat" keyboard (#9837)
* Add new "stoutgat" keyboard

Add new 65% ISO keyboard "stoutgat" with dual encoders

* Apply suggestions from code review

* Update readme with information about the keyboard

* Fix erroneous trailing comma in info.json

* Fix layout bits for qmk info

* Update keyboards/stoutgat/info.json

* Update keyboards/stoutgat/stoutgat.h

* Fix keymap and macro after updates

* Apply suggestions from code review

* Update keyboards/stoutgat/info.json

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

* Update keyboards/stoutgat/info.json

* Update keyboards/stoutgat/readme.md

* Fix encoder volume bug

* Adding 65_iso and 65_ansi layouts

* Update keyboards/stoutgat/config.h

* Update keyboards/stoutgat/rules.mk
2020-08-06 15:18:34 -07:00
Nick Brassel
8dc2502177 Add PR checklist document. (#9913)
* Add PR checklist document.

* Update docs/pr_checklist.md

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

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Reword the lower/raise/adjust suggestion somewhat for clarity.

* Add suggestion from @Didel for coding conventions.

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-07 06:16:14 +10:00
moyi4681
547410b655 [Keyboard] add dztech/bocc keyboard (#9794)
* Update readme.md

* add bocc keyboard

* Update bocc.c

* Update keymap.c

* Update readme.md

* Update config.h

* Update keyboards/dztech/bocc/config.h

* Update keyboards/dztech/bocc/rules.mk

* Update keyboards/dztech/bocc/bocc.c

* Update keyboards/dztech/bocc/bocc.c

* Update keyboards/dztech/bocc/readme.md

* Update keyboards/dztech/bocc/readme.md

* Update keyboards/dztech/bocc/rules.mk

* Update keyboards/dztech/bocc/rules.mk

* Update bocc.c

* Update bocc.h

* Update bocc.c

* Update config.h

* Update keymap.c

* Update keymap.c

* Update keyboards/dztech/bocc/config.h

* Update keyboards/dztech/bocc/keymaps/default/keymap.c

* Update keyboards/dztech/bocc/bocc.h

* Update keyboards/dztech/bocc/info.json

* Update keyboards/dztech/bocc/keymaps/default/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update bocc.h

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update bocc.h

* Update keyboards/dztech/bocc/bocc.h
2020-08-06 12:41:45 -07:00
Nguyen Minh Hoang
1b4f47c8ee Fix configuration data for keyboard pom_keyboards/tnln95 (#9904)
* fix configuration data, comment out unused layout

* fix keymap

* add info for layout all

* change keymap name
2020-08-06 12:19:09 -07:00
obosob
d9fe755f7e [Keyboard] Add Arch-36 keyboard (#9688)
* Add Arch-36 keyboard

* Apply suggestions from code review

Update based on PR Review comments

* Apply suggestions from code review

Update to PR comments

* Fix Build

* Use full rules.mk template for Arch-36 keyboard

* Reduce default firmware size

* Update based on PR comments

* Fix Copyright statement on arch_36:obosob keymap

* Apply suggestions from code review
2020-08-06 12:08:20 -07:00
Danilo de Klerk
c8b721d7c6 split_3x5_3 layout support (#9624)
* Add split_3x5_3 support to Minidox

* Add split_3x5_3 support to Miniaxe

* Add LAYOUT_mini to Centromere

This layout macro removes the need or KC_NO keycodes in the keymap.

* Add split_3x5_3 support to Centromere

* Add split_3x5_3 support to suihankey split

* Add LAYOUT_mini to centromere/info.json

* Add LAYOUT_mini to crkbd

* Add split_3x5_3 support to crkbd

* Change mini layout names

* Rename main layouts for split_3x6_3 keyboards

* Use split_3x5_3 macro for remaining keyboards

* Update relevant info.json files

* Fix suihankey/split/alpha macro

* Add layout aliases for suihankey
2020-08-06 10:36:26 -07:00
sotoba
60d8d8677a Update default layout for craftwalk (#9888)
* fix cratfwalk default layout
2020-08-06 10:18:16 -07:00
russellsherman
0d04d95326 [Keymap] Adds OSX layout with additional media keys (#9894) 2020-08-06 10:16:34 -07:00
Brandon
7222df36e7 Added VIA keymap for bm60rgb (#9897) 2020-08-06 01:10:52 -07:00
NightlyBoards
b8438c74e3 [Keymap] Add via keymap folder for N2 keyboard (#9886)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add via keymap folder for n2 keyboard
2020-08-06 01:05:06 -07:00
sh-xguitar
cb9b81cc10 [Keyboard] added ASH-XIIX keyboard (#9833)
* Create readme.md

* Update readme.md

* Update readme.md

* Create ash_xiix.c

* Create ash_xiix.h

* Create info.json

* Create config.h

* Create rules.mk

* Create keymap.c

* Update keyboards/ash_xiix/rules.mk

* Update keyboards/ash_xiix/config.h

* Update keyboards/ash_xiix/config.h

* Update keyboards/ash_xiix/config.h

* Update keyboards/ash_xiix/info.json

* Update keyboards/ash_xiix/info.json

* Update keyboards/ash_xiix/readme.md

* Update readme.md

* Update readme.md
2020-08-06 01:03:27 -07:00
aerialviews007
904c5613f4 [Keymap] Adding Custom Keymap for Let's Split (#9423)
* add

* Delete rules.mk

* Update keymap.c

* Update keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c
2020-08-05 15:11:35 -07:00
Sendy YK
37cbf7bcec [Keymap] Add ANSI with Arrow Layout & RGB Underglow as a Caps Lock Indicator (#9910)
* KBDfans DZ60 ANSI with Arrow also RGB Underglow as a Caps Lock Indicator

* Change all the KC_NOs to _______ (seven underscores)

* change all the KC_NOs to _______ (seven underscores)

* Update keymap.c

* Update readme.md

Update build environment setup link, make instructions link, and make instructions link.
2020-08-05 14:45:57 -07:00
Drashna Jaelre
4c14b11fc7 Add Indicator flag for RGB Matrix (#9933)
* Add Indicator flag for RGB Matrix

This adds a new flag for the RGB Matrix feature that lets you specify if the LED is an indicator LED, to be used to indicate the system state of the keyboard (eg caps/num/etc lock status, layer indication, modifer status, etc).

* Better formatting of table
2020-08-05 13:29:04 -07:00
James Young
3df52050c1 [Keyboard] Fix Configurator data for Mechlovin Hannah910 rev2 (#9903)
* fix Configurator data

* rework layout macros

* enable 65_ansi_blocker Community Layout support

* fix layout macro references in info.json

* update rules.mk per fauxpark

* update rules.mk per fauxpark II
2020-08-05 11:43:31 -07:00
BeefaloKing
349646bfe0 Fix RGB_DISABLE_TIMEOUT overflow warning (#9866) (#9874)
* Fix RGB_DISABLE_TIMEOUT overflow warning (#9866)

* Adjust capitalization (#9874)
2020-08-04 21:03:29 -07:00
shela
62c0146419 [Keymap] Update my keymap (#9849) 2020-08-04 20:19:27 -07:00
Jesús David
7b85962673 Add via compatibility to Daisy 40 (#9805)
* Add via compatibility to Daisy 40

* Move via config to its own keymap

* Use lite bootmagic

* Add fourth layer to keymap
2020-08-04 00:10:06 -07:00
gtips
19795a4dcc [Keyboard] Fixed readme.md for reviungs (#9838)
* [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

* Update readme.md

Change the image photo of readme.md.

* [Keyboard] Add reviung61

* Update readme.md

* fix keyboards/reviung61/ and add keymap default_rgb

* fix keyboards/reviung61/info.json

* fix keyboards/reviung61/info.json

* remove keyboards/reviung61/keymaps/default/config.h

* [keyboard] Fixed readme.md for reviung39 and 61.
2020-08-03 23:23:24 -07:00
moyi4681
13de2f415f [Keyboard] Add volcano660 (#9795)
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-03 22:59:11 -07:00
Álvaro A. Volpato
f047840d0f [Keyboard] Add ArcticPCB pre-Alpha support (#8479)
* Add initial ArcticPCB support

* Added README

* Solve info.json comma issue

* Apply suggestions from noroadsleft code review

Use the LAYOUT_60_tsangan_hhkb Community Layout

* Apply suggestions from tzarc

* Add license header to arctic.c, arctic.h and config.h

* Remove redundant tsangan keymap

* Remove tsangan compilation suggestion from readme
2020-08-03 22:13:33 -07:00
Marco Syfrig
fb297a5644 [Docs] small text and formatting fixes in vscode manual (#9156)
* small text and formatting fixes in vscode manual

fix double opening <kbd> tags for correct formatting
expand two points for better understanding

* restored <kbd>, clarified how to open the terminal

restored <kbd> tags that were deleted with the last commit; they are correct as they were to have the whole menu "breadcrumb" nested inside a box
clarified how to open the terminal
escaped backtick for shortcut Ctrl+` as I’ve added backticks for code on the same line

* Update docs/other_vscode.md
2020-08-03 19:49:26 -07:00
mechlovin
2c9e210c36 [Keyboard] add Hannah910 rev3 (#9710) 2020-08-03 19:46:55 -07:00
James Young
12fce9b88d fix Dactyl-Manuform 5x6_5 compilation (#9902) 2020-08-03 00:43:27 +01:00
Nguyen Minh Hoang
00b8a12d06 [Keyboard] POM Keyboards TNLN95 (#9788)
* add keyboard tnln95

* keyboard tnln95, fix info

* Apply suggestions from code review

* keyboard tnln95, fix info (2)

* keyboard tnln95, move folder, fix info

* keyboard tnln95, fix keymap

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* keyboard tnln95, fix link, comment currently not used pin

* Apply suggestions from code review
2020-08-01 00:05:35 -07:00
shela
f8a2401370 [Docs] Update Japanese translation of newbs_flashing.md. (#9819)
* Update Japanese translation of newbs_flashing.md.

* Update docs/ja/newbs_flashing.md
2020-07-31 19:08:43 -07:00
shela
3f2521115d [Docs] Update Japanese translation of newbs_getting_started.md. (#9813) 2020-07-31 18:53:35 -07:00
umi
0d405ad38e [Docs] Japanese translation of docs/internals_input_callback_reg.md (#9752)
* add internals_input_callback_reg.md translation

* update based on comment
2020-07-31 18:40:17 -07:00
shela
28c78023c5 [Docs] Update Japanese translation of newbs_building_firmware.md. (#9810)
* Update Japanese translation of newbs_building_firmware.md.

* fix original document version.

* Apply suggestions from code review
2020-07-31 17:57:31 -07:00
umi
ea3f74874f [Docs] Japanese translation of docs/other_vscode.md (#9756)
* add other_vscode.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-31 17:49:25 -07:00
shela
a88e690351 [Docs] Update Japanese translation of keymap.md. (#9807)
* Update Japanese translation of keymap.md.

* fix original document version.

* Apply suggestions from code review

* Update translation
2020-07-31 17:25:20 -07:00
shela
0f3e933db9 [Docs] Update Japanese translation of feature_backlight.md. (#9803)
* Update Japanese translation of feature_backlight.md.

* fix original document version.

* Apply suggestions from code review
2020-07-31 16:28:29 -07:00
Kyle
f3b518ae40 [Keyboard] Added a new handwired 2x3,2x4,2x5 keyboard called the Stream_cheap (#9871)
* Added a new handwired 2x3,2x4,2x5 keyboard called the Stream_cheap

stream cheap is a diy version of the El Gato Stream deck minus the LCD keys
but you can always get relegendable keycaps to change the icon if you want

* added missing commas in info.json files

* update config to change pin definition

* changed keymap.c for 2x4

was trying to add macros and multi key commands to the keymap,

i added 2 ctrl commands that have more than one key i.e. ctrl-k-c (visual studio comment hot key)

and i added a test string to see how type out a string with the press of a button

* testing more changes to the keymap to the 2x5

* Update keyboards/handwired/stream_cheap/2x3/2x3.c

* Update keyboards/handwired/stream_cheap/2x3/config.h

* Update keyboards/handwired/stream_cheap/2x3/rules.mk

* Update keyboards/handwired/stream_cheap/2x5/config.h

* Update keyboards/handwired/stream_cheap/2x5/info.json

* Update keyboards/handwired/stream_cheap/2x3/config.h

* Update keyboards/handwired/stream_cheap/2x3/info.json

* Update keyboards/handwired/stream_cheap/2x4/config.h

* Update keyboards/handwired/stream_cheap/2x4/info.json

* Update keyboards/handwired/stream_cheap/2x4/keymaps/default/keymap.c

* Update keyboards/handwired/stream_cheap/2x5/info.json

* Update keyboards/handwired/stream_cheap/2x5/config.h

* Update keyboards/handwired/stream_cheap/2x5/rules.mk

* Update keyboards/handwired/stream_cheap/2x4/2x4.c

* Update keyboards/handwired/stream_cheap/2x4/config.h

* Update keyboards/handwired/stream_cheap/2x4/info.json

* Update keyboards/handwired/stream_cheap/2x5/2x5.c

* Update keyboards/handwired/stream_cheap/2x4/rules.mk

* removed file as per request of user zvecr

* removed line in rules.mk for 2x5

* Update keyboards/handwired/stream_cheap/2x5/keymaps/default/keymap.c

* Apply suggestions from code review

changes suggested in code review
2020-07-31 16:18:06 -07:00
eniigmakeyboards
b70ac594c6 [Keyboard] Eniigma Keyboards ek65 PCB (#9836)
* Added initial files

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Reverted image file to imgur link

* Update keyboards/eniigmakeyboards/ek65/rules.mk

* Update keyboards/eniigmakeyboards/ek65/config.h

* Update keyboards/eniigmakeyboards/ek65/config.h

* Update keyboards/eniigmakeyboards/ek65/ek65.h

* Update keyboards/eniigmakeyboards/ek65/info.json

* Fixed image link in Readme

* Update keyboards/eniigmakeyboards/ek65/readme.md to remove duplicated image
2020-07-31 14:38:21 -07:00
mechlovin
a1c89fec72 [Keyboard] Kanu PCB (#9729)
* add Kanu PCB

* update

* update

* update

* Update info.json

* Update config.h

* Update info.json

* Update info.json

* update

* Update rules.mk
2020-07-31 13:19:47 -07:00
Jan Christoph Ebersbach
1a49eb5be1 [Keyboard] Add Dactyl Manuform 5x6 with 5 thumb keys (#9659)
* [Keyboard] Add Dactyl Manuform 5x6 with 5 thumb keys

* fix: remove unused code block

* fix: remove unused code block

* Remove unused build options
2020-07-31 13:03:44 -07:00
Rustam Zagirov
5bd239e1c0 Remove unnecessary break after return from documentation (#9892) 2020-07-31 15:58:55 +01:00
Brandon Schlack
53b0ee3f7e [Keyboard] Add community layouts to Savage65 (#9854) 2020-07-31 04:37:17 -07:00
moyi4681
3d2e5bfe63 add kbd67 capslock indicator (#9839) 2020-07-31 04:20:14 -07:00
shela
3c7fc3c82e [Docs] Update Japanese translation of feature_tap_dance.md. (#9808)
* Update Japanese translation of feature_tap_dance.md.

* fix original document version.

* Update docs/ja/feature_tap_dance.md
2020-07-30 22:31:34 -07:00
gadzkun
2ec2f80bfc [Keyboard] Add otd_plus keyboard (#9726) 2020-07-30 21:23:06 -07:00
Ladniy
6ff08202a5 Add info.json for Jiran keyboard (#9857)
Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-31 12:59:32 +10:00
shela
06cf6982bb [Docs] Update Japanese translation of feature_ps2_mouse.md. (#9815) 2020-07-30 16:10:44 -07:00
shela
1ca7dcb0b2 [Docs] Update Japanese translation of feature_mouse_keys.md. (#9809)
* Update Japanese translation of feature_mouse_keys.md.

* fix original document version.

* Update docs/ja/feature_mouse_keys.md

* update based on comment
2020-07-30 15:22:22 -07:00
Klesh Wong
5d0c38794f [Keyboard] Add new keyboard ks63 handwired (#9712)
* [feature] add ks63 split keyboard

* [bugfix] unable to compile and some rows are not working

* [feature] add info.json / update keymap

* [bugfix] keymap and fix slave not working issue

* [bugfix] keyboard unaviable on cold boot / unable to reset the board

* [misc] fine tune keymap

* [misc] fine tune keymap

* ...

* ...

* ...

* [misc] adjust brackets position

* [misc] add readme link

* [misc] comply to coding convention

* [misc] add default keymap readme file

* Update keyboards/handwired/ks63/README.md

* Update keyboards/handwired/ks63/ks63.h

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

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

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

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

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

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

* Update keyboards/handwired/ks63/rules.mk

* Update keyboards/handwired/ks63/README.md

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

* [misc] to lowercase filename

* Update keyboards/handwired/ks63/rules.mk

* Update keyboards/handwired/ks63/rules.mk

* Update keyboards/handwired/ks63/config.h
2020-07-30 11:08:17 -07:00
NightlyBoards
83c12a516b [keyboard] Add [n]2 support (#9862)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add n2 keyboard

* Apply suggestions from code review

Edited config.h, keymap.c, readme.md, and rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-30 17:44:29 +01:00
Croktopus
08f31f664a Timber Wolf - updated via keymap, reduced eeprom writing from backlight code (#9876)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-31 00:52:54 +10:00
shela
9758bcb28b [Docs] Update Japanese translation of feature_macros.md. (#9767)
* Update Japanese translation of feature_macros.md.

* Update feature_macros.md

fix original document version.
2020-07-30 00:35:45 -07:00
tominabox1
4f7cd5699e [Keyboard] Add KPRepublic BM40HSRGB keyboard (#9860)
* Initial Commit

* Add readme.md's

* Add license statements, cleaned up config, readme, and rules. Removed unused features from keymap and added ascii for Adjust layer

* Update keyboards/bm40hsrgb/info.json

* Update keyboards/bm40hsrgb/config.h
2020-07-29 20:25:20 -07:00
umi
bf05f773bd [Docs] Japanese translation of docs/internals_gpio_control.md (#9751)
* add internals_gpio_control.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-29 19:44:23 -07:00
umi
de7da0b48f [Docs] Japanese translation of docs/other_eclipse.md (#9755)
* add other_eclipse.md translation

* update based on comment

* update based on comment
2020-07-29 17:01:34 -07:00
Yu Hao Wong
b3e7a4e798 Added Via keymap to Spaceman 2% Milk (#9484)
* added via support to spaceman 2% milk

* changed kc trns in layers 1-3

* changed vendor and product ID per creator suggestion
2020-07-29 15:15:53 -07:00
kaylanm
0091897cc8 Add via configuration for adelheid. (#9830)
* Add via configuration for adelheid.

* Reformat adelheid VIA keymap.
2020-07-29 10:42:40 -07:00
Frothy
758bf20706 Added Via-enabled keymap for Physix (#9825)
* Added Via-enabled keymap for Physix

* Update keyboards/hineybush/physix/keymaps/via/keymap.c
2020-07-29 10:32:48 -07:00
umi
ea1c7f1856 [Docs] Japanese translation of docs/one_shot_keys.md (#9754)
* add one_shot_keys.md translation

* update based on comment

* update based on comment
2020-07-29 19:02:37 +09:00
umi
a57b313153 [Docs] Japanese translation of docs/mod_tap.md (#9753)
* add mod_tap.md translation

* update based on comment

* update based on comment
2020-07-29 19:01:42 +09:00
umi
7ff85e241b [Docs] Japanese translation of docs/how_keyboards_work.md (#9683)
* add how_keyboards_work.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-29 19:00:26 +09:00
umi
7c7a2be4b0 [Docs] Japanese translation of docs/how_a_matrix_works.md (#9682)
* add how_a_matrix_works.md translation

* update based on comment

* update based on comment
2020-07-29 18:59:44 +09:00
chemicalwill
51dbca2332 [Keyboard] add bear_face/v2 (#9642)
* [keyboard] bear_face/v2 initial commit

* restructured keyboard dir for multiple versions
* fixed .json layouts for ISO
* reformatted hard tabs to soft tabs
* updated readmes

* [keyboard] removed top-level info.json, keymaps

* [bear_face/v2] changed matrix height, arrow key labels

* fixed height 6 instead of 5
* symbols for arrows now directions (i.e. "Left" etc.)

* [bear_face/v2] fixed ISO enter in .json

* corrected placement for ISO enter

* Update rules.mk

* DEFAULT_FOLDER = bear_face/v1

* [bear_face] fixed matrix width in info.json

* true matrix width is 15
* updated for v1 and v2 info.json

* Update keyboards/bear_face/config.h

* Update keyboards/bear_face/v1/info.json

* Update keyboards/bear_face/v2/info.json

* Update keyboards/bear_face/v2/info.json

* Update keyboards/bear_face/rules.mk

* Fixed default keymap tabs

* changed from tabs to spaces
2020-07-27 22:42:32 -07:00
Leivince John Marte
bcfb70a4cb [Keyboard] PH Arisu (#9612)
* Port Arisu to QMK

* Update Change name to PH Arisu

* Update PH Arisu for PR

* Update Bootloader

* Using Pro Micro

* Update Manufacturer Name

* Clean rules.mk

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/config.h

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

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

* Update keyboards/ph_arisu/keymaps/via/keymap.c

* Update keyboards/ph_arisu/rules.mk

* https://github.com/qmk/qmk_firmware/pull/9612#discussion_r451659279 Update info.json using converter

* Fixed Clean endif

* LAYOUT not defined Error on Compile fix

* Fix implicit declaration of function 'LAYOUT'

* Update VIA keymap change KEYMAP to new LAYOUT method

* Update keyboards/ph_arisu/config.h

* Update Remove RGB_DI_PIN

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/ph_arisu.h

* Update keyboards/ph_arisu/ph_arisu.h

* Update keyboards/ph_arisu/keymaps/via/keymap.c

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/config.h

* Add MO(1) on Keymaps

* Update info.json for QMK configurator support

* Add PH Arisu Image

* Use Smaller Size Image for Keyboard

* Change Image Host to Imgur

* Fix Imgur url

* Fix Imgur url

* Update Change Keyboard Maintainer

* Update Change Hardware Support to Pro Micro ATmega32U4

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/ph_arisu.h

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

* Update keyboards/ph_arisu/keymaps/via/keymap.c

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/rules.mk

* Update Move ph_arisu to nightly_boards directory

* Update Readme make command

* Update keyboards/nightly_boards/ph_arisu/rules.mk
2020-07-27 22:39:31 -07:00
Croktopus
296f267f2b Timber Wolf - updated keymaps, fixed info.json (#9787)
* updated keymaps, fixed info.json

* fixed info.json overlaps

* Update keyboards/metamechs/timberwolf/config.h
2020-07-27 19:35:59 -07:00
TerryMathews
14efd8aa41 [Keyboard] Initial support for TKC GodSpeed75 (#9723)
* Initial support for TKC GodSpeed75

* Correct compile error

* Update keyboards/tkc/godspeed75/rules.mk

* Update keyboards/tkc/godspeed75/readme.md

* Delete bootloader_defs.h

* Update keyboards/tkc/godspeed75/keymaps/via/keymap.c

* Update keyboards/tkc/godspeed75/readme.md

* Update keyboards/tkc/godspeed75/config.h

* Update keyboards/tkc/godspeed75/readme.md
2020-07-27 19:34:33 -07:00
AlisGraveNil
e999ade100 [Keyboard] Numeros macropad (#9725)
* First Push

* Update config.h

* Update numeros.c

* Update numeros.h

* Update rules.mk

* Update keyboards/clawsome/numeros/keymaps/default/keymap.c

* Update keyboards/clawsome/numeros/readme.md

* Update keyboards/clawsome/numeros/rules.mk

* Update keyboards/clawsome/numeros/info.json

* Update keyboards/clawsome/numeros/info.json

* Update keyboards/clawsome/numeros/rules.mk

* Update keyboards/clawsome/numeros/numeros.h

* Update keyboards/clawsome/numeros/info.json

* Update keyboards/clawsome/numeros/keymaps/default/keymap.c

* Update keyboards/clawsome/numeros/numeros.h

* Update keyboards/clawsome/numeros/keymaps/default/keymap.c

* Update keyboards/clawsome/numeros/numeros.c

* Update keyboards/clawsome/numeros/config.h

* Update keyboards/clawsome/numeros/rules.mk

* Update keyboards/clawsome/numeros/readme.md

* Update keyboards/clawsome/numeros/readme.md
2020-07-27 19:03:54 -07:00
Krishna Mani
f5fe6fe5cc [Keyboard] Add akegata denki device one (#9690)
* add device one

* fix layouts

* add other layouts

* column fixes, device id changes

* layouts cleanup, add readme

* add info.json, fix readme

* add template readme

* add smaller image

* fix image links, address requested changes

* Apply suggestions from code review

* Update keyboards/device_one/keymaps/ansi_split_backspace/keymap.c

* add akegata vendor folder

* Apply suggestions from code review
2020-07-27 18:40:57 -07:00
Ladniy
84cd07b0d3 [Keyboard] Jiran keyboard (#9628)
* Add jirand folder from local catalog

* Add controller into readme

* Replace image of PCB

* Create rev2 folder for RGB version

* Rename keymap folder

* Add new rev for RGB light version

* Change some keycodes for RGB light

* Remove some unnecessary code

* Add via keymap

* Activate RBG light support

* Update some info

* Update layout image link

* Update keyboards/jiran/config.h

* Update keyboards/jiran/keymaps/via/config.h

* Update keyboards/jiran/keymaps/default/rules.mk

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

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

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rev2/config.h

* Update keyboards/jiran/rev2/config.h

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rev2/rev1.c

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Some fix

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

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev2/config.h

* Fix default keymap error

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rev2/rules.mk

* Update keyboards/jiran/rev1/rules.mk

* Update keyboards/jiran/config.h

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev2/config.h

* Delete by request

* Update keyboards/jiran/config.h

* Update keyboards/jiran/keymaps/via/keymap.c

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Change some info by request

* Update keyboards/jiran/rev1/rev1.h

* Remove by request
2020-07-27 17:48:48 -07:00
tominabox1
6104609afa QAZ Keyboard (#9714)
* Initial qaz commit

* Enable combos

* Improved default keymaps

* Fixed configurator json

* Via initial

* Corrected VIA json

* touch

* Via fixes

* Fixed via matrix

* Formatting

* Add lighting to qaz

* Add rgb animations, add rgb to l2, fix error in via json, enable rgblight by default

* Update QAZ readme

* Remove VIA json, prep for PR

* Correct default bootloader for pro-micro

* Remove accidentally added submodules

* Change names of layout macros

* Move combo defs to keymap folders, fix layout names in info.json

* Fixes transposition of comma and dot keys on default keymaps

* Update keyboards/qaz/keymaps/default/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/qaz/keymaps/default_big_space/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/qaz/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/qaz/readme.md

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

* Update keyboards/qaz/rules.mk

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-07-27 18:10:40 -04:00
Michael Stapelberg
5cbac94d08 [Keyboard] add support for the kinT kinesis keyboard controller (kint2pp variant) (#9687)
* branch keyboards/kinesis/kint2pp from keyboards/kinesis/stapelberg

Changes will be made in the next commit

* [Keyboard] update wiring for kinT (kint2pp variant)

* add QMK plumbing

* Apply zvecr’s suggestions from code review

* Update keyboards/kinesis/kint2pp/config.h

* Update keyboards/kinesis/kint2pp/config.h

* remove superfluous config.h include
2020-07-27 11:44:05 -07:00
Andrew Kannan
e937fc4513 Add Instant65 to QMK (#9804)
* Add Instant65 to QMK

* Fix via map

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-27 14:29:09 -04:00
Andrew Kannan
b0e99c803d Atlas Updates (#9343)
* Update atlas keyboard files and default keyboard layout

* Remove wierd LT things

* Update keyboards/cannonkeys/atlas/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-27 12:16:21 -04:00
umi
463c97f4c6 [Docs] Japanese translation of docs/feature_stenography.md (#9525)
* add feature_stenography.md translation

* update based on comment

* Update docs/ja/feature_stenography.md

Co-authored-by: shela <shelaf@users.noreply.github.com>

* Update docs/ja/feature_stenography.md

ご指摘ありがとうございます。
「速記プロトコル」で更新しました。

Co-authored-by: s-show <s1shimz@gmail.com>

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: s-show <s1shimz@gmail.com>
2020-07-27 20:31:19 +09:00
Ryan
98f4cb4f87 Fix Squiggle info.json (#9841) 2020-07-27 12:22:14 +01:00
codecoffeecode
776b0bd2c9 [keymap] Adding personal keymap for Gingham (#9828) 2020-07-27 20:00:10 +10:00
Rys Sommefeldt
f0926f6c2a [keymap] Update rys keymap with 5th semi-secure token and remap layer 1 (#9822) 2020-07-27 19:59:36 +10:00
kaylanm
245d355176 Add via keymap for kbdfans/kbdpad_mk2. (#9829) 2020-07-27 19:58:43 +10:00
Josh Hinnebusch
c3a9c8c177 update sm68 matrix, add via support (#9741)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: hineybush <hineybushkeyboards@gmail.com>
2020-07-27 19:57:57 +10:00
kakunpc
1ef5c639ce Changed the VID/PID for choc_taro keyboards. (#9800) 2020-07-27 02:37:00 -07:00
CalciumNitride
d939f1041b Fix Arabica37's default RGBLED NUM (#9797)
* adding arabica37

* jp_keymap

* update

* try refactor to use split_common

* fix and update to use split_common

* update and adjust

* clean up

* update

* update

* fix keymap.c

* update

* oled logo

* fix info.json

* remove pro_micro.h

* remove KC_ macro

* move font file

* fix led num
2020-07-27 02:15:49 -07:00
Dmitry Nosachev
dfa3017c92 [Keyboard] Add keyboard Zenith Z-150 (#9811)
* z150 black pill

* z150 docs

* z150: json layout

* Update keyboards/handwired/z150/keymaps/zyxx/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/z150/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/z150/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/z150/z150.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/z150/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Delete bootloader_defs.h

Useless file

* Update keyboards/handwired/z150/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-26 22:44:50 +01:00
Salicylic-acid3
b49c5a562d Added via support for 7sKB (#9799)
* Added via support for 7sKB

-Changing the VID
-Add a keymap via

* Update keyboards/7skb/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/7skb/rev1/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Change of VID

I got a new VID and I'm changing the VID.

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-26 22:42:36 +01:00
John Helveston
688426b502 Adding keymaps for iris and kyria keyboards (#9783)
* updated iris and kyria keymaps

* added symbols I forgot to add to keymap

* Update keyboards/keebio/iris/keymaps/jhelvy/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* condense code

Co-authored-by: Ryan <fauxpark@gmail.com>

* condense code

Co-authored-by: Ryan <fauxpark@gmail.com>

* made another small fix to a missing symbol in my iris keymap

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-26 22:35:46 +01:00
Brandon Schlack
a6a13f9626 [Keyboard] Add Keybage folder for RadPad (#9745)
* [Keyboard] Initial Keybage/RadPad firmware

* [Keyboard] RadPad apply pull request feedback

- Change `LAYOUT_***_Encoders` to `LAYOUT_***_encoders` in <keyboard>.h
- Remove bootloader comments and unnecessary build options from rules.mk
- Use `LTO_ENABLE`
- Remove empty config.h from default keymap
- Remove trailing ` \` from keymap

* [Keyboard] RadPad fix info.json

- Change `LAYOUT_***_Encoders` to `LAYOUT_***_encoders` in info.json

* [Keyboard] Add host LED status to OLED display

* [Keyboard] Use LAYOUT_4x4_encoders, not LAYOUT

* [Keyboard] Use LAYOUT_4x4_encoders, not LAYOUT

* [Keyboard] Remove DESCRIPTION from config.h
2020-07-26 22:32:04 +01:00
Drashna Jaelre
d2be3a7339 Fix Variable Trace handling (#9831)
It wants a number, but a number of files have it set to "no", even
though it's commented out.  This means that if you set it to no, it
will cause a compiler error.  This sets the default to "no", and
checks to make sure it's not set to "no" before processing it, and
striping the value from it.
2020-07-26 21:57:37 +01:00
James Young
aaf58155c7 Remove HD44780 References, Part 1 (#9052)
* remove HD44780_ENABLE rules: 0-9, A-B

* remove HD44780_ENABLE config: 0-9, A-B
2020-07-27 06:11:16 +10:00
Valen Cheung
12946d0565 Keymap update - massdrop/ctrl/responsive_pattern (#8730)
* rewrite keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c in respopnse to the last update (#5328)

* remove print.h

* changed default parameters, modified readme
2020-07-26 09:45:35 +10:00
QMK Bot
95c742ec27 format code according to conventions [skip ci] 2020-07-25 22:33:55 +00:00
Joel Challis
d91987ab9a Enable OLED support for Teensy 3.2/LC (#7591)
* I2C_TIMEOUT is not defined on arm teensy

* Work round teensy having different ChibiOS config options

* Stash OLED conf files

* update comment

* update comment

* Remove stm32 alias to allow teensy alt mode
2020-07-26 07:50:56 +10:00
RJ Bernau
db540e2832 Adding VIA support for Dactyl Manuform 5x7 (#9462)
* adding via support for Dactyl Manuform 5x7

* Changing Vendor ID from FEED to 444D (DM)

* Update keyboards/handwired/dactyl_manuform/4x6/config.h

Fixing typo in Dactyl Manuform 4x6 Product Id

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/dactyl_manuform/4x5/config.h

Fixing typo in Dactyl Manuform 4x5 Product Id

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Roland Bernau <roland@bernau.dev>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-25 22:36:39 +01:00
Yoonbae Cho
a0b10593df Keymap for keebio/iris rev.4 supporting VIA (#9749)
* Create keymap.c

* Create config.h

* Update first revision

* Enhance keymap

* Enhance keymap

* Update keymap

* Make Via compatable

* Support mouse key

* Apply reviewer's change requests

* Adjust mouse factors

* Update config.h
2020-07-25 09:44:45 -07:00
Ingar Almklov
65f4b94cda Pinky4: add via support (#9711)
* Pinky4: add via support

* Pinky4/via: simplify rules.mk

* Pinky4/via: use built-in for KC_TRANS, enum for layer
_names

* Pinky4/via: remove redundant rules

* Pinky4/via: remove unnecessary slashes

* Pinky4/via: don't override default bootloader
2020-07-25 09:42:50 -07:00
gtips
70a37b9cf5 [Keyboard] Add keyboard Reviung61 (#9737)
* [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

* Update readme.md

Change the image photo of readme.md.

* [Keyboard] Add reviung61

* Update readme.md

* fix keyboards/reviung61/ and add keymap default_rgb

* fix keyboards/reviung61/info.json

* fix keyboards/reviung61/info.json

* remove keyboards/reviung61/keymaps/default/config.h
2020-07-25 03:35:47 -07:00
stanrc85
208fbce9a7 Keymap for OSAv2 (#9773)
* Add OSAv2 keymap

* OSAv2 configs and rules

* OSAv2 lighting layers

* OSAv2 lighting layers

* Fix colors after copy/paste

* Use LED indicators instead of RGB
2020-07-25 03:10:00 -07:00
Eric Brooks
21976f47d8 Added via support for ut472 (#9757)
* Added via support for ut472

* removed needless config file
updated vendor and product id for ut472

* corrected VENDOR_ID casing for ut472
2020-07-25 02:41:58 -07:00
Ibnu Daru Aji
054021e875 [Keyboard] Squiggle (#9387)
* new keyboard for squiggle.

* added pic and other layout.

* updated readme.

* following drashna's suggestions.

* removed an empty line and right hand as master.

* following fauxpark's suggestions.

* following manna-harbour's suggestions.

* trying to satisfy PR Lint keyboards

* manna-harbour forgot to add it.

* following fauxparx's suggestions.

* following fauxpark's suggestions.

* following fauxpark's suggestions.'
'

* following fauxpark's suggestions.

* following fauxpark''s suggestions.

* upated info.json to represent the actual layouts.

* following noroadsleft's suggestions.
2020-07-25 02:15:35 -07:00
shela
f5c2cd2eb7 [Docs] Update Japanese translation of custom_quantum_functions.md. (#9760)
* Update Japanese translation of custom_quantum_functions.md.

* Update custom_quantum_functions.md

fix original document version.
2020-07-25 09:36:48 +09:00
umi
0e30266711 [Docs] Japanese translation of docs/getting_started_docker.md (#9681)
* add getting_started_docker.md translation

* fix some typo

* update based on comment
2020-07-25 09:34:07 +09:00
umi
656a8327f4 [Docs] Japanese translation of docs/flashing_bootloadhid.md (#9680)
* add flashing_bootloadhid.md translation

* update based on comment
2020-07-25 09:33:20 +09:00
Takeshi ISHII
1fed91f272 Japanese documents 'original document' comment fix (#9816) 2020-07-25 08:38:13 +09:00
sotoba
7fe491bb54 [Keyboard] Add "craftWalk" keyboard (#9689)
* Add craftWalk keyboard

* remove config.h

* Update keyboards/craftwalk/config.h

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/info.json

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/config.h

* fix bootloader

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/info.json

* Update keyboards/craftwalk/config.h

* Update keyboards/craftwalk/config.h

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/rules.mk
2020-07-24 13:24:58 -07:00
shela
7675e80f5c [Docs] Update Japanese translation of feature_pointing_device.md. (#9771)
* Update Japanese translation of feature_pointing_device.md.

* Update docs/ja/feature_pointing_device.md

* Update feature_pointing_device.md

fix original document version.
2020-07-24 11:19:46 -07:00
shela
2b960b8bd7 [Docs] Update Japanese translation of feature_userspace.md. (#9775) 2020-07-24 02:49:36 -07:00
shela
955047dd7d [Docs] Update Japanese translation of feature_hd44780.md. (#9766) 2020-07-24 01:54:34 -07:00
shela
0a5997b0af [Docs] Update Japanese translation of faq_build.md. (#9762) 2020-07-24 01:45:30 -07:00
NightlyBoards
0adf03c754 [Keyboard] Add N87 Keyboard (#9663)
* Add new keyboard, the N87

* Deleted config.h and readme.md on tsangan keymap folder

* Edited layout names on keymap.c and n87.h. Disabled audio

* Edited files based on requested changes, re-enabled audio on extra data pin B7, enabled audio click, disabled music mode

* Updated the wiring matrix for symmetric_standard layout
2020-07-23 23:51:54 -07:00
MechMerlin
2cebac6f2f [Keyboard] VIA Support: DO60 (#9622)
* fix up that vendor ID

* add a VIA enabled keymap

* use pragma once

* clean up indicator leds code

* remove unused header
2020-07-23 20:17:38 -07:00
Koobaczech
a50c0049f6 [Keyboard] Add Pandora keyboard (#9592)
* Pandora
Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ethan Madden <maddene@madden.ninja>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-23 20:01:39 -07:00
Matthew Weldon
e620a7beb2 [Keyboard] add encoder support to PlaidPad default mappings (#9396)
* Add flipped and discrete encoder support default mappings

* Fixed typo in readme

* Removed flipped layout, fix config.h encoder pin mapping, update readme

Co-authored-by: matt <matt@smooth.tech>
2020-07-23 19:42:56 -07:00
Jonathan Rascher
d699fd1fb4 Switch bcat Chrome OS media keys workaround from mouse keys to NKRO (#9790)
* Switch Chrome OS mouse keys workaround to NKRO

* Add NKRO toggle to keymaps

* USE NK_TOGG keycode instead of defining my own
2020-07-23 15:27:01 +01:00
Jonathan Wakely
e38331d94c Update readme.md for cu80 (#9798) 2020-07-23 15:25:01 +01:00
shela
e85ec9a09a Update Japanese translation of _summary.md. (#9777) 2020-07-23 17:34:42 +09:00
shela
562b853a8f [Docs] Update Japanese translation of feature_split_keyboard.md. (#9780)
* Update Japanese translation of feature_split_keyboard.md.

* Update docs/ja/feature_split_keyboard.md

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-07-23 17:32:57 +09:00
shela
69abe5b405 Update Japanese translation of feature_layers.md. (#9769) 2020-07-23 17:30:59 +09:00
shela
a9cb3835ca Update Japanese translation of feature_encoders.md. (#9765) 2020-07-23 17:29:02 +09:00
shela
e1f1e1582e Update Japanese translation of feature_dynamic_macros.md. (#9764) 2020-07-23 17:27:40 +09:00
shela
65f803a1de Update Japanese translation of feature_dip_switch.md. (#9763) 2020-07-23 17:26:12 +09:00
shela
706f1b433c Update Japanese translation of driver_installation_zadig.md. (#9761) 2020-07-23 17:23:56 +09:00
shela
841a2721bc Update Japanese translation of config_options.md. (#9759) 2020-07-23 17:22:10 +09:00
Mark Sherman
d48e3053b9 Updating comment diagram to match code in lets_split_eh/doxish_dvorak (#9785) 2020-07-23 14:18:21 +10:00
Michael Krasnitski
d7a4b14bc6 Fix compilation warning for the DZ60RGB/DZ65RGB when RGB matrix is disabled (#9791) 2020-07-22 15:55:35 +10:00
Sergey Vlasov
74d3223fb5 Update handwired/onekey/teensy_2pp readme (#9784)
In commit 297aad6ebd pins for handwired/onekey/teensy_2pp were changed
from B2/B1 to F4/F5; update readme.md to match that change.
2020-07-22 15:49:01 +10:00
umi
3f0292d726 [Docs] Japanese translation of docs/cli_development.md (#9699)
* add cli_development.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-22 11:06:27 +09:00
Matthew Lyon
3f96b88e73 mattly goes windows (#9677)
* mattly's userspace and iris

* [Keymap] mattly's windows overlays

* biton32->get_highest_layer

* few more small tweaks
2020-07-21 17:08:56 -07:00
dsanchezseco
5e812cc4be Add keyboard Punk75 (#9731)
* start of punk75 keyboard

* preliminary code for the punk75 keyboard

* readme

* changes to work with USBasp

* changed cols and added configurable led

* set LED's pin as output

* changed led to new port and added rotary encoders

* added code for rotary encoders

* fixed col pins

* fixed encoder orientation

* added delay for tap_code so encoder works as intended

* added preliminary keymap for mine

* personal keymap for punk75

* personal keymap for punk75

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* fixed image

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-21 22:45:21 +01:00
Alabahuy
8c8a320e92 Add via support for rart75 (#9746)
* Update info.json

* Create rules.mk

* Create keymap.c
2020-07-21 22:31:16 +01:00
ladbahuy
43b21cffe0 Update rartpad via keymap (#9747) 2020-07-21 22:30:20 +01:00
shela
58c31f5632 fixed alt text for images. (#9781) 2020-07-22 01:30:33 +09:00
QMK Bot
1778858e24 format code according to conventions [skip ci] 2020-07-21 00:09:52 +00:00
nathanvercaemert
19006c9753 Implemented New MK_COMBINED Functionality (#9557)
* implemented new mousekey_combined functionality

* minor formatting change to documentation

* Update tmk_core/common/mousekey.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update tmk_core/common/mousekey.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update tmk_core/common/mousekey.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update tmk_core/common/mousekey.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update docs/feature_mouse_keys.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update docs/feature_mouse_keys.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update docs/feature_mouse_keys.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update docs/feature_mouse_keys.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nathan Vercaemert <nathan.vercaemert@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-07-21 09:28:38 +10:00
Nico Cesar
2e08c72e95 Update onekey proton_c readme (#9758)
A3 won't work. The code says A1 and A2 and it works. prints out an "a"
2020-07-20 15:41:21 +01:00
Joshua Rubin
57f408cff5 ensure hhkb runs matrix_init_quantum (#9629) 2020-07-19 19:25:30 -07:00
Drashna Jaelre
c4d778a302 [Docs] Update ISP Guide (#9748)
* [Doc] Update ISP Guide

Correct the fuses for Caterina, and make the `:production` command more obvious.

* fix casing before fauxpark catches it
2020-07-18 21:24:23 +01:00
umi
82dcb17338 [Docs] Japanese translation of docs/feature_debounce_type.md (#9524)
* add feature_debounce_type.md translation

* update based on comment

* update based on comment
2020-07-18 01:47:12 -07:00
Pierre Chevalier
a8c230743a Write firmware for the Ferris keyboard (#9634)
* Write firmware for the Ferris keyboard

Took inspiration from the gergoplex and the ergodox_ez firmware for the
split matrix with io_expander on the right hand.
Cleaned up a lot of bit fiddling on the mcu side by taking inspiration
from the `split_custom` in quantum.
Still bit fiddling on the mcp side as it is particularly natural to do
so with the abstractions provided by the i2c protocol. Would be good to
clean that up and abstract away the wiring from the generic i2c code in
a similar fashion as quantum and the mcp side behave.

One improvement over the ergodox_ez and the gergoplex firmwares is that
the wiring is straight forward as opposed to swapping rows and columns
in two different places that end up cancelling out for some reason.

At this stage, I have flashed this firmware to a board and have verified
that all keys are behaving as intended by shorting pins.
I still have to solder in some switches and test that everything works
correctly at normal typing speeds, but I don't expect any major issues
given I'm building up on previous effort, including the debouncing code
from the ergodox_ez.

* Remove rotation from info.json and label the keys as per default keymap

* Comply with minor review feedback points

* Use CUSTOM_MATRIX=lite to remove boilerplate

* Update keyboards/handwired/ferris/info.json

Didn't play nicely in the configurator

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove MIDI_ENABLE from rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove FAUXCLICKY_ENABLE from rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Prefer wait_ms over _delay_ms

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused include

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused include

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused include

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused includeh

Co-authored-by: Ryan <fauxpark@gmail.com>

* Use dprint over print and remove include for print.h

* Remove all unused includes

* Remove unused code

* Cleanups thanks to code review

* Move more personal settings from the ferris config to the default keymap config

These setting happen to be unused in the default keymap at the moment,
as it has only one layer with no homerow modifiers and no mouse key; but
I would like to keep it there for two reasons:
* It can serve as an example to people creating their own keymap
* I plan to design a more usable default keymap that uses these features
  once this PR which adds the Ferris keyboard is merged.

* Consolidate mcp logic inside matrix.c

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-18 13:57:33 +10:00
Croktopus
3c84157d83 Add timber wolf keyboard (#9353)
* added timber wolf keyboard

* removed subfolders

* fixed keymap names

* fixed layout macro references

* swapped c6 and c7 functions

* Update keyboards/metamechs/timberwolf/config.h

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* Update readme.md

* re-updating readme

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-17 19:04:44 +01:00
floookay
4989af356e [keyboard] added Adelheid (#9734)
* readded adelheid files

* reworked keymaps

- moved my personal keymap to a new folder
- added a new default keymap

* removed unnecessary backslash

* reenabled command rule

* bumped device number

* fixed layout for configurator

* applied suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-17 18:51:56 +01:00
yinxianwei
a2fa12d631 [keyboard] Add x16 (#9709)
* [keyboard] Add x16

* update x16

* Update keyboards/x16/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/x16/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/x16/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/x16/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/x16/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-17 18:46:05 +01:00
NightlyBoards
412c6bf447 Add Alter Keyboard (#9579)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add Alter keyboard

* Fixed keymap.c

* Fixed another issue on the keymap.c

* Updated the files based on the comments

* Edited default keymap and enabled rgbanimations on config.h

* Updated the info.json
2020-07-17 16:46:11 +01:00
Alabahuy
9aa953ecb4 [Keyboard] add rart75 (#9649)
* Create config.h

* Create info.json

* Create rart75.c

* Create rart75.h

* Create readme.md

* Create rules.mk

* Create keymap.c

* Create keymap.c

* Update keymap.c

* Update info.json

* Update info.json

* Update info.json

* Update readme.md

* Update config.h

* Update rules.mk

* Update readme.md

* Update readme.md
2020-07-17 16:39:55 +01:00
MechMerlin
9fddb1b5fa VIA Support: Skog Lite (#9686)
* via support for the skog lite

* some code cleanup before submission

* Update keyboards/percent/skog_lite/keymaps/via/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/percent/skog_lite/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-17 15:41:30 +01:00
Josh Johnson
07a817d3e5 [keymap] Add VIA support for Hub16 (#9638)
* fix encoder switch not staying depressed

* add via support

* change default keymap

* change VID-PID

* remove LTO

* fix hold bug keeping debouncing
2020-07-17 13:35:44 +01:00
moyi4681
56beaf7d3f Update MAJA info.json (#9674)
* Update info.json

* Update keyboards/kbdfans/maja/info.json

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

* Update keyboards/kbdfans/maja/info.json

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-07-17 13:26:50 +01:00
Sid Carter
3f11f41ec7 Keymap addition and updates (Prime_e, ProjectKB PCB, WT60-D) (#9701)
* update keymap

* update ilpse template as well

* fix some key items

* move quote the first layer

* figure out brackets

* update ilpse keymap

* update arrow keys on alice

* change layers

* update layers again

* switch to vim keys

* add mouse keys

Co-authored-by: Khader Syed <khader.syed@aicure.com>
2020-07-17 13:16:09 +01:00
Maarten Dekkers
4e02253aaf [Keyboard] Add PocketType (#9728)
* Add PocketType

* Add info.json, changes readmes and other stuff

* More changes

Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-07-17 12:53:37 +01:00
Rossman360
2773082d9d add default Rebound lighting settings (#9740)
* cleaning up

* deleting to undelete

* add rebound lighting settings
2020-07-17 06:20:02 +10:00
Ryan
19b70b2737 MSYS2: Switch to bootloadHID package and bring back avrdude package (#9736)
* MSYS2: Switch to bootloadHID package and bring back avrdude package

* Update Zadig docs as well
2020-07-16 18:01:34 +01:00
Konstantin Đorđević
61b64bb82a Redefine IS_LAYER_ON/OFF() as aliases for existing layer functions (#6352)
* Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros

* Add docs for IS_LAYER_ON/OFF(_STATE) macros

* Remove IS_LAYER_ON/OFF_STATE redefinition in userspace

* Run clang-format on quantum/quantum.h

* Redefine IS_LAYER_ON/OFF(_STATE) as aliases of existing layer functions

Also update relevant doc entries.

Needs testing to check if this breaks existing IS_LAYER_ON/OFF usage in certain
edge cases (namely calling the macros with 0).

* Reformat layer check function docs
2020-07-16 22:27:55 +10:00
Drashna Jaelre
f11437aef3 Allow for user song list (#9281) 2020-07-16 16:45:50 +10:00
Hedgestock
fc13315300 Fixed CA_DOTA key code (#9722) 2020-07-16 15:50:51 +10:00
Ryan
72d3270547 Remove DESCRIPTION (#9732) 2020-07-16 15:49:18 +10:00
Gautham Yerroju
92d0a71af7 OLED driver function to set pixels (#9713)
* Add a function to set individual pixels

* Add documentation for oled_write_pixel

* use smaller data type for oled_write_pixel

* Fix boundary check edge case

* Update oled_write_pixel doc

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-16 15:48:04 +10:00
Nick Brassel
08b405e1e9 planck/rev6: Enable WS2812 LED matrix with pwm drivers (#9735)
* planck/rev6: Enable WS2812 LED matrix with pwm drivers

* Comments and cleanup.

* GPL2+ Licensing

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-07-16 15:15:04 +10:00
Riley Inman
13eda1b1a2 planck/rev6: Enable WS2812 LED matrix with pwm drivers 2020-07-16 01:07:44 -04:00
Ryan
e8d577c081 Update new keyboard templates (#9636)
* Update new keyboard templates

* Switch on Bootmagic Lite by default

* Remove MIDI_ENABLE and FAUXCLICKY_ENABLE
2020-07-15 18:52:02 +10:00
Jeong Arm
ceb3ef955e [Keyboard] Update preonic/Kjwon15 layout (#9718) 2020-07-15 18:49:28 +10:00
moyi4681
bc2ebef876 Update KBDFANS/MAJA default keymap (#9727)
* Update keymap.c

* Update keymap.c
2020-07-14 17:06:16 +01:00
Gaëtan Ark
7bdfbde35d [Keymap] Added Bépo layout to Kyria (#9272)
* Added Ergo 42

* Added bépo layout to the Kyria keyboard

* Fixed comment layout, fixed bad quotes

* Fixed outdated keys
2020-07-14 00:42:29 -07:00
Drashna Jaelre
584d38b5f5 Fix RGB Matrix using RGBW WS2812 LEDs (#9705)
This should be a pointer, as that is what the function expects.
2020-07-13 23:28:42 +01:00
ladbahuy
9307762d76 RARTPAD : add support via (#9702)
* Create rules.mk

* Create keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c
2020-07-13 23:25:28 +01:00
umi
1b96038115 [Docs] Japanese translation of docs/coding_conventions_python.md (#9517)
* add coding_conventions_python.md translation

* update based on comment

* update based on comment
2020-07-12 11:43:43 +09:00
Joshua Rubin
78f0b5fb02 [Keyboard] Add g60ble (#8952)
* add g60ble

Signed-off-by: Joshua Rubin <mejawa.dev>

* fixes from review

Signed-off-by: Joshua Rubin <mejawa.dev>

* bioi/g60ble better comments in rules.mk

* bioi/g60ble better comments in rules.mk part 2

* Update keyboards/bioi/g60ble/readme.md

* Update keyboards/bioi/g60ble/rules.mk

* Update keyboards/bioi/g60ble/rules.mk
2020-07-11 11:50:57 -07:00
shela
64603ab647 fix typo (#9695) 2020-07-11 23:06:33 +10:00
TerryMathews
ca946f6116 Initial support for TKC Alice (#9640)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-11 12:28:53 +01:00
Brandon Claveria
63fe92017c [keyboard] added swiftrax/cowfish (#9621)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2020-07-11 12:28:22 +01:00
Randall Mason
817de51c12 Add config for Atreus based on Adafruit Feather BLE (#9140)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-11 21:09:40 +10:00
ladbahuy
6609197cde [keyboard] Add rartpad (#9614) 2020-07-11 11:54:22 +01:00
QMK Bot
421621fbf1 format code according to conventions [skip ci] 2020-07-10 22:02:03 +00:00
Fredrik Salomonsson
21610d245a [Keymap] plattfot - Update and fix issue with DBL_TAP (#9666)
- Fix typo in the default layout.
- Move esc and del to the navi layer.
- Fix issue with oneshot layers and double tap aka DBL_TAP.
- Add caps lock to the raise layer.

Was relying on a broken behavior for the double tap to work with
oneshot keys, i.e. the oneshot layer not being cleared after a key
press in `process_record_user`, which allowed me to first press an
oneshot key, then double tap and then a key. With the behavior fixed,
this no longer works. As the oneshot layer will be cleared when double
tap is pressed.

To make double tap useful again. I changed that any of the layer keys
does not clear the double tap. Which allows me for example to first
press double tap, then an oneshot key and then a key. So now I'm able
to type my double symbols again.
2020-07-10 23:00:04 +01:00
ytkwong
bdfb1bc2b5 Added VIA compatible rules for Duck Octagon V2 PCB (#9676)
* Added keymap and rules to allow VIA compatibility

* Update keymap.c

* Update rules.mk

* Update keyboards/duck/octagon/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keymap.c

* Update keyboards/duck/octagon/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/duck/octagon/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/duck/octagon/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/duck/octagon/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-10 22:59:45 +01:00
Ramon Imbao
76b21a4b90 Fix missing column for Herringbone (#9679)
* Add the missing column to the config

* Fix key layout error in info.json
2020-07-10 22:58:41 +01:00
Jonathan Rascher
027570a21b Rework bcat Crkbd and Lily58 modifier keys (#9692)
* Re-enable mouse keys to fix Chrome OS media keys

I'm not sure if there's a bug in Chrome OS, QMK, or both, but
EXTRAKEY_ENABLE isn't sufficient for media keys to work on Chrome OS.
Instead, MOUSEKEY_ENABLE is also required.

* Remove unnecessary SPLIT_USB_DETECT for Lily58

I've since swapped my Lily58 back to Elite-C v2 controllers with working
VBUS detection.

* Move Crkbd Esc and Ctrl keys; add some shortcuts

* Move MC_ALTT to userspace for cross-board support

* Sync Lily58 keymap with Crkbd

* Fix typos
2020-07-10 22:57:49 +01:00
KgOfHedgehogs
bd72a577a2 Update Jian readme.md (#9685) 2020-07-10 22:56:52 +01:00
Joel Challis
aec4125989 Refactor ARM backlight (#7959) 2020-07-10 09:12:40 +01:00
a_p_u_r_o
c272b2422b [Keyboard] Fix inconsistent MATRIX_COLS: 4pplet/steezy60 (#9678) 2020-07-10 11:44:03 +10:00
Callum Oakley
c50009d5d4 [keymap] curly quotes (#9662)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-10 11:31:18 +10:00
Danilo de Klerk
823165b9b7 split_3x6_3 layout support (#9625) 2020-07-09 22:19:16 +01:00
Naoto Takai
9947f1051d Update Nomu30 keyboard (#9599)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-09 20:21:22 +01:00
ajp10304
c5e255a417 Create ajp10304 userspace and ortho_4x12 layout. (#9304) 2020-07-09 20:18:51 +01:00
umi
bae3e03e5f [Docs] Japanese translation of docs/coding_conventions_c.md (#9516)
* add coding_conventions_c.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-09 21:13:32 +09:00
pcoves
facca23315 Add pcoves's userspace (#9354)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Pablo COVES <pablo.coves@anatoscope.com>
2020-07-08 21:57:11 +01:00
Abi Shalom
071e0c2029 Created abishalom keymap (#9669)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 21:53:29 +01:00
Steve Purcell
2b55c419ea shell.nix improvements, and fix problems on Darwin (#9551) 2020-07-08 21:50:01 +01:00
Brandon
83e1b9ab6e Added VIA support to nightmare (#9672)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 21:47:35 +01:00
Oskar Holstensson
ca598c3df6 Changed US_RBRC to KC_RBRC instead of KC_LBRC (#9664) 2020-07-08 21:45:43 +01:00
Rys Sommefeldt
4588c979bd Reduce peak LED brightness for AoS TKL (#9667) 2020-07-08 21:43:23 +01:00
Ramon Imbao
60ee8bddfc Fix }] key in matrix for GHS.RAR (#9671) 2020-07-08 20:03:02 +01:00
Guillaume Gérard
5f9fb01020 [Keymap Extra] Add French AZERTY (AFNOR - NF Z71-300) (#9644)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 19:55:02 +01:00
ilikepi2
c4960b7579 Add VIA Functionality for Keyhive Maypad (#9654)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 17:20:24 +01:00
James Young
d4917318cc Add layout macros to YD60MQ (#9653)
- LAYOUT_60_ansi_split_bs
- LAYOUT_60_ansi_split_bs_rshift
- LAYOUT_60_ansi_split_rshift
- LAYOUT_60_ansi_tsangan
- LAYOUT_60_hhkb
- LAYOUT_60_iso_split_bs
- LAYOUT_60_iso_split_bs_rshift
- LAYOUT_60_iso_split_rshift
- LAYOUT_60_iso_tsangan
2020-07-08 17:18:50 +01:00
boss566y
047a7f4e33 [Keyboard] Added Handwired Redragon Keyboard (#9590)
* Added Handwired Redragon Keyboard as well as default and via keymaps

* Update keyboards/handwired/boss566y/redragon_vara/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/redragon_vara.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/redragon_vara.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/handwired/boss566y/redragon_vara/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/handwired/boss566y/redragon_vara/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keymap.c

Removed defined keycodes from via keymap

* Update keymap.c

replaced defined keycodes in default keymap

* Update readme.md

Changed image to one that matches the physical keyboard

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 06:33:43 -07:00
TerryMathews
c8ab8e0bab [Keyboard] Add support for YDKB Chili (#9583)
* Add support for YDKB Chili


Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-08 06:25:30 -07:00
Matthew Tse
038a86a9b8 Add missing bracket for Tap-Hold code sample (#9675)
The `TAPPING_TERM_PER_KEY` code sample is missing a closing bracket.
This adds it.
2020-07-08 13:40:13 +10:00
QMK Bot
9ae15e8c79 format code according to conventions [skip ci] 2020-07-07 21:43:51 +00:00
Dongfeng Yu
666cb44673 Allowing Pressing the Start Buttons Again to Stop Dynamic Macro Recording (#9446) 2020-07-07 21:59:13 +01:00
Sven Grunewaldt
03c790a0f2 Add TAP_CODE_DELAY to Mod-Tap (#9422) 2020-07-07 21:47:59 +01:00
Ryan
29b4f83a1f Un-nest 1up60rgb LAYOUT macros (#9648) 2020-07-07 20:31:44 +01:00
Erovia
e6bcc232ed Docs: update ModemManager recommendation (#9328)
Instead of modifying the service file provided by the distro,
use drop-in functionaly to explicitly specify the policy.
2020-07-07 19:22:38 +01:00
Joakim Tufvegren
5eb4675fda Allow for building layouts from keymap.json files. 2020-07-07 07:27:39 -07:00
KgOfHedgehogs
0fcefdc013 Add jian qmk_via layout and LTO_ENABLE to all jian revs (#9606) 2020-07-06 22:40:23 +10:00
MelGeek
fe744eb1ad [Driver] bugfix reset the scaling register flag to FALSE (#9507)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-06 22:38:41 +10:00
Brennan Vincent
85e20a5cf4 Fix typo in freebsd_install.sh (#9655) 2020-07-06 02:20:46 +10:00
stanrc85
da5aed6bef [Keymap] Add Alice rev2 to my userspace (#9600) 2020-07-04 20:51:37 -07:00
Alabahuy
acb9cf12c4 [Keyboard] RART67 : add support via (#9589) 2020-07-04 20:36:42 -07:00
siano
ade3bdf7e7 [Keyboard] XD87 Caps Lock LED refactor (#9585) 2020-07-04 20:31:07 -07:00
paulgali
83bc0b9e80 [Keyboard] Updated VIA Support for DP60 (#9508)
* Updated VIA Support

- Added LAYOUT_all Support for VIA compatibility
- Updated default dp60\layouts\via\keymap.c to mmirror changes to 
LAYOUT_all
- Rules.mk updated in both base and via directories.


Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-04 19:20:22 -07:00
yanekm
29ebb99b1f fixed link to Eclipse instructions (#9647) 2020-07-05 08:50:01 +10:00
QMK Bot
355f075b57 format code according to conventions [skip ci] 2020-07-04 15:01:25 +00:00
Takeshi ISHII
c2ca57c8f4 add DIP_SWITCH_MATRIX_GRID support (#8772)
* dipsw test on helix/rev2/sc/back:five_rows

* add peek_matrix() to matrix_common.c

* add DIP_SWITCH_MATRIX_GRID support to quantum/dip_switch.c

* update docs/feature_dip_switch.md about DIP_SWITCH_MATRIX_GRID

* Test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"

This reverts commit 6d4304c74557597c9fb4d324f79c3ae4793ae874.
2020-07-04 23:20:49 +09:00
Takeshi ISHII
5c8b23ccff add SPLIT_HAND_MATRIX_GRID support (#8685)
Co-authored-by: Danny <nooges@users.noreply.github.com>
2020-07-04 15:04:47 +01:00
Sam Gowland
13a8d1681c [Keyboard] Gowla Macro Board (#9643)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-04 11:51:42 +01:00
Olli
b30d0361c5 Fix “G” in Neo2 keymap (#9645)
Fix duplicated “NE_H” definition to use “NE_G” in Neo2 keymap,
introduced with commit 44ff14f.
2020-07-04 11:43:52 +01:00
kwlodarczy
063a74b660 Rotr - Updated README and default keymap (#9598) 2020-07-04 14:48:37 +10:00
moseschmiedel
3ff635b9a8 Add missing dependency for Void Linux to util/linux-install.sh (#9637) 2020-07-04 00:27:56 +01:00
Ryan
2c98c4dd4e Backlight docs wordsmithing (#9631) 2020-07-03 10:05:59 +01:00
Ramon Imbao
8c66c5aa9b Fix incorrect layout for GHS.rar (#9597)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-03 19:05:44 +10:00
Manna Harbour
b7dc2eb9ab Add movement hook to ps2_mouse (#8805)
Process mouse movement in the keymap before it is sent to the host. Example uses
include filtering noise, adding acceleration, and automatically activating a
layer. To use, define the following function in your keymap:

void ps2_mouse_moved_user(report_mouse_t *mouse_report);
2020-07-02 21:54:15 +01:00
4248 changed files with 180144 additions and 25978 deletions

View File

@@ -26,7 +26,8 @@
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My code follows the code style of this project: [**C**](https://docs.qmk.fm/#/coding_conventions_c), [**Python**](https://docs.qmk.fm/#/coding_conventions_python)
- [ ] I have read the [**PR Checklist** document](https://docs.qmk.fm/#/pr_checklist) and have made the appropriate changes.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).

42
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
core:
- quantum/**/*
- tmk_core/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- Makefile
- '*.mk'
dependencies:
- any:
- 'lib/**/*'
- '!lib/python/**/*'
keyboard:
- any:
- 'keyboards/**/*'
- '!keyboards/**/keymaps/**/*'
keymap:
- users/**/*
- layouts/**/*
- keyboards/**/keymaps/**/*
via:
- keyboards/**/keymaps/via/*
cli:
- bin/qmk
- requirements.txt
- lib/python/**/*
python:
- '**/*.py'
documentation:
- docs/**/*
translation:
- docs/fr-fr/**/*
- docs/es/**/*
- docs/ja/**/*
- docs/he-il/**/*
- docs/pt-br/**/*
- docs/zh-cn/**/*
- docs/de/**/*
- docs/ru-ru/**/*
CI:
- .github/**/*

35
.github/workflows/api.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Update API Data
on:
push:
branches:
- master
paths:
- 'keyboards/**'
- 'layouts/community/**'
jobs:
api_data:
runs-on: ubuntu-latest
container: qmkfm/base_container
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
persist-credentials: false
- name: Generate API Data
run: qmk generate-api
- name: Upload API Data
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: main
FOLDER: api_data/v1
CLEAN: true
GIT_CONFIG_EMAIL: hello@qmk.fm
REPOSITORY_NAME: qmk/qmk_keyboards
TARGET_FOLDER: v1

View File

@@ -16,16 +16,21 @@ jobs:
with:
fetch-depth: 0
- uses: trilom/file-changes-action@v1.2.4
id: file_changes
with:
output: '\n'
- name: Print info
run: |
git rev-parse --short HEAD
echo ${{ github.event.pull_request.base.sha }}
git diff --name-only ${{ github.event.pull_request.base.sha }}...
echo '${{ steps.file_changes.outputs.files}}'
- name: Run qmk info
shell: 'bash {0}'
run: |
QMK_CHANGES=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...)
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
QMK_KEYBOARDS=$(qmk list-keyboards)
exit_code=0
@@ -41,7 +46,7 @@ jobs:
echo "linting ${KB}"
# TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines
qmk info -kb ${KB} 2>&1 | tee /tmp/$$
qmk info -l -kb ${KB} 2>&1 | tee /tmp/$$
!(grep -cq ☒ /tmp/$$)
: $((exit_code = $exit_code + $?))
fi

14
.github/workflows/labeler.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
name: "Pull Request Labeler"
on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review, locked]
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@main
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'

4
.gitignore vendored
View File

@@ -16,6 +16,7 @@
*.swp
tags
*~
api_data/v1
build/
.build/
*.bak
@@ -73,3 +74,6 @@ __pycache__
# prerequisites for updating ChibiOS
/util/fmpp*
# Allow to exist but don't include it in the repo
user_song_list.h

View File

@@ -27,6 +27,7 @@ addons:
install:
- npm install -g moxygen
script:
- git fetch --depth=50 origin $TRAVIS_BRANCH:$TRAVIS_BRANCH
- git rev-parse --short HEAD
- git diff --name-only HEAD $TRAVIS_BRANCH
- bash util/travis_test.sh

View File

@@ -16,7 +16,8 @@
"*.hpp": "cpp",
"xstddef": "c",
"type_traits": "c",
"utility": "c"
"utility": "c",
"ranges": "c"
},
"[markdown]": {
"editor.trimAutoWhitespace": false,

1
api_data/_config.yml Normal file
View File

@@ -0,0 +1 @@
theme: jekyll-theme-cayman

5
api_data/readme.md Normal file
View File

@@ -0,0 +1,5 @@
# QMK Keyboard Metadata
This directory contains machine parsable data about keyboards supported by QMK. The latest version is always available online at <https://keyboards.qmk.fm>.
Do not edit anything here by hand. It is generated with the `qmk generate-api` command.

View File

@@ -27,6 +27,8 @@
# qmk-dfu QMK DFU (LUFA + blinkenlight)
# bootloadHID HIDBootFlash compatible (ATmega32A)
# USBasp USBaspLoader (ATmega328P)
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
# stm32duino STM32Duino (STM32F103x8)
#
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list
@@ -34,30 +36,30 @@
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
OPT_DEFS += -DBOOTLOADER_QMK_DFU
OPT_DEFS += -DBOOTLOADER_DFU
ifneq (,$(filter $(MCU), at90usb646 atmega16u2 atmega16u4 atmega32u2 atmega32u4))
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647))
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
ifneq (,$(filter $(MCU), at90usb1286 at90usb1287))
BOOTLOADER_SIZE = 8192
endif
endif
@@ -89,7 +91,30 @@ ifeq ($(strip $(BOOTLOADER)), lufa-ms)
BOOTLOADER_SIZE = 6144
FIRMWARE_FORMAT = bin
endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
endif
ifeq ($(strip $(BOOTLOADER)), kiibohd)
OPT_DEFS += -DBOOTLOADER_KIIBOHD
ifeq ($(strip $(MCU_ORIG)), MK20DX128)
MCU_LDSCRIPT = MK20DX128BLDR4
endif
ifeq ($(strip $(MCU_ORIG)), MK20DX256)
MCU_LDSCRIPT = MK20DX256BLDR8
endif
DFU_ARGS = -d 1C11:B007
DFU_SUFFIX_ARGS = -v 1C11 -p B007
endif
ifeq ($(strip $(BOOTLOADER)), stm32duino)
OPT_DEFS += -DBOOTLOADER_STM32DUINO
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
BOARD = STM32_F103_STM32DUINO
# STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense
STM32_BOOTLOADER_ADDRESS = 0x80000000
DFU_ARGS = -d 1EAF:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1EAF -p 0003
endif

View File

@@ -16,7 +16,6 @@ include common.mk
KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
STM32_PATH := quantum/stm32
# Force expansion
TARGET := $(TARGET)
@@ -138,7 +137,7 @@ endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
TARGET := $(TARGET)_proton_c
include $(STM32_PATH)/proton_c.mk
include platforms/chibios/GENERIC_STM32_F303XC/configs/proton_c.mk
OPT_DEFS += -DCONVERT_TO_PROTON_C
endif
@@ -148,12 +147,6 @@ endif
include quantum/mcu_selection.mk
ifdef MCU_FAMILY
OPT_DEFS += -DQMK_STM32
KEYBOARD_PATHS += $(STM32_PATH)
endif
# Find all the C source files to be compiled in subfolders.
KEYBOARD_SRC :=

View File

@@ -3,8 +3,14 @@ LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
define SEARCH_LAYOUTS_REPO
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
KEYMAP_C := $$(LAYOUT_KEYMAP_C)
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
@@ -24,4 +30,7 @@ ifneq ($(FORCE_LAYOUT),)
endif
endif
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
# Use rule from build_json.mk, but update prerequisite in case KEYMAP_JSON was updated
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)

View File

@@ -114,6 +114,17 @@ else
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F072xB
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F042x6)
# Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced.
# This ensures that the EEPROM page buffer fits into RAM
USE_PROCESS_STACKSIZE = 0x600
USE_EXCEPTIONS_STACKSIZE = 0x300
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F042x6
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
OPT_DEFS += -DEEPROM_DRIVER
COMMON_VPATH += $(DRIVER_PATH)/eeprom
@@ -173,6 +184,10 @@ ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
$(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
@@ -246,12 +261,13 @@ ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
VAPTH += $(SERIAL_PATH)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
VARIABLE_TRACE ?= no
ifneq ($(strip $(VARIABLE_TRACE)),no)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
@@ -263,7 +279,7 @@ ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
BACKLIGHT_DRIVER := custom
endif
VALID_BACKLIGHT_TYPES := pwm software custom
VALID_BACKLIGHT_TYPES := pwm timer software custom
BACKLIGHT_ENABLE ?= no
BACKLIGHT_DRIVER ?= pwm
@@ -303,6 +319,12 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
SRC += ws2812.c
else
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)
OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
endif
endif
endif
# add extra deps
@@ -390,9 +412,20 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes)
endif
endif
# Support for translating old names to new names:
ifeq ($(strip $(DEBOUNCE_TYPE)),sym_g)
DEBOUNCE_TYPE:=sym_defer_g
else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pk)
DEBOUNCE_TYPE:=sym_eager_pk
else ifeq ($(strip $(DEBOUNCE_TYPE)),sym_pk)
DEBOUNCE_TYPE:=sym_defer_pk
else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pr)
DEBOUNCE_TYPE:=sym_eager_pr
endif
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
# Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually.
DEBOUNCE_TYPE?= sym_g
DEBOUNCE_TYPE?= sym_defer_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
@@ -528,3 +561,19 @@ ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
endif
endif
JOYSTICK_ENABLE ?= no
ifneq ($(strip $(JOYSTICK_ENABLE)), no)
OPT_DEFS += -DJOYSTICK_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
SRC += $(QUANTUM_DIR)/joystick.c
endif
ifeq ($(strip $(JOYSTICK_ENABLE)), analog)
OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
SRC += analog.c
endif
ifeq ($(strip $(JOYSTICK_ENABLE)), digital)
OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
endif

148
docs/ChangeLog/20200829.md Normal file
View File

@@ -0,0 +1,148 @@
# QMK Breaking Change - 2020 Aug 29 Changelog
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
## Changes Requiring User Action :id=changes-requiring-user-action
### Relocated Keyboards :id-relocated-keyboards
#### The Key Company project consolidation ([#9547](https://github.com/qmk/qmk_firmware/pull/9547))
#### relocating boards by flehrad to flehrad/ folder ([#9635](https://github.com/qmk/qmk_firmware/pull/9635))
Keyboards released by The Key Company and keyboards designed by flehrad have moved to vendor folders. If you own any of the keyboards listed below, please use the new names to compile your firmware moving forward.
Old Name | New Name
:--------------------- | :------------------
candybar/lefty | tkc/candybar/lefty
candybar/righty | tkc/candybar/righty
m0lly | tkc/m0lly
tkc1800 | tkc/tkc1800
bigswitch | flehrad/bigswitch
handwired/downbubble | flehrad/downbubble
handwired/numbrero | flehrad/numbrero
snagpad | flehrad/snagpad
handwired/tradestation | flehrad/tradestation
### Updated Keyboard Codebases :id=keyboard-updates
#### Keebio RGB wiring update ([#7754](https://github.com/qmk/qmk_firmware/pull/7754))
This pull request changes the configuration for Keebio split boards to use the same RGB strip wiring for each half, which provides the following improvements:
* Easier wiring due to one fewer wire needed (the wire between left DOut to extra data pin) and the fact that wiring is the same for both halves.
* RGB LEDs can be controlled by each half now instead of just master half.
* Extra data line is freed up to allow for I2C usage instead of serial.
If you have customized the value of `RGBLED_SPLIT` for your keymap, you will need to undefine it using `#undef RGBLED_SPLIT` before defining it to your customized value.
This change affects:
* BFO-9000
* Fourier
* Iris rev2
* Levinson, revs. 1 and 2
* Nyquist, revs. 1 and 2
* Quefrency rev1
* Viterbi, revs. 1 and 2
### Changes to Core Functionality :id=core-updates
* Bigger Combo index ([#9318](https://github.com/qmk/qmk_firmware/pull/9318))
Allows the Combo feature to support more than 256 combos.
Any fork that uses `process_combo_event` needs to update the function's first argument to `uint16_t`:
* Old function: `void process_combo_event(uint8_t combo_index, bool pressed)`
* New function: `void process_combo_event(uint16_t combo_index, bool pressed)`
## Core Changes :id=core-changes
### Fixes :id=core-fixes
* Mousekeys: scrolling acceleration is no longer coupled to mouse movement acceleration ([#9174](https://github.com/qmk/qmk_firmware/pull/9174))
* Keymap Extras: correctly assign Question Mark in Czech layout ([#9987](https://github.com/qmk/qmk_firmware/pull/9987))
### Additions and Enhancements :id=core-additions
* allow for WS2812 PWM to work on DMAMUX-capable devices ([#9471](https://github.com/qmk/qmk_firmware/pull/9471))
* Newer STM32 MCUs have a DMAMUX peripheral, which allows mapping of DMAs to different DMA streams, rather than hard-defining the target streams in silicon.
* Affects STM32L4+ devices, as well as the soon-to-be-supported-by-QMK STM32G4/H7 families.
* Tested on F303/Proton C (ChibiOS v19, non-DMAMUX), G474 (ChibiOS v20, with DMAMUX).
* dual-bank STM32 bootloader support ([#8778](https://github.com/qmk/qmk_firmware/pull/8778) and [#9738](https://github.com/qmk/qmk_firmware/pull/9738))
* Adds support for STM32 dual-bank flash bootloaders, by toggling a GPIO during early init in order to charge an RC circuit attached to `BOOT0`.
* The main rationale behind this is that dual-bank STM32 devices unconditionally execute user-mode code, regardless of whether or not the user-mode code jumps to the bootloader. If either flash bank is valid (and `BOOT0` is low), then the built-in bootloader will skip any sort of DFU.
* This PR allows for the initialisation sequencing to charge the RC circuit based on the example circuit posted on Discord, effectively pulling `BOOT0` high before issuing the system reset. As the RC circuit takes a while to discharge, the system reset executes the ROM bootloader which subsequently sees `BOOT0` high, and starts executing the DFU routines.
* Tested with STM32L082 (with current QMK+current ChibiOS), and STM32G474 (against ChibiOS 20.x).
* update Space Cadet and Tap Dance features to use Custom Tapping Term when appropriate ([#6259](https://github.com/qmk/qmk_firmware/pull/6259))
* For the Tap Dance feature, this completely removes the need for the `ACTION_TAP_DANCE_FN_ADVANCED_TIME` dance.
* HID Joystick Interface ([#4226](https://github.com/qmk/qmk_firmware/pull/4226) and [#9949](https://github.com/qmk/qmk_firmware/pull/9949 "Fix Joystick Compile Issues"))
* This implements a joystick feature, including a joystick_task function called from TMK, specific keycodes for joystick buttons and a USB HID interface.
* Tested on V-USB backend and Proton C; compiles but untested on LUFA.
* In order to test, you have to add `JOYSTICK_ENABLE = yes` to your `rules.mk` and
```c
#define JOYSTICK_BUTTON_COUNT 8
#define JOYSTICK_AXES_COUNT 2
```
in your config.h.
* Christmas RGB Underglow animation now fades between green and red ([#7648](https://github.com/qmk/qmk_firmware/pull/7648))
* `RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL` has been greatly decreased; please check your animation if you have customized this value.
* layer state now initializes on startup ([#8318](https://github.com/qmk/qmk_firmware/pull/8318))
* This should produce more consistent behavior between the two functions and layer masks.
* added support for HSV->RGB conversion without using CIE curve ([#9856](https://github.com/qmk/qmk_firmware/pull/9856))
* added NOEEPROM functions for RGB Matrix ([#9487](https://github.com/qmk/qmk_firmware/pull/9487))
* Added eeprom_helpers for toggle, mode, sethsv, speed, similar to rgblight versions.
* Added set_speed function.
* Added helper functions, similar to those in rgblight, in order to add NOEEPROM versions of toggle, step, hue, sat, val, and speed.
* Minor: spelling correction for EEPROM in a debug message.
* flashing firmware using `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink) is now supported ([#9964](https://github.com/qmk/qmk_firmware/pull/9964))
* add ability to dump all makefile variables for the specified target ([#8256](https://github.com/qmk/qmk_firmware/pull/8256))
* Adds a new subtarget to builds, `dump_vars`, which allows for printing out all the variables that make knows about, after all substitutions occur.
* Example: `make handwired/onekey/proton_c:default:dump_vars`
* add ability to change the Auto Shift timeout in real time ([#8441](https://github.com/qmk/qmk_firmware/pull/8441))
* added a timer implementation for backlight on ChibiOS ([#8291](https://github.com/qmk/qmk_firmware/pull/8291))
* added a third endpoint to V-USB keyboards ([#9020](https://github.com/qmk/qmk_firmware/pull/9020))
* added a method to read the OLED display buffer from user space ([#8777](https://github.com/qmk/qmk_firmware/pull/8777))
* K-Type refactor ([#9864](https://github.com/qmk/qmk_firmware/pull/9864))
* The K-Type has been refactored to use QMK's native matrix scanning routine, and now has partial support for the RGB Matrix feature.
* Joysticks can now be used without defining analog pins ([#10169](https://github.com/qmk/qmk_firmware/pull/10169))
### Clean-ups and Optimizations :id=core-optimizations
* iWRAP protocol removed ([#9284](https://github.com/qmk/qmk_firmware/pull/9284))
* work begun for consolidation of ChibiOS platform files ([#8327](https://github.com/qmk/qmk_firmware/pull/8327) and [#9315](https://github.com/qmk/qmk_firmware/pull/9315))
* Start of the consolidation work to move the ChibiOS board definitions as well as the default set of configuration files for existing board definitions used by keyboards.
* Uses `/platforms/chibios` as previously discussed on discord.
* Consolidates the Proton C configs into the generic F303 definitions.
* Allows for defining a default set of `chconf.h`, `halconf.h`, and `mcuconf.h` files within the platform definition, which is able to be overridden by the keyboard directly, though include path ordering.
* Adds template `chconf.h`, `halconf.h`, `mcuconf.h`, and `board.h` that can be dropped into a keyboard directory, in order to override rather than replace the entire contents of the respective files.
* Removed Proton C QMK board definitions, falling back to ChibiOS board definitions with QMK overrides.
* Various tidy-ups for USB descriptor code ([#9005](https://github.com/qmk/qmk_firmware/pull/9005))
* Renamed `keyboard_led_stats` in lufa.c and ChibiOS usb_main.c to `keyboard_led_state`, as well as `vusb_keyboard_leds`, for consistency
* Formatted CDC and MIDI descriptors better
* Removed `ENDPOINT_CONFIG` macro, it seems pointless and removes the need for endpoint address defines in the middle of the endpoint numbering enum
* Fixed (possibly?) V-USB `GET_REPORT` request handling. Not sure about this one, but the existing code appears to always return an empty report - now `send_keyboard` sets this variable to the current report, matching what the LUFA code does.
* converted `CONSUMER2BLUEFRUIT()` and `CONSUMER2RN42()` macros to static inline functions ([#9055](https://github.com/qmk/qmk_firmware/pull/9055))
* Additional cleanups for V-USB code ([#9310](https://github.com/qmk/qmk_firmware/pull/9310))
* Removing the UART stuff entirely, now that we have Console support. Also fixing up various other things; switching some `debug()` calls to `dprintf()`, moved `raw_hid_report` out of the way so that we can implement the shared endpoint stuff.
* removed inclusion of `adafruit_ble.h` from `ssd1306.c` ([#9355](https://github.com/qmk/qmk_firmware/pull/9355))
* `outputselect.c` is no longer compiled if Bluetooth is disabled ([#9356](https://github.com/qmk/qmk_firmware/pull/9356))
* `analogRead()` deprecated in favor of `analogReadPin()` ([#9023](https://github.com/qmk/qmk_firmware/pull/9023))
* forcibly disable NKRO on V-USB controllers ([#9054](https://github.com/qmk/qmk_firmware/pull/9054))
* removed warning if running backlight on STM32F072 ([#10040](https://github.com/qmk/qmk_firmware/pull/10040))
* removed unused CORTEX_VTOR_INIT rules.mk option ([#10053](https://github.com/qmk/qmk_firmware/pull/10053))
* improved handling for enabling Link Time Optimization ([#9832](https://github.com/qmk/qmk_firmware/pull/9832))
* streamline rules for supporting Kiibohd bootloader ([#10129](https://github.com/qmk/qmk_firmware/pull/10129))
* Define `STM32_DMA_REQUIRED` when using DMA-based WS2812 driver on STM32 ([#10127](https://github.com/qmk/qmk_firmware/pull/10127))
* fix DMA stream ID calculation in ws2812_pwm ([#10008](https://github.com/qmk/qmk_firmware/pull/10008))
* remove support for Adafruit EZ Key Bluetooth controller ([#10103](https://github.com/qmk/qmk_firmware/pull/10103))
## QMK Infrastructure and Internals :id=qmk-internals
* Attempt to fix CI for non-master branches. ([#9308](https://github.com/qmk/qmk_firmware/pull/9308))
* Actually fetch the branch we're attempting to compare against.
* Run `qmk cformat` on `develop` branch ([#9501](https://github.com/qmk/qmk_firmware/pull/9501))
* minor refactor of Bluetooth API ([#9905](https://github.com/qmk/qmk_firmware/pull/9905))

View File

@@ -23,6 +23,7 @@
* [Overview](api_overview.md)
* [API Documentation](api_docs.md)
* [Keyboard Support](reference_configurator_support.md)
* [Adding Default Keymaps](configurator_default_keymaps.md)
* CLI
* [Overview](cli.md)
@@ -103,6 +104,7 @@
* [DIP Switch](feature_dip_switch.md)
* [Encoders](feature_encoders.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [Joystick](feature_joystick.md)
* [Proton C Conversion](proton_c_conversion.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
@@ -111,10 +113,12 @@
* [Velocikey](feature_velocikey.md)
* Developing QMK
* [PR Checklist](pr_checklist.md)
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* History
* [2020 Aug 29](ChangeLog/20200829.md)
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)

View File

@@ -45,9 +45,9 @@ Then place this include at the top of your code:
Note that some of these pins are doubled-up on ADCs with the same channel. This is because the pins can be used for either ADC.
Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-based, whereas the F3 has 4 ADCs and the channels are 1 based. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation.
Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-indexed, whereas the F3 has 4 ADCs and the channels are 1-indexed. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation.
|ADC|Channel|STM32F0XX|STM32F3XX|
|ADC|Channel|STM32F0xx|STM32F3xx|
|---|-------|---------|---------|
|1 |0 |`A0` | |
|1 |1 |`A1` |`A0` |
@@ -122,32 +122,29 @@ Also note that the F0 and F3 use different numbering schemes. The F0 has a singl
|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)". |
|`analogReadPin(pin)` |Reads the value from the specified pin, eg. `F6` for ADC6 on the ATmega32U4. |
|`pinToMux(pin)` |Translates a given 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. |
### ARM
Note that care was taken to match all of the functions used for AVR devices, however complications in the ARM platform prevent that from always being possible. For example, the `STM32` chips do not have assigned Arduino pins. We could use the default pin numbers, but those numbers change based on the package type of the device. For this reason, please specify your target pins with their identifiers (`A0`, `F3`, etc.). Also note that there are some variants of functions that accept the target ADC for the pin. Some pins can be used for multiple ADCs, and this specified can help you pick which ADC will be used to interact with that pin.
|Function |Description |
|----------------------------|--------------------------------------------------------------------------------------------------------------------|
|`analogReadPin(pin)` |Reads the value from the specified QMK pin, eg. `A0` for channel 0 on the STM32F0 and ADC1 channel 1 on the STM32F3. Note that if a pin can be used for multiple ADCs, it will pick the lower numbered ADC for this function. eg. `C0` will be channel 6 of ADC 1 when it could be used for ADC 2 as well.|
|`analogReadPinAdc(pin, adc)`|Reads the value from the specified QMK pin and ADC, eg. `C0, 1` will read from channel 6, ADC 2 instead of ADC 1. Note that the ADCs are 0-indexed for this function.|
|`pinToMux(pin)` |Translates a given QMK pin to a channel and ADC combination. 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 pin and adc combination. See your MCU's datasheet for more information.|
|Function |Description |
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`analogReadPin(pin)` |Reads the value from the specified pin, eg. `A0` for channel 0 on the STM32F0 and ADC1 channel 1 on the STM32F3. Note that if a pin can be used for multiple ADCs, it will pick the lower numbered ADC for this function. eg. `C0` will be channel 6 of ADC 1 when it could be used for ADC 2 as well.|
|`analogReadPinAdc(pin, adc)`|Reads the value from the specified pin and ADC, eg. `C0, 1` will read from channel 6, ADC 2 instead of ADC 1. Note that the ADCs are 0-indexed for this function. |
|`pinToMux(pin)` |Translates a given pin to a channel and ADC combination. 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 pin and ADC combination. See your MCU's datasheet for more information. |
## Configuration
## ARM
The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates.
The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.
|`#define` |Type |Default |Description|
|-------------------|------|---------------------|-----------|
|ADC_CIRCULAR_BUFFER|`bool`|`false` |If `TRUE`, then the implementation will use a circular buffer.|
|ADC_NUM_CHANNELS |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`.|
|ADC_BUFFER_DEPTH |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to `2` bytes so we can contain our one value. This could be set to 1 if you opt for a 8-bit or lower result.|
|ADC_SAMPLING_RATE |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.|
|ADC_RESOLUTION |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.|
|`#define` |Type |Default |Description |
|---------------------|------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. |
|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. |
|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.|
|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. |
|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. |

View File

@@ -6,22 +6,23 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
* [2020 Aug 29](ChangeLog/20200829.md)
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)
## When is the next Breaking Change?
The next Breaking Change is scheduled for Aug 29, 2020.
The next Breaking Change is scheduled for November 28, 2020.
### Important Dates
* [x] 2020 May 30 - `develop` is created. It will be rebased weekly.
* [ ] 2020 Aug 1 - `develop` closed to new PR's.
* [ ] 2020 Aug 1 - Call for testers.
* [ ] 2020 Aug 27 - `master` is locked, no PR's merged.
* [ ] 2020 Aug 29 - Merge `develop` to `master`.
* [ ] 2020 Aug 29 - `master` is unlocked. PR's can be merged again.
* [x] 2020 Aug 29 - `develop` is created. It will be rebased weekly.
* [ ] 2020 Oct 31 - `develop` closed to new PR's.
* [ ] 2020 Oct 31 - Call for testers.
* [ ] 2020 Nov 26 - `master` is locked, no PR's merged.
* [ ] 2020 Nov 28 - Merge `develop` to `master`.
* [ ] 2020 Nov 28 - `master` is unlocked. PR's can be merged again.
## What changes will be included?

View File

@@ -167,6 +167,17 @@ Creates a keymap.c from a QMK Configurator export.
qmk json2c [-o OUTPUT] filename
```
## `qmk c2json`
Creates a keymap.json from a keymap.c.
**Note:** Parsing C source files is not easy, therefore this subcommand may not work your keymap. In some cases not using the C pre-processor helps.
**Usage**:
```
qmk c2json [--no-cpp] [-o OUTPUT] filename
```
## `qmk list-keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`

View File

@@ -43,8 +43,6 @@ This is a C header file that is one of the first things included, and will persi
* generally who/whatever brand produced the board
* `#define PRODUCT Board`
* the name of the keyboard
* `#define DESCRIPTION a keyboard`
* a short description of what the keyboard is
* `#define MATRIX_ROWS 5`
* the number of rows in your keyboard's matrix
* `#define MATRIX_COLS 15`
@@ -250,7 +248,10 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_HAND_PIN B7`
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` is not defined)
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
* The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered left. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT`, it is determined to be right when the level is low.
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` and `SPLIT_HAND_MATRIX_GRID` are not defined)
* Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves.
* `#define MASTER_RIGHT`
@@ -323,11 +324,9 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
```
* `LAYOUTS`
* A list of [layouts](feature_layouts.md) this keyboard supports.
* `LINK_TIME_OPTIMIZATION_ENABLE`
* `LTO_ENABLE`
* Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable).
However, this will automatically disable the legacy TMK Macros and Functions features, as these break when LTO is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`. (Note: This does not affect QMK [Macros](feature_macros.md) and [Layers](feature_layers.md).)
* `LTO_ENABLE`
* 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`
@@ -372,10 +371,8 @@ Use these to enable or disable building certain features. The more you have enab
* MIDI controls
* `UNICODE_ENABLE`
* Unicode
* `BLUETOOTH_ENABLE`
* Legacy option to Enable Bluetooth with the Adafruit EZ-Key HID. See BLUETOOTH
* `BLUETOOTH`
* Current options are AdafruitEzKey, AdafruitBLE, RN42
* Current options are AdafruitBLE, RN42
* `SPLIT_KEYBOARD`
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
* `CUSTOM_MATRIX`

View File

@@ -0,0 +1,193 @@
# Adding Default Keymaps to QMK Configurator :id=adding-default-keymaps
This page covers how to add a default keymap for a keyboard to QMK Configurator.
## Technical Information :id=technical-information
QMK Configurator uses JSON as its native file format for keymaps. As much as possible, these should be kept such that they behave the same as running `make <keyboard>:default` from `qmk_firmware`.
Keymaps in this directory require four key-value pairs:
* `keyboard` (string)
* This is the name of the keyboard, the same as would be used when running a compile job through `make` (e.g. `make 1upkeyboards/1up60rgb:default`).
* `keymap` (string)
* Should be set to `default`.
* `layout` (string)
* This is the layout macro used by the default keymap.
* `layers` (array)
* The keymap itself. This key should contain one array per layer, which themselves should contain the keycodes that make up that layer.
Additionally, most keymaps contain a `commit` key. This key is not consumed by the API that back-stops QMK Configurator, but is used by Configurator's maintainers to tell which version of a keymap was used to create the JSON keymap in this repository. The value is the SHA of the last commit to modify a board's default `keymap.c` in the `qmk_firmware` repository. The SHA is found by checking out [the `master` branch of the `qmk/qmk_firmware` repository](https://github.com/qmk/qmk_firmware/tree/master/) and running `git log -1 --pretty=oneline -- keyboards/<keyboard>/keymaps/default/keymap.c` (use `keymap.json` if the keyboard in question has this file instead), which should return something similar to:
```shell
f14629ed1cd7c7ec9089604d64f29a99981558e8 Remove/migrate action_get_macro()s from default keymaps (#5625)
```
In this example, `f14629ed1cd7c7ec9089604d64f29a99981558e8` is the value that should be used for `commit`.
## Example :id=example
If one wished to add a default keymap for the H87a by Hineybush, one would run the `git log` command above against the H87a's default keymap in `qmk_firmware`:
```shell
user ~/qmk_firmware (master)
$ git log -1 --pretty=oneline master -- keyboards/hineybush/h87a/keymaps/default/keymap.c
ef8878fba5d3786e3f9c66436da63a560cd36ac9 Hineybush h87a lock indicators (#8237)
```
Now that we have the commit hash, we need the keymap (edited for readability):
```c
...
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
```
The default keymap uses the `LAYOUT_all` macro, so that will be the value of the `layout` key. Compiled to a QMK Configurator JSON keymap, our resulting file should be:
```json
{
"keyboard": "hineybush/h87a",
"keymap": "default",
"commit": "ef8878fba5d3786e3f9c66436da63a560cd36ac9",
"layout": "LAYOUT_all",
"layers": [
[
"KC_ESC", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_PSCR", "KC_SLCK", "KC_PAUS",
"KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN",
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT",
"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_TRNS", "KC_UP",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
]
]
}
```
The white space in the `layers` arrays have no effect on the functionality of the keymap, but are used to make these files easier for humans to read.
## Caveats :id=caveats
### Layers can only be referenced by number :id=layer-references
A common QMK convention is to name layers using a series of `#define`s, or an `enum` statement:
```c
enum layer_names {
_BASE,
_MEDIA,
_FN
};
```
This works in C, but for Configurator, you *must* use the layer's numeric index `MO(_FN)` would need to be `MO(2)` in the above example.
### No support for custom code of any kind :id=custom-code
Features that require adding functions to the keymap.c file, such as Tap Dance or Unicode, can not be compiled in Configurator **at all**. Even setting `TAP_DANCE_ENABLE = yes` in the `qmk_firmware` repository at the keyboard level will prevent Configurator from compiling **any** firmware for that keyboard. This is limited both by the API and the current spec of our JSON keymap format.
### Limited Support for Custom keycodes :id=custom-keycodes
There is a way to support custom keycodes: if the logic for a custom keycode is implemented at the keyboard level instead of the keymap level in qmk_firmware, that keycode *can* be used in Configurator and it *will* compile and work. Instead of using the following in your `keymap.c`:
```c
enum custom_keycodes {
MACRO_1 = SAFE_RANGE,
MACRO_2,
MACRO_3
};
...
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case MACRO_1:
if (record->event.pressed) {
SEND_STRING("This is macro #1.");
}
return false;
case MACRO_2:
if (record->event.pressed) {
SEND_STRING("This is macro #2.");
}
return false;
case MACRO_3:
if (record->event.pressed) {
SEND_STRING("This is macro #3.");
}
return false;
}
return true;
};
```
... add the keycode `enum` block to your keyboard's header file (`<keyboard>.h`) as follows (note that the `enum` is named `keyboard_keycodes` here):
```c
enum keyboard_keycodes {
MACRO_1 = SAFE_RANGE,
MACRO_2,
MACRO_3,
NEW_SAFE_RANGE // Important!
};
```
... then the logic to your `<keyboard>.c` through `process_record_kb()`:
```c
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case MACRO_1:
if (record->event.pressed) {
SEND_STRING("This is macro #1.");
}
return false;
case MACRO_2:
if (record->event.pressed) {
SEND_STRING("This is macro #2.");
}
return false;
case MACRO_3:
if (record->event.pressed) {
SEND_STRING("This is macro #3.");
}
return false;
}
return process_record_user(keycode, record);
};
```
Note the call to `process_record_user()` at the end. Additionally, users of the keyboard will need to use `NEW_SAFE_RANGE` instead of `SAFE_RANGE` if they wish to add their own custom keycodes at keymap level, beyond what is provided by the keyboard.
## Additional Reading :id=additional-reading
For QMK Configurator to support your keyboard, your keyboard must be present in the `master` branch of the `qmk_firmware` repository. For instructions on this, please see [Supporting Your Keyboard in QMK Configurator](reference_configurator_support.md).

View File

@@ -319,7 +319,7 @@ This runs code every time that the layers get changed. This can be useful for l
### Example `layer_state_set_*` Implementation
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example.
```c
layer_state_t layer_state_set_user(layer_state_t state) {
@@ -343,6 +343,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state;
}
```
Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer.
Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state.
### `layer_state_set_*` Function Documentation
* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)`
@@ -449,7 +454,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_state_set(layer_state); // then immediately update the layer color
}
}
return false; break;
return false;
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

View File

@@ -4,7 +4,7 @@ QMK presents itself to the host as a regular HID keyboard device, and as such re
There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the `qmk_install.sh` script will have already installed the drivers for you.
## Installation
@@ -23,7 +23,7 @@ Zadig will automatically detect the bootloader device. You may sometimes need to
!> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case!
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. For flashing a USBaspLoader device via command line with msys2, the `libusbk` driver is recommended, otherwise `libusb-win32` will work fine if you are using QMK Toolbox for flashing.
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver.
![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png)

View File

@@ -67,7 +67,7 @@ El archivo `config.h` es donde configuras el hardware y el conjunto de caracter
En la parte superior de `config.h` encontrarás ajustes relacionados con USB. Estos controlan la apariencia de tu teclado en el Sistema Operativo. Si no tienes una buena razón para cambiar debes dejar el `VENDOR_ID` como `0xFEED`. Para el `PRODUCT_ID` debes seleccionar un número que todavía no esté en uso.
Cambia las líneas de `MANUFACTURER`, `PRODUCT`, y `DESCRIPTION` para reflejar con precisión tu teclado.
Cambia las líneas de `MANUFACTURER` y `PRODUCT` para reflejar con precisión tu teclado.
```c
#define VENDOR_ID 0xFEED
@@ -75,7 +75,6 @@ Cambia las líneas de `MANUFACTURER`, `PRODUCT`, y `DESCRIPTION` para reflejar c
#define DEVICE_VER 0x0001
#define MANUFACTURER Tú
#define PRODUCT mi_teclado_fantastico
#define DESCRIPTION Un teclado personalizado
```
?> Windows y macOS mostrarán el `MANUFACTURER` y `PRODUCT` en la lista de dispositivos USB. `lsusb` en Linux toma estos de la lista mantenida por el [Repositorio de ID USB](http://www.linux-usb.org/usb-ids.html) por defecto. `lsusb -v` mostrará los valores reportados por el dispositivo, y también están presentes en los registros del núcleo después de conectarlo.

View File

@@ -13,65 +13,29 @@ An example of using `sudo`, when your controller is ATMega32u4:
or just:
$ sudo make <keyboard>:<keymap>:dfu
$ sudo make <keyboard>:<keymap>:flash
Note that running `make` with `sudo` is generally ***not*** a good idea, and you should use one of the former methods, if possible.
### Linux `udev` Rules
On Linux, you'll need proper privileges to access the MCU. You can either use
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. Once added run the following:
```console
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`.
Once added, run the following:
```
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", TAG+="uaccess", RUN{builtin}+="uaccess"
# Atmel USBKEY AT90USB1287
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess", RUN{builtin}+="uaccess"
# Atmel ATMega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/54-input-club-keyboard.rules:**
**Note:** With older versions of ModemManager (< 1.12), filtering only works when not in strict mode. The following commands can update that setting:
```
# Input Club keyboard bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/55-caterina.rules:**
```
# ModemManager should ignore the following devices
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
```
**Note:** With older (before 1.12) ModemManager, filtering only works when not in strict mode, the following commands can update that settings:
```console
sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service
printf '[Service]\nExecStart=\nExecStart=/usr/sbin/ModemManager --filter-policy=default' | sudo tee /etc/systemd/system/ModemManager.service.d/policy.conf
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", TAG+="uaccess", RUN{builtin}+="uaccess"
# Generic stm32
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/57-bootloadhid.rules:**
```
# bootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess", RUN{builtin}+="uaccess"
```
### 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.
@@ -96,46 +60,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
## BOOTLOADER_SIZE for AVR
Note that Teensy2.0++ bootloader size is 2048byte. Some Makefiles may have wrong comment.
```
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 2048
# Atmel DFU loader 4096 (TMK Alt Controller)
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=2048
```
## `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` on MacOS
This is an issue with updating on brew, causing symlinks that avr-gcc depend on getting mangled.
The solution is to remove and reinstall all affected modules.
```
brew rm avr-gcc avr-gcc@8 dfu-programmer dfu-util gcc-arm-none-eabi arm-gcc-bin@8 avrdude qmk
brew install qmk/qmk/qmk
brew link --force avr-gcc@8
brew link --force arm-gcc-bin@8
```
### `avr-gcc` and LUFA
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 8 in Homebrew.
```
brew uninstall --force avr-gcc
brew install avr-gcc@8
brew link --force avr-gcc@8
```
### I just flashed my keyboard and it does nothing/keypresses don't register - it's also ARM (rev6 planck, clueboard 60, hs60v2, etc...) (Feb 2019)
Due to how EEPROM works on ARM based chips, saved settings may no longer be valid. This affects the default layers, and *may*, under certain circumstances we are still figuring out, make the keyboard unusable. Resetting the EEPROM will correct this.

View File

@@ -31,20 +31,6 @@ Check:
- try using 'print' function instead of debug print. See **common/print.h**.
- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
## Linux or UNIX Like System Requires Super User Privilege
Just use 'sudo' to execute *hid_listen* with privilege.
```
$ sudo hid_listen
```
Or add an *udev rule* for TMK devices with placing a file in rules directory. The directory may vary on each system.
File: /etc/udev/rules.d/52-tmk-keyboard.rules(in case of Ubuntu)
```
# tmk keyboard products https://github.com/tmk/tmk_keyboard
SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
```
***
# Miscellaneous

View File

@@ -2,21 +2,24 @@
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
|Key |Aliases |Description |
|----------|-------------------------------|----------------------------------------------------|
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
|Key |Aliases |Description |
|----------|-------------------------------|------------------------------------------------------|
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.

View File

@@ -139,7 +139,7 @@ completely normal and with no intention of shifted keys.
`KC_ASRP`. The keyboard will type by itself the value of your
`AUTO_SHIFT_TIMEOUT`.
7. Update `AUTO_SHIFT_TIMEOUT` in your `config.h` with the value reported.
8. Remove `AUTO_SHIFT_SETUP` from your `config.h`.
8. Add `AUTO_SHIFT_NO_SETUP` to your `config.h`.
9. Remove the key bindings `KC_ASDN`, `KC_ASUP` and `KC_ASRP`.
10. Compile and upload your new firmware.

View File

@@ -1,4 +1,4 @@
# Backlighting
# Backlighting :id=backlighting
Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard.
@@ -6,103 +6,106 @@ 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.
## 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 = yes
```
## Keycodes
Once enabled the following keycodes below can be used to change the backlight level.
## Keycodes :id=keycodes
|Key |Description |
|---------|------------------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness |
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
Once enabled, the following keycodes below can be used to change the backlight level.
## Backlight Functions
|Key |Description |
|---------|-----------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness|
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
|Function |Description |
|----------|-----------------------------------------------------------|
|`backlight_toggle()` |Turn the backlight on or off |
|`backlight_enable()` |Turn the backlight on |
|`backlight_disable()` |Turn the backlight off |
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`get_backlight_level()` |Return the current backlight level |
|`is_backlight_enabled()`|Return whether the backlight is currently on |
## Functions :id=functions
### Backlight Breathing Functions
These functions can be used to change the backlighting in custom code:
|Function |Description |
|----------|---------------------------------------------------|
|`breathing_toggle()` |Turn the backlight breathing on or off |
|`breathing_enable()` |Turns on backlight breathing |
|`breathing_disable()` |Turns off backlight breathing |
|Function |Description |
|------------------------|--------------------------------------------|
|`backlight_toggle()` |Turn the backlight on or off |
|`backlight_enable()` |Turn the backlight on |
|`backlight_disable()` |Turn the backlight off |
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`get_backlight_level()` |Return the current backlight level |
|`is_backlight_enabled()`|Return whether the backlight is currently on|
## Driver Configuration
If backlight breathing is enabled (see below), the following functions are also available:
|Function |Description |
|---------------------|--------------------------------------|
|`breathing_toggle()` |Turn the backlight breathing on or off|
|`breathing_enable()` |Turns on backlight breathing |
|`breathing_disable()`|Turns off backlight breathing |
## Configuration :id=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'
BACKLIGHT_DRIVER = software
```
See below for help on individual drivers.
Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help on individual drivers.
## Common Driver Configuration
To configure the backlighting, `#define` these in your `config.h`:
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|-------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) |
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low|
|Define |Default |Description |
|---------------------|-------------|--------------------------------------------------------------------------------------|
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
### Backlight On State
### Backlight On State :id=backlight-on-state
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
## AVR driver
### AVR Driver :id=avr-driver
The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be:
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_DRIVER = pwm
```
### Caveats
#### Caveats :id=avr-caveats
Hardware PWM is supported according to the following table:
On AVR boards, QMK automatically decides which driver to use according to the following table:
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P|
|-------------|-------------|-------------|-------------|---------|----------|
|`B1` | | | | |Timer 1 |
|`B2` | | | | |Timer 1 |
|`B5` |Timer 1 |Timer 1 | | | |
|`B6` |Timer 1 |Timer 1 | | | |
|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
|`C4` |Timer 3 | | | | |
|`C5` |Timer 3 | |Timer 1 | | |
|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
|`D4` | | | |Timer 1 | |
|`D5` | | | |Timer 1 | |
|-------------|-------------|-------------|-------------|---------|-----------|
|`B1` | | | | |Timer 1 |
|`B2` | | | | |Timer 1 |
|`B5` |Timer 1 |Timer 1 | | | |
|`B6` |Timer 1 |Timer 1 | | | |
|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
|`C4` |Timer 3 | | | | |
|`C5` |Timer 3 | |Timer 1 | | |
|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
|`D4` | | | |Timer 1 | |
|`D5` | | | |Timer 1 | |
All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer:
All other pins will use timer-assisted software PWM:
|Audio Pin|Audio Timer|Software PWM Timer|
|---------|-----------|------------------|
@@ -113,44 +116,9 @@ All other pins will use software PWM. If the [Audio](feature_audio.md) feature i
|`B6` |Timer 1 |Timer 3 |
|`B7` |Timer 1 |Timer 3 |
When both timers are in use for Audio, the backlight PWM will not use a hardware timer, but will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
When both timers are in use for Audio, the backlight PWM cannot use a hardware timer, and will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
### AVR Configuration
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
### Backlight On State
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
### Multiple backlight pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
```c
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
### Hardware PWM Implementation
#### Hardware PWM Implementation :id=hardware-pwm-implementation
When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets.
@@ -159,7 +127,7 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second.
In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM.
### Timer Assisted PWM Implementation
#### Timer Assisted PWM Implementation :id=timer-assisted-implementation
When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle.
@@ -168,81 +136,82 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is the same as in the hardware PWM implementation.
## ARM Driver
### ARM Driver :id=arm-configuration
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be:
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_DRIVER = pwm
```
### Caveats
#### ChibiOS Configuration :id=arm-configuration
The following `#define`s apply only to ARM-based keyboards:
|Define |Default|Description |
|-----------------------|-------|-----------------------------------|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4`|The PWM driver to use |
|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use|
See the ST datasheet for your particular MCU to determine these values. Unless you are designing your own keyboard, you generally should not need to change them.
#### Caveats :id=arm-caveats
Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration.
?> Backlight support for STMF072 has had limited testing, YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your rules.mk.
### Software PWM Driver :id=software-pwm-driver
### ARM Configuration
In this mode, PWM is "emulated" 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`:
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use, see ST datasheets for pin to PWM timer mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PWM_CHANNEL` |`3` |The PWM channel to use, see ST datasheets for pin to PWM channel mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use, see ST datasheets for pin AF mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
## Software PWM Driver :id=software-pwm-driver
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_DRIVER = software
```
### Software PWM Configuration
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|-----------------|-------------|-------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
### Multiple backlight pins
#### Multiple Backlight Pins :id=multiple-backlight-pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle.
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight.
To activate multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`:
```c
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
## Custom Driver
### Custom Driver :id=custom-driver
To enable, add this to your rules.mk:
If none of the above drivers apply to your board (for example, you are using a separate IC to control the backlight), you can implement a custom backlight driver using this simple API provided by QMK. 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:
Then implement any of these hooks:
```c
void backlight_init_ports(void) {
// Optional - Run on startup
// - usually you want to configure pins here
// Optional - runs 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
// Optional - runs 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
// Optional - runs periodically
// Note that this is called in the main keyboard loop,
// so long running actions here can cause performance issues
}
```
## Example Schematic
In this typical example, the backlight LEDs are all connected in parallel towards an N-channel MOSFET. Its gate pin is wired to one of the microcontroller's GPIO pins through a 470Ω resistor to avoid ringing.
A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU.
The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information.
![Backlight example circuit](https://i.imgur.com/BmAvoUC.png)

View File

@@ -2,11 +2,10 @@
## Bluetooth Known Supported Hardware
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules and the Bluefruit EZ-Key, the latter of which is not produced anymore. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
|Board |Bluetooth Protocol |Connection Type |rules.mk |Bluetooth Chip|
|----------------------------------------------------------------|----------------------------|----------------|---------------------------|--------------|
|[Adafruit EZ-Key HID](https://www.adafruit.com/product/1535) |Bluetooth Classic | UART |`BLUETOOTH = AdafruitEZKey` | |
|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic | UART |`BLUETOOTH = RN42` | RN-42 |
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy | SPI |`BLUETOOTH = AdafruitBLE` | nRF51822 |
@@ -24,16 +23,15 @@ Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit
A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
## Adafruit EZ-Key hid
This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will.
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth Rules.mk Options
Use only one of these
The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](reference_glossary.md#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
Use only one of these to enable Bluetooth:
* BLUETOOTH_ENABLE = yes (Legacy Option)
* BLUETOOTH = RN42
* BLUETOOTH = AdafruitEZKey
* BLUETOOTH = AdafruitBLE
## Bluetooth Keycodes

View File

@@ -55,7 +55,7 @@ combo_t key_combos[COMBO_COUNT] = {
[XV_PASTE] = COMBO_ACTION(paste_combo),
};
void process_combo_event(uint8_t combo_index, bool pressed) {
void process_combo_event(uint16_t combo_index, bool pressed) {
switch(combo_index) {
case ZC_COPY:
if (pressed) {

View File

@@ -1,43 +1,151 @@
# Debounce algorithm
# Contact bounce / contact chatter
Mechanical switches often don't have a clean single transition between pressed and unpressed states.
In an ideal world, when you press a switch, you would expect the digital pin to see something like this:
(X axis showing time
```
voltage +----------------------
^ |
| |
| ------------------+
----> time
```
However in the real world you will actually see contact bounce, which will look like multiple 1->0 and 0->1 transitions,
until the value finally settles.
```
+-+ +--+ +-------------
| | | | |
| | | | |
+-----------------+ +-+ +-+
```
The time it takes for the switch to settle might vary with switch type, age, and even pressing technique.
If the device chooses not to mitigate contact bounce, then often actions that happen when the switch is pressed are repeated
multiple times.
There are many ways to handle contact bounce ("Debouncing"). Some include employing additional hardware, for example an RC filter,
while there are various ways to do debouncing in software too, often called debounce algorithms. This page discusses software
debouncing methods available in QMK.
While technically not considered contact bounce/contact chatter, some switch technologies are susceptible to noise, meaning,
while the key is not changing state, sometimes short random 0->1 or 1->0 transitions might be read by the digital circuit, for example:
```
+-+
| |
| |
+-----------------+ +--------------------
```
Many debounce methods (but not all) will also make the device resistant to noise. If you are working with a technology that is
susceptible to noise, you must choose a debounce method that will also mitigate noise for you.
## Types of debounce algorithms
1) Unit of time: Timestamp (milliseconds) vs Cycles (scans)
* Debounce algorithms often have a 'debounce time' parameter, that specifies the maximum settling time of the switch contacts.
This time might be measured in various units:
* Cycles-based debouncing waits n cycles (scans), decreasing count by one each matrix_scan
* Timestamp-based debouncing stores the millisecond timestamp a change occurred, and does substraction to figure out time elapsed.
* Timestamp-based debouncing is usually superior, especially in the case of noise-resistant devices because settling times of physical
switches is specified in units of time, and should not depend on the matrix scan-rate of the keyboard.
* Cycles-based debouncing is sometimes considered inferior, because the settling time that it is able to compensate for depends on the
performance of the matrix scanning code. If you use cycles-based debouncing, and you significantly improve the performance of your scanning
code, you might end up with less effective debouncing. A situation in which cycles-based debouncing might be preferable is when
noise is present, and the scanning algorithm is slow, or variable speed. Even if your debounce algorithm is fundamentally noise-resistant,
if the scanning is slow, and you are using a timestamp-based algorithm, you might end up making a debouncing decision based on only two
sampled values, which will limit the noise-resistance of the algorithm.
* Currently all built-in debounce algorithms support timestamp-based debouncing only. In the future we might
implement cycles-based debouncing, and it will be selectable via a ```config.h``` macro.
2) Symmetric vs Asymmetric
* Symmetric - apply the same debouncing algorithm, to both key-up and key-down events.
* Recommended naming convention: ```sym_*```
* Asymmetric - apply different debouncing algorithms to key-down and key-up events. E.g. Eager key-down, Defer key-up.
* Recommended naming convention: ```asym_*``` followed by details of the type of algorithm in use, in order, for key-down and then key-up
3) Eager vs Defer
* Eager - any key change is reported immediately. All further inputs for DEBOUNCE ms are ignored.
* Eager algorithms are not noise-resistant.
* Recommended naming conventions:
* ```sym_eager_*```
* ```asym_eager_*_*```: key-down is using eager algorithm
* ```asym_*_eager_*```: key-up is using eager algorithm
* Defer - wait for no changes for DEBOUNCE ms before reporting change.
* Defer algorithms are noise-resistant
* Recommended naming conventions:
* ```sym_defer_*```
* ```asym_defer_*_*```: key-down is using defer algorithm
* ```asym_*_defer_*```: key-up is using defer algorithm
4) Global vs Per-Key vs Per-Row
* Global - one timer for all keys. Any key change state affects global timer
* Recommended naming convention: ```*_g```
* Per-key - one timer per key
* Recommended naming convention: ```*_pk```
* Per-row - one timer per row
* Recommended naming convention: ```*_pr```
* Per-key and per-row algorithms consume more resources (in terms of performance,
and ram usage), but fast typists might prefer them over global.
## Debounce algorithms supported by QMK
QMK supports multiple debounce algorithms through its debounce API.
The logic for which debounce method called is below. It checks various defines that you have set in rules.mk
The logic for which debounce method called is below. It checks various defines that you have set in ```rules.mk```
```
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
DEBOUNCE_TYPE?= sym_g
DEBOUNCE_TYPE?= sym_defer_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
```
# Debounce selection
### Debounce selection
| DEBOUNCE_TYPE | Description | What else is needed |
| ------------- | --------------------------------------------------- | ----------------------------- |
| Not defined | Use the default algorithm, currently sym_g | Nothing |
| Not defined | Use the default algorithm, currently sym_defer_g | Nothing |
| 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 |
| 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```.
* Add ```SRC += debounce.c```
### Selecting an included debouncing method
Keyboards may select one of the already implemented debounce methods, by adding to ```rules.mk``` the following line:
```
DEBOUNCE_TYPE = <name of algorithm>
```
Where name of algorithm is one of:
* ```sym_defer_g``` - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occurred, all input changes are pushed.
* This is the current default algorithm. This is the highest performance algorithm with lowest memory usage, and it's also noise-resistant.
* ```sym_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.
* ```sym_eager_pk``` - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* ```sym_defer_pk``` - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key status change is pushed.
### A couple algorithms that could be implemented in the future:
* ```sym_defer_pr```
* ```sym_eager_g```
* ```asym_eager_defer_pk```
### Use your own debouncing code
You have the option to implement you own debouncing algorithm. To do this:
* Set ```DEBOUNCE_TYPE = custom``` in ```rules.mk```.
* Add ```SRC += debounce.c``` in ```rules.mk```
* Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples.
* Debouncing occurs after every raw matrix scan.
* Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly.
* If the algorithm might be applicable to other keyboards, please consider adding it to ```quantum/debounce```
# 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``` 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``` 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.
* sym_pk - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occured on that key, the key status change is pushed.
### Old names
The following old names for existing algorithms will continue to be supported, however it is recommended to use the new names instead.
* sym_g - old name for sym_defer_g
* eager_pk - old name for sym_eager_pk
* sym_pk - old name for sym_defer_pk
* eager_pr - old name for sym_eager_pr

View File

@@ -7,9 +7,17 @@ DIP switches are supported by adding this to your `rules.mk`:
and this to your `config.h`:
```c
// Connects each switch in the dip switch to the GPIO pin of the MCU
#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
```
or
```c
// Connect each switch in the DIP switch to an unused intersections in the key matrix.
#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {2,6} } // List of row and col pairs
```
## Callbacks
The callback functions can be inserted into your `<keyboard>.c`:
@@ -87,4 +95,10 @@ void dip_switch_update_mask_user(uint32_t state) {
## Hardware
### Connects each switch in the dip switch to the GPIO pin of the MCU
One side of the DIP switch should be wired directly to the pin on the MCU, and the other side to ground. It should not matter which side is connected to which, as it should be functionally the same.
### Connect each switch in the DIP switch to an unused intersections in the key matrix.
As with the keyswitch, a diode and DIP switch connect the ROW line to the COL line.

View File

@@ -18,11 +18,11 @@ That should be everything necessary.
To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`.
To finish the recording, press the `DYN_REC_STOP` layer button.
To finish the recording, press the `DYN_REC_STOP` layer button. You can also press `DYN_REC_START1` or `DYN_REC_START2` again to stop the recording.
To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
It is possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again. You can disable this completly by defining `DYNAMIC_MACRO_NO_NESTING` in your `config.h` file.
It is possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again. You can disable this completely by defining `DYNAMIC_MACRO_NO_NESTING` in your `config.h` file.
?> For the details about the internals of the dynamic macros, please read the comments in the `process_dynamic_macro.h` and `process_dynamic_macro.c` files.

147
docs/feature_joystick.md Normal file
View File

@@ -0,0 +1,147 @@
## Joystick
The keyboard can be made to be recognized as a joystick HID device by the operating system.
This is enabled by adding `JOYSTICK_ENABLE` to `rules.mk`. You can set this value to `analog`, `digital`, or `no`.
!> Joystick support is not currently available on V-USB devices.
The joystick feature provides two services:
* reading analog input devices (eg. potentiometers)
* sending gamepad HID reports
Both services can be used without the other, depending on whether you just want to read a device but not send gamepad reports (for volume control for instance)
or send gamepad reports based on values computed by the keyboard.
### Analog Input
To use analog input you must first enable it in `rules.mk`:
```makefile
JOYSTICK_ENABLE = analog
```
An analog device such as a potentiometer found on a gamepad's analog axes is based on a [voltage divider](https://en.wikipedia.org/wiki/Voltage_divider).
It is composed of three connectors linked to the ground, the power input and power output (usually the middle one). The power output holds the voltage that varies based on the position of the cursor,
which value will be read using your MCU's [ADC](https://en.wikipedia.org/wiki/Analog-to-digital_converter).
Depending on which pins are already used by your keyboard's matrix, the rest of the circuit can get a little bit more complicated,
feeding the power input and ground connection through pins and using diodes to avoid bad interactions with the matrix scanning procedures.
### Configuring the Joystick
By default, two axes and eight buttons are defined. This can be changed in your `config.h`:
```c
// Max 32
#define JOYSTICK_BUTTON_COUNT 16
// Max 6: X, Y, Z, Rx, Ry, Rz
#define JOYSTICK_AXES_COUNT 3
```
When defining axes for your joystick, you have to provide a definition array. You can do this from your keymap.c file.
A joystick will either be read from an input pin that allows the use of the ADC, or can be virtual, so that its value is provided by your code.
You have to define an array of type ''joystick_config_t'' and of proper size.
There are three ways for your circuit to work with the ADC, that relies on the use of 1, 2 or 3 pins of the MCU:
* 1 pin: your analog device is directly connected to your device GND and VCC. The only pin used is the ADC pin of your choice.
* 2 pins: your analog device is powered through a pin that allows toggling it on or off. The other pin is used to read the input value through the ADC.
* 3 pins: both the power input and ground are connected to pins that must be set to a proper state before reading and restored afterwards.
The configuration of each axis is performed using one of four macros:
* `JOYSTICK_AXIS_VIRTUAL`: no ADC reading must be performed, that value will be provided by keyboard/keymap-level code
* `JOYSTICK_AXIS_IN(INPUT_PIN, LOW, REST, HIGH)`: a voltage will be read on the provided pin, which must be an ADC-capable pin.
* `JOYSTICK_AXIS_IN_OUT(INPUT_PIN, OUTPUT_PIN, LOW, REST, HIGH)`: the provided `OUTPUT_PIN` will be set high before `INPUT_PIN` is read.
* `JOYSTICK_AXIS_IN_OUT_GROUND(INPUT_PIN, OUTPUT_PIN, GROUND_PIN, LOW, REST, HIGH)`: the `OUTPUT_PIN` will be set high and `GROUND_PIN` will be set low before reading from `INPUT_PIN`.
In any case where an ADC reading takes place (when `INPUT_PIN` is provided), additional `LOW`, `REST` and `HIGH` parameters are used.
These implement the calibration of the analog device by defining the range of read values that will be mapped to the lowest, resting position and highest possible value for the axis (-127 to 127).
In practice, you have to provide the lowest/highest raw ADC reading, and the raw reading at resting position, when no deflection is applied. You can provide inverted `LOW` and `HIGH` to invert the axis.
For instance, an axes configuration can be defined in the following way:
```c
//joystick config
joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {
[0] = JOYSTICK_AXIS_IN_OUT_GROUND(A4, B0, A7, 900, 575, 285),
[1] = JOYSTICK_AXIS_VIRTUAL
};
```
When the ADC reads 900 or higher, the returned axis value will be -127, whereas it will be 127 when the ADC reads 285 or lower. Zero is returned when 575 is read.
In this example, the first axis will be read from the `A4` pin while `B0` is set high and `A7` is set low, using `analogReadPin()`, whereas the second axis will not be read.
In order to give a value to the second axis, you can do so in any customizable entry point: as an action, in `process_record_user()` or in `matrix_scan_user()`, or even in `joystick_task()` which is called even when no key has been pressed.
You assign a value by writing to `joystick_status.axes[axis_index]` a signed 8-bit value (ranging from -127 to 127). Then it is necessary to assign the flag `JS_UPDATED` to `joystick_status.status` in order for an updated HID report to be sent.
The following example writes two axes based on keypad presses, with `KC_P5` as a precision modifier:
```c
#ifdef ANALOG_JOYSTICK_ENABLE
static uint8_t precision_val = 70;
static uint8_t axesFlags = 0;
enum axes {
Precision = 1,
Axis1High = 2,
Axis1Low = 4,
Axis2High = 8,
Axis2Low = 16
};
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
#ifdef ANALOG_JOYSTICK_ENABLE
// virtual joystick
# if JOYSTICK_AXES_COUNT > 1
case KC_P8:
if (record->event.pressed) {
axesFlags |= Axis2Low;
} else {
axesFlags &= ~Axis2Low;
}
joystick_status.status |= JS_UPDATED;
break;
case KC_P2:
if (record->event.pressed) {
axesFlags |= Axis2High;
} else {
axesFlags &= ~Axis2High;
}
joystick_status.status |= JS_UPDATED;
break;
# endif
case KC_P4:
if (record->event.pressed) {
axesFlags |= Axis1Low;
} else {
axesFlags &= ~Axis1Low;
}
joystick_status.status |= JS_UPDATED;
break;
case KC_P6:
if (record->event.pressed) {
axesFlags |= Axis1High;
} else {
axesFlags &= ~Axis1High;
}
joystick_status.status |= JS_UPDATED;
break;
case KC_P5:
if (record->event.pressed) {
axesFlags |= Precision;
} else {
axesFlags &= ~Precision;
}
joystick_status.status |= JS_UPDATED;
break;
#endif
}
return true;
}
```
### Triggering Joystick Buttons
Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured.
To trigger a joystick button, just add the corresponding keycode to your keymap.

View File

@@ -74,10 +74,9 @@ There are a number of functions (and variables) related to how you can use or ma
| [`update_tri_layer(x, y, z)`](ref_functions.md#update_tri_layerx-y-z) | Checks if layers `x` and `y` are both on, and sets `z` based on that (on if both on, otherwise off). |
| [`update_tri_layer_state(state, x, y, z)`](ref_functions.md#update_tri_layer_statestate-x-y-z) | Does the same as `update_tri_layer(x, y, z)`, but from `layer_state_set_*` functions. |
In addition to the functions that you can call, there are a number of callback functions that get called every time the layer changes. This passes the layer state to the function, where it can be read or modified.
In additional to the functions that you can call, there are a number of callback functions that get called every time the layer changes. This passed the layer state to the function, which can be read or modified.
|Callbacks |Description |
|Callback |Description |
|-----------------------------------------------------|----------------------------------------------------------------------------------------|
| `layer_state_set_kb(layer_state_t state)` | Callback for layer functions, for keyboard. |
| `layer_state_set_user(layer_state_t state)` | Callback for layer functions, for users. |
@@ -86,9 +85,9 @@ In additional to the functions that you can call, there are a number of callback
?> For additional details on how you can use these callbacks, check out the [Layer Change Code](custom_quantum_functions.md#layer-change-code) document.
|Check functions |Description |
|-------------------------------------------|------------------------------------------------------------------------------|
| `layer_state_cmp(cmp_layer_state, layer)` | This checks the `cmp_layer_state` to see if the specific `layer` is enabled. This is meant for use with the layer callbacks. |
| `layer_state_is(layer)` | This checks the layer state to see if the specific `layer` is enabled. (calls `layer_state_cmp` for the global layer state). |
It is also possible to check the state of a particular layer using the following functions and macros.
!> There is `IS_LAYER_ON(layer)` as well, however the `layer_state_cmp` function has some additional handling to ensure that on layer 0 that it returns the correct value. Otherwise, if you check to see if layer 0 is on, you may get an incorrect value returned.
|Function |Description |Aliases
|---------------------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| `layer_state_is(layer)` | Checks if the specified `layer` is enabled globally. | `IS_LAYER_ON(layer)`, `IS_LAYER_OFF(layer)` |
| `layer_state_cmp(state, layer)` | Checks `state` to see if the specified `layer` is enabled. Intended for use in layer callbacks. | `IS_LAYER_ON_STATE(state, layer)`, `IS_LAYER_OFF_STATE(state, layer)` |

View File

@@ -39,10 +39,11 @@ In your keymap you can use the following keycodes to map key presses to mouse ac
## Configuring mouse keys
Mouse keys supports two different modes to move the cursor:
Mouse keys supports three different modes to move the cursor:
* **Accelerated (default):** Holding movement keys accelerates the cursor until it reaches its maximum speed.
* **Constant:** Holding movement keys moves the cursor at constant speeds.
* **Combined:** Holding movement keys accelerates the cursor until it reaches its maximum speed, but holding acceleration and movement keys simultaneously moves the cursor at constant speeds.
The same principle applies to scrolling.
@@ -120,3 +121,22 @@ Use the following settings if you want to adjust cursor movement or scrolling:
|`MK_W_INTERVAL_1` |120 |Time between scroll steps (`KC_ACL1`) |
|`MK_W_OFFSET_2` |1 |Scroll steps per scroll action (`KC_ACL2`) |
|`MK_W_INTERVAL_2` |20 |Time between scroll steps (`KC_ACL2`) |
### Combined mode
This mode functions like **Accelerated** mode, however, you can hold `KC_ACL0`, `KC_ACL1` and `KC_ACL2`
to momentarily (while held) set the cursor and scroll speeds to constant speeds. When no acceleration
keys are held, this mode is identical to **Accelerated** mode, and can be modified using all of the
relevant settings.
* **KC_ACL0:** This acceleration sets your cursor to the slowest possible speed. This is useful for very
small and detailed movements of the cursor.
* **KC_ACL1:** This acceleration sets your cursor to half the maximum (user defined) speed.
* **KC_ACL2:** This acceleration sets your cursor to the maximum (computer defined) speed. This is
useful for moving the cursor large distances without much accuracy.
To use constant speed mode, you must at least define `MK_COMBINED` in your keymaps `config.h` file:
```c
#define MK_COMBINED
```

View File

@@ -72,6 +72,43 @@ static void render_logo(void) {
}
```
## Buffer Read Example
For some purposes, you may need to read the current state of the OLED display
buffer. The `oled_read_raw` function can be used to safely read bytes from the
buffer.
In this example, calling `fade_display` in the `oled_task_user` function will
slowly fade away whatever is on the screen by turning random pixels black over
time.
```c
//Setup some mask which can be or'd with bytes to turn off pixels
const uint8_t single_bit_masks[8] = {127, 191, 223, 239, 247, 251, 253, 254};
static void fade_display(void) {
//Define the reader structure
oled_buffer_reader_t reader;
uint8_t buff_char;
if (random() % 30 == 0) {
srand(timer_read());
// Fetch a pointer for the buffer byte at index 0. The return structure
// will have the pointer and the number of bytes remaining from this
// index position if we want to perform a sequential read by
// incrementing the buffer pointer
reader = oled_read_raw(0);
//Loop over the remaining buffer and erase pixels as we go
for (uint16_t i = 0; i < reader.remaining_element_count; i++) {
//Get the actual byte in the buffer by dereferencing the pointer
buff_char = *reader.current_element;
if (buff_char != 0) {
oled_write_raw_byte(buff_char & single_bit_masks[rand() % 8], i);
}
//increment the pointer to fetch a new byte during the next loop
reader.current_element++;
}
}
}
```
## Other Examples
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:
@@ -238,6 +275,10 @@ void oled_write_P(const char *data, bool invert);
// Remapped to call 'void oled_write_ln(const char *data, bool invert);' on ARM
void oled_write_ln_P(const char *data, bool invert);
// Returns a pointer to the requested start index in the buffer plus remaining
// buffer length as struct
oled_buffer_reader_t oled_read_raw(uint16_t start_index);
// Writes a string to the buffer at current cursor position
void oled_write_raw(const char *data, uint16_t size);
@@ -247,6 +288,10 @@ void oled_write_raw_byte(const char data, uint16_t index);
// Writes a PROGMEM string to the buffer at current cursor position
void oled_write_raw_P(const char *data, uint16_t size);
// Sets a specific pixel on or off
// Coordinates start at top-left and go right and down for positive x and y
void oled_write_pixel(uint8_t x, uint8_t y, bool on);
// Can be used to manually turn on the screen if it is off
// Returns true if the screen was on or turns on
bool oled_on(void);
@@ -255,6 +300,10 @@ bool oled_on(void);
// Returns true if the screen was off or turns off
bool oled_off(void);
// Returns true if the oled is currently on, false if it is
// not
bool is_oled_on(void);
// Basically it's oled_render, but with timeout management and oled_task_user calling!
void oled_task(void);

View File

@@ -294,3 +294,13 @@ To debug the mouse, add `debug_mouse = true` or enable via bootmagic.
#define PS2_MOUSE_DEBUG_HID
#define PS2_MOUSE_DEBUG_RAW
```
### Movement Hook :id=movement-hook
Process mouse movement in the keymap before it is sent to the host. Example
uses include filtering noise, adding acceleration, and automatically activating
a layer. To use, define the following function in your keymap:
```c
void ps2_mouse_moved_user(report_mouse_t *mouse_report);
```

View File

@@ -129,7 +129,7 @@ Configure the hardware via your `config.h`:
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
```c
const led_config_t g_led_config = { {
led_config_t g_led_config = { {
// Key Matrix to LED Index
{ 5, NO_LED, NO_LED, 0 },
{ NO_LED, NO_LED, NO_LED, NO_LED },
@@ -159,15 +159,16 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
## Flags :id=flags
|Define |Description |
|------------------------------------|-------------------------------------------|
|`#define HAS_FLAGS(bits, flags)` |Returns true if `bits` has all `flags` set.|
|`#define HAS_ANY_FLAGS(bits, flags)`|Returns true if `bits` has any `flags` set.|
|`#define LED_FLAG_NONE 0x00` |If this LED has no flags. |
|`#define LED_FLAG_ALL 0xFF` |If this LED has all flags. |
|`#define LED_FLAG_MODIFIER 0x01` |If the Key for this LED is a modifier. |
|`#define LED_FLAG_UNDERGLOW 0x02` |If the LED is for underglow. |
|`#define LED_FLAG_KEYLIGHT 0x04` |If the LED is for key backlight. |
|Define |Value |Description |
|----------------------------|------|-------------------------------------------------|
|`HAS_FLAGS(bits, flags)` |*n/a* |Evaluates to `true` if `bits` has all `flags` set|
|`HAS_ANY_FLAGS(bits, flags)`|*n/a* |Evaluates to `true` if `bits` has any `flags` set|
|`LED_FLAG_NONE` |`0x00`|If this LED has no flags |
|`LED_FLAG_ALL` |`0xFF`|If this LED has all flags |
|`LED_FLAG_MODIFIER` |`0x01`|If the LED is on a modifier key |
|`LED_FLAG_UNDERGLOW` |`0x02`|If the LED is for underglow |
|`LED_FLAG_KEYLIGHT` |`0x04`|If the LED is for key backlight |
|`LED_FLAG_INDICATOR` |`0x08`|If the LED is for keyboard state indication |
## Keycodes :id=keycodes
@@ -421,8 +422,8 @@ Where `28` is an unused index from `eeconfig.h`.
|`rgb_matrix_toggle_noeeprom()` |Toggle effect range LEDs between on and off (not written to EEPROM) |
|`rgb_matrix_enable()` |Turn effect range LEDs on, based on their previous state |
|`rgb_matrix_enable_noeeprom()` |Turn effect range LEDs on, based on their previous state (not written to EEPROM) |
|`rgb_matrix_disable()` |Turn effect range LEDs off |
|`rgb_matrix_disable_noeeprom()` |Turn effect range LEDs off (not written to EEPROM) |
|`rgb_matrix_disable()` |Turn effect range LEDs off, based on their previous state |
|`rgb_matrix_disable_noeeprom()` |Turn effect range LEDs off, based on their previous state (not written to EEPROM) |
### Change Effect Mode :id=change-effect-mode
|Function |Description |
@@ -430,19 +431,31 @@ Where `28` is an unused index from `eeconfig.h`.
|`rgb_matrix_mode(mode)` |Set the mode, if RGB animations are enabled |
|`rgb_matrix_mode_noeeprom(mode)` |Set the mode, if RGB animations are enabled (not written to EEPROM) |
|`rgb_matrix_step()` |Change the mode to the next RGB animation in the list of enabled RGB animations |
|`rgb_matrix_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) |
|`rgb_matrix_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations |
|`rgb_matrix_increase_speed()` |Increases the speed of the animations |
|`rgb_matrix_decrease_speed()` |Decreases the speed of the animations |
|`rgb_matrix_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) |
|`rgb_matrix_increase_speed()` |Increase the speed of the animations |
|`rgb_matrix_increase_speed_noeeprom()` |Increase the speed of the animations (not written to EEPROM) |
|`rgb_matrix_decrease_speed()` |Decrease the speed of the animations |
|`rgb_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) |
|`rgb_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 |
|`rgb_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) |
### Change Color :id=change-color
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_increase_hue()` |Increase the hue for effect range LEDs. This wraps around at maximum hue |
|`rgb_matrix_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) |
|`rgb_matrix_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue |
|`rgb_matrix_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) |
|`rgb_matrix_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation |
|`rgb_matrix_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation (not written to EEPROM) |
|`rgb_matrix_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation |
|`rgb_matrix_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation (not written to EEPROM) |
|`rgb_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value |
|`rgb_matrix_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) |
|`rgb_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value |
|`rgb_matrix_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) |
|`rgb_matrix_sethsv(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|`rgb_matrix_sethsv_noeeprom(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |

View File

@@ -126,19 +126,19 @@ Use these defines to add or remove animations from the firmware. When you are ru
The following options are used to tweak the various animations:
|Define |Default |Description |
|------------------------------------|-------------|-------------------------------------------------------------------------------------|
|Define |Default |Description |
|------------------------------------|-------------|-----------------------------------------------------------------------------------------------|
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |*Not defined*|If defined, used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|`RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL`|`1000` |How long to wait between light changes for the "Christmas" animation, in milliseconds|
|`RGBLIGHT_EFFECT_CHRISTMAS_STEP` |`2` |The number of LEDs to group the red/green colors by for the "Christmas" animation |
|`RGBLIGHT_EFFECT_KNIGHT_LED_NUM` |`RGBLED_NUM` |The number of LEDs to have the "Knight" animation travel |
|`RGBLIGHT_EFFECT_KNIGHT_LENGTH` |`3` |The number of LEDs to light up for the "Knight" animation |
|`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by |
|`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls |
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`75` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) |
|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) |
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|`RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL`|`40` |How long (in milliseconds) to wait between animation steps for the "Christmas" animation |
|`RGBLIGHT_EFFECT_CHRISTMAS_STEP` |`2` |The number of LEDs to group the red/green colors by for the "Christmas" animation |
|`RGBLIGHT_EFFECT_KNIGHT_LED_NUM` |`RGBLED_NUM` |The number of LEDs to have the "Knight" animation travel |
|`RGBLIGHT_EFFECT_KNIGHT_LENGTH` |`3` |The number of LEDs to light up for the "Knight" animation |
|`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by |
|`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls |
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`75` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) |
|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) |
### Example Usage to Reduce Memory Footprint
1. Remove `RGBLIGHT_ANIMATIONS` from `config.h`.
@@ -377,6 +377,17 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2
|`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |
#### Speed functions
|Function |Description |
|--------------------------------------------|-------------|
|`rgblight_increase_speed()` |Increases the animation speed |
|`rgblight_increase_speed_noeeprom()` |Increases the animation speed (not written to EEPROM) |
|`rgblight_decrease_speed()` |Decreases the animation speed |
|`rgblight_decrease_speed_noeeprom()` |Decreases the animation speed (not written to EEPROM) |
|`rgblight_set_speed()` |Sets the speed. Value is between 0 and 255 |
|`rgblight_set_speed_noeeprom()` |Sets the speed. Value is between 0 and 255 (not written to EEPROM) |
#### layer functions
|Function |Description |
|--------------------------------------------|-------------|

View File

@@ -48,11 +48,12 @@ However, USB cables, SATA cables, and even just 4 wires have been known to be us
### Serial Wiring
The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0 (aka PDO or pin 3) between the two Pro Micros.
The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0/D1/D2/D3 (aka PD0/PD1/PD2/PD3) between the two Pro Micros.
?> Note that the pin used here is actually set by `SOFT_SERIAL_PIN` below.
![serial wiring](https://i.imgur.com/C3D1GAQ.png)
<img alt="sk-pd0-connection-mono" src="https://user-images.githubusercontent.com/2170248/92296488-28e9ad80-ef70-11ea-98be-c40cb48a0319.JPG" width="48%"/>
<img alt="sk-pd2-connection-mono" src="https://user-images.githubusercontent.com/2170248/92296490-2d15cb00-ef70-11ea-801f-5ace313013e6.JPG" width="48%"/>
### I<sup>2</sup>C Wiring
@@ -60,7 +61,7 @@ The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0
The pull-up resistors may be placed on either half. If you wish to use the halves independently, it is also possible to use 4 resistors and have the pull-ups in both halves.
![I2C wiring](https://i.imgur.com/Hbzhc6E.png)
<img alt="sk-i2c-connection-mono" src="https://user-images.githubusercontent.com/2170248/92297182-92b98580-ef77-11ea-9d7d-d6033914af43.JPG" width="50%"/>
## Firmware Configuration
@@ -90,6 +91,24 @@ You can configure the firmware to read a pin on the controller to determine hand
This will read the specified pin. If it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side.
#### Handedness by Matrix Pin
You can configure the firmware to read key matrix pins on the controller to determine handedness. To do this, add the following to your `config.h` file:
```c
#define SPLIT_HAND_MATRIX_GRID D0, F1
```
The first pin is the output pin and the second is the input pin.
Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handness.
Normally, when a diode is connected to an intersection, it is judged to be left. If you add the following definition, it will be judged to be right.
```c
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
```
#### Handedness by EEPROM
This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout.

View File

@@ -58,7 +58,7 @@ On the display tab click 'Open stroke display'. With Plover disabled you should
## Interfacing with the code :id=interfacing-with-the-code
The steno code has three interceptible hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
The steno code has three interceptable hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
```c
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]);

View File

@@ -28,7 +28,9 @@ After this, you'll want to use the `tap_dance_actions` array to specify what act
* `ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer)`: Sends the `kc` keycode when tapped once, or toggles the state of `layer`. (this functions like the `TG` layer keycode).
* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action.
* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets.
* `ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`.
* ~~`ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`.
* This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](custom_quantum_functions.md#Custom_Tapping_Term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function.
The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise.

View File

@@ -239,3 +239,4 @@ There are a number of DFU commands that you can use to flash firmware to a STM32
* `:dfu-util-split-left` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Left Side" EEPROM setting for split keyboards.
* `:dfu-util-split-right` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Right Side" EEPROM setting for split keyboards.
* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.
* `:st-flash` - This allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util.

View File

@@ -101,10 +101,6 @@ This allows you to send Unicode characters by inputting a mnemonic corresponding
For further details, as well as limitations, see the [Unicode page](feature_unicode.md).
`BLUETOOTH_ENABLE`
This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins.
`AUDIO_ENABLE`
This allows you output audio on the C6 pin (needs abstracting). See the [audio page](feature_audio.md) for more information.

View File

@@ -67,7 +67,7 @@ The `config.h` file is where you configure the hardware and feature set for your
At the top of the `config.h` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `VENDOR_ID` as `0xFEED`. For the `PRODUCT_ID` you should pick a number that is not yet in use.
Do change the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` lines to accurately reflect your keyboard.
Do change the `MANUFACTURER` and `PRODUCT` lines to accurately reflect your keyboard.
```c
#define VENDOR_ID 0xFEED
@@ -75,7 +75,6 @@ Do change the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` lines to accurately r
#define DEVICE_VER 0x0001
#define MANUFACTURER You
#define PRODUCT my_awesome_keyboard
#define DESCRIPTION A custom keyboard
```
?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead takes these from the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html) by default. `lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in.

View File

@@ -192,7 +192,7 @@ When developing your keyboard, keep in mind that all warnings will be treated as
## Copyright Blurb
If you're adapting your keyboard's setup from another project, but not using the same code, but sure to update the copyright header at the top of the files to show your name, in this format:
If you're adapting your keyboard's setup from another project, but not using the same code, be sure to update the copyright header at the top of the files to show your name, in this format:
Copyright 2017 Your Name <your@email.com>

View File

@@ -81,8 +81,8 @@ STM32 MCUs allows a variety of pins to be configured as I2C pins depending on th
|--------------------------|----------------------------------------------------------------------------------------------|---------|
| `I2C1_SCL_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL | `GPIOB` |
| `I2C1_SDA_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA | `GPIOB` |
| `I2C1_SCL` | The pin number for the SCL pin (0-9) | `6` |
| `I2C1_SDA` | The pin number for the SDA pin (0-9) | `7` |
| `I2C1_SCL` | The pin number for the SCL pin (0-15) | `6` |
| `I2C1_SDA` | The pin number for the SDA pin (0-15) | `7` |
| `I2C1_BANK` (deprecated) | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superceded by `I2C1_SCL_BANK`, `I2C1_SDA_BANK` | `GPIOB` |
The ChibiOS I2C driver configuration depends on STM32 MCU:

View File

@@ -141,7 +141,9 @@ To do this manually:
?> It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to use ISP again to write new firmware to your keyboard.
To do this the easy way, you can flash the board using the `:production` target when compiling. This compiles the firmware, then compiles the QMK DFU bootloader, and then creates a combined image. Once this is done, you'll see three files:
#### Create QMK DFU Bootloader and Production images
You can create the firmware, the QMK DFU Bootloader and the production firmware images for the board using the `:production` target when compiling. Once this is done, you'll see three files:
* `<keyboard>_<keymap>.hex`
* `<keyboard>_<keymap>_bootloader.hex`
* `<keyboard>_<keymap>_production.hex`
@@ -236,12 +238,12 @@ For Caterina on the `atmega32u4`, these are the fuse settings that you want:
| Fuse | Setting|
|----------|--------|
| Low | `0xFF` |
| High | `0xD9` |
| Extended | `0xC3` |
| High | `0xD8` |
| Extended | `0xCB` |
To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xC3:m` to your command. So the final command should look something like:
To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` to your command. So the final command should look something like:
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xC3:m
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m
If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](http://www.engbedded.com/fusecalc/) to find a better value for you.

View File

@@ -6,6 +6,7 @@
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [手助けを得る/サポート](ja/support.md)
* [他のリソース](ja/newbs_learn_more_resources.md)
* [シラバス](ja/syllabus.md)
* FAQ
* [一般的な FAQ](ja/faq_general.md)
@@ -33,7 +34,9 @@
* [機能のカスタマイズ](ja/custom_quantum_functions.md)
* [Zadig を使ったドライバのインストール](ja/driver_installation_zadig.md)
* [キーマップの概要](ja/keymap.md)
* [Vagrant のガイド](ja/getting_started_vagrant.md)
* 開発環境
* [Docker のガイド](ja/getting_started_docker.md)
* [Vagrant のガイド](ja/getting_started_vagrant.md)
* 書き込み
* [書き込み](ja/flashing.md)
* [ATmega32A の書き込み (ps2avrgb)](ja/flashing_bootloadhid.md)
@@ -52,6 +55,7 @@
* 単純なキーコード
* [完全なリスト](ja/keycodes.md)
* [基本的なキーコード](ja/keycodes_basic.md)
* [言語固有のキーコード](ja/reference_keymap_extras.md)
* [修飾キー](ja/feature_advanced_keycodes.md)
* [Quantum キーコード](ja/quantum_keycodes.md)
@@ -72,9 +76,10 @@
* [デバウンス API](ja/feature_debounce_type.md)
* [キーロック](ja/feature_key_lock.md)
* [レイヤー](ja/feature_layers.md)
* [One Shot Keys](ja/one_shot_keys.md)
* [ワンショットキー](ja/one_shot_keys.md)
* [ポインティング デバイス](ja/feature_pointing_device.md)
* [Swap Hands](ja/feature_swap_hands.md)
* [ロー HID](ja/feature_rawhid.md)
* [スワップハンド](ja/feature_swap_hands.md)
* [タップダンス](ja/feature_tap_dance.md)
* [タップホールド設定](ja/tap_hold.md)
* [ターミナル](ja/feature_terminal.md)
@@ -98,18 +103,21 @@
* [DIP スイッチ](ja/feature_dip_switch.md)
* [エンコーダ](ja/feature_encoders.md)
* [触覚フィードバック](ja/feature_haptic_feedback.md)
* [Proton C 規約](ja/proton_c_conversion.md)
* [Proton C 変換](ja/proton_c_conversion.md)
* [PS/2 マウス](ja/feature_ps2_mouse.md)
* [分割キーボード](ja/feature_split_keyboard.md)
* [Stenography](ja/feature_stenography.md)
* [速記](ja/feature_stenography.md)
* [感熱式プリンタ](ja/feature_thermal_printer.md)
* [Velocikey](ja/feature_velocikey.md)
* QMK の開発
* [PR チェックリスト](ja/pr_checklist.md)
* 互換性を破る変更/Breaking changes
* [概要](ja/breaking_changes.md)
* [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md)
* 履歴
* [2020年8月29日](ja/ChangeLog/20200829.md)
* [2020年5月30日](ja/ChangeLog/20200530.md)
* [2020年2月29日](ja/ChangeLog/20200229.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
@@ -124,7 +132,8 @@
* [SPI ドライバ](ja/spi_driver.md)
* [WS2812 ドライバ](ja/ws2812_driver.md)
* [EEPROM ドライバ](ja/eeprom_driver.md)
* [GPIO コントロール](ja/internals_gpio_control.md)
* [シリアル ドライバ](ja/serial_driver.md)
* [GPIO 制御](ja/internals_gpio_control.md)
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)
* Python 開発
@@ -136,6 +145,11 @@
* [開発環境](ja/api_development_environment.md)
* [アーキテクチャの概要](ja/api_development_overview.md)
* ハードウェアプラットフォーム開発
* Arm/ChibiOS
* [MCU の選択](ja/platformdev_selecting_arm_mcu.md)
* [早期初期化](ja/platformdev_chibios_earlyinit.md)
* QMK Reference
* [QMK への貢献](ja/contributing.md)
* [QMK ドキュメントの翻訳](ja/translating.md)
@@ -155,9 +169,9 @@
* QMK の内部詳細(作成中)
* [定義](ja/internals_defines.md)
* [Input Callback Reg](ja/internals_input_callback_reg.md)
* [入力コールバック登録](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)
* [Midi 送信関数](ja/internals_send_functions.md)
* [Sysex Tools](ja/internals_sysex_tools.md)

View File

@@ -0,0 +1,8 @@
# 開発環境のセットアップ
<!---
original document: 0.9.50:docs/api_development_environment.md
git diff 0.9.50 HEAD -- docs/api_development_environment.md | cat
-->
開発環境をセットアップするには、[qmk_web_stack](https://github.com/qmk/qmk_web_stack) に行ってください。

View File

@@ -0,0 +1,49 @@
# QMK コンパイラ開発ガイド
<!---
original document: 0.9.50:docs/api_development_overview.md
git diff 0.9.50 HEAD -- docs/api_development_overview.md | cat
-->
このページでは、開発者に QMK コンパイラを紹介しようと思います。コードを読まなければならないような核心となる詳細に立ち入って調べることはしません。ここで得られるものは、コードを読んで理解を深めるためのフレームワークです。
# 概要
QMK Compile API は、いくつかの可動部分からできています:
![構造図](https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg)
API クライアントは API サービスと排他的にやりとりをします。ここでジョブをサブミットし、状態を調べ、結果をダウンロードします。API サービスはコンパイルジョブを [Redis Queue](https://python-rq.org) に挿入し、それらのジョブの結果について RQ と S3 の両方を調べます。
ワーカーは RQ から新しいコンパイルジョブを取り出し、ソースとバイナリを S3 互換のストレージエンジンにアップロードします。
# ワーカー
QMK コンパイラワーカーは実際のビルド作業に責任を持ちます。ワーカーは RQ からジョブを取り出し、ジョブを完了するためにいくつかの事を行います:
* 新しい qmk_firmware のチェックアウトを作成する
* 指定されたレイヤーとキーボードメタデータを使って `keymap.c` をビルドする
* ファームウェアをビルドする
* ソースのコピーを zip 形式で圧縮する
* ファームウェア、ソースの zip ファイル、メタデータファイルを S3 にアップロードする
* ジョブの状態を RQ に送信する
# API サービス
API サービスは比較的単純な Flask アプリケーションです。理解しておくべきことが幾つかあります。
## @app.route('/v1/compile', methods=['POST'])
これは API の主なエントリーポイントです。クライアントとのやりとりはここから開始されます。クライアントはキーボードを表す JSON ドキュメントを POST し、API はコンパイルジョブをサブミットする前にいくらかの(とても)基本的な検証を行います。
## @app.route('/v1/compile/&lt;string:job_id&gt;', methods=['GET'])
これは最もよく呼ばれるエンドポイントです。ジョブの詳細が redis から利用可能であればそれを取り出し、そうでなければ S3 からキャッシュされたジョブの詳細を取り出します。
## @app.route('/v1/compile/&lt;string:job_id&gt;/download', methods=['GET'])
このメソッドによりユーザはコンパイルされたファームウェアファイルをダウンロードすることができます。
## @app.route('/v1/compile/&lt;string:job_id&gt;/source', methods=['GET'])
このメソッドによりユーザはファームウェアのソースをダウンロードすることができます。

73
docs/ja/api_docs.md Normal file
View File

@@ -0,0 +1,73 @@
# QMK API
<!---
original document: 0.9.50:docs/api_docs.md
git diff 0.9.50 HEAD -- docs/api_docs.md | cat
-->
このページは QMK API の使い方を説明します。もしあなたがアプリケーション開発者であれば、全ての [QMK](https://qmk.fm) キーボードのファームウェアをコンパイルするために、この API を使うことができます。
## 概要
このサービスは、カスタムキーマップをコンパイルするための非同期 API です。API に 何らかの JSON を POST し、定期的に状態をチェックし、ファームウェアのコンパイルが完了していれば、結果のファームウェアと(もし希望すれば)そのファームウェアのソースコードをダウンロードすることができます。
#### JSON ペイロードの例:
```json
{
"keyboard": "clueboard/66/rev2",
"keymap": "my_awesome_keymap",
"layout": "LAYOUT_all",
"layers": [
["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
["KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
```
ご覧のとおり、ペイロードにはファームウェアを作成および生成するために必要なキーボードの全ての側面を記述します。各レイヤーは QMK キーコードの1つのリストで、キーボードの `LAYOUT` マクロと同じ長さです。もしキーボードが複数の `LAYOUT` マクロをサポートする場合、どのマクロを使うかを指定することができます。
## コンパイルジョブのサブミット
キーマップをファームウェアにコンパイルするには、単純に JSON を `/v1/compile` エンドポイントに POST します。以下の例では、JSON ペイロードを `json_data` という名前のファイルに配置しています。
```
$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile
{
"enqueued": true,
"job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6"
}
```
## 状態のチェック
キーマップをサブミットした後で、簡単な HTTP GET 呼び出しを使って状態をチェックすることができます:
```
$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6
{
"created_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"id": "f5f9b992-73b4-479b-8236-df1deb37c163",
"status": "running",
"result": null
}
```
これは、ジョブをキューに入れることに成功し、現在実行中であることを示しています。5つの状態がありえます:
* **failed**: なんらかの理由でコンパイルサービスが失敗しました。
* **finished**: コンパイルが完了し、結果を見るには `result` をチェックする必要があります。
* **queued**: キーマップはコンパイルサーバが利用可能になるのを待っています。
* **running**: コンパイルが進行中で、まもなく完了するはずです。
* **unknown**: 深刻なエラーが発生し、[バグを報告](https://github.com/qmk/qmk_compiler/issues)する必要があります。
## 完了した結果を検証
コンパイルジョブが完了したら、`result` キーをチェックします。このキーの値は幾つかの情報を含むハッシュです:
* `firmware_binary_url`: 書き込み可能なファームウェアの URL のリスト
* `firmware_keymap_url`: `keymap.c` の URL のリスト
* `firmware_source_url`: ファームウェアの完全なソースコードの URL のリスト
* `output`: このコンパイルジョブの stdout と stderr。エラーはここで見つけることができます。

20
docs/ja/api_overview.md Normal file
View File

@@ -0,0 +1,20 @@
# QMK API
<!---
original document: 0.9.50:docs/api_overview.md
git diff 0.9.50 HEAD -- docs/api_overview.md | cat
-->
QMK API は、Web と GUI ツールが [QMK](http://qmk.fm/) によってサポートされるキーボード用の任意のキーマップをコンパイルするために使うことができる、非同期 API を提供します。標準のキーマップテンプレートは、C コードのサポートを必要としない全ての QMK キーコードをサポートします。キーボードのメンテナは独自のカスタムテンプレートを提供して、より多くの機能を実現することができます。
## アプリケーション開発者
もしあなたがアプリケーションでこの API を使うことに興味があるアプリケーション開発者であれば、[API の使用](ja/api_docs.md) に行くべきです。
## キーボードのメンテナ
もし QMK Compiler API でのあなたのキーボードのサポートを強化したい場合は、[キーボードサポート](ja/reference_configurator_support.md) の節に行くべきです。
## バックエンド開発者
もし API 自体に取り組むことに興味がある場合は、[開発環境](ja/api_development_environment.md)のセットアップから始め、それから [API のハッキング](ja/api_development_overview.md) を調べるべきです。

View File

@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.9.0:docs/breaking_changes.md
git diff 0.9.0 HEAD -- docs/breaking_changes.md | cat
original document: 0.10.33:docs/breaking_changes.md
git diff 0.10.33 HEAD -- docs/breaking_changes.md | cat
-->
このドキュメントは QMK の互換性を破る変更(Breaking change) のプロセスについて説明します。
@@ -15,22 +15,23 @@ Breaking change ピリオドとは、危険な変更、または予想外の変
## 過去の Breaking change には何が含まれますか?
* [2020年8月29日](ja/ChangeLog/20200829.md)
* [2020年5月30日](ja/ChangeLog/20200530.md)
* [2020年2月29日](ja/ChangeLog/20200229.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
## 次の Breaking change はいつですか?
次の Breaking change は2020年8月29日に予定されています。
次の Breaking change は2020年11月28日に予定されています。
### 重要な日付
* [x] 2020年 5月30日 - `develop` が作成されました。毎週リベースされます。
* [ ] 2020年 8月 1日 - `develop` は新しいPRを取り込みません。
* [ ] 2020年 8月 1日 - テスターの募集。
* [ ] 2020年 8月27日 - `master`がロックされ、PR はマージされません。
* [ ] 2020年 8月29日 - `develop``master` にマージします。
* [ ] 2020年 8月29日 - `master` のロックが解除されます。PR を再びマージすることができます。
* [x] 2020年 8月29日 - `develop` が作成されました。毎週リベースされます。
* [ ] 2020年10月31日 - `develop` は新しいPRを取り込みません。
* [ ] 2020年10月31日 - テスターの募集。
* [ ] 2020年11月26日 - `master`がロックされ、PR はマージされません。
* [ ] 2020年11月28日 - `develop``master` にマージします。
* [ ] 2020年11月28日 - `master` のロックが解除されます。PR を再びマージすることができます。
## どのような変更が含まれますか?

223
docs/ja/cli_development.md Normal file
View File

@@ -0,0 +1,223 @@
# QMK CLI 開発
<!---
original document: 0.9.19:docs/cli_development.md
git diff 0.9.19 HEAD -- docs/cli_development.md | cat
-->
このドキュメントは、新しい `qmk` サブコマンドを書きたい開発者に役立つ情報が含まれています。
# 概要
QMK CLI は git で有名になったサブコマンドパターンを使って動作します。メインの `qmk` スクリプトは単に環境をセットアップし、実行する正しいエントリポイントを選択するためにあります。各サブコマンドは、何らかのアクションを実行しシェルのリターンコード、または None を返すエントリーポイント (`@cli.subcommand()` で修飾されます)を備えた自己完結型のモジュールです。
## 開発者モード:
キーボードを保守、あるいは QMK に貢献したい場合は、CLI の「開発者」モードを有効にすることができます:
`qmk config user.developer=True`
これにより利用可能な全てのサブコマンドが表示されます。
**注意:** 追加で必要なものをインストールする必要があります:
```bash
python3 -m pip install -r requirements-dev.txt
```
# サブコマンド
[MILC](https://github.com/clueboard/milc) は、`qmk` が引数の解析、設定、ログ、およびほかの多くの機能を処理するために使用する CLI フレームワークです。グルーコードを書くために時間を無駄にすることなく、ツールの作成に集中できます。
ローカル CLI 内のサブコマンドは、常に `qmk_firmware/lib/python/qmk/cli` で見つかります。
サブコマンドの例を見てみましょう。これは `lib/python/qmk/cli/hello.py` です:
```python
"""QMK Python Hello World
This is an example QMK CLI script.
"""
from milc import cli
@cli.argument('-n', '--name', default='World', help='Name to greet.')
@cli.subcommand('QMK Hello World.')
def hello(cli):
"""Log a friendly greeting.
"""
cli.log.info('Hello, %s!', cli.config.hello.name)
```
最初に `milc` から `cli` をインポートします。これが、ユーザとやり取りをし、スクリプトの挙動を制御する方法です。`@cli.argument()` を使って、コマンドラインフラグ `--name` を定義します。これは、ユーザが設定できる `hello.name` (そして対応する `user.name`) という名前の設定変数も作成し、引数を指定する必要が無くなります。`cli.subcommand()` デコレータは、この関数をサブコマンドとして指定します。サブコマンドの名前は関数の名前から取られます。
関数の中に入ると、典型的な "Hello, World!" プログラムが見つかります。`cli.log` を使って、基礎となる [ロガーオブジェクト](https://docs.python.org/3.6/library/logging.html#logger-objects) にアクセスし、その挙動はユーザが制御できます。またユーザが指定した名前の値に `cli.config.hello.name` でアクセスします。`cli.config.hello.name` の値は、ユーザが指定した `--name` 引数を調べることで決定されます。指定されていない場合、`qmk.ini` 設定ファイルの中の値が使われ、どちらも指定されていない場合は `cli.argument()` デコレータで指定されたデフォルトが代用されます。
# ユーザとの対話処理
MILC と QMK CLI にはユーザとやり取りするための幾つかの便利なツールがあります。これらの標準ツールを使うと、テキストに色を付けて対話し易くし、ユーザはその情報をいつどのように表示および保存するかを制御することができます。
## テキストの表示
サブコマンド内でテキストを出力するための2つの主な方法があります- `cli.log``cli.echo()`。それらは似た方法で動作しますが、ほとんどの一般的な目的の出力には `cli.log.info()` を使うことをお勧めします。
特別なトークンを使用してテキストを色付けし、プログラムの出力を理解しやすくすることができます。以下の[テキストの色付け](#colorizing-text)を見てください。
これらの両方の方法は python の [printf 形式の文字列書式化](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting) を使った組み込みの文字列書式化をサポートします。テキスト文字列内で`%s``%d` のようなトークンを使い、引数で値を渡すことができます。例として、上記の Hello、World プログラムを見てください。
書式演算子 (`%`) を直接使わないでください、常に引数で値を渡します。
### ログ (`cli.log`)
`cli.log` オブジェクトは[ロガーオブジェクト](https://docs.python.org/3.6/library/logging.html#logger-objects)へのアクセスを与えます。ログ出力を設定し、ユーザに各ログレベルの素敵な絵文字(またはターミナルが unicode をサポートしない場合はログレベル名)を表示します。このようにして、ユーザは何か問題が発生した時に最も重要なメッセージを一目で確認することができます。
デフォルトのログレベルは `INFO` です。ユーザが `qmk -v <subcommand>` を実行すると、デフォルトのログレベルは `DEBUG` に設定されます。
| 関数 | 絵文字 |
|----------|-------|
| cli.log.critical | `{bg_red}{fg_white}¬_¬{style_reset_all}` |
| cli.log.error | `{fg_red}☒{style_reset_all}` |
| cli.log.warning | `{fg_yellow}⚠{style_reset_all}` |
| cli.log.info | `{fg_blue}Ψ{style_reset_all}` |
| cli.log.debug | `{fg_cyan}☐{style_reset_all}` |
| cli.log.notset | `{style_reset_all}¯\\_(o_o)_/¯` |
### 出力 (`cli.echo`)
場合によっては単にログシステムの外部でテキストを出力する必要があります。これは、固定データを出力したり、ログに記録してはいけない何かを書きだす場合に適しています。ほとんどの場合、`cli.echo` よりも `cli.log.info()` を選ぶべきです。
### テキストの色付け
テキスト内に色トークンを含めることで、テキストの出力を色付けすることができます。情報を伝えるためではなく、強調するために色を使います。ユーザは色を無効にできることを覚えておいてください。色を無効にした場合でもサブコマンドは引き続き使えるようにしてください。
背景色を設定するのは、あなたがやっていることに不可欠ではない限り、通常は避けるべきです。ユーザは、ターミナルの色に関しては多くの好みを持つため、あなたは黒と白のどちらの背景に対してもうまく機能する色を選択する必要があることを覚えておいてください。
'fg' という接頭辞の付いた色は、前景(テキスト)色に影響します。'bg' という接頭辞の付いた色は、背景色に影響します。
| 色 | 背景 | 拡張背景 | 前景 | 拡張前景 |
|-------|------------|---------------------|------------|--------------------|
| 黒 | {bg_black} | {bg_lightblack_ex} | {fg_black} | {fg_lightblack_ex} |
| 青 | {bg_blue} | {bg_lightblue_ex} | {fg_blue} | {fg_lightblue_ex} |
| シアン | {bg_cyan} | {bg_lightcyan_ex} | {fg_cyan} | {fg_lightcyan_ex} |
| 緑 | {bg_green} | {bg_lightgreen_ex} | {fg_green} | {fg_lightgreen_ex} |
| マゼンタ | {bg_magenta} | {bg_lightmagenta_ex} | {fg_magenta} | {fg_lightmagenta_ex} |
| 赤 | {bg_red} | {bg_lightred_ex} | {fg_red} | {fg_lightred_ex} |
| 白 | {bg_white} | {bg_lightwhite_ex} | {fg_white} | {fg_lightwhite_ex} |
| 黄 | {bg_yellow} | {bg_lightyellow_ex} | {fg_yellow} | {fg_lightyellow_ex} |
ANSI 出力の挙動を変更するために使うことができる制御シーケンスもあります。
| 制御シーケンス | 説明 |
|-------------------|-------------|
| {style_bright} | テキストを明るくする |
| {style_dim} | テキストを暗くする |
| {style_normal} | テキストを通常にする (`{style_bright}` または `{style_dim}` のどちらでもない) |
| {style_reset_all} | 全てのテキストの属性をデフォルトに再設定する(これは自動的に全ての文字列の最後に自動的に追加されます。) |
| {bg_reset} | 背景色をユーザのデフォルトに再設定します。 |
| {fg_reset} | 背景色をユーザのデフォルトに再設定します。 |
# 引数と設定
QMK は引数の解析と設定の詳細をあなたの代わりに処理します。新しい引数を追加すると、サブコマンドの名前と引数の長い名前に基づいて設定ツリーに自動的に組み込まれます。属性形式のアクセス (`cli.config.<subcommand>.<argument>`) あるいは辞書形式のアクセス (`cli.config['<subcommand>']['<argument>']`) を使って、`cli.config` 内のこの設定にアクセスすることができます。
内部では、QMK は [設定ファイルのパーサ](https://docs.python.org/3/library/configparser.html) を使って設定を格納します。これにより、人間が編集可能な方法で設定を表す簡単で分かり易い方法を提供します。この設定へのアクセスをラップして、設定ファイルのパーサーが通常持たない幾つかの機能を提供しています。
## 設定値の読み込み
通常期待される全ての方法で `cli.config` とやり取りすることができます。例えば、`qmk compile` コマンドは `cli.config.compile.keyboard` からキーボード名を取得します。値がコマンドライン、環境変数あるいは設定ファイルからきたものであるかどうかを知る必要はありません。
繰り返しもサポートされます:
```
for section in cli.config:
for key in cli.config[section]:
cli.log.info('%s.%s: %s', section, key, cli.config[section][key])
```
## 設定値の設定
通常の方法で設定値を設定することができます。
辞書形式:
```
cli.config['<section>']['<key>'] = <value>
```
属性形式:
```
cli.config.<section>.<key> = <value>
```
## 設定値の削除
通常の方法で設定値を削除することができます。
辞書形式:
```
del(cli.config['<section>']['<key>'])
```
属性形式:
```
del(cli.config.<section>.<key>)
```
## 設定ファイルの書き方
設定は変更しても書き出されません。ほとんどのコマンドでこれをする必要はありません。ユーザに `qmk config` を使って設定を慎重に変更させることをお勧めします。
設定を書き出すために `cli.save_config()` を使うことができます。
## 設定からの引数の除外
一部の引数は設定ファイルに反映すべきではありません。これらは引数を作成する時に `arg_only=True` を追加することで除外することができます。
例:
```
@cli.argument('-o', '--output', arg_only=True, help='File to write to')
@cli.argument('filename', arg_only=True, help='Configurator JSON file')
@cli.subcommand('Create a keymap.c from a QMK Configurator export.')
def json_keymap(cli):
pass
```
`cli.args` を使ってのみこれらの引数にアクセスすることができます。例えば:
```
cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.output)
```
# テスト、リントおよびフォーマット
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``pyformat` サブコマンドを使うことができます。
### テストとリント
qmk pytest
### フォーマット
qmk pyformat
## フォーマットの詳細
[yapf](https://github.com/google/yapf) を使ってコードを自動的にフォーマットします。フォーマットの設定は `setup.cfg``[yapf]` セクションにあります。
?> ヒント- 多くのエディタは yapf をプラグインとして使って、入力したコードを自動的にフォーマットすることができます。
## テストの詳細
テストは `lib/python/qmk/tests/` にあります。このディレクトリに単体テストと統合テストの両方があります。コードの単体テストと統合テストの両方を書いてほしいですが、一方のみ書く場合は統合テストを優先してください。
PR にテストの包括的なセットが含まれない場合は、次のようなコメントをコードに追加して、他の人が手助けできるようにしてください:
# TODO(unassigned/<your_github_username>): Write <unit|integration> tests
[nose2](https://nose2.readthedocs.io/en/latest/getting_started.html) を使ってテストを実行します。テスト関数でできることの詳細については、nose2 のドキュメントを参照してください。
## リントの詳細
flake8 を使ってコードをリントします。PR を開く前に、コードは flake8 をパスしなければなりません。これは `qmk pytest` を実行するときにチェックされ、PR を登録したときに CI によってチェックされます。

View File

@@ -0,0 +1,63 @@
# コーディング規約 (C)
<!---
original document: 0.9.19:docs/coding_conventions_c.md
git diff 0.9.19 HEAD -- docs/coding_conventions_c.md | cat
-->
私たちのスタイルのほとんどはかなり理解しやすいですが、現時点では完全に一貫しているわけではありません。変更箇所周辺のコードのスタイルと一致させる必要がありますが、そのコードに一貫性が無い場合や不明瞭な場合は以下のガイドラインに従ってください:
* 4つのスペース (ソフトタブ) を使ってインデントします。
* 修正版 One True Brace Style を使います。
* 開き括弧: ブロックを開始する文と同じ行の最後
* 閉じ括弧: ブロックを開始した文と同じ字下げ
* Else If: 行の先頭に閉じ括弧を置き、次の開き括弧を同じ行の最後に置きます。
* 省略可能な括弧: 常に括弧を付け加えます。
* 良い: if (condition) { return false; }
* 悪い: if (condition) return false;
* C 形式のコメントの使用を推奨します: `/* */`
* コメントを機能を説明するストーリーと考えて下さい。
* 特定の決定がなされた理由を充分なコメントで説明してください。
* 分かり切ったコメントは書かないでください。
* 分かり切ったコメントであるか確信できない場合は、コメントを含めてください。
* 一般的に、行を折り返さないで、必要なだけ長くすることができます。行を折り返すことを選択した場合は、76列を超えて折り返さないでください。
* 古い形式のインクルードガード (`#ifndef THIS_FILE_H``#define THIS_FILE_H`、...、`#endif`) ではなく、ヘッダファイルの先頭で `#pragma once` を使います。
* プリプロセッサ if の両方の形式を受け付けます: `#ifdef DEFINED``#if defined(DEFINED)`
* どちらがいいかわからない場合は、`#if defined(DEFINED)` 形式を使ってください。
* 複数の条件 `#if` に移行する場合を除き、既存のコードを別のスタイルに変更しないでください。
* プリプロセッサディレクティブをインデントする方法(あるいはするかどうか)を決定する時は、以下の事に留意してください:
* 一貫性よりも読みやすさが重要です。
* ファイルの既存のスタイルに従ってください。ファイルのスタイルが混在している場合は、修正しようとしているセクションに適したスタイルに従ってください。
* インデントする時は、ハッシュを行の先頭に置き、`#``if` の間に空白を追加します。`#` の後ろに4つスペースを入れて開始します。
* 周りの C コードのインデントレベルに従うか、プリプロセッサのディレクティブに独自のインデントレベルを設定することができます。コードの意図を最もよく伝えるスタイルを選択してください。
わかりやすいように例を示します:
```c
/* Enums for foo */
enum foo_state {
FOO_BAR,
FOO_BAZ,
};
/* Returns a value */
int foo(void) {
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
}
```
# clang-format を使った自動整形
[Clang-format](https://clang.llvm.org/docs/ClangFormat.html) は LLVM の一部で、誰もが手動で整形するほど暇ではないため、コードを自動整形することができます。私たちは、上記のコーディング規約のほとんどを適用する設定ファイルを提供しています。空白と改行のみを変更するため、省略可能な括弧は自分で付け加えることを忘れないでください。
Windows で clang-format を入手するには [full LLVM インストーラ](http://llvm.org/builds/)を使い、Ubuntu では `sudo apt install clang-format` を使ってください。
コマンドラインから実行する場合、オプションとして `-style=file` を渡すと、QMK ルートディレクトリ内の .clang-format 設定ファイルを自動的に見つけます。
VSCode を使う場合は、標準の C/C++ プラグインが clang-format をサポートしますが、その他にも [独立した拡張機能](https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat) があります。
幾つかのコード (LAYOUT マクロのような)が clang-format によって破壊されるため、これらのファイルで clang-format を実行しないか、整形したくないコードを `// clang-format off``// clang-format on` で囲みます。

View File

@@ -0,0 +1,331 @@
# コーディング規約 (Python)
<!---
original document: 0.9.19:docs/coding_conventions_python.md
git diff 0.9.19 HEAD -- docs/coding_conventions_python.md | cat
-->
私たちのスタイルの大部分は PEP8 に従いますが、神経質にならないように幾つかのローカルな変更を加えています。
* サポートされる全てのプラットフォームとの互換性のために、Python 3.6 を対象にしています。
* 4つのスペース (ソフトタブ) を使ってインデントします
* 充分なコメントを書くことを推奨します
* コメントを機能を説明するストーリーと考えて下さい
* 特定の決定がなされた理由を充分なコメントで説明してください。
* 分かり切ったコメントは書かないでください
* 分かり切ったコメントであるか確信できない場合は、コメントを含めてください。
* 全ての関数について、役に立つ docstring を必要とします。
* 一般的に、行を折り返さないで、必要なだけ長くすることができます。行を折り返すことを選択した場合は、76列を超えて折り返さないでください。
* 私たちの慣習の幾つかは、Python 使いでは無い人にコードベースをより身近にするために、python コミュニティに広まっているものとは競合しています。
# YAPF
コードを整形するために [yapf](https://github.com/google/yapf) を使うことができます。[setup.cfg](setup.cfg) で設定を提供しています。
# インポート
`import ...``from ... import ...` をいつ使うかについての厳密なルールはありません。理解しやすさと保守性が究極の目的です。
一般的に、コードを短く理解しやすくするためにモジュールから特定の関数とクラス名をインポートする方が望ましいです。これにより、名前が曖昧になることがあります。代わりにモジュールをインポートするようにします。互換性のあるモジュールをインポートする時を除いて、インポートする時は "as" キーワードを避けるべきです。
インポートは各モジュール1行にする必要があります。標準的な python ルールに従って、インポート文をシステム、サードパーティ、ローカルにグループ化します。
`from foo import *` を使わないでください。代わりにインポートしたいオブジェクトのリストを指定するか、モジュール全体をインポートします。
## インポートの例
良い:
```
from qmk import effects
effects.echo()
```
悪い:
```
from qmk.effects import echo
echo() # echoがどこから来たのかが不明瞭です
```
良い:
```
from qmk.keymap import compile_firmware
compile_firmware()
```
良いですが、上の方がより良いです:
```
import qmk.keymap
qmk.keymap.compile_firmware()
```
# 命令文
各行1文としてください。
可能な場合(例えば `if foo: bar`)でも、2つの文を1行にまとめないでください。
# 命名
`module_name`, `package_name`, `ClassName`, `method_name`, `ExceptionName`, `function_name`, `GLOBAL_CONSTANT_NAME`, `global_var_name`, `instance_var_name`, `function_parameter_name`, `local_var_name`.
関数名、変数名 およびファイル名は説明的でなければなりません; 略語を避けます。特に、プロジェクト外の読み手に曖昧あるいは馴染みのない略語を使わず、単語内の文字を削除して略さないでください。
常に .py のファイル名の拡張子を使います。ダッシュを使わないでください。
## 避けるべき名前
* カウンタあるいはイテレータ以外の1文字の名前。try/except 文では例外の識別子として `e` を使うことができます。
* パッケージ/モジュール名内のダッシュ (`-`)
* `__double_leading_and_trailing_underscore__` (2つのアンダースコアで始まる名前と終わる名前、Python で予約済み)
# Docstring
docstring の一貫性を維持するために、以下のガイドラインを設定しました。
* マークダウン(Markdown)形式の使用
* 常に少なくとも1つの改行を含む3つのダブルクォートの docstring を使ってください: `"""\n"""`
* 最初の行は、関数が行うことの短い (70文字未満) 説明です。
* docstring が更に必要な場合は、説明と残りの間に空白行を入れます。
* 開始の3つのダブルクォートと同じインデントレベルでインデント行を始めます
* 以下で説明する形式を使って全ての関数の引数について記述します
* Args:、Returns: および Raises: が存在する場合、それらは docstring の最後の3つの要素で、それぞれ空白行で区切られなければなりません。
## 簡単な docstring の例
```
def my_awesome_function():
"""1970 Jan 1 00:00 UTC からの秒数を返します。
"""
return int(time.time())
```
## 複雑な docstring の例
```
def my_awesome_function():
"""1970 Jan 1 00:00 UTC からの秒数を返します。
この関数は常に整数の秒数を返します。
"""
return int(time.time())
```
## 関数の引数の docstring の例
```
def my_awesome_function(start=None, offset=0):
"""1970 Jan 1 00:00 UTC からの秒数を返します。
この関数は常に整数の秒数を返します。
Args:
start
1970 Jan 1 00:00 UTC の代わりの開始時間
offset
最初の引数からこの秒数が引かれた答えを返します
Returns:
秒数を表す整数。
Raises:
ValueError
`start` あるいは `offset` が正の数ではない場合
"""
if start < 0 or offset < 0:
raise ValueError('start and offset must be positive numbers.')
if not start:
start = time.time()
return int(start - offset)
```
# 例外
例外は例外的な状況を処理するために使われます。フローの制御のために使われるべきではありません。これは Python の「許しを請う」という規範からの逸脱です。例外をキャッチする場合、異常な状況を処理する必要があります。
何らかの理由で全ての例外のキャッチを使う場合は、cli.log を使って例外とスタックトレースを記録する必要があります。
try/except ブロックをできるだけ短くします。多数の try 文が必要な場合は、コードを再構成する必要があるかもしれません。
# タプル
1項目のタプルを定義する場合、タプルを使用していることが明らかになるように、常に末尾のカンマを含めます。暗黙的な1項目のタプルのアンパックに頼らないでください。明確なリストを使う方が良いです。
これはよく使用される printf 形式の書式文字列を使う場合に、特に重要です。
# リストと辞書
シーケンス形式と末尾のカンマとを区別するように YAPF を設定しました。末尾のカンマが省略されると、YAPF はシーケンスを1つの行として整形します。末尾のカンマがある場合、YAPF はシーケンスを1行1項目で整形します。
一般的に1行が短い定義になるようにすべきです。読みやすさと保守性を向上させるために、後からではなく早めに複数の行を分割してください。
# 括弧
過度な括弧は避けますが、括弧を使ってコードを理解しやすくします。タプルを明示的に返すか、あるいは数式の一部である場合を除き、return 文で括弧を使わないでください。
# 書式文字列
一般的に printf 形式の書式文字列を用います。例:
```
name = 'World'
print('Hello, %s!' % (name,))
```
このスタイルはログモジュールで使われており、私たちはそれを広範囲で利用しており、一貫性を保つために他の場所でも採用しています。これは、私たちの気まぐれな読者の大部分である C プログラマにもおなじみのスタイルです。
付属の CLI モジュールは、パーセント (%) 演算子を使わずにこれらを使うことをサポートしています。詳細は、`cli.echo()` と様々な `cli.log` 関数 (例えば、`cli.log.info()`) を見てください。
# 内包表記とジェネレータ表記
内包表記とジェネレータの自由な使用を推奨しますが、あまりに複雑にしないでください。複雑になる場合は、理解しやすい for ループで代替します。
# ラムダ
使っても問題ありませんが、おそらく避けるべきです。内包表記とジェネレータを使えば、ラムダの必要性は以前ほど強くありません。
# 条件式
変数の割り当てでは問題ありませんが、そうでなければ避けるべきです。
条件式はコードに続く if 文です。例えば:
```
x = 1 if cond else 2
```
一般にこれらを関数の引数、シーケンス項目などとして使用することはお勧めできません。見落としやすくなります。
# デフォルト引数
推奨されていますが、値は不変オブジェクトでなければなりません。
デフォルト値に引数リストを指定する場合は、その場で変更できないオブジェクトを指定するように常に注意してください。可変オブジェクトを使うと変更は呼び出しの間で持続しますが、これは通常あなたの望むものではありませんそれがあなたのやろうとしていることであっても、他の人にとっては混乱するもので理解を妨げます。
悪い:
```
def my_func(foo={}):
pass
```
良い:
```
def my_func(foo=None):
if not foo:
foo = {}
```
# プロパティ
getter および setter 関数の代わりにプロパティを常に使います。
```
class Foo(object):
def __init__(self):
self._bar = None
@property
def bar(self):
return self._bar
@bar.setter
def bar(self, bar):
self._bar = bar
```
# True/False の評価
一般的に、if 文で等価性を調べるのではなく、暗黙的な True/False 評価を行うべきです。
悪い:
```
if foo == True:
pass
if bar == False:
pass
```
良い:
```
if foo:
pass
if not bar:
pass
```
# デコレータ
適切な時に使ってください。理解に役立つ時を除き、魔法の(ように見える技巧の)使いすぎは避けるようにしてください。
# スレッドとマルチプロセス
避けるべきです。これが必要な場合は、私たちがコードをマージする前に十分な理由を述べる必要があります。
# 強力な機能
Python は非常に柔軟な言語で、独自のメタクラス、バイトコードへのアクセス、実行中コンパイル、動的な継承、オブジェクトの親の変更、インポートハック、リフレクション、システム内部の変更など、多くの素晴らしい機能を提供します。
これらを使わないでください。
パフォーマンスは私たちにとって重要な関心ごとではなく、コードのわかりやすさに関心があります。私たちは、コードベースを1日か2日しかいじっていない人が利用できるようにしたいです。これらの機能は一般的に理解のしやすさを犠牲にするため、より高速あるいはよりコンパクトなコードよりも、容易に理解できるコードの方が望ましいです。
一部の標準ライブラリモジュールはこれらの手法を使っており、これらのモジュールを利用しても問題ありません。ただし、それらを使う時には、読みやすさと理解のしやすさを忘れないでください。
# 型アノテーション付きコード
今のところ型アノテーションシステムを使っていないため、コードにアノテーションをつけないようにしてください。将来的にはこれを再検討する可能性があります。
# 関数の長さ
小さくて焦点のあった関数にしてください。
長い関数が時には適切であることを理解しているので、関数の長さには厳密な制限はありません。関数が約40行を超える場合は、プログラムの構造を損なわずに分割できるかどうかを検討してください。
今のところ長い関数が完全に機能するとしても、数か月でそれを変更する人が新しい挙動を追加するかもしれません。これにより見つけにくいバグが発生するかもしれません。関数を短くかつシンプルにすることで、他の人がコードを読んで修正しやすくします。
幾つかのコードで作業をすると、長く複雑な関数を見つけるかもしれません。既存コードを変更することを怖がらないでください: もし、難しいことが判明したり、エラーがデバッグしづらいとわかったり、いくつかの異なるコンテキストで一部を使いたいような関数を扱っている場合、関数を小さくてより扱いやすい単位に分割することを検討してください。
# FIXME
FIXME をコードに残しても構いません。なぜでしょうか?このコードを文章化しないままにするよりも、少なくとも考え抜く必要がある(あるいは混乱している)コードの一部を文章化するように奨励する方が、このコードを文章化しないままにするよりも良いです。
全ての FIXME は以下のように書式化されるべきです:
```
FIXME(username): 何々機能が完了したらこのコードを再検討する。
```
...username はあなたの GitHub のユーザ名です。
# テスト
統合テストと単体テストの組み合わせを使ってコードが可能な限りバグが無いようにします。全てのテストは `lib/python/qmk/tests/` にあります。`qmk pytest` を使って全てのテストを実行することができます。
これを書いている時点では、テストは全く完全なものではありません。現在のテストを見て、テストされていない状況のための新しいテストケースを書くことは、コードベースに精通し、QMK に貢献するという両方の点で素晴らしい方法です。
## 統合テスト
統合テストは `lib/python/qmk/tests/test_cli_commands.py` にあります。ここで実際に CLI コマンドが実行され、全体的な動作が検証されます。[`subprocess`](https://docs.python.org/3.6/library/subprocess.html#module-subprocess) を使って各 CLI コマンドを起動し、正しく動作するかを判断するために出力とリターンコードの組み合わせを使います。
## ユニットテスト
`lib/python/qmk/tests/` 内の他の `test_*.py` ファイルはユニットテストを含みます。`lib/python/qmk/` 内の個々の関数のテストをここに書くことができます。一般的にこれらのファイルはモジュールに基づいて名前を付けられ、ドットはアンダースコアで置き換えられます。
これを書いている時点では、テストのためのモックを作っていません。これを変更する手伝いをしたい場合は、[issue を開く](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) か [Discord の #cli に参加](https://discord.gg/heQPAgy)し、そこで会話を開始してください。

View File

@@ -1,8 +1,8 @@
# QMK の設定
<!---
original document: 0.8.62:docs/config_options.md
git diff 0.8.62 HEAD -- docs/config_options.md | cat
original document: 0.10.33:docs/config_options.md
git diff 0.10.33 HEAD -- docs/config_options.md | cat
-->
QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。
@@ -48,8 +48,6 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* 一般的に、誰もしくはどのブランドがボードを作成したか
* `#define PRODUCT Board`
* キーボードの名前
* `#define DESCRIPTION a keyboard`
* キーボードの簡単な説明
* `#define MATRIX_ROWS 5`
* キーボードのマトリックスの行の数
* `#define MATRIX_COLS 15`
@@ -120,9 +118,9 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#define NO_ACTION_ONESHOT`
* ワンショットモディファイアを無効にします
* `#define NO_ACTION_MACRO`
* 古い形式のマクロ処理を無効にします: MACRO() & action_get_macro
* `MACRO()``action_get_macro()` _(非推奨)_ を使う古い形式のマクロ処理を無効にします
* `#define NO_ACTION_FUNCTION`
* fn_actions 配列(非推奨)からの action_function() の呼び出しを無効にします
* `fn_actions``action_function()` _(非推奨)_ を使う古い形式の関数処理を無効にします
## 有効にできる機能
@@ -189,7 +187,14 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#define RGBLIGHT_ANIMATIONS`
* RGB アニメーションを実行します
* `#define RGBLIGHT_LAYERS`
* オンとオフを切り替えることができる [ライトレイヤー](ja/feature_rgblight.md) を定義できます。現在のキーボードレイヤーまたは Caps Lock 状態を表示するのに最適です。
* オンとオフを切り替えることができる [ライトレイヤー](ja/feature_rgblight.md?id=lighting-layers) を定義できます。現在のキーボードレイヤーまたは Caps Lock 状態を表示するのに最適です。
* `#define RGBLIGHT_MAX_LAYERS`
* デフォルトは8です。もしさらに [ライトレイヤー](ja/feature_rgblight.md?id=lighting-layers) が必要であれば、32まで拡張できます。
* メモ: 最大値を大きくするとファームウェアサイズが大きくなり、分割キーボードで同期が遅くなります。
* `#define RGBLIGHT_LAYER_BLINK`
* 指定されたミリ秒の間、ライトレイヤーを [点滅](ja/feature_rgblight.md?id=lighting-layer-blink) する機能を追加します(例えば、アクションを確認するため)。
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
* 定義されている場合、RGB ライトがオフになっている場合でも [ライトレイヤー](ja/feature_rgblight?id=overriding-rgb-lighting-onoff-status) が表示されます。
* `#define RGBLED_NUM 12`
* LED の数
* `#define RGBLIGHT_SPLIT`
@@ -241,7 +246,10 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `#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` が定義されていない場合のみ動作します)
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
* 左右はキーマトリックスのキースイッチが存在しない交点を使って決定されます。通常、この交点が短絡している(ローレベル)のときに左側と見なされます。もし `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT` が定義されている場合は、ローレベルの時に右側と決定されます。
* `#define EE_HANDS` (`SPLIT_HAND_PIN``SPLIT_HAND_MATRIX_GRID` が定義されていない場合のみ動作します)
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。
* `#define MASTER_RIGHT`
@@ -314,10 +322,9 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
```
* `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` を使うことができます
* キーボードをコンパイルする時に、Link Time Optimization (LTO) を有効にします。これは処理に時間が掛かりますが、コンパイルされたサイズを大幅に減らします (そして、ファームウェアが小さいため、追加の時間は分からないくらいです)
ただし、LTO が有効な場合、古い TMK のマクロと関数の機能が壊れるため、自動的にこれらの機能を無効にします。これは `NO_ACTION_MACRO` と `NO_ACTION_FUNCTION` を自動的に定義することで行われます。(メモ: これは QMK の [マクロ](ja/feature_macros.md) と [レイヤー](ja/feature_layers.md) には影響を与えません。)
## AVR MCU オプション
* `MCU = atmega32u4`
@@ -362,10 +369,8 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* MIDI 制御
* `UNICODE_ENABLE`
* Unicode
* `BLUETOOTH_ENABLE`
* Adafruit EZ-Key HID で Bluetooth を有効にするレガシーオプション。BLUETOOTH を見てください
* `BLUETOOTH`
* 現在のオプションは、AdafruitEzKey、AdafruitBLE、RN42
* 現在のオプションは、AdafruitBLE、RN42
* `SPLIT_KEYBOARD`
* 分割キーボード (let's split や bakingpy のキーボードのようなデュアル MCU) のサポートを有効にし、quantum/split_common にある全ての必要なファイルをインクルードします
* `CUSTOM_MATRIX`

View File

@@ -31,7 +31,7 @@ keyboards/<keyboard>/matrix.c
SRC += matrix.c
```
## マトリックスコードの部分置き換え
## マトリックスコードの部分置き換え :id=lite
カスタムマトリックスを実装する際、定型コードを書かなくてすむように、さまざまなスキャン関数のデフォルト実装を提供しています。

View File

@@ -1,8 +1,8 @@
# キーボードの挙動をカスタマイズする方法
<!---
original document: 0.8.62:docs/custom_quantum_functions.md
git diff 0.8.62 HEAD -- docs/custom_quantum_functions.md | cat
original document: 0.10.33:docs/custom_quantum_functions.md
git diff 0.10.33 HEAD -- docs/custom_quantum_functions.md | cat
-->
多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。
@@ -232,7 +232,7 @@ void keyboard_pre_init_user(void) {
}
```
### `keyboard_pre_init_*` 関数のドキュメント
### `keyboard_pre_init_*` 関数のドキュメント :id=keyboard_pre_init_-function-documentation
* キーボード/リビジョン: `void keyboard_pre_init_kb(void)`
* キーマップ: `void keyboard_pre_init_user(void)`
@@ -346,6 +346,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state;
}
```
特定のレイヤーの状態を確認するには、 `IS_LAYER_ON_STATE(state, layer)``IS_LAYER_OFF_STATE(state, layer)` マクロを使います。
`layer_state_set_*` 関数の外では、グローバルなレイヤー状態を確認するために `IS_LAYER_ON(layer)``IS_LAYER_OFF(layer)` マクロを使えます。
### `layer_state_set_*` 関数のドキュメント
* キーボード/リビジョン: `layer_state_t layer_state_set_kb(layer_state_t state)`
@@ -451,7 +456,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_state_set(layer_state); // すぐにレイヤーの色を更新します
}
}
return false; break;
return false;
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // 任意の RGB コード に対して(quantum_keycodes.h を見てください。400行目参照)
if (record->event.pressed) { // これはレイヤー表示を無効にします。これを変更する場合は、無効にしたいだろうため。
if (user_config.rgb_layer_change) { // 有効な場合のみ
@@ -488,56 +493,3 @@ void eeconfig_init_user(void) { // EEPROM がリセットされます!
* キーマップ: `void eeconfig_init_user(void)``uint32_t eeconfig_read_user(void)` および `void eeconfig_update_user(uint32_t val)`
`val` は EEPROM に書き込みたいデータの値です。`eeconfig_read_*` 関数は EEPROM から32ビット(DWORD) 値を返します。
# カスタムタッピング期間
デフォルトでは、タッピング期間と(`IGNORE_MOD_TAP_INTERRUPT` のような)関連オプションはグローバルに設定されていて、キーでは設定することができません。ほとんどのユーザにとって、これは全然問題ありません。しかし、場合によっては、`LT` キーとは異なるタイムアウトによって、デュアルファンクションキーが大幅に改善されます。なぜなら、一部のキーは他のキーよりも押し続けやすいためです。それぞれにカスタムキーコードを使う代わりに、キーごとに設定可能なタイムアウトの挙動を設定できます。
キーごとのタイムアウトの挙動を制御するための2つの設定可能なオプションがあります:
- `TAPPING_TERM_PER_KEY`
- `IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
必要な機能ごとに、`config.h``#define` 行を追加する必要があります。
```
#define TAPPING_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```
## `get_tapping_term` の実装例
キーコードに基づいて `TAPPING_TERM` を変更するには、次のようなものを `keymap.c` ファイルに追加します:
```c
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return TAPPING_TERM + 1250;
case LT(1, KC_GRV):
return 130;
default:
return TAPPING_TERM;
}
}
```
## `get_ignore_mod_tap_interrupt` の実装例
キーコードに基づいて `IGNORE_MOD_TAP_INTERRUPT` の値を変更するには、次のようなものを `keymap.c` ファイルに追加します:
```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```
## `get_tapping_term` / `get_ignore_mod_tap_interrupt` 関数のドキュメント
ここにある他の多くの関数とは異なり、quantum あるいはキーボードレベルの関数を持つ必要はありません (または理由さえありません)。ここではユーザレベルの関数だけが有用なため、そのようにマークする必要はありません。

View File

@@ -1,8 +1,8 @@
# ドキュメントベストプラクティス
<!---
original document: 0.9.19:docs/documentation_best_practices.md
git diff 0.9.19 HEAD -- docs/documentation_best_practices.md | cat
original document: 0.10.33:docs/documentation_best_practices.md
git diff 0.10.33 HEAD -- docs/documentation_best_practices.md | cat
-->
このページは QMK のためのドキュメントを作成する時のベストプラクティスを文章化するためのものです。これらのガイドラインに従うことで、一貫したトーンとスタイルを維持することでき、他の人が QMK をより理解しやすくすることができます。

View File

@@ -1,8 +1,8 @@
# Zadig を使ったブートローダドライバのインストール
<!---
original document: 0.9.0:docs/driver_installation_zadig.md
git diff 0.9.0 HEAD -- docs/driver_installation_zadig.md | cat
original document: 0.9.43:docs/driver_installation_zadig.md
git diff 0.9.43 HEAD -- docs/driver_installation_zadig.md | cat
-->
QMK はホストにたいして通常の HID キーボードデバイスとして振る舞うため特別なドライバは必要ありません。しかし、Windows でのキーボードへの書き込みは、多くの場合、キーボードをリセットした時に現れるブートローダデバイスで*行います*。
@@ -28,7 +28,7 @@ Zadig は自動的にブートローダデバイスを検知します。**Option
!> Zadig が `HidUsb` ドライバを使用する1つ以上のデバイスを表示する場合、キーボードはおそらくブートローダモードではありません。矢印はオレンジ色になり、システムドライバの変更を確認するように求められます。この場合、続行**しないでください**
矢印が緑色で表示されたら、ドライバを選択し、**Install Driver** をクリックします。`libusb-win32` ドライバは通常 AVR で動作し、`WinUSB`は ARM で動作しますが、それでもキーボードに書き込みできない場合は、リストから異なるドライバをインストールしてみてください。msys2 を使ってコマンドライン経由で USBaspLoader デバイスに書き込むには、`libusbk` ドライバがお勧めです。そうではなく書き込みに QMK Toolbox を使っている場合は `libusb-win32` がうまく動作します
矢印が緑色で表示されたら、ドライバを選択し、**Install Driver** をクリックします。`libusb-win32` ドライバは通常 AVR で動作し、`WinUSB`は ARM で動作しますが、それでもキーボードに書き込みできない場合は、リストから異なるドライバをインストールしてみてください。USBAspLoader デバイス`libusbK` ドライバを使わなければなりません
![ブートローダドライバが正常にインストールされた Zadig](https://i.imgur.com/b8VgXzx.png)

View File

@@ -1,8 +1,8 @@
# よくあるビルドの質問
<!---
original document: 0.9.10:docs/faq_build.md
git diff 0.9.10 HEAD -- docs/faq_build.md | cat
original document: 0.10.33:docs/faq_build.md
git diff 0.10.33 HEAD -- docs/faq_build.md | cat
-->
このページは QMK のビルドに関する質問を説明します。まだビルドをしていない場合は、[ビルド環境のセットアップ](ja/getting_started_build_tools.md) および [Make 手順](ja/getting_started_make_guide.md)ガイドを読むべきです。
@@ -18,64 +18,93 @@
あるいは、単純に:
$ sudo make <keyboard>:<keymap>:dfu
$ sudo make <keyboard>:<keymap>:flash
`make``sudo` で実行することは一般的には良い考えでは***なく***、可能であれば前者の方法のいずれかを使うべきです。
### Linux の `udev` ルール
Linux では、MCU にアクセスするには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこれらのファイルを配置することで、アクセスすることができます。権限の追加が完了したら、以下を実行します:
```console
Linux では、ブートローダデバイスと通信するには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこのファイルを配置することで、通信することができます。
**/etc/udev/rules.d/50-qmk.rules:**
```
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FEF", TAG+="uaccess", RUN{builtin}+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF0", TAG+="uaccess", RUN{builtin}+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF3", TAG+="uaccess", RUN{builtin}+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF4", TAG+="uaccess", RUN{builtin}+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF9", TAG+="uaccess", RUN{builtin}+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FFB", TAG+="uaccess", RUN{builtin}+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1C11", ATTRS{idProduct}=="B007", TAG+="uaccess", RUN{builtin}+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1EAF", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="DF11", TAG+="uaccess", RUN{builtin}+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DF", TAG+="uaccess", RUN{builtin}+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DC", TAG+="uaccess", RUN{builtin}+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="6124", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9207", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1FFB", ATTRS{idProduct}=="0101", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000C", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000D", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000E", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
```
追加が完了したら、以下を実行します:
```
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", TAG+="uaccess", RUN{builtin}+="uaccess"
# Atmel USBKEY AT90USB1287
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess", RUN{builtin}+="uaccess"
# Atmel ATMega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/54-input-club-keyboard.rules:**
```
# Input Club keyboard bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/55-caterina.rules:**
```
# ModemManager should ignore the following devices
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
```
**注意:** 古い(1.12以前の) ModemManager では、フィルタリングは厳密なモードではない場合にのみ動作し、以下のコマンドはその設定を更新することができます。
```console
sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service
```
printf '[Service]\nExecStart=\nExecStart=/usr/sbin/ModemManager --filter-policy=default' | sudo tee /etc/systemd/system/ModemManager.service.d/policy.conf
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", TAG+="uaccess", RUN{builtin}+="uaccess"
# Generic stm32
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/57-bootloadhid.rules:**
```
# bootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess", RUN{builtin}+="uaccess"
```
### Linux のブートローダモードで Serial デバイスが検知されない
カーネルがデバイスを適切にサポートしていることを確認してください。デバイスが、Pro Micro (Atmega32u4) のように USB ACM を使う場合、`CONFIG_USB_ACM=y` を含めるようにしてください。他のデバイスは `USB_SERIAL` およびそのサブオプションを必要とするかもしれません。
@@ -99,50 +128,10 @@ https://github.com/tmk/tmk_keyboard/issues/150
- 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 avr-gcc@8 dfu-programmer dfu-util gcc-arm-none-eabi arm-gcc-bin@8 avrdude qmk
brew install qmk/qmk/qmk
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)とキーボード情報を見てください)。
いずれかの形式でブートマジックが有効になっている場合は、これも実行できるはずです (実行方法の詳細については、[ブートマジックドキュメント](ja/feature_bootmagic.md)とキーボード情報を見てください)。

View File

@@ -1,8 +1,8 @@
# デバッグの FAQ
<!---
original document: 0.9.10:docs/faq_debug.md
git diff 0.9.10 HEAD -- docs/faq_debug.md | cat
original document: 0.10.33:docs/faq_debug.md
git diff 0.10.33 HEAD -- docs/faq_debug.md | cat
-->
このページは、キーボードのトラブルシューティングについての様々な一般的な質問を説明します。
@@ -36,20 +36,6 @@ Linux のような OS でデバイスにアクセスするには、権限が必
- デバッグ 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"
```
***
# 雑多なこと

View File

@@ -51,7 +51,7 @@ OK、問題ありません。[GitHub で issue を開く](https://github.com/qmk
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)でこれらのキーコードの完全なリストを見ることができます。
技術的な観点から、QMK は幾つかの新しい機能を追加した TMK に基づいています。最も注目すべきことは、QMK は利用可能なキーコードの数を増やし、`S()``LCTL()` および `MO()` などの高度な機能を実装するためにこれらを使っています。[キーコード](ja/keycodes.md)でこれらのキーコードの完全なリストを見ることができます。
プロジェクトとコミュニティの管理の観点から、TMK は公式にサポートされている全てのキーボードを自分で管理しており、コミュニティのサポートも少し受けています。他のキーボード用に別個のコミュニティが維持するフォークが存在するか、作成できます。デフォルトでは少数のキーマップのみが提供されるため、ユーザは一般的にお互いにキーマップを共有しません。QMK は集中管理されたリポジトリを介して、キーボードとキーマップの両方を共有することを奨励しており、品質基準に準拠する全てのプルリクエストを受け付けます。これらはほとんどコミュニティで管理されますが、必要な場合は QMK チームも支援します。

View File

@@ -128,7 +128,7 @@ https://github.com/tekezo/Karabiner/issues/403
## 単一のキーでの Esc と<code>&#96;</code>
[Grave Escape](feature_grave_esc.md) 機能を見てください。
[Grave Escape](ja/feature_grave_esc.md) 機能を見てください。
## Mac OSX での Eject
`KC_EJCT` キーコードは OSX で動作します。https://github.com/tmk/tmk_keyboard/issues/250

View File

@@ -1,8 +1,8 @@
# 自動シフト: なぜシフトキーが必要ですか?
<!---
original document: 0.9.0:docs/feature_auto_shift.md
git diff 0.9.0 HEAD -- docs/feature_auto_shift.md | cat
original document: 0.10.33:docs/feature_auto_shift.md
git diff 0.10.33 HEAD -- docs/feature_auto_shift.md | cat
-->
キーをタップすると、その文字を取得します。キーをタップするが、*わずかに*長く押し続けると、シフト状態になります。ほら!シフトキーは必要ありません!
@@ -109,7 +109,7 @@ AからZを含むアルファベット文字を自動シフトしません。
5. タイムアウトを増やすことに決めた場合は、`KC_ASUP` にマップしたキーを押し、ステップ1に戻ります。
6. 結果に満足したら、`KC_ASRP` にマップしたキーを押します。キーボードは `AUTO_SHIFT_TIMEOUT` の値を自動的に入力します。
7. 報告された値で `config.h``AUTO_SHIFT_TIMEOUT` を更新します。
8. `config.h` から `AUTO_SHIFT_SETUP`削除します。
8. `config.h` `AUTO_SHIFT_NO_SETUP`追加します。
9. `KC_ASDN``KC_ASUP` および `KC_ASRP` のキーバインディングを削除します。
10. 新しいファームウェアをコンパイルしてアップロードします。

View File

@@ -1,253 +1,222 @@
# バックライト
# バックライト :id=backlighting
<!---
original document: 0.9.10:docs/feature_backlight.md
git diff 0.9.10 HEAD -- docs/feature_backlight.md | cat
original document: 0.10.33:docs/feature_backlight.md
git diff 0.10.33 HEAD -- docs/feature_backlight.md | cat
-->
多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。
QMK は *パルス幅変調*(*Pulse Width Modulation*) すなわち PWM として知られている技術で急速にオンおよびオフを切り替えることで、これらの LED の輝度を制御できます。PWM 信号のデューティサイクルを変えることで、調光の錯覚を起こすことができます。
QMK は *パルス幅変調* (*Pulse Width Modulation*) すなわち PWM として知られている技術で、一定の比率で素早くオンおよびオフを切り替えることで、これらの LED の輝度を制御できます。PWM 信号のデューティサイクルを変えることで、調光の錯覚を起こすことができます。
MCU は、GPIO ピンにはそんなに電流を供給できません。MCU から直接バックライトに給電せずに、バックライトピンは LED への電力を切り替えるトランジスタあるいは MOSFET に接続されます。
## 機能の設定
ほとんどのキーボードではバックライトをサポートしている場合にデフォルトで有効になっていますが、もし機能しない場合は `rules.mk` が以下を含んでいることを確認してください:
```makefile
BACKLIGHT_ENABLE = yes
```
## キーコード
## キーコード :id=keycodes
有効にすると、以下のキーコードを使ってバックライトレベルを変更することができます。
| キー | 説明 |
|---------|------------------------------------------|
| キー | 説明 |
| --------- | ------------------------------------ |
| `BL_TOGG` | バックライトをオンあるいはオフにする |
| `BL_STEP` | バックライトレベルを循環する |
| `BL_ON` | バックライトを最大輝度に設定する |
| `BL_OFF` | バックライトをオフにする |
| `BL_INC` | バックライトレベルを上げる |
| `BL_DEC` | バックライトレベルを下げる |
| `BL_BRTG` | バックライトの明滅動作を切り替える |
| `BL_STEP` | バックライトレベルを循環する |
| `BL_ON` | バックライトを最大輝度に設定する |
| `BL_OFF` | バックライトをオフにする |
| `BL_INC` | バックライトレベルを上げる |
| `BL_DEC` | バックライトレベルを下げる |
| `BL_BRTG` | バックライトの明滅動作を切り替える |
## バックライト関数群
## 関数群 :id=functions
| 関数 | 説明 |
|----------|-----------------------------------------------------------|
| `backlight_toggle()` | バックライトをオンあるいはオフにする |
| `backlight_enable()` | バックライトをオンにする |
| `backlight_disable()` | バックライトをオフにする |
| `backlight_step()` | バックライトレベルを循環する |
| `backlight_increase()` | バックライトレベルを上げる |
| `backlight_decrease()` | バックライトレベルを下げる |
| `backlight_level(x)` | バックライトのレベルを特定のレベルに設定する |
| `get_backlight_level()` | 現在のバックライトレベルを返す |
| `is_backlight_enabled()` | バックライトが現在オンかどうかを返す |
次の関数を使って、カスタムコードでバックライトを変更することができます:
### バックライトの明滅動作の関数群
| 関数 | 説明 |
| ------------------------ | -------------------------------------------- |
| `backlight_toggle()` | バックライトをオンあるいはオフにする |
| `backlight_enable()` | バックライトをオンにする |
| `backlight_disable()` | バックライトをオフにする |
| `backlight_step()` | バックライトレベルを循環する |
| `backlight_increase()` | バックライトレベルを上げる |
| `backlight_decrease()` | バックライトレベルを下げる |
| `backlight_level(x)` | バックライトのレベルを特定のレベルに設定する |
| `get_backlight_level()` | 現在のバックライトレベルを返す |
| `is_backlight_enabled()` | バックライトが現在オンかどうかを返す |
| 関数 | 説明 |
|----------|---------------------------------------------------|
| `breathing_toggle()` | バックライトの明滅動作をオンまたはオフにする |
| `breathing_enable()` | バックライトの明滅動作をオンにする |
| `breathing_disable()` | バックライトの明滅動作をオフにする |
バックライトの明滅が有効の場合(以下を参照)、以下の関数も利用できます:
## ドライバの設定
| 関数 | 説明 |
|-----------------------|----------------------------------------------|
| `breathing_toggle()` | バックライトの明滅動作をオンまたはオフにする |
| `breathing_enable()` | バックライトの明滅動作をオンにする |
| `breathing_disable()` | バックライトの明滅動作をオフにする |
## 設定 :id=configuration
どのドライバを使うかを選択するには、以下を使って `rules.mk` を設定します:
```makefile
BACKLIGHT_DRIVER = software # 有効なドライバの値は 'pwm,software,no' です
BACKLIGHT_DRIVER = software
```
各ドライバについてのヘルプは以下を見てください。
有効なドライバの値は `pwm`, `software`, `custom`, `no` です。各ドライバについてのヘルプは以下を見てください。
## 共通のドライバ設定
バックライトを設定するには、`config.h` の中で以下の `#define` をします:
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|---------------------|-------------|--------------------------------------------------------------------------------------|
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| 定義 | デフォルト | 説明 |
| --------------------- | ---------- | ------------------------------------------------------------------------------------------- |
| `BACKLIGHT_PIN` | *定義なし* | LED を制御するピン |
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `0` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
### バックライトオン状態
独自のキーボードを設計しているわけではない限り、通常は `BACKLIGHT_PIN` または `BACKLIGHT_ON_STATE` を変更する必要はありません。
ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
### バックライトオン状態 :id=backlight-on-state
ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを *オン* にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
## AVR ドライバ
### AVR ドライバ :id=avr-driver
`pwm` ドライバはデフォルトで設定されますが、`rules.mk` 内での同等の設定は以下の通りです:
AVR ボードでは、デフォルトのドライバは現在のところ最善のシナリオを選択するために構成を探っています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
```makefile
BACKLIGHT_DRIVER = pwm
```
### 注意事項
#### 注意事項 :id=avr-caveats
ハードウェア PWM は以下の表に従ってサポートされます:
AVR ボードでは、QMK はどのドライバを使うかを以下の表に従って自動的に決定します:
| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328/P |
|-------------|-------------|-------------|-------------|---------|----------|
| `B1` | | | | | Timer 1 |
| `B2` | | | | | Timer 1 |
| `B5` | Timer 1 | Timer 1 | | | |
| `B6` | Timer 1 | Timer 1 | | | |
| `B7` | Timer 1 | Timer 1 | Timer 1 | | |
| `C4` | Timer 3 | | | | |
| `C5` | Timer 3 | | Timer 1 | | |
| `C6` | Timer 3 | Timer 3 | Timer 1 | | |
| `D4` | | | | Timer 1 | |
| `D5` | | | | Timer 1 | |
| ---------------- | ------------- | ------------- | ------------- | --------- | ----------- |
| `B1` | | | | | Timer 1 |
| `B2` | | | | | Timer 1 |
| `B5` | Timer 1 | Timer 1 | | | |
| `B6` | Timer 1 | Timer 1 | | | |
| `B7` | Timer 1 | Timer 1 | Timer 1 | | |
| `C4` | Timer 3 | | | | |
| `C5` | Timer 3 | | Timer 1 | | |
| `C6` | Timer 3 | Timer 3 | Timer 1 | | |
| `D4` | | | | Timer 1 | |
| `D5` | | | | Timer 1 | |
他の全てのピンはソフトウェア PWM を使います。[オーディオ](ja/feature_audio.md)機能が無効あるいは1つのタイマだけを使っている場合は、ハードウェアタイマによってバックライト PWM を引き起こすことができます:
他の全てのピンはタイマー支援ソフトウェア PWM を使います。
| オーディオピン | オーディオタイマ | ソフトウェア PWM タイマ |
|---------|-----------|------------------|
| `C4` | Timer 3 | Timer 1 |
| `C5` | Timer 3 | Timer 1 |
| `C6` | Timer 3 | Timer 1 |
| `B5` | Timer 1 | Timer 3 |
| `B6` | Timer 1 | Timer 3 |
| `B7` | Timer 1 | Timer 3 |
| -------------- | ---------------- | ----------------------- |
| `C4` | Timer 3 | Timer 1 |
| `C5` | Timer 3 | Timer 1 |
| `C6` | Timer 3 | Timer 1 |
| `B5` | Timer 1 | Timer 3 |
| `B6` | Timer 1 | Timer 3 |
| `B7` | Timer 1 | Timer 3 |
両方のタイマーがオーディオのために使われている場合、バックライト PWM はハードウェアタイマを使いませんが、代わりにマトリックススキャンの間に引き起こされます。この場合、PWM の計算は十分なタイミングの精度で呼ばれないかもしれないため、バックライトの明滅はサポートされず、バックライトもちらつくかもしれません。
両方のタイマーがオーディオのために使われている場合、バックライト PWM はハードウェアタイマを使うことができず、代わりにマトリックススキャンの間に引き起こされます。この場合、PWM の計算は十分なタイミングの精度で呼ばれない可能性があるため、バックライトの明滅はサポートされず、バックライトもちらつくかもしれません。
### AVR 設定
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|---------------------|-------------|--------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください |
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
### バックライトオン状態
ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
### 複数のバックライトピン
ほとんどのキーボードは、全てのバックライト LED を制御するたった1つのバックライトピンを持ちます (特にバックライトがハードウェア PWM ピンに接続されている場合)。
ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらすべてのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock の代わりに LCTRL をマップしていて、Caps Lock がオンの時に Caps Lock LED をアクティブにする代わりにバックライトの一部にする必要がある場合に便利です。
複数のバックライトピンをアクティブにするには、`config.h` に次のようなものを追加する必要があります:
```c
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
### ハードウェア PWM 実装
#### ハードウェア PWM 実装 :id=hardware-pwm-implementation
バックライト用にサポートされているピンを使う場合、QMK は PWM 信号を出力するように設定されたハードウェアタイマを使います。タイマーは 0 にリセットする前に `ICRx` (デフォルトでは `0xFFFF`) までカウントします。
希望の輝度が計算され、`OCRxx` レジスタに格納されます。カウンタがこの値まで達すると、バックライトピンは low になり、カウンタがリセットされると再び high になります。
希望の輝度が計算され、`OCRxx` レジスタに格納されます。カウンタがこの値まで達すると、バックライトピンは low になり、カウンタがリセットされると再び high になります。
このように `OCRxx` は基本的に LED のデューティサイクル、従って輝度を制御します。`0x0000` は完全にオフで、 `0xFFFF` は完全にオンです。
明滅動作の効果はカウンタがリセットされる(秒間あたりおよそ244回)たびに呼び出される `TIMER1_OVF_vect` の割り込みハンドラを登録することで可能になります。
このハンドラで、増分カウンタの値が事前に計算された輝度曲線にマップされます。明滅動作をオフにするには、割り込みを単純に禁止し、輝度を EEPROM に格納されているレベルに再設定します。
このハンドラで、増分カウンタの値が事前に計算された輝度曲線にマップされます。明滅動作をオフにするには、割り込みを単純に禁止し、輝度を EEPROM に格納されているレベルに再設定します。
### タイマーにアシストされた PWM 実装
#### タイマー支援 PWM 実装 :id=timer-assisted-implementation
`BACKLIGHT_PIN` がハードウェアバックライトピンに設定されていない場合、QMK はソフトウェア割り込みを引き起こすように設定されているハードウェアタイマを使います。タイマーは 0 にリセットする前に `ICRx` (デフォルトでは `0xFFFF`) までカウントします。
0 に再設定すると、CPU は LED をオンにする OVF (オーバーフロー)割り込みを発火し、デューティサイクルを開始します。
希望の輝度が計算され、`OCRxx` レジスタに格納されます。カウンタがこの値に達すると、CPU は比較出力一致割り込みを発火し、LED をオフにします。
希望の輝度が計算され、`OCRxx` レジスタに格納されます。カウンタがこの値に達すると、CPU は比較出力一致割り込みを発火し、LED をオフにします。
このように `OCRxx` は基本的に LED のデューティサイクル、従って輝度を制御します。 `0x0000` は完全にオフで、 `0xFFFF` は完全にオンです。
明滅の効果はハードウェア PWM 実装と同じです。
## ARM ドライバ
### ARM ドライバ :id=arm-configuration
まだ初期段階ですが、ARM バックライトサポートは最終的に AVR と同等の機能を持つことを目指しています。`pwm` ドライバはデフォルトで設定されますが、`rules.mk` 内での同等の設定は以下の通りです:
まだ初期段階ですが、ARM バックライトサポートは最終的に AVR と同等の機能を持つことを目指しています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
```makefile
BACKLIGHT_DRIVER = pwm
```
### 注意事項
#### ChibiOS の設定 :id=arm-configuration
現在のところ、ハードウェア PWM のみがサポートされ、タイマーはアシストされず、自動設定は提供されません。
以下の `#define` は ARM ベースのキーボードにのみ適用されます:
?> STMF072 のバックライトサポートのテストは制限されています。人によって違うかもしれません。不明な場合は、rules.mk で `BACKLIGHT_ENABLE = no` を設定します。
| 定義 | デフォルト | 説明 |
| ----------------------- | ---------- | ----------------------- |
| `BACKLIGHT_PWM_DRIVER` | `PWMD4` | 使用する PWM ドライバ |
| `BACKLIGHT_PWM_CHANNEL` | `3` | 使用する PWM チャンネル |
| `BACKLIGHT_PAL_MODE` | `2` | 使用するピン代替関数 |
### ARM 設定
これらの値を決定するには、特定の MCU の ST データシートを参照してください。独自のキーボードを設計しているわけではない場合、通常はこれらを変更する必要はありません。
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
#### 注意事項 :id=arm-caveats
| 定義 | デフォルト | 説明 |
|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PWM_DRIVER` | `PWMD4` | 使用する PWM ドライバ。ピンから PWM タイマへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PWM_CHANNEL` | `3` | 使用する PWM チャンネル。ピンから PWM チャンネルへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PAL_MODE` | `2` | 使用するピンの代替機能。ピンの AF マッピングについては ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
現在のところ、ハードウェア PWM のみがサポートされ、タイマー支援はなく、自動設定は提供されません。
## Software PWM Driver :id=software-pwm-driver
### ソフトウェア PWM ドライバ :id=software-pwm-driver
このモードでは、他のキーボードのタスクを実行中に PWM は「エミュレート」されます。追加のプラットフォーム設定なしで最大のハードウェア互換性を提供します。トレードオフは、キーボードが忙しい時にバックライトが揺れる可能性があることです。有効にするには、`rules.mk` に以下を追加します:
他のキーボードのタスクを実行中に PWM をエミュレートすることにより、追加のプラットフォーム設定なしで最大のハードウェア互換性を提供します。トレードオフは、キーボードが忙しい時にバックライトが揺れる可能性があることです。有効にするには、rules.mk に以下を追加します:
```makefile
BACKLIGHT_DRIVER = software
```
### ソフトウェア PWM 設定
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|-----------------|-------------|-------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください |
### 複数のバックライトピン
#### 複数のバックライトピン :id=multiple-backlight-pins
ほとんどのキーボードは、全てのバックライト LED を制御するたった1つのバックライトピンを持ちます (特にバックライトがハードウェア PWM ピンに接続されている場合)。
ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらすべてのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock の代わりに LCTRL をマップしていて、Caps Lock がオンの時に Caps Lock LED をアクティブにする代わりにバックライトの一部にする必要がある場合に便利です。
ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
複数のバックライトピンをアクティブにするには、`config.h` に次のようなものを追加する必要があります:
この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock LED は通常バックライトとは別のピンに配線されるため、Caps Lock の代わりに Control をマップしていて、Caps Lock がオンの時に Caps Lock LED ではなくバックライトの一部をアクティブにする必要がある場合に便利です。
複数のバックライトピンをアクティブにするには、`config.h``BACKLIGHT_PIN` の代わりに次のようなものを追加します:
```c
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
## カスタムドライバ
### カスタムドライバ :id=custom-driver
有効にするには、rules.mk に以下を追加します:
上記ドライバのいずれもキーボードに適用されていない場合(例えば、バックライトを制御するのに別の IC を使用している場合)、QMK が提供しているこの簡単な API を使ってカスタムバックライトドライバを実装することができます。有効にするには、`rules.mk` に以下を追加します:
```makefile
BACKLIGHT_DRIVER = custom
```
カスタムドライバ API を実装する場合、提供されるキーボードフックは以下の通りです:
それから次のフックのいずれかを実装します:
```c
void backlight_init_ports(void) {
// オプション - 起動時に実行されます
// - 通常、ここでピンを設定します
// 通常、ここでピンを設定します
}
void backlight_set(uint8_t level) {
// オプション - レベルの変更時に実行されます
// - 通常、ここで新しい値に応答します
// 通常、ここで新しい値に応答します
}
void backlight_task(void) {
// オプション - 定期的に実行されます
// - ここで長時間実行されるアクションはパフォーマンスの問題を引き起こします
// これはメインキーボードループで呼び出されることに注意してください
// そのため、ここで長時間実行されるアクションはパフォーマンスの問題を引き起こします
}
```
## 回路図の例
この一般的な例では、バックライト LED は全て N チャンネル MOSFET に向かって並列に接続されています。そのゲートピンは、リンギングを回避するため 470Ωの抵抗を介してマイクロコントローラの GPIO ピンの1つに接続されています。
プルダウン抵抗もゲートピンとグランドの間に配置されており、MCU によって駆動されていない場合にプルダウン抵抗を定義された状態に保ちます。
これらの抵抗値は重要ではありません。詳細については、[this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) を参照してください。
![バックライトの回路例](https://i.imgur.com/BmAvoUC.png)

View File

@@ -1,19 +1,18 @@
# Bluetooth
<!---
original document: 0.9.0:docs/feature_bluetooth.md
git diff 0.9.0 HEAD -- docs/feature_bluetooth.md | cat
original document: 0.10.33:docs/feature_bluetooth.md
git diff 0.10.33 HEAD -- docs/feature_bluetooth.md | cat
-->
## Bluetooth の既知のサポートハードウェア
現在のところ Bluetooth のサポートは AVR ベースのチップに限られます。Bluetooth 2.1 については、QMK は RN-42 モジュールと、Bluefruit EZ-Key をサポートしますが、後者はもう生産されていません。より最近の BLE プロトコルについては、現在のところ Adafruit Bluefruit SPI Friend のみが直接サポートされています。iOS デバイスに接続するには、BLE が必要です。iOS はマウス入力をサポートしないことに注意してください。
現在のところ Bluetooth のサポートは AVR ベースのチップに限られます。Bluetooth 2.1 については、QMK は RN-42 モジュールをサポートします。より最近の BLE プロトコルについては、現在のところ Adafruit Bluefruit SPI Friend のみが直接サポートされています。iOS デバイスに接続するには、BLE が必要です。iOS はマウス入力をサポートしないことに注意してください。
| ボード | Bluetooth プロトコル | 接続タイプ | rules.mk | Bluetooth チップ |
|----------------------------------------------------------------|----------------------------|----------------|---------------------------|--------------|
| [Adafruit EZ-Key HID](https://www.adafruit.com/product/1535) | Bluetooth Classic | UART | `BLUETOOTH = AdafruitEZKey` | |
| Roving Networks RN-42 (Sparkfun Bluesmirf) | Bluetooth Classic | UART | `BLUETOOTH = RN42` | RN-42 |
| [Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633) | Bluetooth Low Energy | SPI | `BLUETOOTH = AdafruitBLE` | nRF51822 |
| ボード | Bluetooth プロトコル | 接続タイプ | rules.mk | Bluetooth チップ |
| ---------------------------------------------------------------- | -------------------- | ---------- | ------------------------- | ---------------- |
| Roving Networks RN-42 (Sparkfun Bluesmirf) | Bluetooth Classic | UART | `BLUETOOTH = RN42` | RN-42 |
| [Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633) | Bluetooth Low Energy | SPI | `BLUETOOTH = AdafruitBLE` | nRF51822 |
まだサポートされていませんが、可能性のあるもの:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479)。[tmk 実装がおそらく見つかります](https://github.com/tmk/tmk_keyboard/issues/514)
@@ -29,24 +28,22 @@
Bluefruit UART friend は SPI friend に変換することができますが、これにはMDBT40 チップへの直接の再書き込みとはんだ付けが[必要です](https://github.com/qmk/qmk_firmware/issues/2274)。
## Adafruit EZ-Key hid
これには[ハードウェアの変更](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts)が必要ですが、Makefile を使って有効にすることができます。ファームウェアは引き続き USB 経由で文字を出力するため、コンピュータ経由で充電する場合は注意してください。任意にオフにするために Bluefruit 上にスイッチを持つことは理にかなっています。
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth の Rules.mk オプション
これらのうちの1つだけを使ってください
現在サポートされている Bluetooth チップセットは [N-キーロールオーバー (NKRO)](ja/reference_glossary.md#n-key-rollover-nkro) をサポートしていません。そのため、`rules.mk``NKRO_ENABLE = no` を含めなければなりません。
Bluetooth を有効にするには、以下のうちの1つだけを使ってください:
* BLUETOOTH_ENABLE = yes (レガシーオプション)
* BLUETOOTH = RN42
* BLUETOOTH = AdafruitEZKey
* BLUETOOTH = AdafruitBLE
## Bluetooth キーコード
これは複数のキーボードの出力が選択できる場合に使われます。現在のところ、これは USB と Bluetooth の両方をサポートするキーボードで、それらの間の切り替えのみが可能です。
| 名前 | 説明 |
|----------|----------------------------------------------|
| 名前 | 説明 |
| ---------- | ------------------------------------- |
| `OUT_AUTO` | USB と Bluetooth を自動的に切り替える |
| `OUT_USB` | USB のみ |
| `OUT_BT` | Bluetooth のみ |
| `OUT_USB` | USB のみ |
| `OUT_BT` | Bluetooth のみ |

View File

@@ -1,8 +1,8 @@
# コンボ
<!---
original document: 0.8.94:docs/feature_combo.md
git diff 0.8.94 HEAD -- docs/feature_combo.md | cat
original document: 0.10.36:docs/feature_combo.md
git diff 0.10.36 HEAD -- docs/feature_combo.md | cat
-->
コンボ機能は、同時押し方式でのカスタムアクション追加機能です。同時に複数のキーを押して、異なる効果を生み出すことができます。例えば、タッピング時間内で `A``S` を押すと、代わりに `ESC` が押されます。もっと複雑なタスクを実行させることもできます。
@@ -60,7 +60,7 @@ combo_t key_combos[COMBO_COUNT] = {
[XV_PASTE] = COMBO_ACTION(paste_combo),
};
void process_combo_event(uint8_t combo_index, bool pressed) {
void process_combo_event(uint16_t combo_index, bool pressed) {
switch(combo_index) {
case ZC_COPY:
if (pressed) {

View File

@@ -0,0 +1,47 @@
# デバウンスアルゴリズム
<!---
original document: 0.9.19:docs/feature_debounce_type.md
git diff 0.9.19 HEAD -- docs/feature_debounce_type.md | cat
-->
QMK はデバウンス API を介して複数のデバウンスアルゴリズムをサポートします。
どのデバウンスメソッドが呼ばれるかのロジックは下記のとおりです。rules.mk で設定された様々な定義をチェックします。
```
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
DEBOUNCE_TYPE?= sym_g
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
```
# デバウンスの選択
| DEBOUNCE_TYPE | 説明 | 他に必要なもの |
| ------------- | --------------------------------------------------- | ----------------------------- |
| 未定義 | デフォルトのアルゴリズム、現在のところ sym_g を使います | 無し |
| custom | 独自のデバウンスコードを使います | ```SRC += debounce.c``` で独自の debounce.c を追加し、必要な関数を実装します |
| anything_else | quantum/debounce/* から他のアルゴリズムを使います | 無し |
**分割キーボードについて**:
デバウンスコードは分割キーボードと互換性があります。
# 独自のデバウンスコードの使用
* ```DEBOUNCE_TYPE = custom``` を設定します。
* ```SRC += debounce.c``` を追加します。
* 独自の ```debounce.c``` を追加します。例については、```quantum/debounce``` にある現在の実装をみてください。
* 毎回のマトリクススキャンの結果はその度デバウンスによって処理されます。
* MATRIX_ROWS ではなく num_rows を使って、分割キーボードが正しくサポートされるようにします。
# インクルードされているデバウンスメソッド間での切り替え
独自の debounce.c をインクルードすることで独自のコードを使うか、またはインクルードされている他のコードに切り替えることができます。
含まれるデバウンスメソッドは以下の通りです:
* eager_pr - 行ごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後その行は ```DEBOUNCE``` ミリ秒の間入力されません。
```NUM_KEYS``` の 8ビットカウンタの更新に高い計算コストがかかる、もしくは低スキャンレートのキーボード用で、各指は通常一度に1行しか叩かないようになっています。これは ErgoDox モデルに適しています; マトリックスは90度回転しているため、その「行」は実際には「列」であり、通常の使用では各指は一度に1つの「行」にしか当たりません。
* eager_pk - キーごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後そのキーは ```DEBOUNCE``` ミリ秒の間入力されません。
* sym_g - キーボードごとにデバウンスします。状態が変化すると、グローバルタイマが設定されます。```DEBOUNCE``` ミリ秒の間何も変化がなければ、全ての入力の変更がプッシュされます。
* sym_pk - キーごとにデバウンスします。状態が変化すると、キーごとのタイマーが設定されます。```DEBOUNCE``` ミリ秒の間そのキーに変化がなければ、キーの状態の変更がプッシュされます。

View File

@@ -1,8 +1,8 @@
# DIP スイッチ
<!---
original document: 0.8.94:docs/feature_dip_switch.md
git diff 0.8.94 HEAD -- docs/feature_dip_switch.md | cat
original document: 0.9.43:docs/feature_dip_switch.md
git diff 0.9.43 HEAD -- docs/feature_dip_switch.md | cat
-->
DIP スイッチは、以下を `rules.mk` に追加することでサポートされます:
@@ -12,9 +12,17 @@ DIP スイッチは、以下を `rules.mk` に追加することでサポート
さらに、以下を `config.h` に追加します:
```c
// Connects each switch in the dip switch to the GPIO pin of the MCU
#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
```
あるいは
```c
// Connect each switch in the DIP switch to an unused intersections in the key matrix.
#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {2,6} } // List of row and col pairs
```
## コールバック
コールバック関数を `<keyboard>.c` に記述することができます:
@@ -92,4 +100,10 @@ void dip_switch_update_mask_user(uint32_t state) {
## ハードウェア
### DIP スイッチの各スイッチを MCU の GPIO ピンに接続する
DIP スイッチの片側は MCU のピンへ直接配線し、もう一方の側はグラウンドに配線する必要があります。機能的に同じであるため、どちら側がどちらに接続されているかは問題にはならないはずです。
### DIP スイッチの各スイッチをキーマトリクスの未使用の交点に接続する
キースイッチと同じように、ダイオードと DIP スイッチが ROW 線と COL 線に接続します。

View File

@@ -1,8 +1,8 @@
# 動的マクロ: ランタイムでのマクロの記録および再生
<!---
original document: 0.8.123:docs/feature_dynamic_macros.md
git diff 0.8.123 HEAD -- docs/feature_dynamic_macros.md | cat
original document: 0.10.33:docs/feature_dynamic_macros.md
git diff 0.10.33 HEAD -- docs/feature_dynamic_macros.md | cat
-->
QMK はその場で作られた一時的なマクロをサポートします。これらを動的マクロと呼びます。それらはユーザがキーボードから定義し、キーボードのプラグを抜くか再起動すると失われます。
@@ -23,7 +23,7 @@ QMK はその場で作られた一時的なマクロをサポートします。
マクロの記録を開始するには、`DYN_REC_START1` または `DYN_REC_START2` のどちらかを押します。
記録を終了するには、`DYN_REC_STOP` レイヤーボタンを押します。
記録を終了するには、`DYN_REC_STOP` レイヤーボタンを押します。`DYN_REC_START1` または `DYN_REC_START2` をもう一度押すことでも記録を終了することができます。
マクロを再生するには、`DYN_MACRO_PLAY1` あるいは `DYN_MACRO_PLAY2` のどちらかを押します。

View File

@@ -1,8 +1,8 @@
# エンコーダ
<!---
original document: 0.8.123:docs/feature_encoders.md
git diff 0.8.123 HEAD -- docs/feature_encoders.md | cat
original document: 0.9.43:docs/feature_encoders.md
git diff 0.9.43 HEAD -- docs/feature_encoders.md | cat
-->
以下を `rules.mk` に追加することで基本的なエンコーダがサポートされます:
@@ -31,7 +31,7 @@ ENCODER_ENABLE = yes
#define ENCODER_DIRECTION_FLIP
```
さらに、解像度を同じファイルで指定することができます (デフォルトかつお勧めは4):
さらに、エンコーダが各戻り止め(デテント)間に登録するパルス数を定義する解像度は、次のように定義できます:
```c
#define ENCODER_RESOLUTION 4

View File

@@ -1,11 +1,11 @@
# HD44780 LCD ディスプレイ
<!---
original document: 0.8.123:docs/feature_hd44780.md
git diff 0.8.123 HEAD -- docs/feature_hd44780.md | cat
original document: 0.9.43:docs/feature_hd44780.md
git diff 0.9.43 HEAD -- docs/feature_hd44780.md | cat
-->
これは Peter Fleury の LCD ライブラリの統合です。このページは基本について説明します。[詳細なドキュメントについてはこのページをご覧ください](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) (訳注)原文のリンク先のページは、サービスの終了に伴って削除されています。移行先は (http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) と思われます。
これは Peter Fleury の LCD ライブラリの統合です。このページは基本について説明します。[詳細なドキュメントについてはこのページをご覧ください](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
HD44780 ディスプレイのサポートを有効にするには、キーボードの `rules.mk``HD44780_ENABLE` フラグを yes に設定します。
@@ -59,4 +59,4 @@ LCD_DISP_ON_CURSOR_BLINK : ディスプレイオン、点滅カーソル
ディスプレイに何かを表示するには、最初に `lcd_gotoxy(column, line)` を呼びます。最初の行の先頭に移動するには、`lcd_gotoxy(0, 0)` を呼び出し、その後 `lcd_puts("example string")` を使って文字列を出力します。
ディスプレイを制御することができる、より多くのメソッドがあります。[詳細なドキュメントについてはリンクされたページをご覧ください](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) (訳注)原文のリンク先のページは、サービスの終了に伴って削除されています。移行先は (http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) と思われます。
ディスプレイを制御することができる、より多くのメソッドがあります。[詳細なドキュメントについてはリンクされたページをご覧ください](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)

View File

@@ -1,8 +1,8 @@
# レイヤー :id=layers
<!---
original document: 0.9.20:docs/feature_layers.md
git diff 0.9.20 HEAD -- docs/feature_layers.md | cat
original document: 0.9.43:docs/feature_layers.md
git diff 0.9.43 HEAD -- docs/feature_layers.md | cat
-->
QMK ファームウェアの最も強力で良く使われている機能の一つは、レイヤーを使う機能です。ほとんどの人にとって、これはラップトップやタブレットキーボードにあるのと同じように、様々なキーを可能にするファンクションキーに相当します。
@@ -58,42 +58,42 @@ QMK を使い始めたばかりの場合は、全てを単純にしたいでし
レイヤーの使用あるいは操作に関係する多くの関数(と変数)があります。
| 関数 | 説明 |
|----------------------------------------------|---------------------------------------------------------------------------------------------------------|
| `layer_state_set(layer_mask)` | 直接レイヤーの状態を設定する (推奨。何をしているのか分かっていない場合は使わないでください)。 |
| `layer_clear()` | 全てのレイヤーを消去する (全てをオフにします)。 |
| `layer_move(layer)` | 指定されたレイヤーをオンにし、それ以外をオフにする。 |
| `layer_on(layer)` | 指定されたレイヤーをオンにし、それ以外を既存の状態のままにする。 |
| `layer_off(layer)` | 指定されたレイヤーをオフにし、それ以外を既存の状態のままにする。 |
| `layer_invert(layer)` | 指定されたレイヤーの状態を反転/トグルする。 |
| `layer_or(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で一致するビットに基づいてレイヤーをオンにする。 |
| `layer_and(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で有効なビットに基づいてレイヤーをオンにする。 |
| `layer_xor(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で一致しないビットに基づいてレイヤーをオンにする。 |
| `layer_debug(layer_mask)` | デバッガのコンソールに現在のビットマスクと最も高いレイヤーを出力する。 |
| `default_layer_set(layer_mask)` | 直接デフォルトレイヤーの状態を設定する (推奨。何をしているのか分かっていない場合は使わないでください)。 |
| `default_layer_or(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致するビットに基づいてレイヤーをオンにする。 |
| `default_layer_and(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致する有効なビットに基づいてレイヤーをオンにする。 |
| `default_layer_xor(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致しないビットに基づいてレイヤーをオンにする。 |
| `default_layer_debug(layer_mask)` | デバッガのコンソールに現在のビットマスクと最も高いアクティブなレイヤーを出力する。 |
| [`set_single_persistent_default_layer(layer)`](ja/ref_functions.md#setting-the-persistent-default-layer) | デフォルトレイヤーを設定し、それを永続化メモリ (EEPROM) に書き込む。 |
| [`update_tri_layer(x, y, z)`](ja/ref_functions.md#update_tri_layerx-y-z) | レイヤー `x``y` の両方がオンであるかを調べ、それに基づいて `z` を設定する(両方がオンの場合オン、そうでなければオフ)。 |
| [`update_tri_layer_state(state, x, y, z)`](ja/ref_functions.md#update_tri_layer_statestate-x-y-z) | `update_tri_layer(x, y, z)` と同じことをするが、`layer_state_set_*` 関数から呼ばれる。 |
| 関数 | 説明 |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `layer_state_set(layer_mask)` | 直接レイヤーの状態を設定する (推奨。何をしているのか分かっていない場合は使わないでください)。 |
| `layer_clear()` | 全てのレイヤーを消去する (全てをオフにします)。 |
| `layer_move(layer)` | 指定されたレイヤーをオンにし、それ以外をオフにする。 |
| `layer_on(layer)` | 指定されたレイヤーをオンにし、それ以外を既存の状態のままにする。 |
| `layer_off(layer)` | 指定されたレイヤーをオフにし、それ以外を既存の状態のままにする。 |
| `layer_invert(layer)` | 指定されたレイヤーの状態を反転/トグルする。 |
| `layer_or(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で一致するビットに基づいてレイヤーをオンにする。 |
| `layer_and(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で有効なビットに基づいてレイヤーをオンにする。 |
| `layer_xor(layer_mask)` | 指定されたレイヤーと既存のレイヤー状態の間で一致しないビットに基づいてレイヤーをオンにする。 |
| `layer_debug(layer_mask)` | デバッガのコンソールに現在のビットマスクと最も高いレイヤーを出力する。 |
| `default_layer_set(layer_mask)` | 直接デフォルトレイヤーの状態を設定する (推奨。何をしているのか分かっていない場合は使わないでください)。 |
| `default_layer_or(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致するビットに基づいてレイヤーをオンにする。 |
| `default_layer_and(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致する有効なビットに基づいてレイヤーをオンにする。 |
| `default_layer_xor(layer_mask)` | 指定されたレイヤーと既存のデフォルトレイヤー状態の間で一致しないビットに基づいてレイヤーをオンにする。 |
| `default_layer_debug(layer_mask)` | デバッガのコンソールに現在のビットマスクと最も高いアクティブなレイヤーを出力する。 |
| [`set_single_persistent_default_layer(layer)`](ja/ref_functions.md#setting-the-persistent-default-layer) | デフォルトレイヤーを設定し、それを永続化メモリ (EEPROM) に書き込む。 |
| [`update_tri_layer(x, y, z)`](ja/ref_functions.md#update_tri_layerx-y-z) | レイヤー `x``y` の両方がオンであるかを調べ、それに基づいて `z` を設定する(両方がオンの場合オン、そうでなければオフ)。 |
| [`update_tri_layer_state(state, x, y, z)`](ja/ref_functions.md#update_tri_layer_statestate-x-y-z) | `update_tri_layer(x, y, z)` と同じことをするが、`layer_state_set_*` 関数から呼ばれる。 |
呼び出すことができる関数に加えて、レイヤーが変更されるたびに呼び出されるコールバック関数が幾つかあります。これはレイヤー状態を関数に渡し、読み取りや変更することができます。
| コールバック | 説明 |
|-----------------------------------------------------|----------------------------------------------------------------------------------------|
| `layer_state_set_kb(layer_state_t state)` | キーボードレベルのレイヤー関数のためのコールバック。 |
| `layer_state_set_user(layer_state_t state)` | ユーザレベルのレイヤー関数のためのコールバック。 |
| `default_layer_state_set_kb(layer_state_t state)` | キーボードレベルのデフォルトレイヤー関数のためのコールバック。キーボードの初期化時に呼ばれます。 |
| `default_layer_state_set_user(layer_state_t state)` | ユーザレベルのデフォルトレイヤー関数のためのコールバック。キーボードの初期化時に呼ばれます。 |
| コールバック | 説明 |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `layer_state_set_kb(layer_state_t state)` | キーボードレベルのレイヤー関数のためのコールバック。 |
| `layer_state_set_user(layer_state_t state)` | ユーザレベルのレイヤー関数のためのコールバック。 |
| `default_layer_state_set_kb(layer_state_t state)` | キーボードレベルのデフォルトレイヤー関数のためのコールバック。キーボードの初期化時に呼ばれます。 |
| `default_layer_state_set_user(layer_state_t state)` | ユーザレベルのデフォルトレイヤー関数のためのコールバック。キーボードの初期化時に呼ばれます。 |
?> これらのコールバックを使うための追加の情報については、[レイヤー変換コード](ja/custom_quantum_functions.md#layer-change-code)のドキュメントを調べてください。
| チェック関数 | 説明 |
|-------------------------------------------|------------------------------------------------------------------------------|
| `layer_state_cmp(cmp_layer_state, layer)` | これは `cmp_layer_state` を調べて、指定された `layer` が有効かどうかを確認します。これは、レイヤーコールバックで使うためのものです。 |
| `layer_state_is(layer)` | これはレイヤーの状態を調べて、指定された `layer` が有効かどうかを確認します。(グローバルレイヤー状態については、`layer_state_cmp` を呼びます)。 |
次の関数やマクロを使って、特定のレイヤーの状態を確認することもできます。
!> `IS_LAYER_ON(layer)` もありますが、`layer_state_cmp` 関数には、レイヤー0で正しい値を返すようにするために追加の処理があります。さもないと、レイヤー0がオンになっているかどうかを確認する時に誤った値が返されることがあります。
| 関数 | 説明 | 別名 |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `layer_state_is(layer)` | 指定された `layer` がグローバルに有効かどうかを確認する。 | `IS_LAYER_ON(layer)`, `IS_LAYER_OFF(layer)` |
| `layer_state_cmp(state, layer)` | `state` を確認して指定された `layer` が有効かどうかを確認する。レイヤーのコールバックで使うことを目的とする。 | `IS_LAYER_ON_STATE(state, layer)`, `IS_LAYER_OFF_STATE(state, layer)` |

View File

@@ -1,8 +1,8 @@
# リーダーキー: 新しい種類のモディファイア
<!---
original document: 0.8.134:docs/feature_leader_key.md
git diff 0.8.134 HEAD -- docs/feature_leader_key.md | cat
original document: 0.10.33:docs/feature_leader_key.md
git diff 0.10.33 HEAD -- docs/feature_leader_key.md | cat
-->
もしあなたが Vim を使ったことがある場合、リーダーキーは何であるかを知っています。そうでなければ、素晴らしい概念を発見しようとしています。:) 例えば、Alt+Shift+W を押す(3つのキーを同時に押す)代わりに、キーの_シーケンス_を押すことができたらどうでしょうつまり、特別なモディファイア (リーダーキー)を押して、続けて W と C を押すと (単純にキーを高速に繋げます)、何かが起こります。

View File

@@ -1,8 +1,8 @@
# マクロ
<!---
original document: 0.8.169:docs/feature_macros.md
git diff 0.8.169 HEAD -- docs/feature_macros.md | cat
original document: 0.9.43:docs/feature_macros.md
git diff 0.9.43 HEAD -- docs/feature_macros.md | cat
-->
マクロにより、1つのキーを押すだけで複数のキーストロークを送信することができます。QMK にはマクロを定義し使う方法が幾つかあります。これらはなんでもすることができます: よく使うフレーズの入力、コピーペースト、反復的なゲームの動き、あるいはコードを書くことさえ手助けします。
@@ -11,34 +11,34 @@
## 新しい方法: `SEND_STRING()` と `process_record_user`
単語またはフレーズを入力するキーが欲しい時があります。最も一般的な状況のために `SEND_STRING()` を提供しています。これは文字列(つまり、文字のシーケンス)を入力します。簡単にキーコードに変換することができる全ての ASCII 文字がサポートされています (例えば、`\n\t`)。
単語またはフレーズを入力するキーが欲しい時があります。最も一般的な状況のために `SEND_STRING()` を提供しています。これは文字列(つまり、文字のシーケンス)を入力します。簡単にキーコードに変換することができる全ての ASCII 文字がサポートされています (例えば、`qmk 123\n\t`)。
以下は2キーのキーボードのための `keymap.c` の例です:
```c
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKBEST = SAFE_RANGE,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// キーコード QMKBEST が押された時
SEND_STRING("QMK is the best thing ever!");
} else {
// キーコード QMKBEST が放された時
}
break;
}
return true;
if (record->event.pressed) {
// キーコード QMKBEST が押された時
SEND_STRING("QMK is the best thing ever!");
} else {
// キーコード QMKBEST が放された時
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{QMKBEST, KC_ESC}
}
[0] = {
{QMKBEST, KC_ESC},
// ...
},
};
```
@@ -54,42 +54,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
```c
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKURL,
MY_OTHER_MACRO
QMKBEST = SAFE_RANGE,
QMKURL,
MY_OTHER_MACRO,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// キーコード QMKBEST が押された時
SEND_STRING("QMK is the best thing ever!");
} else {
// キーコード QMKBEST が放された時
}
break;
if (record->event.pressed) {
// キーコード QMKBEST が押された時
SEND_STRING("QMK is the best thing ever!");
} else {
// キーコード QMKBEST が放された時
}
break;
case QMKURL:
if (record->event.pressed) {
// キーコード QMKURL が押された場合
SEND_STRING("https://qmk.fm/\n");
} else {
// キーコード QMKURL が放された場合
}
break;
if (record->event.pressed) {
// キーコード QMKURL が押された場合
SEND_STRING("https://qmk.fm/\n");
} else {
// キーコード QMKURL が放された場合
}
break;
case MY_OTHER_MACRO:
if (record->event.pressed) {
SEND_STRING(SS_LCTL("ac")); // 全てを選択しコピーします
}
break;
}
return true;
if (record->event.pressed) {
SEND_STRING(SS_LCTL("ac")); // 全てを選択しコピーします
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO}
}
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO},
// ...
},
};
```

View File

@@ -1,8 +1,8 @@
# マウスキー
<!---
original document: 0.8.141:docs/feature_mouse_keys.md
git diff 0.8.141 HEAD -- docs/feature_mouse_keys.md | cat
original document: 0.9.44:docs/feature_mouse_keys.md
git diff 0.9.44 HEAD -- docs/feature_mouse_keys.md | cat
-->
マウスキーは、キーボードを使ってマウスをエミュレートできる機能です。様々な速度でポインタを移動し、5つのボタンを押し、8方向にスクロールすることができます。
@@ -44,10 +44,11 @@ MOUSEKEY_ENABLE = yes
## マウスキーの設定
マウスキーはカーソルを移動するための2つの異なるモードをサポートします:
マウスキーはカーソルを移動するための3つの異なるモードをサポートします:
* **加速 (デフォルト):** 移動キーを押したままにすると、カーソルが最大速度に達するまでカーソルを加速します。
* **定速:** 移動キーを押したままにすると、カーソルを一定の速度で移動します。
* **混合:** 移動キーを押したままにすると、カーソルが最大速度に達するまでカーソルを加速し、加速キーと移動キーを同時に押すとカーソルは一定の速度で移動します。
同じ原則がスクロールにも適用されます。
@@ -125,3 +126,19 @@ MOUSEKEY_ENABLE = yes
| `MK_W_INTERVAL_1` | 120 | スクロールステップ間の時間 (`KC_ACL1`) |
| `MK_W_OFFSET_2` | 1 | スクロールアクションごとのスクロールステップ (`KC_ACL2`) |
| `MK_W_INTERVAL_2` | 20 | スクロールステップ間の時間 (`KC_ACL2`) |
### 混合モード
このモードは **加速** モードのように機能しますが`KC_ACL0``KC_ACL1``KC_ACL2` を押したままにすることで
一時的(押している間)にカーソルとスクロール速度を定速に設定できます
加速キーが押されていない場合このモードは **加速** モードと同じで関連する全ての設定を使って変更できます
* **KC_ACL0:** この加速はカーソルをできるだけ遅い速度に設定しますこれはカーソルを非常に小さく詳細に移動する場合に便利です
* **KC_ACL1:** この加速はカーソルを最大(ユーザ定義)速度の半分に設定します
* **KC_ACL2:** この加速はカーソルを最大(コンピュータ定義)速度に設定しますこれは正確性を多少犠牲にしてカーソルを大きく移動する場合に便利です
混合モードを使うにはキーマップの `config.h` ファイルに少なくとも `MK_COMBINED` を定義しなければなりません:
```c
#define MK_COMBINED
```

View File

@@ -1,8 +1,8 @@
# ポインティングデバイス :id=pointing-device
<!---
original document: 0.8.182:docs/feature_pointing_device.md
git diff 0.8.182 HEAD -- docs/feature_pointing_device.md | cat
original document: 0.9.43:docs/feature_pointing_device.md
git diff 0.9.43 HEAD -- docs/feature_pointing_device.md | cat
-->
ポインティングデバイスは汎用的な機能の総称です: システムポインタを移動します。マウスキーのような他のオプションも確かにありますが、これは簡単に変更可能で軽量であることを目指しています。機能を制御するためにカスタムキーを実装したり、他の周辺機器から情報を収集してここに直接挿入したりできます - QMK に処理を任せてください。
@@ -26,7 +26,11 @@ report_mouse_t (ここでは "mouseReport") が以下のプロパティを持つ
* `mouseReport.h` - これは、水平スクロール(+ 右へ、- 左へ)を表す -127 から 127 (128ではなく、USB HID 仕様で定義されています)の符号付き整数です。
* `mouseReport.buttons` - これは uint8_t で、上位の5ビットを使っています。これらのビットはマウスボタンの状態を表します - ビット 3 はマウスボタン 5、ビット 7 はマウスボタン 1 です。
マウスレポートが送信されると、x、y、v、h のいずれの値も 0 に設定されます (これは "pointing_device_send()" で行われます。この挙動を回避するためにオーバーライドすることができます)。このように、ボタンの状態は持続しますが、動きは1度だけ起こります。さらにカスタマイズするために、`pointing_device_init``pointing_device_task` のどちらもオーバーライドすることができます
マウスレポートに必要な変更を行ったら、それを送信する必要があります:
* `pointing_device_send()` - マウスレポートをホストに送信し、レポートをゼロにします。
マウスレポートが送信されると、x、y、v、h のいずれの値も 0 に設定されます (これは `pointing_device_send()` で行われます。この挙動を回避するためにオーバーライドすることができます)。このように、ボタンの状態は持続しますが、動きは1度だけ起こります。さらにカスタマイズするために、`pointing_device_init``pointing_device_task` のどちらもオーバーライドすることができます。
以下の例では、カスタムキーを使ってマウスをクリックし垂直および水平方向に127単位スクロールし、リリースされた時にそれを全て元に戻します - なぜならこれは完全に便利な機能だからです。いいですか、以下はひとつの例です:
@@ -43,6 +47,7 @@ case MS_SPECIAL:
currentReport.buttons &= ~MOUSE_BTN1;
}
pointing_device_set_report(currentReport);
pointing_device_send();
break;
```

View File

@@ -1,8 +1,8 @@
# PS/2 マウスサポート :id=ps2-mouse-support
<!---
original document: 0.8.147:docs/feature_ps2_mouse.md
git diff 0.8.147 HEAD -- docs/feature_ps2_mouse.md | cat
original document: 0.9.44:docs/feature_ps2_mouse.md
git diff 0.9.44 HEAD -- docs/feature_ps2_mouse.md | cat
-->
PS/2 マウス (例えばタッチパッドあるいはトラックポイント)を複合デバイスとしてキーボードに接続することができます。
@@ -291,3 +291,13 @@ X 軸と Y 軸を反転するには、以下を config.h に配置します:
#define PS2_MOUSE_DEBUG_HID
#define PS2_MOUSE_DEBUG_RAW
```
### 動作フック :id=movement-hook
ホストに送信される前にキーマップでマウスの動作を処理します。使用例として、
ノイズのフィルタリング、加速の追加、レイヤーの自動アクティブ化が含まれます。
使用するには、キーマップで次の関数を定義します:
```c
void ps2_mouse_moved_user(report_mouse_t *mouse_report);
```

View File

@@ -1,8 +1,8 @@
# 分割キーボード
<!---
original document:0.9.5:docs/feature_split_keyboard.md
git diff 0.9.5 HEAD -- docs/feature_split_keyboard.md | cat
original document:0.10.8:docs/feature_split_keyboard.md
git diff 0.10.8 HEAD -- docs/feature_split_keyboard.md | cat
-->
QMK ファームウェアリポジトリの多くのキーボードは、"分割"キーボードです。それらは2つのコントローラを使います — 1つは USB に接続し、もう1つは TRRS または同様のケーブルを介してシリアルまたは I<sup>2</sup>C 接続で接続します。
@@ -20,12 +20,12 @@ QMK ファームウェアには、任意のキーボードで使用可能な一
| Transport | AVR | ARM |
|------------------------------|--------------------|--------------------|
| ['serial'](serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> |
| ['serial'](ja/serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> |
| I2C | :heavy_check_mark: | |
注意:
1. ハードウェアとソフトウェアの両方の制限は、[ドライバーのドキュメント](serial_driver.md)の中で説明されます。
1. ハードウェアとソフトウェアの両方の制限は、[ドライバーのドキュメント](ja/serial_driver.md)の中で説明されます。
## ハードウェア設定
@@ -53,11 +53,12 @@ QMK ファームウェアには、任意のキーボードで使用可能な一
### シリアル配線
2つの Pro Micro 間で GND、Vcc、D0 (別名 PDO あるいは pin 3) を TRS/TRRS ケーブルの3本のワイヤで接続します。
2つの Pro Micro 間で GND、Vcc、D0/D1/D2/D3 (別名 PD0/PD1/PD2/PD3) を TRS/TRRS ケーブルの3本のワイヤで接続します。
?> ここで使われるピンは実際には以下の `SOFT_SERIAL_PIN` によって設定されることに注意してください。
![シリアル配線](https://i.imgur.com/C3D1GAQ.png)
<img alt="sk-pd0-connection-mono" src="https://user-images.githubusercontent.com/2170248/92296488-28e9ad80-ef70-11ea-98be-c40cb48a0319.JPG" width="48%"/>
<img alt="sk-pd2-connection-mono" src="https://user-images.githubusercontent.com/2170248/92296490-2d15cb00-ef70-11ea-801f-5ace313013e6.JPG" width="48%"/>
### I<sup>2</sup>C 配線
@@ -65,7 +66,7 @@ QMK ファームウェアには、任意のキーボードで使用可能な一
プルアップ抵抗はキーボードの左右どちら側にも配置することができます。もし各側を単独で使いたい場合は、4つの抵抗を使い、両側にプルアップ抵抗を配置することもできます。
![I2C 配線](https://i.imgur.com/Hbzhc6E.png)
<img alt="sk-i2c-connection-mono" src="https://user-images.githubusercontent.com/2170248/92297182-92b98580-ef77-11ea-9d7d-d6033914af43.JPG" width="50%"/>
## ファームウェア設定
@@ -95,6 +96,24 @@ SPLIT_TRANSPORT = custom
これは指定されたピンを読み込みます。high の場合、コントローラはそれを左側だと仮定し、low の場合、それは右側であると仮定します。
#### マトリックスピンによる左右の設定
左右を決定するためにコントローラのキーマトリックスピンを読むようにファームウェアを設定することができます。これを行うには、以下を `config.h` ファイルに追加します:
```c
#define SPLIT_HAND_MATRIX_GRID D0, F1
```
最初のピンは出力ピンで、2つ目は入力ピンです。
キーマトリックスに未使用の交点があるキーボードがあります。この設定は、左右の決定にこれらの未使用の交点の1つを使用します。
通常、ダイオードが交点に接続されている場合、左側と判断されます。次の定義を追加すると、右側と判断されます。
```c
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
```
#### EEPROM による左右の設定
このメソッドは永続ストレージ(`EEPROM`)のフラグを設定することで、キーボードの左右を設定します。これはコントローラが最初に起動する時にチェックされ、キーボードのどちら側であるかとキーボードのレイアウトの向きを決定します。

View File

@@ -0,0 +1,136 @@
# QMK での速記 :id=stenography-in-qmk
<!---
original document: 0.10.33:docs/feature_stenography.md
git diff 0.10.33 HEAD -- docs/feature_stenography.md | cat
-->
[速記](https://en.wikipedia.org/wiki/Stenotype)は裁判所のレポート、字幕および耳が不自由な人のためのリアルタイムの文字起こしで最もよく使われる記述方法です。速記では単語はスペル、音声およびショートカット(短い)ストロークが混在する音節ごとに音節化されます。プロの速記者は、標準的なタイピングで通常見られる負担を掛けずに、はるかに少ないエラー(99.9%より高い精度)で、200-300 WPM に到達できます。
[Open Steno Project](http://www.openstenoproject.org/)は、速記ストロークを単語とコマンドにリアルタイムに変換する Plover と呼ばれるオープンソースプログラムを構築しました。確立された辞書とサポートがあります。
## QWERTY キーボードを使った Plover :id=plover-with-qwerty-keyboard
Plover は全ての標準的な QWERTY キーボードで動作しますが、キーボードが NKRO (n-キーロールオーバー)をサポートする場合は Plover は一度に押された全てのキーが分かるためより効率的です。Plover 用のキーマップの例は `planck/keymaps/default` で見つかります。`PLOVER` レイヤーに切り替えると、数字バーをサポートするためにキーボードの位置が調整されます。
QMK で Plover を使うには、NKRO を有効にし、標準レイアウト以外のレイアウトの場合はオプションでレイアウトを調整します。複数のキーを押しやすくするために、なんらかの速記フレンドリなキーキャップを購入することもできます。
## 速記プロトコルを使った Plover :id=plover-with-steno-protocol
Plover は幾つかの速記マシンの言語も理解します。QMK はこれらの言語の内2つの言語、TX Bolt と GeminiPR を話すことができます。レイアウトの例は `planck/keymaps/steno` で見つけることができます。
QMKが steno プロトコルを使って Plover と話す場合は、Plover は入力としてキーボードを使いません。標準のキーボードと速記キーボードを行き来したり、あるいは Plover をアクティブ/非アクティブにする必要なく Plover と標準のレイヤーを行き来することができることを意味します。
このモードでは、Plover はシリアルポートを介して速記マシンと通信すると想定しているため、QMK はオペレーティングシステムに対してキーボードに加えて仮想シリアルポートとして存在しています。デフォルトでは、QMK は TX Bolt プロトコルを話しますが、GeminiPR に切り替えることができます; 最後に使われたプロトコルが不揮発性メモリに格納されるため QMK は再起動時に同じプロトコルを使います。
> 注意: ハードウェアの制限により、仮想シリアルポートとマウスエミュレーションの両方を同時に実行することができないかもしれません。
### TX Bolt :id=tx-bolt
TX Bolt は可変サイズ(1-5バイト)のパケットで非常に単純なプロトコルを介して24個のキーのステータスを通信します。
### GeminiPR :id=geminipr
GeminiPR は42個のキーを6バイトのパケットにエンコードします。TX Bolt は標準的な速記に必要な全てを含んでいますが、GeminiPR は英語以外の速記法のサポートを含む、より多くのオプションにも開け放たれています。
## 速記のための QMK の設定 :id=configuring-qmk-for-steno
最初にキーマップの Makefile で速記を有効にします。競合を避けるために、マウスキー、追加キーあるいはその他の USB エンドポイントを無効にする必要もあります。幾つかのプロセッサの内蔵の USB スタックは一定数の USB エンドポイントと仮想シリアルポートのみをサポートし、速記はそれらのうちの3つを使います。
```makefile
STENO_ENABLE = yes
MOUSEKEY_ENABLE = no
```
キーマップで Plover 用の新しいレイヤーを作成します。`keymap_steno.h` をインクルードする必要があります。例については `planck/keymaps/steno/keymap.c` を見てください。レイヤーに切り替えるためのキーとレイヤーから抜けるためのキーを作成することを忘れないでください。その場でモードを切り替えたい場合は、キーコード `QK_STENO_BOLT` および `QK_STENO_GEMINI` を使うことができます。プロトコルのうちの1つのみを使う場合は、初期化関数の中でそれをセットアップすることができます:
```c
void matrix_init_user() {
steno_set_mode(STENO_MODE_GEMINI); // あるいは STENO_MODE_BOLT
}
```
キーボードを書き込んだら、Plover を起動します。'Configure...' ボタンをクリックします。'Machine' タブの中で目的のプロトコルに対応する速記マシンを選択します。このタブの 'Configure...' ボタンをクリックし、シリアルポートを入力するか 'Scan' をクリックします。ボーレートは 9600 で問題ありません (ただし、115200まで問題無く設定することができるはずです)。それ以外はデフォルトの設定(データビット長: 8、ストップビット長: 1、パリティチェック: なし、フロー制御なし)を使います。
ディスプレイタブで 'Open stroke display' をクリックします。Plover を無効にすると、キーボードのキーを押すとストローク表示ウィンドウにそれらが表示されるはずです。これを使ってキーマップが正しくセットアップされたことを確認してください。これで速記をする準備ができました!
## 速記の学習 :id=learning-stenography
* [Learn Plover!](https://sites.google.com/site/learnplover/)
* [QWERTY Steno](http://qwertysteno.com/Home/)
* [Steno Jig](https://joshuagrams.github.io/steno-jig/)
* Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki のより多くのリソース
## コードとのインターフェイス :id=interfacing-with-the-code
速記コードには3つの捕捉可能なフックがあります。これらの関数を定義した場合、処理の特定のポイントでそれらが呼び出されます; それらが true を返す場合処理が継続され、そうでなければあなたが物事を処理すると想定します。
```c
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]);
```
この関数はコードが送信されようとしている時に呼ばれます。モードは `STENO_MODE_BOLT` あるいは `STENO_MODE_GEMINI` のいずれかです。これはいずれかのプロトコルを介して送信される実際のコードを表します。提供されるコードを修正して送信されるものを変更することができます。通常の送信プロセスにしたい場合は true を返すのを忘れないでください。
```c
bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
```
この関数はキーが押されるとキーが処理される前に呼び出されます。キーコードは `QK_STENO_BOLT``QK_STENO_GEMINI` あるいは `STN_*` キー値のいずれかでなければなりません。
```c
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
```
この関数はキーが処理された後、ただしコードを送信するかどうかを決める前に呼び出されます。`IS_PRESSED(record->event)` が false で、`pressed` が 0 または 1 の場合は、コードはまもなく送信されますが、まだ送信されてはいません。ここが速記コードあるいはキーのライブ表示などのフックを配置する場所です。
## キーコードリファレンス :id=keycode-reference
`keymap_steno.h` で定義されています。
> 注意: TX Bolt はキーの完全なセットをサポートしません。QMK での TX Bolt の実装は、GeminiPR キーを最も近い TX Bolt キーにマップします。そのため1つのキーマップが両方で動作します。
| GeminiPR | TX Bolt | Steno Key |
|--------|-------|-----------|
| `STN_N1` | `STN_NUM` | Number bar #1 |
| `STN_N2` | `STN_NUM` | Number bar #2 |
| `STN_N3` | `STN_NUM` | Number bar #3 |
| `STN_N4` | `STN_NUM` | Number bar #4 |
| `STN_N5` | `STN_NUM` | Number bar #5 |
| `STN_N6` | `STN_NUM` | Number bar #6 |
| `STN_N7` | `STN_NUM` | Number bar #7 |
| `STN_N8` | `STN_NUM` | Number bar #8 |
| `STN_N9` | `STN_NUM` | Number bar #9 |
| `STN_NA` | `STN_NUM` | Number bar #A |
| `STN_NB` | `STN_NUM` | Number bar #B |
| `STN_NC` | `STN_NUM` | Number bar #C |
| `STN_S1` | `STN_SL` | `S-` upper |
| `STN_S2` | `STN_SL` | `S-` lower |
| `STN_TL` | `STN_TL` | `T-` |
| `STN_KL` | `STN_KL` | `K-` |
| `STN_PL` | `STN_PL` | `P-` |
| `STN_WL` | `STN_WL` | `W-` |
| `STN_HL` | `STN_HL` | `H-` |
| `STN_RL` | `STN_RL` | `R-` |
| `STN_A` | `STN_A` | `A` vowel |
| `STN_O` | `STN_O` | `O` vowel |
| `STN_ST1` | `STN_STR` | `*` upper-left |
| `STN_ST2` | `STN_STR` | `*` lower-left |
| `STN_ST3` | `STN_STR` | `*` upper-right |
| `STN_ST4` | `STN_STR` | `*` lower-right |
| `STN_E` | `STN_E` | `E` vowel |
| `STN_U` | `STN_U` | `U` vowel |
| `STN_FR` | `STN_FR` | `-F` |
| `STN_PR` | `STN_PR` | `-P` |
| `STN_RR` | `STN_RR` | `-R` |
| `STN_BR` | `STN_BR` | `-B` |
| `STN_LR` | `STN_LR` | `-L` |
| `STN_GR` | `STN_GR` | `-G` |
| `STN_TR` | `STN_TR` | `-T` |
| `STN_SR` | `STN_SR` | `-S` |
| `STN_DR` | `STN_DR` | `-D` |
| `STN_ZR` | `STN_ZR` | `-Z` |
| `STN_FN` | (GeminiPR のみ) |
| `STN_RES1` | (GeminiPR のみ) |
| `STN_RES2` | (GeminiPR のみ) |
| `STN_PWR` | (GeminiPR のみ) |

View File

@@ -1,39 +1,28 @@
# タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします
<!---
original document: 0.9.0:docs/feature_tap_dance.md
git diff 0.9.0 HEAD -- docs/feature_tap_dance.md | cat
-->
original document: 0.10.33:docs/feature_tap_dance.md
git diff 0.10.33 HEAD -- docs/feature_tap_dance.md | cat
-->
## イントロダクション
## イントロダクション :id=introduction
セミコロンキーを1回叩くと、セミコロンが送信されます。2回素早く叩くと、コロンが送信されます。3回叩くと、あなたのキーボードのLEDが激しく踊るように明滅します。これは、タップダンスでできることの一例です。それは、コミュニティが提案したとても素敵なファームウェアの機能の1つで、[algernon](https://github.com/algernon) がプルリクエスト [#451](https://github.com/qmk/qmk_firmware/pull/451) で考えて作ったものです。algernon が述べる機能は次の通りです:
この機能を使うと、特定のキーが、タップした回数に基づいて異なる振る舞いをします。そして、割り込みがあった時は、割り込み前に上手く処理されます。
## `ACTION_FUNCTION_TAP` との比較について
`ACTION_FUNCTION_TAP` はタップダンスに似た機能を提供しますが、注目すべきいくつかの重要な違いがあります。違いを確認するため、いくつかの設定を調べてみましょう。1つのキーを1回タップすると `Space` キーが送信され、2回タップすると `Enter` キーが送信されるよう設定します。
`ACTION_FUNCTION_TAP` では、これを設定するのはかなり大変で、キーの順番が割り込まれた時に割り込んだキーが最初に送られるという問題に直面します。例えば、`SPC a` は、もし `SPC``a``TAPPING_TERM` で設定した時間内に両方とも入力された場合、結果として `a SPC` が送信されます。タップダンス機能を使う場合、正しく `SPC a` が送信されます(`TAPPING_TERM` で設定した時間内に `SPC``a` を入力した場合であっても)。
割り込みを正しくハンドリングして目的を達成するため、タップダンスの実装ではシステムの2つの部分をフックします: `process_record_quantum()` とマトリックススキャンです。この2つの部分については以下で説明しますが、今注意すべき点は、マトリックススキャンでは、キーが押されていない時でもタップのシーケンスをタイムアウトにできる必要があるということです。そうすれば、`TAPPING_TERM` の時間が経過した後、`SPC` だけがタイムアウトになって登録されます。
## タップダンスの使い方
一般論は十分です。タップダンスの実際の使い方を見てみましょう!
最初に、あなたの `rules.mk` ファイルで `TAP_DANCE_ENABLE=yes` と設定する必要があります。なぜならば、デフォルトでは無効になっているからです。これでファームウェアのサイズが1キロバイトほど増加します。
## タップダンスの使い方 :id=how-to-use
最初に、あなたの `rules.mk` ファイルで `TAP_DANCE_ENABLE = yes` と設定する必要があります。なぜならば、デフォルトでは無効になっているからです。これでファームウェアのサイズが1キロバイトほど増加します。
オプションで、あなたの `config.h` ファイルに次のような設定を追加して、`TAPPING_TERM` の時間をカスタマイズしたほうが良いです。
```
```c
#define TAPPING_TERM 175
```
`TAPPING_TERM` の時間は、あなたのタップダンスのキーのタップとタップの間の時間として許可された最大の時間で、ミリ秒単位で計測されます。例えば、もし、あなたがこの上にある `#define` ステートメントを使い、1回タップすると `Space` が送信され、2回タップすると `Enter` が送信されるタップダンスキーをセットアップした場合、175ミリ秒以内に2回キーをタップすれば `ENT` だけが送信されるでしょう。もし、1回タップしてから175ミリ秒以上待ってからもう一度タップすると、`SPC SPC` が送信されます。
次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロ`F()` マクロに似ています — を使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance-actions` 配列のインデックスとして使われます。
次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance-actions` 配列のインデックスとして使われます。
その後、`tap_dance_actions` 配列を使って、タップダンスキーを押した時のアクションを定義します。現在は、5つの可能なオプションがあります:
@@ -43,7 +32,9 @@
* `ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer)`: 1回タップすると `kc` キーコードが送信され、2回タップすると `layer` の状態をトグルします(これは `TG` レイヤーキーコードのように機能します)。
* `ACTION_TAP_DANCE_FN(fn)`: ユーザーキーマップに定義した指定の関数が呼び出されます。タップダンス実行の回数分タップすると、最後の時点で呼び出されます。
* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: タップする度にユーザーキーマップに定義した最初の関数が呼び出されます。タップダンスの実行が終わった時点で2番目の関数が呼び出され、タップダンスの実行をリセットするときに最後の関数が呼び出されます。
* `ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`: これは `ACTION_TAP_DANCE_FN_ADVANCED` と同じように機能します。しかし、`TAPPING_TERM` で事前に定義した時間に代えて、カスタマイズしたタップ時間を使ます。
* ~~`ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: これは `ACTION_TAP_DANCE_FN_ADVANCED` 関数と同じように機能します。しかし、`TAPPING_TERM` で事前に定義した時間の代わりに、カスタマイズしたタップ時間を使ます。
* [ここ](ja/custom_quantum_functions.md#Custom_Tapping_Term)で概説するように、これはキーごとのタッピング時間機能を優先して非推奨になりました。この特定のタップダンス機能を使う代わりに、使いたい特定の `TD()` マクロ(`TD(TD_ESC_CAPS)` のような)を確認する必要があります。
最初のオプションで、1つのキーに2つの役割を持たせる大抵のケースには十分です。例えば、`ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` は、1回タップすると `Space` を送信し、2回タップすると `Enter` を送信します。
@@ -56,7 +47,7 @@
最後に、5番目のオプションは、もし、タップダンスキーをコードに追加した後、非タップダンスキーが奇妙な振る舞いを始めた時に特に役に立ちます。ありうる問題は、あなたがタップダンスキーを使いやすくするために `TAPPING_TERM` の時間を変更した結果、その他のキーが割り込みを処理する方法が変わってしまったというものです。
## 実装の詳細
## 実装の詳細 :id=implementation
さて、説明の大部分はここまでです! 以下に挙げているいくつかの例に取り組むことができるようになり、あなた自身のタップダンスの機能を開発できるようになります。しかし、もし、あなたが裏側で起きていることをより深く理解したいのであれば、続けてそれが全てどのように機能するかの説明を読みましょう!
@@ -66,15 +57,15 @@
異なる場合、まず、古いタップダンスを処理し、続いて新しいタップダンスを登録します。
同じ場合、カウンタの値を増やし、タイマーをリセットします。
このことは、あなたは再びキーをタップするまでの時間として `TAPPING_TERM` の時間を持っていることを意味します。そのため、あなたは1つの `TAPPING_TERM` の時間内に全てのタップを行う必要はありません。これにより、キーの反応への影響を最小限に抑えながら、より長いタップ回数を可能にします。
このことは、あなたは再びキーをタップするまでの時間として `TAPPING_TERM` の時間を持っていることを意味します。そのため、あなたは1つの `TAPPING_TERM` の時間内に全てのタップを行う必要はありません。これにより、キーの反応への影響を最小限に抑えながら、より長いタップ回数を可能にします。
次は `matrix_scan_tap_dance()` です。この関数はタップダンスキーのタイムアウトを制御します。
柔軟性のために、タップダンスは、キーコードの組み合わせにも、ユーザー関数にもなることができます。後者は、より高度なタップ回数の制御や、LED を点滅させたり、バックライトをいじったり、等々の制御を可能にします。これは、1つの共用体と、いくつかの賢いマクロによって成し遂げられています。
# 実装例
## 実装例 :id=examples
## シンプルな実装例
### シンプルな実装例 :id=simple-example
ここに1つの定義のための簡単な例があります。
@@ -85,21 +76,24 @@
```c
// タップダンスの宣言
enum {
TD_ESC_CAPS = 0
TD_ESC_CAPS,
};
// タップダンスの定義
qk_tap_dance_action_t tap_dance_actions[] = {
// 1回タップすると Escape キー、2回タップすると Caps Lock。
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS)
// ほかの宣言もカンマで区切ってここに記述します
// 1回タップすると Escape キー、2回タップすると Caps Lock。
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
};
// レイヤー定義で、キーコードの代わりにタップダンスキーを追加します
TD(TD_ESC_CAPS)
// キーコードの代わりにタップダンスキーを追加します
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ...
TD(TD_ESC_CAPS)
// ...
};
```
## 複雑な実装例
### 複雑な実装例 :id=complex-examples
このセクションでは、いくつかの複雑なタップダンスの例を詳しく説明します。
例で使われている全ての列挙型はこのように宣言します。
@@ -107,107 +101,104 @@ TD(TD_ESC_CAPS)
```c
// 全ての例のための列挙型定義
enum {
CT_SE = 0,
CT_CLN,
CT_EGG,
CT_FLSH,
X_TAP_DANCE
CT_SE,
CT_CLN,
CT_EGG,
CT_FLSH,
X_TAP_DANCE
};
```
### 例1: 1回タップすると `:` を送信し、2回タップすると `;` を送信する
#### 例1: 1回タップすると `:` を送信し、2回タップすると `;` を送信する :id=example-1
```c
void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_RSFT);
register_code (KC_SCLN);
} else {
register_code (KC_SCLN);
}
void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code16(KC_COLN);
} else {
register_code(KC_SCLN);
}
}
void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_RSFT);
unregister_code (KC_SCLN);
} else {
unregister_code (KC_SCLN);
}
void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code16(KC_COLN);
} else {
unregister_code(KC_SCLN);
}
}
// 全てのタップダンス関数はここに定義します。ここでは1つだけ示します。
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset)
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
};
```
### 例2: 100回タップした後に "Safety Dance!" を送信します
#### 例2: 100回タップした後に "Safety Dance!" を送信します :id=example-2
```c
void dance_egg (qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 100) {
SEND_STRING ("Safety dance!");
reset_tap_dance (state);
}
void dance_egg(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 100) {
SEND_STRING("Safety dance!");
reset_tap_dance(state);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
[CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg),
};
```
### 例3: 1つずつ LED を点灯させてから消灯する
#### 例3: 1つずつ LED を点灯させてから消灯する :id=example-3
```c
// タップする毎に、LED を右から左に点灯します。
// 4回目のタップで、右から左に消灯します。
void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1:
ergodox_right_led_3_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_1_on();
break;
case 4:
ergodox_right_led_3_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_1_off();
}
switch (state->count) {
case 1:
ergodox_right_led_3_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_1_on();
break;
case 4:
ergodox_right_led_3_off();
wait_ms(50);
ergodox_right_led_2_off();
wait_ms(50);
ergodox_right_led_1_off();
}
}
// 4回目のタップで、キーボードをフラッシュ状態にセットします。
void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 4) {
reset_keyboard();
reset_tap_dance(state);
}
if (state->count >= 4) {
reset_keyboard();
}
}
// もしフラッシュ状態にならない場合、LED を左から右に消灯します。
void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) {
ergodox_right_led_1_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_3_off();
ergodox_right_led_1_off();
wait_ms(50);
ergodox_right_led_2_off();
wait_ms(50);
ergodox_right_led_3_off();
}
// 全てのタップダンス関数を一緒に表示しています。この例3は "CT_FLASH" です。
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT)
,[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset)
,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
,[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset)
[CT_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT),
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
[CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg),
[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED(dance_flsh_each, dance_flsh_finished, dance_flsh_reset)
};
```
### 例4: クアッドファンクションのタップダンス
#### 例4: クアッドファンクションのタップダンス :id=example-4
[DanielGGordon](https://github.com/danielggordon) によるもの
@@ -219,40 +210,37 @@ qk_tap_dance_action_t tap_dance_actions[] = {
* 2回タップ = `Escape` を送信
* 2回タップして押し続ける = `Alt` を送信
## 準備
'クアッドファンクションのタップダンス' を利用できるようにするには、いくつかのものが必要になります。
`keymap.c` ファイルの先頭、つまりキーマップの前に、以下のコードを追加します。
```c
typedef struct {
bool is_press_action;
int state;
bool is_press_action;
uint8_t state;
} tap;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD = 2,
DOUBLE_TAP = 3,
DOUBLE_HOLD = 4,
DOUBLE_SINGLE_TAP = 5, //シングルタップを2回送信
TRIPLE_TAP = 6,
TRIPLE_HOLD = 7
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP,
DOUBLE_HOLD,
DOUBLE_SINGLE_TAP, // シングルタップを2回送信
TRIPLE_TAP,
TRIPLE_HOLD
};
// タップダンスの列挙型
enum {
X_CTL = 0,
SOME_OTHER_DANCE
X_CTL,
SOME_OTHER_DANCE
};
int cur_dance (qk_tap_dance_state_t *state);
//xタップダンスのための関数。キーマップで利用できるようにするため、ここに置きます。
void x_finished (qk_tap_dance_state_t *state, void *user_data);
void x_reset (qk_tap_dance_state_t *state, void *user_data);
uint8_t cur_dance(qk_tap_dance_state_t *state);
// xタップダンスのための関数。キーマップで利用できるようにするため、ここに置きます。
void x_finished(qk_tap_dance_state_t *state, void *user_data);
void x_reset(qk_tap_dance_state_t *state, void *user_data);
```
次に、`keymap.c` ファイルの末尾に、次のコードを追加する必要があります。
@@ -288,68 +276,64 @@ void x_reset (qk_tap_dance_state_t *state, void *user_data);
* 3つ目の点については、'DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません
*
*/
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
//キーは割り込まれていませんが、まだ押し続けられています。'HOLD' を送信することを意味します。
else return SINGLE_HOLD;
}
else if (state->count == 2) {
/*
* DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に
* ダブルタップしたい場合とを区別するためのものです。
* この戻り値の推奨されるユースケースは、'ダブルタップ' 動作やマクロではなく、
* そのキーの2つのキー入力を送信したい場合です。
*/
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
//誰も同じ文字を3回入力しようとしていないと仮定します(少なくとも高速には)
//タップダンスキーが 'KC_W' で、"www." と高速に入力したい場合、ここに例外を追加して
//'TRIPLE_SINGLE_TAP' を返し、'DOUBLE_SINGLE_TAP' のようにその列挙型を定義する
//必要があります。
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
}
else return 8; //マジックナンバー。いつかこのメソッドはより多くの押下に対して機能するよう拡張されるでしょう
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
// キーは割り込まれていませんが、まだ押し続けられています。'HOLD' を送信することを意味します。
else return SINGLE_HOLD;
} else if (state->count == 2) {
// DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に
// ダブルタップしたい場合とを区別するためのものです。
// この戻り値の推奨されるユースケースは、'ダブルタップ' 動作やマクロではなく、
// そのキーの2つのキー入力を送信したい場合です。
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
// 誰も同じ文字を3回入力しようとしていないと仮定します(少なくとも高速には)。
// タップダンスキーが 'KC_W' で、"www." と高速に入力したい場合、ここに例外を追加して
// 'TRIPLE_SINGLE_TAP' を返し、'DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
} else return 8; // マジックナンバー。いつかこのメソッドはより多くの押下に対して機能するよう拡張されるでしょう
}
//'x' タップダンスの 'tap' のインスタンスをインスタンス化します
//'x' タップダンスの 'tap' のインスタンスを生成します
static tap xtap_state = {
.is_press_action = true,
.state = 0
.is_press_action = true,
.state = 0
};
void x_finished (qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state);
switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break;
case DOUBLE_SINGLE_TAP: register_code(KC_X); unregister_code(KC_X); register_code(KC_X);
//最後の case は高速入力用です。キーが `f` であると仮定します:
//例えば、`buffer` という単語を入力するとき、`Esc` ではなく `ff` を送信するようにします。
//高速入力時に `ff` と入力するには、次の文字は `TAPPING_TERM` 以内に入力する必要があります。
//`TAPPING_TERM` はデフォルトでは 200ms です。
}
void x_finished(qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state);
switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break;
// 最後の case は高速入力用です。キーが `f` であると仮定します:
// 例えば、`buffer` という単語を入力するとき、`Esc` ではなく `ff` を送信するようにします
// 高速入力時に `ff` と入力するには、次の文字は `TAPPING_TERM` 以内に入力する必要があります。
// `TAPPING_TERM` はデフォルトでは 200ms です。
case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
}
}
void x_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
}
xtap_state.state = 0;
void x_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
}
xtap_state.state = 0;
}
qk_tap_dance_action_t tap_dance_actions[] = {
[X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,x_finished, x_reset)
[X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset)
};
```
@@ -359,90 +343,91 @@ qk_tap_dance_action_t tap_dance_actions[] = {
> この設定の "hold" は、タップダンスのタイムアウト(`ACTION_TAP_DANCE_FN_ADVANCED_TIME` 参照)の **後** に起こります。即座に "hold" を得るためには、条件から `state->interrupted` の確認を除きます。結果として、複数回のタップのための時間をより多く持つことで快適な長いタップの期限を使うことができ、そして、"hold" のために長く待たないようにすることができます(2倍の `TAPPING TERM` で開始してみてください)。
### 例5: タップダンスを高度なモッドタップとレイヤータップキーに使う :id=example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys
#### 例5: タップダンスを高度なモッドタップとレイヤータップキーに使う :id=example-5
タップダンスは、タップされたコードが基本的なキーコード以外の場合に、 `MT()``LT()` マクロをエミュレートするのに利用できます。これは、通常 `Shift` を必要とする '(' や '{' のようなキーや、`Control + X` のように他の修飾されたキーコードをタップされたキーコードとして送信することに役立ちます。
あなたのレイヤーとカスタムキーコードの下に、以下のコードを追加します。
```c
//タップダンスのキーコード
enum td_keycodes {
ALT_LP //例: 押していると `LALT`、タップすると `(`。それぞれのタップダンスの追加のキーコードを追加します
// タップダンスのキーコード
enum td_keycodes {
ALT_LP // 例: 押していると `LALT`、タップすると `(`。それぞれのタップダンスの追加のキーコードを追加します
};
//必要な数のタップダンス状態を含むタイプを定義します
// 必要な数のタップダンス状態を含むタイプを定義します
typedef enum {
SINGLE_TAP,
SINGLE_HOLD,
DOUBLE_SINGLE_TAP
SINGLE_TAP,
SINGLE_HOLD,
DOUBLE_SINGLE_TAP
} td_state_t;
//タップダンスの状態の型のグローバルインスタンスを作ります
// タップダンスの状態の型のグローバルインスタンスを作ります
static td_state_t td_state;
//タップダンス関数を宣言します:
// タップダンス関数を宣言します:
//現在のタップダンスの状態を特定するための関数
int cur_dance (qk_tap_dance_state_t *state);
// 現在のタップダンスの状態を特定するための関数
uint8_t cur_dance(qk_tap_dance_state_t *state);
//それぞれのタップダンスキーコードに適用する `finished` と `reset` 関数
void altlp_finished (qk_tap_dance_state_t *state, void *user_data);
void altlp_reset (qk_tap_dance_state_t *state, void *user_data);
// それぞれのタップダンスキーコードに適用する `finished` と `reset` 関数
void altlp_finished(qk_tap_dance_state_t *state, void *user_data);
void altlp_reset(qk_tap_dance_state_t *state, void *user_data);
```
キーレイアウト(`LAYOUT`)の下に、タップダンスの関数を定義します。
```c
// 返却するタップダンス状態を特定します
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) { return SINGLE_TAP; }
else { return SINGLE_HOLD; }
}
if (state->count == 2) { return DOUBLE_SINGLE_TAP; }
else { return 3; } // 上記で返却する最大の状態の値より大きい任意の数
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
else return SINGLE_HOLD;
}
if (state->count == 2) return DOUBLE_SINGLE_TAP;
else return 3; // 上記で返却する最大の状態の値より大きい任意の数
}
// 定義する各タップダンスキーコードのとりうる状態を制御します:
void altlp_finished (qk_tap_dance_state_t *state, void *user_data) {
td_state = cur_dance(state);
switch (td_state) {
case SINGLE_TAP:
register_code16(KC_LPRN);
break;
case SINGLE_HOLD:
register_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_on(_MY_LAYER)` を使います
break;
case DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします
tap_code16(KC_LPRN);
register_code16(KC_LPRN);
}
void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
td_state = cur_dance(state);
switch (td_state) {
case SINGLE_TAP:
register_code16(KC_LPRN);
break;
case SINGLE_HOLD:
register_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_on(_MY_LAYER)` を使います
break;
case DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします
tap_code16(KC_LPRN);
register_code16(KC_LPRN);
}
}
void altlp_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (td_state) {
case SINGLE_TAP:
unregister_code16(KC_LPRN);
break;
case SINGLE_HOLD:
unregister_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_off(_MY_LAYER)` を使います
break;
case DOUBLE_SINGLE_TAP:
unregister_code16(KC_LPRN);
}
void altlp_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (td_state) {
case SINGLE_TAP:
unregister_code16(KC_LPRN);
break;
case SINGLE_HOLD:
unregister_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_off(_MY_LAYER)` を使います
break;
case DOUBLE_SINGLE_TAP:
unregister_code16(KC_LPRN);
}
}
// 各タップダンスキーコードの `ACTION_TAP_DANCE_FN_ADVANCED()` を定義し、`finished` と `reset` 関数を渡します
qk_tap_dance_action_t tap_dance_actions[] = {
[ALT_LP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altlp_finished, altlp_reset)
[ALT_LP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altlp_finished, altlp_reset)
};
```
それぞれのタップダンスキーコードをキーマップに含めるときは、`TD()` マクロでキーコードをラップします。例: `TD(ALT_LP)`
### 例6: タップダンスを一時的なレイヤー切り替えとレイヤートグルキーに使う
#### 例6: タップダンスを一時的なレイヤー切り替えとレイヤートグルキーに使う :id=example-6
タップダンスは、MO(layer) と TG(layer) 機能を模倣することにも使用できます。この例では、1回タップすると `KC_QUOT` 、1回押してそのまま押し続けたら `MO(_MY_LAYER)` 、2回タップしたときは `TG(_MY_LAYER)` として機能するキーを設定します。
@@ -450,98 +435,93 @@ qk_tap_dance_action_t tap_dance_actions[] = {
```c
typedef struct {
bool is_press_action;
int state;
bool is_press_action;
uint8_t state;
} tap;
//必要な数のタップダンス状態のタイプを定義します
// 必要な数のタップダンス状態のタイプを定義します
enum {
SINGLE_TAP = 1,
SINGLE_HOLD = 2,
DOUBLE_TAP = 3
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP
};
enum {
QUOT_LAYR = 0 //カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します
QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します
};
//タップダンスキーで使われる関数を宣言します
// タップダンスキーで使われる関数を宣言します
//全てのタップダンスに関連する関数
int cur_dance (qk_tap_dance_state_t *state);
// 全てのタップダンスに関連する関数
uint8_t cur_dance(qk_tap_dance_state_t *state);
//個別のタップダンスに関連する関数
void ql_finished (qk_tap_dance_state_t *state, void *user_data);
void ql_reset (qk_tap_dance_state_t *state, void *user_data);
// 個別のタップダンスに関連する関数
void ql_finished(qk_tap_dance_state_t *state, void *user_data);
void ql_reset(qk_tap_dance_state_t *state, void *user_data);
```
あなたの `keymap.c` ファイルの最後の方に以下のコードを追加します。
```c
//現在のタップダンスの状態を決定します
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (!state->pressed) {
return SINGLE_TAP;
} else {
return SINGLE_HOLD;
}
} else if (state->count == 2) {
return DOUBLE_TAP;
}
else return 8;
// 現在のタップダンスの状態を決定します
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (!state->pressed) return SINGLE_TAP;
else return SINGLE_HOLD;
} else if (state->count == 2) return DOUBLE_TAP;
else return 8;
}
//この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します
// この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します
static tap ql_tap_state = {
.is_press_action = true,
.state = 0
.is_press_action = true,
.state = 0
};
//タップダンスキーの動作をコントロールする関数
void ql_finished (qk_tap_dance_state_t *state, void *user_data) {
ql_tap_state.state = cur_dance(state);
switch (ql_tap_state.state) {
case SINGLE_TAP:
tap_code(KC_QUOT);
break;
case SINGLE_HOLD:
layer_on(_MY_LAYER);
break;
case DOUBLE_TAP:
//レイヤーが既にセットされているか確認します
if (layer_state_is(_MY_LAYER)) {
//レイヤーが既にセットされていたら、オフにします。
// タップダンスキーの動作をコントロールする関数
void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
ql_tap_state.state = cur_dance(state);
switch (ql_tap_state.state) {
case SINGLE_TAP:
tap_code(KC_QUOT);
break;
case SINGLE_HOLD:
layer_on(_MY_LAYER);
break;
case DOUBLE_TAP:
// レイヤーが既にセットされているか確認します
if (layer_state_is(_MY_LAYER)) {
// レイヤーが既にセットされていたら、オフにします。
layer_off(_MY_LAYER);
} else {
// レイヤーがセットされていなかったら、オンにします。
layer_on(_MY_LAYER);
}
break;
}
}
void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
// キーを押し続けていて今離したら、レイヤーをオフに切り替えます。
if (ql_tap_state.state == SINGLE_HOLD) {
layer_off(_MY_LAYER);
} else {
//レイヤーがセットされていなかったら、オンにします。
layer_on(_MY_LAYER);
}
break;
}
}
ql_tap_state.state = 0;
}
void ql_reset (qk_tap_dance_state_t *state, void *user_data) {
//キーを押し続けていて今離したら、レイヤーをオフに切り替えます。
if (ql_tap_state.state==SINGLE_HOLD) {
layer_off(_MY_LAYER);
}
ql_tap_state.state = 0;
}
//タップダンスキーを機能に関連付けます
// タップダンスキーを機能に関連付けます
qk_tap_dance_action_t tap_dance_actions[] = {
[QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275)
[QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275)
};
```
上記のコードは、前の例で使われたコードに似ています。注意する1つのポイントは、必要に応じてレイヤーを切り替えられるように、どのレイヤーがアクティブになっているかいつでも確認できる必要があることです。これを実現するために、引数で与えられた `layer` がアクティブなら `true` を返す `layer_state_is( layer )` を使います。
上記のコードは、前の例で使われたコードに似ています。注意する1つのポイントは、必要に応じてレイヤーを切り替えられるように、どのレイヤーがアクティブになっているかいつでも確認できる必要があることです。これを実現するために、引数で与えられた `layer` がアクティブなら `true` を返す `layer_state_is(layer)` を使います。
`cur_dance()``ql_tap_state` の使い方は、上の例と似ています。
`ql_finished` 関数における `case:SINGLE_TAP` は、上の例と似ています。`case:SINGLE_HOLD` は、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`case:DOUBLE_TAP` は、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。
`ql_finished` 関数における `case:SINGLE_TAP` は、上の例と似ています。`SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。
`tap_dance_actions[]` は、上の例に似ています。 `ACTION_TAP_DANCE_FN_ADVANCED()` の代わりに `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` を使ったことに注意してください。
この理由は、私は、非タップダンスキーを使うにあたり `TAPPING_TERM` が短い(175ミリ秒以内)方が好きなのですが、タップダンスのアクションを確実に完了させるには短すぎるとわかったからです——そのため、ここでは時間を275ミリ秒に増やしています。
最後に、このタップダンスキーを動かすため、忘れずに `TD(QUOT_LAYR)``keymaps[]` に加えてください。
最後に、このタップダンスキーを動かすため、忘れずに `TD(QUOT_LAYR)``keymaps[]` に加えてください。

View File

@@ -1,8 +1,8 @@
# ユーザスペース: キーマップ間でのコードの共有
<!---
original document: 0.9.0:docs/feature_userspace.md
git diff 0.9.0 HEAD -- docs/feature_userspace.md | cat
original document: 0.9.43:docs/feature_userspace.md
git diff 0.9.43 HEAD -- docs/feature_userspace.md | cat
-->
似たキーマップを複数のキーボードで使う場合、それらの間でコードを共有できるという利点が得られることがあります。`users/`に以下の構造でキーマップ(理想的には GitHub のユーザ名、`<name>`)と同じ名前の独自のフォルダを作成します:
@@ -116,7 +116,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
## 例
簡単な例については、[`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna) を調べてください。
簡単な例については、[`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/_example) を調べてください。
より複雑な例については、[`/users/drashna/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna) のユーザスペースを調べてください。

View File

@@ -1,8 +1,8 @@
# 書き込みの手順とブートローダ情報
<!---
original document: 0.9.10:docs/flashing.md
git diff 0.9.10 HEAD -- docs/flashing.md | cat
original document: 0.10.33:docs/flashing.md
git diff 0.10.33 HEAD -- docs/flashing.md | cat
-->
キーボードが使用するブートローダにはかなり多くの種類があり、ほぼ全てが異なる書き込みの方法を使います。幸いなことに、[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) のようなプロジェクトは、あまり深く考える必要無しに様々なタイプと互換性を持つことを目指していますが、この文章では様々なタイプのブートローダとそれらを書き込むために利用可能な方法について説明します。
@@ -244,3 +244,4 @@ BOOTLOADER = bootloadHID
* `:dfu-util-split-left` - デフォルトのオプション (`:dfu-util`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「左側の」 EEPROM の設定も行われます。
* `:dfu-util-split-right` - デフォルトのオプション (`:dfu-util`) と同様に、通常のファームウェアが書き込まれます。ただし、分割キーボードの「右側の」 EEPROM の設定も行われます。
* `:st-link-cli` - dfu-util ではなく、ST-LINK の CLI ユーティリティを介してファームウェアを書き込めます。
* `:st-flash` - dfu-util ではなく、[STLink Tools](https://github.com/stlink-org/stlink) の `st-flash` ユーティリティを介してファームウェアを書き込めます。

View File

@@ -0,0 +1,75 @@
# BootloadHID の書き込み手順とブートローダの情報
<!---
original document: 0.9.32:docs/flashing_bootloadhid.md
git diff 0.9.32 HEAD -- docs/flashing_bootloadhid.md | cat
-->
ps2avr(GB) キーボードは ATmega32A マイクロコントローラを使い、異なるブートローダを使います。それは通常の QMK の方法を使って書き込むことができません。
一般的な書き込みシーケンス:
1. 以下のいずれかの方法を使ってブートローダに入ります:
* `RESET` キーコードをタップします (全てのデバイスでは動作しないかもしれません)
* ソルトキーを押し続けながらキーボードを接続します (通常はキーボードの readme に書かれています)
2. OS がデバイスを検知するのを待ちます。
3. .hex ファイルを書き込みます
4. デバイスをアプリケーションモードにリセットします(自動的に実行されるかもしれません)
## bootloadHID の書き込みターゲット
?> [こちら](ja/newbs_getting_started.md)で詳しく説明されている QMK インストールスクリプトを使うと、必要な bootloadHID ツールが自動的にインストールされます。
コマンドライン経由で書き込むには、以下のコマンドを実行してターゲット `:bootloadHID` を使います:
make <keyboard>:<keymap>:bootloadHID
## GUI 書き込み
### Windows
1. [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) をダウンロードします。
2. キーボードをリセットします。
3. 設定された VendorID が `16c0` で、ProductID が `05df` であることを確認します
4. `Find Device` ボタンを押し、キーボードが見つかることを確認します。
5. `Open .hex File` ボタンを押し、作成した `.hex` ファイルを見つけます。
6. `Flash Device` ボタンを押し、処理が完了するまで待ちます。
## コマンドライン書き込み
1. キーボードをリセットします。
2. `bootloadHID -r` に続けて `.hex` ファイルへのパスを入力し、キーボードに書き込みます。
### Windows 手動インストール
MSYS2の場合:
1. https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz から BootloadHID ファームウェアパッケージをダウンロードします。
2. 互換性のあるツール、例えば 7-Zip を使って内容を抽出します。
3. 解凍された書庫から MSYS2 インストール先、通常 `C:\msys64\usr\bin``commandline/bootloadHID.exe` をコピーして、MSYS パスに追加します。
ネイティブの Windows 書き込みの場合、MSYS2 環境の外部で `bootloadHID.exe` を使うことができます。
### Linux 手動インストール
1. libusb development の依存関係をインストールします:
```bash
# これは OS に依存します - Debian については以下で動作します
sudo apt-get install libusb-dev
```
2. BootloadHID ファームウェアパッケージをダウンロードします:
```
wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz -O - | tar -xz -C /tmp
```
3. bootloadHID 実行可能ファイルをビルドします:
```
cd /tmp/bootloadHID.2012-12-08/commandline/
make
sudo cp bootloadHID /usr/local/bin
```
### MacOS 手動インストール
1. 以下を入力して Homebrew をインストールします:
```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
2. 以下のパッケージをインストールします:
```
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
```

View File

@@ -0,0 +1,52 @@
# Docker クイックスタート
<!---
original document: 0.9.32:docs/getting_started_docker.md
git diff 0.9.32 HEAD -- docs/getting_started_docker.md | cat
-->
このプロジェクトは、プライマリオペレーティングシステムに大きな変更を加えることなくキーボードの新しいファームウェアを非常に簡単に構築することができる Docker ワークフローを含みます。これは、あなたがプロジェクトをクローンしビルドを実行した時に、他の人とまったく同じ環境と QMK ビルド基盤を持つことも保証します。これにより、人々はあなたが遭遇した問題の解決をより簡単に行えるようになります。
## 必要事項
主な前提条件は動作する `docker` がインストールされていることです。
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
## 使い方
(サブモジュールを含む) QMK のレポジトリのローカルコピーを取得する:
```bash
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
キーマップをビルドするために以下のコマンドを実行します:
```bash
util/docker_build.sh <keyboard>:<keymap>
# 例えば: util/docker_build.sh planck/rev6:default
```
これは目的のキーボード/キーマップをコンパイルし、結果として書き込み用に `.hex` あるいは `.bin` ファイルを QMK ディレクトリの中に残します。`:keymap` が省略された場合は全てのキーマップが使われます。パラメータの形式は、`make` を使ってビルドする時と同じであることに注意してください。
`target` を指定して Docker から直接キーボードをビルドし、_かつ_書き込むためのサポートもあります。
```bash
util/docker_build.sh keyboard:keymap:target
# 例えば: util/docker_build.sh planck/rev6:default:flash
```
スクリプトをパラメータ無しで開始することもできます。この場合、1つずつビルドパラメータを入力するように求められます。これが使いやすいと思うかもしれません:
```bash
util/docker_build.sh
# パラメータを入力として読み込みます (空白にすると全てのキーボード/キーマップ)
```
## FAQ
### なぜ Windows/macOS 上で書き込めないのですか?
Windows と macOS では、実行するために [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/) が必要です。これはセットアップが面倒なので、お勧めではありません: 代わりに [QMK Toolbox](https://github.com/qmk/qmk_toolbox) を使ってください。
!> Docker for Windows は[Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) を有効にする必要があります。これは、Windows 7、Windows 8 および **Windows 10 Home** のような Hyper-V を搭載していない Windows のバージョンでは機能しないことを意味します。

View File

@@ -1,8 +1,8 @@
# QMK で GitHub を使う方法
<!---
original document: 0.8.82:docs/getting_started_github.md
git diff 0.8.82 HEAD -- docs/getting_started_github.md | cat
original document: 0.9.43:docs/getting_started_github.md
git diff 0.9.43 HEAD -- docs/getting_started_github.md | cat
-->
GitHub は慣れていない人には少し注意が必要です - このガイドは、QMK におけるフォーク、クローン、プルリクエストのサブミットの各ステップについて説明します。
@@ -11,11 +11,11 @@ GitHub は慣れていない人には少し注意が必要です - このガイ
[QMK GitHub ページ](https://github.com/qmk/qmk_firmware)を開くと、右上に "Fork" というボタンが見えます:
![Git でのフォーク](http://i.imgur.com/8Toomz4.jpg)
![GitHub でのフォーク](http://i.imgur.com/8Toomz4.jpg)
あなたが組織の一員である場合は、どのアカウントにフォークするかを選択する必要があります。ほとんどの場合、あなたの個人のアカウントにフォークしたいでしょう。フォークが完了したら(しばらく時間が掛かる場合があります)、"Clone or Download" ボタンをクリックします:
![Git からダウンロード](http://i.imgur.com/N1NYcSz.jpg)
![GitHub からダウンロード](http://i.imgur.com/N1NYcSz.jpg)
必ず "HTTPS" を選択し、リンクを選択してコピーします:

View File

@@ -1,8 +1,8 @@
# より詳細な `make` 手順
<!---
original document: 0.9.0:docs/getting_started_make_guide.md
git diff 0.9.0 HEAD -- docs/getting_started_make_guide.md | cat
original document: 0.10.33:docs/getting_started_make_guide.md
git diff 0.10.33 HEAD -- docs/getting_started_make_guide.md | cat
-->
`make` コマンドの完全な構文は `<keyboard_folder>:<keymap>:<target>` です:
@@ -106,10 +106,6 @@ make コマンド自体にもいくつかの追加オプションがあります
詳細と制限については、[Unicode ページ](ja/feature_unicode.md) を見てください。
`BLUETOOTH_ENABLE`
これによりキーコードをワイヤレスで送信するために Bluefruit EZ-key と連動することができます。D2 と D3 ピンを使います。
`AUDIO_ENABLE`
C6 ピン(抽象化が必要)でオーディオ出力できます。詳細は[オーディオページ](ja/feature_audio.md)を見てください。

View File

@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.9.0:docs/hardware_avr.md
git diff 0.9.0 HEAD -- docs/hardware_avr.md | cat
original document: 0.10.33:docs/hardware_avr.md
git diff 0.10.33 HEAD -- docs/hardware_avr.md | cat
-->
このページでは QMK における AVR マイコンのサポートについて説明します。AVR マイコンには、Atmel 社製の atmega32u4、atmega32u2、at90usb1286 やその他のマイコンを含みます。AVR マイコンは、簡単に動かせるよう設計された8ビットの MCU です。キーボードでよく使用される AVR マイコンには USB 機能や大きなキーボードマトリックスのためのたくさんの GPIO を搭載しています。これらは、現在、キーボードで使われる最も一般的な MCU です。
@@ -73,7 +73,7 @@ or open the directory in your favourite text editor.
`config.h` の先頭には USB に関する設定があります。これらはキーボードが OS からどのように見えるかを制御しています。変更する理由がない場合は、`VENDOR_ID``0xFEED` のままにしておく必要があります。`PRODUCT_ID` にはまだ使用されていない番号を選ばなければいけません。
`MANUFACTURER``PRODUCT``DESCRIPTION` をキーボードにあった設定に変更します。
`MANUFACTURER``PRODUCT` をキーボードにあった設定に変更します。
```c
#define VENDOR_ID 0xFEED
@@ -81,7 +81,6 @@ or open the directory in your favourite text editor.
#define DEVICE_VER 0x0001
#define MANUFACTURER You
#define PRODUCT my_awesome_keyboard
#define DESCRIPTION A custom keyboard
```
?> Windows や macOS では、`MANUFACTURER``PRODUCT` が USBデバイスのリストに表示されます。Linux 上の `lsusb` では、代わりにデフォルトで [USB ID Repository](http://www.linux-usb.org/usb-ids.html) によって維持されているリストからこれらを取得します。`lsusb -v` を使用するとデバイスから示された値を表示します。また、接続したときのカーネルログにも表示されます。

View File

@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.9.0:docs/hardware_keyboard_guidelines.md
git diff 0.9.0 HEAD -- docs/hardware_keyboard_guidelines.md | cat
original document: 0.10.33:docs/hardware_keyboard_guidelines.md
git diff 0.10.33 HEAD -- docs/hardware_keyboard_guidelines.md | cat
-->
QMK は開始以来、コミュニティにおけるキーボードの作成や保守に貢献しているあなたのような人たちのおかげで飛躍的に成長しました。私たちが成長するにつれて、うまくやるためのいくつかのパターンを発見しました。他の人たちがあなたの苦労の恩恵を受けやすくするため、それにあわせてもらえるようお願いします。

View File

@@ -0,0 +1,104 @@
# キーボードマトリックスの仕組み
<!---
original document: 0.9.32:docs/how_a_matrix_works.md
git diff 0.9.32 HEAD -- docs/how_a_matrix_works.md | cat
-->
キーボードスイッチのマトリックスは行と列に配置されます。マトリックス回路がなければ、各スイッチはコントローラに直接配線する必要があります。
回路が行と列に配置されている場合、キーが押されると、列ワイヤが行ワイヤと接触し、回路が完成します。キーボードコントローラはこの閉回路を検知し、キー押下として登録します。
マイクロコントローラはファームウェアを介してセットアップされ、論理1を一度に1つずつ列に送信し、行から一度に全てを読み取ります - このプロセスはマトリックススキャンと呼ばれます。マトリックスはデフォルトでは電流の通過を許可しないたくさんの開いたスイッチです - ファームウェアはキーが押されていないものとしてこれを読み取ります。1つのキーを押すとすぐに、キースイッチが接続されている列から来ていた論理1がスイッチを通過して対応する行に渡されます - 以下の 2x2 の例を確認してください:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
row0 ---(key0)---(key1) row0 ---(key0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
`x` は関連付けられた列と行の値が1であるか、HIGH であることを表します。ここでは、キーが押されていないことが分かります。そのため `x` を取得する行はありません。1つのキースイッチの二つの接点はそのスイッチのある行と列にそれぞれ接続されていることに注意してください。
`key0` を押すと、`col0``row0` に接続されるため、ファームウェアがその行に対して受け取る値は `0b01` です (ここで `0b` はこれがビット値であることを意味します。つまり次の数字は全てビット(0または1)であり、その列のキーを表します)。この表記を使用して、キースイッチが押されたことを示し、列と行が接続されていることを示します:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1)
| | | |
row1 ---(key2)---(key3) row1 ---(key2)---(key3)
`row0` には `x` があるため、値が1であることがわかります。全体として、`key0` が押された時にファームウェアが受信するデータは、
col0: 0b01
col1: 0b00
│└row0
└row1
一度に複数のキーを押し始めると問題が発生します。マトリックスをもう一度見ると、かなり明白になっているはずです:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
| | | |
x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1)
| | | |
x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3)
Remember that this ^ is still connected to row1
これから取得されるデータは以下の通りです:
col0: 0b11
col1: 0b11
│└row0
└row1
4つ全てではなく、3つのキーしか押されていないため、これは正確ではありません。この挙動はゴーストと呼ばれ、このような奇妙なシナリオでのみ発生しますが、より大きなキーボードではより一般的です。これを回避する方法は、キースイッチの後に、行に接続する前にダイオードを配置することです。ダイオードは、電流が一方向にのみ流れるようにします。これにより、前の例で他の列と行がアクティブにならないようにします。ダイオードマトリックスをこのように表します;
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
│ │ | │
(key0) (key1) (key0) (key1)
! │ ! │ ! | ! │
row0 ─────┴────────┘ │ row0 ─────┴────────┘ │
│ │ | │
(key2) (key3) (key2) (key3)
! ! ! !
row1 ─────┴────────┘ row1 ─────┴────────┘
実際の用途では、ダイオードの黒い線が行に面するように、キースイッチから離れるように配置されます - この場合の `!` はダイオードで、隙間は黒い線を表します。これを覚える良い方法は、以下のシンボルを考えることです: `>|`
次に、3つのキーを押して、ゴーストシナリオとなるものを実施します:
Column 0 being scanned Column 1 being scanned
x x
col0 col1 col0 col1
│ │ │ │
(┌─┤0) (┌─┤1) (┌─┤0) (┌─┤1)
! │ ! │ ! │ ! │
x row0 ─────┴────────┘ │ x row0 ─────┴────────┘ │
│ │ │ │
(key2) (┌─┘3) (key2) (┌─┘3)
! ! ! !
row1 ─────┴────────┘ x row1 ─────┴────────┘
全てが期待通りに動きます!これにより、以下のデータが取得されます:
col0: 0b01
col1: 0b11
│└row0
└row1
ファームウェアはこの正しいデータを使って、何をすべきかを、最終的には OS に送信する必要のある信号を検出できます。
参考文献:
- [Wikipedia の記事](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit)
- [Deskthority の記事](https://deskthority.net/wiki/Keyboard_matrix)
- [Dave Dribin による Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/)
- [PCBheaven による How Key Matrices Works](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (アニメーションの例)
- [キーボードの仕組み - QMK ドキュメント](ja/how_keyboards_work.md)

View File

@@ -0,0 +1,74 @@
# キーが登録され、コンピュータで解釈される仕組み
<!---
original document: 0.9.32:docs/how_keyboards_work.md
git diff 0.9.32 HEAD -- docs/how_keyboards_work.md | cat
-->
このファイルでは、USB を介してキーボードがどのように動作するかの概念を学習できます。ファームウェアを直接変更することで何が期待できるかをより良く理解することができます。
## 概略図
特定のキーを1つ入力するたびに、このような一連のアクションが発生します:
```text
+------+ +-----+ +----------+ +----------+ +----+
| User |-------->| Key |------>| Firmware |----->| USB wire |---->| OS |
+------+ +-----+ +----------+ +----------+ +----+
```
この図は何が起こっているかを非常に単純に示したものです。詳細については次のセクションで説明します。
## 1. キーを押す
キーを押すたびに、キーボードのファームウェアはこのイベントを登録することができます。
キーが押され、保持され、放された時に登録することができます。
これは通常キー押下の定期的な走査で発生します。多くの場合、キーの機械的な応答時間、キー押下情報を転送するプロトコル(ここでは USB HID)、あるいは使用されるソフトウェアによって、この速度は制限されます。
## 2. ファームウェアが送信するもの
[HID 仕様](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf)では、適切に認識されるためにキーボードが USB 経由で実際に送信できるものを規定しています。これには、`0x00` から `0xE7` までの単純な数字であるスキャンコードの定義済リストが含まれます。ファームウェアはスキャンコードをキーボードのそれぞれのキーに割り当てます。
ファームウェアは実際の文字を送信せず、スキャンコードだけを送信します。
従って、ファームウェアを変更することで、特定のキーにたいして USB を介してどのスキャンコードが送信されるかだけを変更することができます。
## 3. イベント入力やカーネルが行うこと
*スキャンコード*は、[マスターブランチの 60-keyboard.hwdb](https://github.com/systemd/systemd/blob/master/hwdb.d/60-keyboard.hwdb) キーボードに依存する*キーコード*にマップされます。このマッピングが無いと、オペレーティングシステムは有効なキーコードを受信せず、キー押下で何も有用なことができません。
## 4. オペレーティングシステムがすること
キーコードがオペレーティングシステムに到達すると、ソフトウェアの一部はキーボードのレイアウトによって、実際の文字と照合しなければなりません。例えば、レイアウトが QWERTY に設定されている場合、照合テーブルの例は以下の通りです:
| キーコード | 文字 |
|---------|-----------|
| 0x04 | a/A |
| 0x05 | b/B |
| 0x06 | c/C |
| ... | ... |
| 0x1C | y/Y |
| 0x1D | z/Z |
| ... | ... |
## 説明をファームウェアに戻して
(独自のものを作成していない限り)レイアウトは一般的に固定されているため、ファームウェアは実際には作業を簡単するためレイアウト名で直接キーコードを記述できます。これが、`KC_A` が実際に QWERTY で `0x04` を表す場合に行われることです。完全なリストは[キーコード](ja/keycodes.md)にあります。
## 送信できる文字のリスト
ショートカットを別として、限られたキーコードのセットが限られたレイアウトにマップされていることは、**指定されたキーに割り当てることができる文字のリストは、レイアウト内に存在するものだけである**ことを意味します。
例えば、QWERTY US レイアウトがあり、1つのキーを `€` (ユーロ通貨記号)を生成するように割り当てたい場合、そうすることができないことを意味します。なぜなら、QWERTY US レイアウトはそのようなマッピングを持たないためです。QWERTY UK レイアウト、あるいは QWERTY US International を使うことでそれを修正することができます。
全ての Unicode を含むキーボードレイアウトがなぜ考案されていないのか疑問に思うかもしれません。USB を介して利用可能なキーコードの数の制限により、このようなことは許可されません。
## (おそらく) Unicode 文字を入力する方法
ファームウェアに *一連のキー* を送信させて、目的のオペレーティングシステムの[ソフトウェア Unicode インプットメソッド](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_input)を使うことができます。このようにして、OS で定義されたレイアウトとは無関係に文字を効率的に入力することができます。
ただし、以下のような複数の欠点があります:
- 一度に、一つの特定の OS に縛られます (OS を変更する時に再コンパイルする必要があります);
- 特定の OS では、全てのソフトウェアが動作するわけではありません;
- 一部のシステムでは Unicode のサブセットに制限されます。

View File

@@ -2,8 +2,8 @@
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.8.62:docs/i2c_driver.md
git diff 0.8.62 HEAD -- docs/i2c_driver.md | cat
original document: 0.10.33:docs/i2c_driver.md
git diff 0.10.33 HEAD -- docs/i2c_driver.md | cat
-->
QMK で使われる I2C マスタドライバには、MCU 間のポータビリティを提供するための一連の関数が用意されています。
@@ -83,8 +83,8 @@ STM32 MCU では、使用するハードウェアドライバにより、さま
|-----------------------|--------------------------------------------------------------------------------------------------|---------|
| `I2C1_SCL_BANK` | SCL に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`) | `GPIOB` |
| `I2C1_SDA_BANK` | SDA に使うピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`) | `GPIOB` |
| `I2C1_SCL` | SCL のピン番号 (0-9) | `6` |
| `I2C1_SDA` | SDA のピン番号 (0-9) | `7` |
| `I2C1_SCL` | SCL のピン番号 (0-15) | `6` |
| `I2C1_SDA` | SDA のピン番号 (0-15) | `7` |
| `I2C1_BANK`(非推奨) | 使用するピンのバンク (`GPIOA`, `GPIOB`, `GPIOC`)。後継は `I2C1_SCL_BANK`, `I2C1_SDA_BANK` です。 | `GPIOB` |
ChibiOS I2C ドライバの設定項目は STM32 MCU の種類に依存します。

View File

@@ -0,0 +1,28 @@
# GPIO 制御 :id=gpio-control
<!---
original document: 0.9.34:docs/internals_gpio_control.md
git diff 0.9.34 HEAD -- docs/internals_gpio_control.md | cat
-->
QMK には、マイクロコントローラに依存しない GPIO 制御抽象レイヤーがあります。これは異なるプラットフォーム間でピン制御に簡単にアクセスできるようにするためのものです。
## 関数 :id=functions
以下の関数は GPIO の基本的な制御を提供し、`quantum/quantum.h` にあります。
| 関数 | 説明 | 古い AVR の例 | 古い ChibiOS/ARM の例 |
|------------------------|--------------------------------------------------|-------------------------------------------------|-------------------------------------------------|
| `setPinInput(pin)` | ピンを高インピーダンス(High-Z)の入力として設定 | `DDRB &= ~(1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT)` |
| `setPinInputHigh(pin)` | ピンを組み込みのプルアップ抵抗付きの入力として設定 | `DDRB &= ~(1<<2); PORTB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)` |
| `setPinInputLow(pin)` | ピンを組み込みのプルダウン抵抗付きの入力として設定 | N/A (AVR ではサポートされません) | `palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)` |
| `setPinOutput(pin)` | ピンを出力として設定 | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `writePinHigh(pin)` | ピンレベルを high に設定 (ピンを出力として設定してあると仮定) | `PORTB \|= (1<<2)` | `palSetLine(pin)` |
| `writePinLow(pin)` | ピンレベルを low に設定 (ピンを出力として設定してあると仮定) | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
| `writePin(pin, level)` | ピンレベルを設定 (ピンを出力として設定してあると仮定) | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
| `readPin(pin)` | ピンのレベルを返す | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
| `togglePin(pin)` | ピンレベルを反転 (ピンを出力として設定してあると仮定) | `PORTB ^= (1<<2)` | `palToggleLine(pin)` |
## 高度な設定 :id=advanced-settings
各マイクロコントローラは GPIO に関して複数の高度な設定を持つことができます。この抽象レイヤーは、アーキテクチャー固有の機能の使用法を制限しません。上級ユーザは、目的のデバイスのデータシートを参照し、必要なライブラリを含めてください。AVR については、標準 avr/io.h ライブラリが使われます; STM32 については ChibiOS [PAL ライブラリ](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)が使われます。

View File

@@ -0,0 +1,174 @@
# group `input_callback_reg` {#group__input__callback__reg}
<!---
original document: 0.9.34:docs/internals_input_callback_reg.md
git diff 0.9.34 HEAD -- docs/internals_input_callback_reg.md | cat
-->
これらは受信コールバックを登録するために使用する関数です。
関数は、適切な midi メッセージが関連するデバイスの入力と一致した場合に呼び出されます。
## 概要
| メンバー | 説明 |
--------------------------------|---------------------------------------------
| `public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | コントロールチェンジメッセージ受信コールバックを登録する。 |
| `public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | ノートオン受信コールバックを登録する。 |
| `public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | ノートオフ受信コールバックを登録する。 |
| `public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | アフタータッチ受信コールバックを登録する。 |
| `public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | ピッチベンド受信コールバックを登録する。 |
| `public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` | ソングポジション受信コールバックを登録する。 |
| `public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | プログラムチェンジ受信コールバックを登録する。 |
| `public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | チャンネルプレッシャー受信コールバックを登録する。 |
| `public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | ソングセレクト受信コールバックを登録する。 |
| `public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` | タイムコードクォータフレーム受信コールバックを登録する。 |
| `public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` | リアルタイム受信コールバックを登録する。 |
| `public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` | チューンリクエスト受信コールバックを登録する。 |
| `public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_sysex_func_t func)` | システムエクスクルーシブ受信コールバックを登録する。 |
| `public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` | フォールスルー受信コールバックを登録する。 |
| `public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` | キャッチオール受信コールバックを登録する。 |
## メンバー
#### `public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718}
コントロールチェンジメッセージ受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga3962f276c17618923f1152779552103e}
ノートオン受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d}
ノートオフ受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f}
アフタータッチ受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48}
ピッチベンド受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_three_byte_func_t func)` {#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6}
ソングポジション受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127}
プログラムチェンジ受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5}
チャンネルプレッシャー受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72}
ソングセレクト受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_two_byte_func_t func)` {#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e}
タイムコードクォータフレーム受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` {#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a}
リアルタイム受信コールバックを登録する。
全てのリアルタイムメッセージ型に対してコールバックが呼ばれます。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_one_byte_func_t func)` {#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1}
チューンリクエスト受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_sysex_func_t func)` {#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48}
システムエクスクルーシブ受信コールバックを登録する。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` {#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94}
フォールスルー受信コールバックを登録する。
より具体的なコールバックが見つからない場合にのみ呼ばれます。例えば、ノートオン受信コールバックを登録していないがノートオンメッセージを受け取った場合、フォールスルー受信コールバックが登録されている場合はそれが呼ばれます。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数
#### `public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t func)` {#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99}
キャッチオール受信コールバックを登録する。
登録されている場合は、より具体的なコールバックあるいはフォールスルー受信コールバックが登録されている場合でも、一致する全てのメッセージに対してキャッチオール受信コールバックが呼ばれます。
#### パラメータ
* `device` 関連するデバイス
* `func` 登録するコールバック関数

View File

@@ -0,0 +1,284 @@
# ISP 書き込みガイド
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.9.46:docs/isp_flashing_guide.md
git diff 0.9.46 HEAD -- docs/isp_flashing_guide.md | cat
-->
ISP 書き込み(ICSP 書き込みと呼ぶ場合もあります)とは、マイクロコントローラーを直接プログラミングするプロセスです。
これにより、ブートローダを交換したり、コントローラの「ヒューズ」を変更することができ、コントローラの速度や起動方法、その他のオプションなど、多くのハードウェアおよびソフトウェア関連の機能を制御します。
QMK の ISP 書き込みの主な用途は、AVRベースのコントローラPro Micro、または V-USB チップ)のブートローダの書き込みまたは交換です。
?> これは Pro Micro や他の ATmega コントローラなどの AVR ベースのボードをプログラミングするためだけのものです。 Proton C などの Arm コントローラには使用できません。
## 破損したブートローダーの取り扱い
ボードの書き込み/消去で問題が発生し、DFU ベースのコントローラで次のような不可解なエラーメッセージが表示される場合:
libusb: warning [darwin_transfer_status] transfer error: timed out
dfu.c:844: -ETIMEDOUT: Transfer timed out, NAK 0xffffffc4 (-60)
atmel.c:1627: atmel_flash: flash data dfu_download failed.
atmel.c:1629: Expected message length of 1072, got -60.
atmel.c:1434: Error flashing the block: err -2.
ERROR
Memory write error, use debug for more info.
commands.c:360: Error writing memory data. (err -4)
dfu.c:844: -EPIPE: a) Babble detect or b) Endpoint stalled 0xffffffe0 (-32)
Device is write protected.
dfu.c:252: dfu_clear_status( 0x7fff4fc2ea80 )
atmel.c:1434: Error flashing the block: err -2.
ERROR
Memory write error, use debug for more info.
commands.c:360: Error writing memory data. (err -4)
または、Pro Micro ベースのコントローラに対して次のようなメッセージが表示された場合:
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: verification error, first mismatch at byte 0x002a
0x2b != 0x75
avrdude: verification error; content mismatch
avrdude: verification error; content mismatch
あなたのボード/デバイスを再び動作させるには、ISP 書き込みが必要になるかもしれません。
## 必要なハードウェア
実際に ISP の書き込みを行うには、以下のいずれか(その後に使用するプロトコルが続きます)が必要になります。
* [SparkFun PocketAVR](https://www.sparkfun.com/products/9825) - (USB Tiny)
* [USBtinyISP AVR Programmer Kit](https://www.adafruit.com/product/46) - (USB Tiny)
* [Teensy 2.0](https://www.pjrc.com/store/teensy.html) - (avrisp)
* [Pro Micro](https://www.sparkfun.com/products/12640) - (avrisp)
* [Bus Pirate](https://www.adafruit.com/product/237) - (buspirate)
ISP 書き込みに使用できるデバイスは他にもありますが、これらが主なものです。
また、すべての製品リンクは公式バージョンへのものです。他の場所で入手することもできます。
また、「ISP プログラマ」をプログラミングするデバイスに配線するためのものも必要になります。
PCB の中には直接使用できる ISP ヘッダがあるものもありますが、そうではない場合が多いので、コントローラ自体にハンダ付けするか、別のスイッチや他のコンポーネントにハンダ付けする必要があるでしょう。
### ISP ファームウェア
Teensy と Pro Micro のコントローラを ISP プログラマとして使用するには、コントローラに ISP ファームウェアを書き込む必要があります。
それ以外のハードウェアは、あらかじめプログラムされているはずです。
そのため、これらのコントローラの場合は、正しい hex ファイルをダウンロードしてから書き込んでください。
* Teensy 2.0: [`util/teensy_2.0_ISP_B0.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/teensy_2.0_ISP_B0.hex) (`B0`)
* Pro Micro: [`util/pro_micro_ISP_B6_10.hex`](https://github.com/qmk/qmk_firmware/blob/master/util/pro_micro_ISP_B6_10.hex) (`10/B6`)
コントローラに書き込んだら、この hex ファイルはもう必要ありません。
## 必要なソフトウェア
QMK ツールボックスは、このほとんど(すべて)に使用することができます。
ただし、Teensy 2.0 ボードを使っている場合は、[Teensy Loader](https:/www.pjrc.comteensyloader.html) を使えば、Teensy 2.0 ボードに書き込むことができます。
あるいは、`avrdude` (`qmk_install.sh` の一部としてインストールされています) や、[AVRDUDESS](https:/blog.zakkemble.netavrdudess-a-gui-for-avrdude)(Windows 用) を使って、Pro Micro に書き込んだり、ISP を書き込んだりすることができます。
## 配線
これは非常に簡単です。次のようにして、相互に対応するものを接続します。
### SparkFun Pocket AVR
PocketAVR RST <-> Keyboard RESET
PocketAVR SCLK <-> Keyboard B1 (SCLK)
PocketAVR MOSI <-> Keyboard B2 (MOSI)
PocketAVR MISO <-> Keyboard B3 (MISO)
PocketAVR VCC <-> Keyboard VCC
PocketAVR GND <-> Keyboard GND
### Teensy 2.0
Teensy B0 <-> Keyboard RESET
Teensy B1 <-> Keyboard B1 (SCLK)
Teensy B2 <-> Keyboard B2 (MOSI)
Teensy B3 <-> Keyboard B3 (MISO)
Teensy VCC <-> Keyboard VCC
Teensy GND <-> Keyboard GND
!> Teensy の B0 ピンはキーボードのコントローラの RESET/RST ピンと配線されています。 Teensy の RESET ピンをキーボードの RESET に配線しないでください。
### Pro Micro
Pro Micro 10 (B6) <-> Keyboard RESET
Pro Micro 15 (B1) <-> Keyboard B1 (SCLK)
Pro Micro 16 (B2) <-> Keyboard B2 (MOSI)
Pro Micro 14 (B3) <-> Keyboard B3 (MISO)
Pro Micro VCC <-> Keyboard VCC
Pro Micro GND <-> Keyboard GND
!> Pro Micro の 10/B6 ピンはキーボードのコントローラの RESET/RST ピンに配線されています。 Pro Micro の RESET ピンをキーボードの RESET に配線 ***しないでください***。
## キーボードへの書き込み
ISP プログラマをセットアップして、キーボードに接続したら、キーボードに書き込みをします。
### ブートローダファイル
普通の状態に戻す一番簡単で手っ取り早い方法は、キーボードにブートローダだけ書き込むことです。
これが終れば、普通にキーボードを接続して、普通にキーボードに書き込みできるようになります。
標準のブートローダは[`util/` フォルダー](https://github.com/qmk/qmk_firmware/tree/master/util) にあります。
チップの正しいブートローダを書き込んでください:
* **Atmel DFU**
* [ATmega16U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega16u4_1.0.1.hex)
* [ATmega32U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1.0.0.hex)
* [AT90USB64](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb64_1.0.0.hex)
* [AT90USB128](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128_1.0.1.hex)
* **Caterina**
* [Pro Micro (5V/16MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex)
* [Pro Micro (3.3V/8MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro8.hex)
* **BootloadHID (PS2AVRGB)**
* [ATmega32A](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex)
お使いのボードが何を使っているかわからない場合は、QMK のキーボード用の `rules.mk` ファイルを見てください。
`MCU``BOOTLOADER` の行には必要な値が書かれています。これはボードのバージョンによって異なるかもしれません。
### 製造手法
ブートローダと通常のファームウェアを同時に書き込みたい場合、2つの方法があります。
手動で行うか、コンパイル時に `:production` ターゲットを使って行うかです。
手動で行うには:
1. オリジナルのファームウェアの .hex ファイルをテキストエディタで開きます
2. 最後の行を削除してください。(`:00000001FF`になっているはずです - これは EOF メッセージです)
3. ブートローダの内容全体を新しい行にコピーして(行間に空行を入れないように)、元のファイルの最後に貼り付けてください。
4. これを新しいファイルとして `<keyboard>_<keymap>_production.hex` という名前で保存します。
?> ここでは他のブートローダも同じように使うことができますが、__ブートローダが必要で__、そうしないとまた ISP を使ってキーボードに新しいファームウェアを書き込まなければならなくなります。
#### QMK DFU ブートローダとプロダクションイメージの作成
コンパイル時に `:production` ターゲットを使用して、ボード用のファームウェア、QMK DFU ブートローダ、プロダクションファームウェアイメージを作成することができます。
これが完了すると、3つのファイルが表示されます:
* `<keyboard>_<keymap>.hex`
* `<keyboard>_<keymap>_bootloader.hex`
* `<keyboard>_<keymap>_production.hex`
QMK DFU ブートローダは `atmega32u4` コントローラ (AVR ベースの Planck ボードや Pro Micro など) でしかテストされておらず、他のコントローラではテストされていません。
しかし、`atmega32a``atmega328p` のような V-USB コントローラでは間違いなく動作しません。
ブートローダかプロダクションファームウェアファイルのどちらかを書き込むことができます。
プロダクションファームウェアファイルの方が、より多くのデータを書き込むので、書き込みに時間がかかります。
?> 注意:同じブートローダを使用しつづけるべきです。すでに DFU を使用している場合は、QMK DFU に切り替えても問題ありません。しかし、例えば Pro Micro に QMK DFU を書き込むには、追加の手順が必要になります。
## ブートローダ/プロダクションファイルの書き込み
キーボードがどのデバイスにも接続されていないことを確認し、ISP プログラマを接続してください。
ブートローダの種類を変更したい場合は、コマンドラインを使用する必要があります。
### QMK Toolbox
1. 'AVRISP device connected' または `USB Tiny device connected` が黄色で表示されます。
2. `Open` ダイアログで正しいブートローダー/プロダクションの .hex ファイルを選択します(パスにスペースを含めることはできません)
3. 書きこもうとしているキーボードISP プログラマではなく)のための正しい `Microcontroller` オプションが選択されていることを確認してください。
4. `Flash` を押します
5. 特にプロダクションファイルの場合、しばらくは何も出力されませんが、待ちましょう。
検証とヒューズのチェックに問題がなければ、完了です。
ボードが自動的に再起動する場合があります。
それ以外の場合は、Teensy のプラグを抜いて、キーボードを接続します。
テスト中は、Teensy をキーボードに接続したままにすることができますが、すべてが正常に機能することを確認したら、はんだを外すか、配線を外すことをお勧めします。
### コマンドライン
ターミナルWindows の場合は `cmd`)を開いて、修正した .hex ファイルがある場所に移動します。
ここでは、このファイルを `main.hex` と呼び、Teensy 2.0 が `COM3` ポートに接続されていると仮定します。
よくわからない場合は、デバイスマネージャを開いて、`Ports > USB Serial Device` を探してください。ここにある COM ポートを使ってください。
あなたはそれが正しいポートであることを確認することができます:
avrdude -c avrisp -P COM3 -p atmega32u4
次のような出力が得られるはずです:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: safemode: Fuses OK
avrdude done. Thank you.
私たちのキーボードは `atmega32u4`(共通)を使用しているので、これが指定するチップです。
以下が完全なコマンドです:
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i
ボードが `atmega32a`jj40 など)を使用している場合、コマンドは次のとおりです(最後の追加コードによりヒューズが正しく設定されます)。
avrdude -c avrisp -P COM3 -p atmega32 -U flash:w:main.hex:i -U hfuse:w:0xD0:m -U lfuse:w:0x0F:m
プログレスバーが表示されてから、以下が表示されるはずです。
avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
これは全てうまく動作したことを示しています。
ボードが自動的に再起動する場合もありますが、そうでない場合は、Teensy のプラグを抜いてキーボードを接続してください。
テスト中は、Teensy をキーボードに接続したままにすることができますが、すべてが正常に機能することを確認したら、はんだを外すか、配線を外すことをお勧めします。
SparkFun PocketAVR Programmer や、他の USB Tiny ベースの ISP プログラマを使用している場合は、次のようなものを使用すると良いでしょう。
avrdude -c usbtiny -P usb -p atmega32u4
#### 上級者向け: ヒューズの変更
Pro Micro に QMK DFU を書き込むなど、ブートローダを切り替える場合は、ブートローダの hex ファイルの書き込みに加えて、ヒューズを変更する必要があります。
これは、`caterina` (Pro Micro ブートローダ) と `dfu` では起動ルーチンの扱いが異なり、その動作はヒューズによって制御されるからです。
!> これは、ヒューズを変更することは、永久にあなたのコントローラをレンガ化(訳注:日本では文鎮化と呼ぶことが多い、コントローラがまったく無反応になる状態)することができる方法の1つであるため、それは非常に注意が必要な1つの領域です。
以下は、`atmega32u4`の 5V 16MHz 版5V Pro Micro など)を想定しています。
`atmega32u4`の DFU の場合、必要なヒューズ設定は次のとおりです:
| ヒューズ | 設定 |
|----------|------------------|
| Low | `0x5E` |
| High | `0xD9` or `0x99` |
| Extended | `0xC3` |
High ヒューズは 0xD9 か 0x99 のどちらかになります。
違いは、0xD9 は QMK Firmware がソフトウェアでも無効化している JTAG を無効化しているのに対し、0x99 は JTAG を無効化していないことです。
これを設定するには、`-U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m` をコマンドに追加します。
そうすると、最終的なコマンドは次のようになります。
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m
`atmega32u4`の Caterina では、以下があなたに必要なヒューズの設定です。
| ヒューズ | 設定 |
|----------|--------|
| Low | `0xFF` |
| High | `0xD8` |
| Extended | `0xCB` |
これを設定するには、コマンドに `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` を追加します。
これで、最終的なコマンドは次のようになるはずです。
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m
別のコントローラーを使用している場合や、別の設定を希望する場合は、この[AVR ヒューズ計算機](http:/www.engbedded.comfusecalc)を使用して、より適切な値を見つけることができます。
## ヘルプ
ご質問・ご不明な点がありましたら、お気軽に[issue を開いてください](https://github.com/qmk/qmk_firmware/issues/new)

Some files were not shown because too many files have changed in this diff Show More