Compare commits

...

210 Commits

Author SHA1 Message Date
07c75feba3 Add PS2_MOUSE_ROTATE to compensate for device orientation (#8650)
* Add PS2_MOUSE_ROTATE to compensate for device orientation

* fixup! Add PS2_MOUSE_ROTATE to compensate for device orientation

* Reformat with IndentPPDirectives: AfterHash as per #6316
2020-04-09 01:29:27 -07:00
b5aa5e4338 Add RGB support in via to launchpad (#8621)
Signed-off-by: Joshua Rubin <me@jawa.dev>
2020-04-09 09:25:08 +02:00
be8443b35b VIA support for the KBDFans KBD6x (#8680)
* Add VIA keymap

* Update VID/PID

- Update VID/PID to match other KBDfans keyboards
- Flesh out keyboard description

* add missing newline. whoops.

* Update keyboards/kbdfans/kbd6x/keymaps/via/rules.mk

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

* update author / copyright date

* Update keyboards/kbdfans/kbd6x/keymaps/via/rules.mk

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

* Update keyboards/kbdfans/kbd6x/keymaps/via/keymap.c

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

* Update keyboards/kbdfans/kbd6x/kbd6x.h

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

Co-authored-by: George Wietor <george@light-gray.attlocal.net>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-09 09:16:04 +02:00
4b10235f67 Set the correct RGB LED count on YD60MQ (#8629)
* Fix RGB LED count on YD60MQ

* Split YD60MQ into 12-LED and 16-LED revisions

* Update readmes

* Make 12led the default version

* Readd base rules.mk, version→variant in readme

* Add syntax highlighting to code blocks in readme
2020-04-08 18:51:18 -07:00
6ef13f83e2 [Keymap] Updates to personal keymaps (#8665) 2020-04-08 18:20:58 -07:00
be2f5816b6 Fix compile issues related to NO_ACTION_MACRO/FUNCTION and LTO_ENABLE (#8663)
* Define NO_ACTION_MACRO/FUNCTION in header instead of makefile when LTO is enabled

Currently, boards and keymaps that define NO_ACTION_MACRO/FUNCTION unconditionally
will not compile with LTO_ENABLE (#8604). This fixes the issue by moving the
definitions from common.mk to action.h, which enables us to check for previous
definitions of those macros (this cannot be done in a makefile).

* Remove LTO checks in templates

Since now NO_ACTION_MACRO/FUNCTION are defined as needed in action.h (which is
included by quantum.h), checking for LTO in keyboard and user code is no
longer required.

* Update LTO_ENABLE docs
2020-04-09 00:18:30 +01:00
ff213d5fe1 [Keymap] Userspace update Rgb layers code (#8659)
* enable rgblight layers

* rgblight layers code

* switch to new rgblight layers

* testing led positions

* fix caps typo

* lights and colors working

* rules updated for different rgb use

* Extra spaces removed
2020-04-08 23:56:55 +01:00
3234118e52 Add Choconum (#8709)
* Add Choconum

* Disable SPI/I2C, add mem fix

* Rename layouts

* Nuke unused config.h files

* Fix username
2020-04-08 20:30:33 +02:00
a1ffc40b36 Add Via keymap for BM16-A (#8681)
* Add Via keymap for BM16-A

* Apply suggestions from code review

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

* Deleted as per noroadsleft

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-08 20:04:39 +02:00
8fe5c718b4 Fix edge-case with config
Without this check, users can lock themselves out by enabling developer
mode, than disabling the dependencies. They wouldn't be able to turn off
developer mode as none of the subcommands (including 'config') would
work.
2020-04-08 09:31:14 -07:00
38f14c4174 Don't hide for devs... 2020-04-08 09:31:14 -07:00
eb683c8c52 Apply @skullydazed's suggestions, move 'import milc'
Only 'import milc' after we are sure that the minimum required modules
are available, as it depends on a few of them.
2020-04-08 09:31:14 -07:00
21799be1ca Make dedicated sections for user/dev commands in docs 2020-04-08 09:31:14 -07:00
5cfc3ce02e Rebase on master, hide some other subcommands
The list of hidden subcommands were approved by @skullydazed ;)
Currently hidden if 'user.developer' is not True:

  - cformat
  - docs
  - kle2json
  - pyformat
  - pytest
2020-04-08 09:31:14 -07:00
724f20ed32 Use milc for config check, requirements fixes
Use milc's config finding and parsing to check if the user is a
developer or not.
'requirements-dev.txt' will now load 'requirements.txt', so no need to
run pip twice.
Add missing 'yapf' dependency to 'requirements-dev.txt'.
2020-04-08 09:31:14 -07:00
c61f016fa4 CLI: Add development mode support
Hide development specific options and don't require dev modules unless
`user.developer` is set to `True`.
2020-04-08 09:31:14 -07:00
ea7e40bae1 Update info.json (#8723)
Addressed a key shift in the QMK Configurator.
2020-04-08 15:09:20 +02:00
974f83ec4b format code according to conventions [skip ci] 2020-04-08 01:38:16 +00:00
400ca2d035 spi_master for AVR (#8299)
* Change _delay_ms/us() to wait_ms/us()

* Switch to platform-agnostic GPIO macros

* Add AVR spi_master and migrate Adafruit BLE code

* Set verbose back to false

* Add clock divisor, bit order and SPI mode configuration for init

* Add start and stop functions

* Move configuration of mode, endianness and speed to `spi_start()`

* Some breaks here would be good

* Default Adafruit BLE clock divisor to 4 (2MHz on the Feather 32U4)

* Remove mode and divisor enums

* Add some docs

* No hr at EOF

* Add links in sidebar
2020-04-08 11:04:31 +10:00
e409fb47f2 DennyTom's buttery_engine (#8138)
* Selectively adding pieces

* Adding georgi keymap

* Adding more files, fixing make

* Smaller makefiles

* Fixing make rules

* README more inline with QMK's guidelines

* Turning off buggy assert

* Improving documentation based on a user feedback.

* Slightly better schema

* Resurrected state machine diagram
2020-04-07 21:13:17 +10:00
ae74922d14 add via support for kira80 (#8677)
* add via support for kira80

* remove redundant raw enable from rules.mk

* clean additional layers for via

* changed USB Vendor ID
2020-04-07 01:43:48 -07:00
3349a8b49b [Keyboard] Wheatfield Split75 (#8511)
* Added split75 keyboard

* tidy up commented out code + removed default

* added visual map

* proper led functions. more layers for keymap

* led functions. moved mod keys to numbers

* double tapping toggle + leds on power on

* media keys fix

* clean up of commented out code and unnecessary functions. readme update.
default keymap

* removed bootloadHID file

* Update keyboards/split75/config.h

* Update keyboards/split75/config.h

* Update keyboards/split75/config.h

* Update keyboards/split75/config.h

* removed python flashing script

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

* Update keyboards/split75/split75.h

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

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

* reintroduced empty matrix_scan_user to default keymap

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/usbconfig.h

* Update keyboards/ergodone/config.h

* Update keyboards/split75/keymaps/art/keymap.c

* updated readme file

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/rules.mk

* Update keyboards/split75/split75.c

* code fix after suggestions

* defined tapping toggle as double tap

* added info.json

* Update keyboards/split75/config.h

* fix for leds not displaying properly when initialising

* Update keyboards/split75/README.md

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

* Update keyboards/split75/keymaps/art/keymap.c

* changed product description fields

* renamed user functions

* indentation fix

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* art keymap update

* Update keyboards/split75/config.h

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/keymaps/art/keymap.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/keymaps/art/keymap.c

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

* Update keyboards/split75/split75.c

* Update keyboards/split75/matrix.c

* Update keyboards/split75/rules.mk

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/config.h

* Update keyboards/split75/split75.c

* disable underglow on sleep and enabled backlighting

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* Update keyboards/split75/usbconfig.h

* personal keymap update

* changed boot animation

* consistent whitespace

* Tidied up default notes and unnecessary comments

* Unique Vendor ID

* remove usb config file

* corrected manufacturer

* Update keyboards/split75/config.h

* Update keyboards/split75/README.md

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.c

* Update keyboards/split75/split75.h

* Update keyboards/split75/split75.h

* Update keyboards/split75/split75.h

* Update keyboards/split75/split75.c

* Update keyboards/split75/matrix.c

* Update keyboards/split75/matrix.c

* Update keyboards/split75/matrix.c

* Update keyboards/split75/matrix.c

* Update keyboards/split75/split75.h

* Personal keymap restore after refactor

* Moved to wheatfield folder + updated readme
2020-04-07 01:36:54 -07:00
b4ef72423e Correctly handle json keymaps with ANY() 2020-04-07 01:34:21 -07:00
f4b67cde8a Update C coding conventions to match .clang-format config for i… (#8717)
* Update C coding conventions to match current .clang-format config for indenting PP directives

* Make indenting guideline clearer
2020-04-07 14:14:08 +10:00
0a643be39e Update 072 based CannonKeys boards to rely on core QMK support (#8716)
* Swap CannonKeys 072 boards over to rely on core QMK backlight support

* Rename keymap

* Rename via_tsangan back to via
2020-04-07 14:01:11 +10:00
6c8e205fc0 Remove keyboard level ws2812 spi drivers (#7694) 2020-04-06 21:31:34 +01:00
7901006753 Refactor cannonkeys f103 boards to use core backlight (#8089)
* Refactor to use core backlight

* Remove custom implementation
2020-04-06 21:10:30 +01:00
9bfa713421 Configurable VIA layout options default value (#8707) 2020-04-06 20:27:44 +01:00
b6fc3ad8e7 Keymap Update jisplit89 (#8708)
Fixed wrong Enter key position.
2020-04-06 19:28:42 +01:00
d1190df10b fix for split-common (#8703) 2020-04-06 20:47:31 +10:00
6add103827 add 60_ansi layout to YD60MQ (#8696) 2020-04-05 22:47:24 -07:00
7642075fc3 format code according to conventions [skip ci] 2020-04-05 22:57:28 +00:00
ca91dc594b V-USB: Remove some stuff from usbconfig.h that should not be configurable (#8656)
* V-USB: Remove some stuff from usbconfig.h that should not be configurable

* Clean up some ifdefs

* And some more

* Even more
2020-04-05 23:25:07 +01:00
26cb83b8c0 jotix layouts (#8644)
* jotix layouts

* jotix ortho 4x4 layout

* Update layouts/community/ortho_4x4/jotix/keymap.c

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

* jotix

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-04-05 23:15:24 +01:00
2392ddb76b Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
6de77141a4 Doctor: Add avrdude/dfu-util/dfu-programmer version printing (#8678)
* Doctor: Add avrdude/dfu-util/dfu-programmer version printing

* Extra newline

* Iterate through version checking functions
2020-04-05 18:11:55 +02:00
6f6c2e1c5c updated rules.mk and default keymap of Wonderland for VIA support (#8668)
* updated rules.mk and default keymap of Wonderland for VIA support

* Restored default keymap and rules.mk, added via keymap folder with modified default keymap and rules.mk, also fixed VendorID in config.h

* fixed jargon on layers 3 and 4 of Wonderland VIA keymap

* cleaned up via keymap, removed fluff

* default keymap for Wonderland restored

* removed unnecessary information from rules.mk

* made more readable per noroadsleft suggestion

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-04-05 15:19:36 +01:00
48cad94d7e Added Caps Lock LED handler to wilba.tech PCBs (#8660) 2020-04-05 15:18:17 +01:00
90665aeec9 Add keyboard TGR-910 (#8683)
* Add files via upload

* Update info.json

* Update info.json

* Update 910.h

* Update 910.h

* Update 910.h

* Update info.json

* Update 910.c

* Update 910.h

* Update config.h

* Update config.h

* Update keymap.c

* Update rules.mk

* Update readme.md

* Delete config.h

* Delete readme.md
2020-04-05 14:48:23 +01:00
845953cc67 V-USB remote wakeup (#7627)
* V-USB remote wakeup

Backport from tmk/tmk_keyboard@391c979be7

* Change vusb.c remote wake config

as per fauxpark's suggestion
2020-04-05 18:18:19 +10:00
c3c2eb71e1 Add Greek keymap (#8636)
* Add Greek keymap

* Split left shift (unused), change keycode for dialytika tonos

* Update quantum/keymap_extras/keymap_greek.h

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

* Fix definition for DTON

Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
2020-04-05 00:56:20 -07:00
28a6a4a15b Add Polish keymap (#8637)
* Add Polish keymap

* Fix wrong AltGr mapping

* These are ogoneks, not cedillas

* Too many !s

* ANSI

* Just use BSLS

* Move BSLS

* Move PIPE

* Fix some incorrect names in keymap_slovak.h

Thanks to vomindoraan
2020-04-05 00:55:13 -07:00
ccb37f673a Add Russian keymap (#8638)
* Add Russian keymap

* Switch to ANSI layout
2020-04-05 00:53:52 -07:00
c5efbc45a1 Add Korean keymap (#8635)
* Add Korean keymap

* Switch to ANSI layout

* Update quantum/keymap_extras/keymap_korean.h

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

Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
2020-04-05 00:51:10 -07:00
6a0d3c3517 [Keyboard] Add 60_hhkb layout to hhkb (#8618)
Signed-off-by: Joshua Rubin <me@jawa.dev>
2020-04-05 00:29:17 -07:00
2fbbac04bb [Keyboard] romeo - add via layout (#8667) 2020-04-04 22:38:25 -07:00
04c81a04c7 [Keyboard] Add ReverseStudio-DecadePad (#8553)
* ADD DecadePad

* Fix Key display bug

* fix

* firmware1

THIS IS A Backup commit

* firmware2

* rename all fill with lower case

* fix bug

* Final Version

Fix all bugs

* Requested change apply

* suggested apply

* change apply

* via test

* Apply change and fix via support problem
2020-04-04 22:28:40 -07:00
120fcc58b6 [Keyboard] Add bat43 Keyboard (#8648)
* carete bat43 dir by new_keyboard.sh

* customize

* bugfix

* fix

* remove LAYOUT_kc

* Update keyboards/bat43/readme.md

* Update keyboards/bat43/rules.mk

* Remove unnecessary parts

* converted to Kxy format

* Update keyboards/bat43/bat43.h
2020-04-04 21:59:49 -07:00
2f15cb2126 minor tweaks 2020-04-04 12:43:13 -07:00
8af156d976 Fix saving output from avrdude and dfu-programmer 2020-04-04 12:43:13 -07:00
70b5015162 Use version_arg in ESSENTIAL_BINARIES dict 2020-04-04 12:43:13 -07:00
3fad3854d6 Fixes #8541 by getting version from -dumpversion then --version as fallback 2020-04-04 12:43:13 -07:00
38d7145da2 VIA Support: 1upkeyboards Sweet16 (#8652)
* update VID and PID to match the rest of 1up's collection

* add VIA keymap
2020-04-04 16:52:05 +11:00
6e8876be39 [Keyboard] Lattice60 (#8603)
* created initial files for the lattice60

* modifying the keymaps and config

* keymap edits and docs

* modifying docs and added personal keymap

* added pic and website to readme

* added layout image for default keymap

* updating layout pictures

* minor formatting edit

* file cleanup

* trying to prevent errors with usbconfig

* removed usbconfig.h

* cleaning up comments

* switched to use community hhkb layout
2020-04-03 13:37:31 -07:00
0bb2924670 Discipline - Add ISO compatibility, rawHID enable, via layout (#8627)
* Add ISO compatibility, rawHID enable, via layout

* Update rules.mk

* Update keyboards/coseyfannitutti/discipline/rules.mk

* Update keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk

* Update rules.mk

* Update rules.mk

* Update keyboards/coseyfannitutti/discipline/rules.mk

* Update rules.mk

* update iso layout macros

* Update keymap.c
2020-04-03 13:26:42 -07:00
2f623daa45 [Keyboard] Add Orbit-X Keyboard (#8605)
* Make initial batch of files

* Tweak keymap

* Mod default keymap

* Add via compat

* Update default keymap based on real world use

* Remove RGB, LCD, MIDI options

* Remove unnecessary functons from orbit_x.c

* Update readme

* Cleanup makefile as necessary

* Make the readme file for default keymap not completely empty

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

* Update keyboards/ai03/orbit_x/readme.md

* Update keyboards/ai03/orbit_x/info.json
2020-04-03 04:33:53 -07:00
ebbaba9001 add 60_tsangan_hhkb layout to GH60 rev. C (#8617)
* add 60_tsangan_hhkb layout to gh60
2020-04-02 20:32:36 -07:00
5f35b07102 add 60_tsangan_hhkb layout to dz60 rules (#8616)
* add 60_tsangan_hhkb layout to dz60
2020-04-02 20:22:48 -07:00
59188bf29d format code according to conventions [skip ci] 2020-04-02 21:59:37 +00:00
9c4bf0ac4a Initial support for ATtiny85 (#8632)
* Initial support for ATtiny85

* Update mcu selection
2020-04-02 22:23:57 +01:00
f2901375ce Add VIA to Gingham (#8651)
* Add VIA to Gingham

- Add VIA keymap
- Fix minor typo in config.h
- Remove redundunt methods and defines

* Update keyboards/gingham/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-02 22:18:50 +01:00
f65e79477f Add via keymap to plaid (#8640)
* define VID/PID in post_config.h, add via keymap

* update readme, set vid/pid for via

* update keymap

* delete usbconfig.h, update keymap

* add status led feature

* Apply suggestions from code review

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

* undef vid/pid in keymap

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-02 22:16:49 +01:00
3094422b33 Fixed info.json (#8653)
* Previous info.json had 4 layers instead of 1, incorrect height and width

* Added labels for arrows (Up, Down, Left, Right)

* Formatted info.json by rows
2020-04-02 21:00:04 +01:00
31fd0cbc1c Fix AVR ws2812 when ADDRESS_BASE is non zero (#8646)
* Fix AVR ws2812 when ADDRESS_BASE is non zero

* fix port

* remove unused function defs
2020-04-02 20:46:38 +01:00
2b427f774a Fix pgm_read_ptr() define for ARM (#8658) 2020-04-02 16:52:16 +01:00
85444176b2 [Keymap] sigul Planck layout updates (#8649)
* fix missing music mode legend

* edit cleaning for readability and removing unused keys

* remove MOUSE from lower, raise and mouse

* remove MOUSE keycode

* edit with updates

Co-authored-by: pisilvio <silvio@picampus.it>
2020-04-02 13:09:26 +01:00
52b48997eb info.json fix for basekeys/slice (#8606)
* info.json fix
2020-04-02 00:40:07 -07:00
umi
808aab8496 add japanese translation (feature part 01) (#8196)
* add feature part 01

* update sentences

* update sentences

* update sentences

* update file based on comment

* leave ctrl, shift, alt key name as alphabet

* update file based on comment

* update file based on comment

* update file based on comment

* update file based on comment

* remove unnecessary space on define line

* update sentence based on pull request's comment

* translate 'breathing' in document

* change expression in table

* update file based on comment

* change the word 'brightness', and update based on comment

* update based on comment

* update based on comment

* add language directory name to each internal link

* update based on comment

* update based on comment
2020-04-02 12:56:59 +09:00
0742f9fc96 Changes to my Ergodox & Planck keymaps (#8622)
* Changes to my Ergodox & Planck keymaps

* Fixed Typos

Corrected some typos and omissions to my Ergodox layout and readme

* Fixed Typos

Fixed some typos in my ErgoDox Readme and keymap.c files
2020-04-02 00:03:52 +01:00
58a9c84d6b Strip out features to allow minimum firmware sizes (#8645) 2020-04-01 21:06:22 +01:00
c217186bea Updated V-USB template to allow usbFunctionWriteOut (#8634) 2020-04-01 17:11:24 +01:00
781308507d Switch to ANSI layout 2020-04-02 03:10:51 +11:00
2eb6cb0dfd Add additional minimal "mini" keymap for Centromere (#8579)
* Create readme.md

* Add files for Centromere

* Add keymap files for Centromere

* Add default keymap for Centromere

* Create keymap directory

* Add keymap files

* keymap directory cleanup

* Keyboard keymap directory cleanup

* Update keyboards/centromere/config.h

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

* Update keyboards/centromere/config.h

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

* Update keyboards/centromere/config.h

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

* Update keymap.c

* Update keymap.c

* Update centromere.c

Changed LED control to GPIO functions

* Update centromere.h

* Update rules.mk

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/keymaps/default_u2/keymap.c

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

* Update keyboards/centromere/rules.mk

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

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

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/rules.mk

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

* Update keyboards/centromere/centromere.c

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/centromere.h

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

* Update keyboards/centromere/rules.mk

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

* Apply suggestions from code review

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

* Update readme.md

* Create keymap.c

Add a minimalist keymap for Centromere.

* Update keyboards/centromere/keymaps/mini/keymap.c

Commit keymap suggestion change

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

* Update keyboards/centromere/keymaps/mini/keymap.c

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

* Update keyboards/centromere/keymaps/mini/keymap.c

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

* Update keymap.c

Remove QWERTY keymap tone, only QWERTY is used here so additional case unnecessary.

* Update keyboards/centromere/keymaps/mini/keymap.c

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

* Update keyboards/centromere/keymaps/mini/keymap.c

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

* Update keyboards/centromere/keymaps/mini/keymap.c

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

* Update keyboards/centromere/keymaps/mini/keymap.c

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

* Update keyboards/centromere/keymaps/mini/keymap.c

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-04-02 02:04:02 +11:00
95c5c11d0b Miscellaneous cleanups (#8639)
* Miscellaneous cleanups

* Cast NO_PIN
2020-04-01 15:49:45 +01:00
b6a09502c6 Migrate :program logic to :flash (#8631) 2020-04-01 13:27:16 +01:00
1962135418 [Docs] Update Japanese translation of i2c_driver.md (#8523)
* Update Japanese translation of i2c_driver.md

* Apply a part of suggestions from code review
2020-04-01 15:05:45 +09:00
d79be051dd [Docs] Japanese translation of hardware_*.md (#8278)
* add docs/ja/hardware.md

* add docs/ja/hardware_avr.md

* add docs/ja/hardware_drivers.md

* add docs/ja/hardware_keyboard_guidelines.md

* update hardware.md

* add space around alphabet word

* fix link tag

* Apply suggestions from code review

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

* remove ja/hardware.md

* Apply suggestions from code review

Co-Authored-By: shela <shelaf@users.noreply.github.com>
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>

* match word matrix with other translations

* Apply suggestions from code review

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

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-04-01 15:04:16 +09:00
3fe8d604a4 Add Russian keymap 2020-04-01 14:09:34 +11:00
194bc7a7e1 Add Slovak keymap and sendstring LUT (#8561) 2020-04-01 14:01:24 +11:00
fec4283022 Add Serbian keymaps and sendstring LUT (#8560)
* Add Serbian keymaps and sendstring LUT

* Apply suggestions from code review

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

* Fix formatting

Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
2020-04-01 14:01:01 +11:00
17af712b7c Add Lithuanian keymap and sendstring LUT (#8562)
* Add Lithuanian keymap and sendstring LUT

* Add Lithuanian AZERTY
2020-04-01 14:00:34 +11:00
712ded1f2f Add Latvian keymap and sendstring LUT (#8563) 2020-04-01 14:00:02 +11:00
c67e304593 [Keymap] Drashna's Cleanup and RGB Divide (#8506)
* Enable External EEPROM on Planck Rev6

* Update KC_MAKE macro to use qmk cli util

* Disable additional gradients for rgb matrix

* Update analog code for newer methods

* Update ergodox layout

* Disable Grave Escape

* Cleanup OLED code a bit

* Remove old unicode code

* Seperate RGB Matrix code from RGB Light code in userspace

* Massive overhaul an generalization of personal OLED code

Now lets hope I NEVER get a keyboard using a 128x32 in a normal orientation.

* Super tiny cleanup

* Enable Diablo layer on kyria

* clang format pass

* Additional OLED cleanup
2020-03-31 16:26:43 -07:00
8c80475fcc Update Quefrency (#8623)
* Add Quefrency Rev. 2 VIA support

* Fix matrix mapping

* Add Rev. 1 VIA support

* Flip encoder pinout

* Drop trailing backslashes

* Remove layer names

* Remove unneeded extern

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

* Fix bracket alignment

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-31 23:21:05 +01:00
3e18bb914c [Keymap] Add support for the Launch Pad in VIA (#8615)
* Added via config support for the launchpad

Added via config support for the launchpad

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Update keyboards/launchpad/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-03-31 15:01:09 -07:00
4434649c2f [Keyboard] added bear_face PCB (#8596)
* bear_face initial commit

Added bear_face PCB

* ATMega32u4-based replacement PCB for the Vortex Race 3

* Default keymap emulates stock board keymap (with a few changes), including layer toggles for QWERTY, COLEMAK, and DVORAK layouts

* Suggested changes made

* fixed keyboard_pre_init_kb in bear_face.c
* removed 'LAYOUTS = 83_ansi' from rules.mk

* readme header fixed

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

* rules.mk formatting fixed

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

* info.json converted from KLE

* Default layers enum added

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

* Specified LAYOUT_83_ansi in info.json

from generic LAYOUT

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

* Updated license

* Changed license name to username

* Changed license email to github profile url

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-31 14:46:20 -07:00
c6c94eeabc [Keymap] Keymap refactoring in Treadstone48 (#8574)
* 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

* Refactoring all my keymaps.
- Not use tap dance
- Remove not use define aliases
- Remove not use incluse and extern value.

* default keymap extra key was changed

* remove rgblight_config

Co-authored-by: root <root>
2020-03-31 14:32:04 -07:00
2c201ab9ad Update newbs_getting_started.md
qmk is not available in the official Arch repositories. It is in the AUR, this install command will work if user has `yay` installed.
2020-03-31 14:26:19 -07:00
e5b10079cf [Keymap] Sigul planck (#8546)
* remove IT_PIPE duplicate and add IT_GRAD

IT_PIPE was declared 2 times, ones as ° and once as |. I changed the first declaration and called it IT_GRAD. I even fixed the definition because the ° in Italian is obtained with LSFT(IT_AACC)

* rename IT_GRAD to IT_DEGR

* fix missing music mode legend

* add    missing plus_and_minus

* fix missing IT_ACUT definition

* change KC_LALT(KC_LSFT to LALT(LSFT

* Fix alignment

* remove leftover

* fix issue generated with chars while pushing

* fix typo

* add sigul folder in Planck keymaps

* fix LCBR and RCBR

* fix euro symbol

* fix RBRC

* change IT_LESS form KC_NUBS to KC_GRAVE

* add IT_TILDE and change IT_GRAV to IT_GRAVE

* initial commit

* add ideas to readme

* comment key lock

* add a bunch of new features as stated in readme.md

* check features added and list to do

* add macros on RAISE

* add F keys on numbers row on FN layer

* flag features added

* fix macro formulas

* move DESK and SGCOM under D and S

* invert IT_EACC and S(IT_EACC) to align the layout with that of the default Planck

* invert IT_EACC and S(IT_EACC) to align the layout with that of the default Planck

fix spaces for readability

* add missing legends for accented vowels

* format for readability

* move MOUSE button on B (same key that activates it) on MOUSE layer

* revert to commit befor I edit it

* initial commit

* edited to be easier to compare to _ansi.h

* remove keymap_italian_osx_iso.h and rename with edits keymap_italian_osx_ansi.h to keymap_italian_osx.h

I found out there were no difference at all

* fix missing #endif

* change the included file from italian.h to italian_osx.h

* fix debug key

* edit Numapd layer, add enter and bsps

* change TAPPING_TOGGLE from 2 to 3

* change italian_osx.h to italian_ansi.h

* rename quantum/keymap_extras/keymap_italian_osx.h to quantum/keymap_extras/keymap_italian_ansi.h

Now this file is a clone of the keymap_italian.h that appears to be working only for ISO keyboards. It also contains a few improvements for IT_PIPE (defined two times) and IT_ACUT (missing definition). Additionally it redefines LCBR and RCBR to LSFT(IT_LBRC) and LSFT(IT_RBRC)

* rename file

* redefines IT_BKSL and IT_PIPE based on KC_BKSL

* merge new italian

* add new osx_iso and osx_ansi version for italian.h and align BKSL to BSLS, fix double definition of PIPE

* rename BKSL to BSLS

* add FN_D and some comments

* add MOUSEKEY configuration

* update

* edit swap =/+ with ò/ì

* merge with master

* add MS_B to have _MOUSE when pressing B

* move RAISE on _FN

* add phone number

* remove CONTRA folder

* remove CONTRA folder

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

fix include definition

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

* remove default planck kemap

* remove extern keymap_config_t keymap_config;

based on suggestion from @fauxpark, It's not needed as it should already be externed through one of the includes provided by QMK_KEYBOARD_H.

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

* add user space for user sigul

* remove custom config moved to user space sigul

* comment tri layers state (moved to user space)

* remove tri layers update comment (code moved in user space)

* add secrets

* move enum and define to userspace

* Edit title

* move enum and define to sigul.h

* add thanks

* edit: moving to userspace  enum, define and process_records

* add enum and defines

* add process_records

* cleaning code after moving code to user space

* add process_records

* cleaning code

* adding rules to manage secrets

* remove secretes

* first commit

* add macro timer

* add keycodes macro

* edit custom keycodes order

* add strings to send inside the secrets array

* remove codes for secrets & change secret to secrets

* edit secrets keycodes

* edit keycodes names and order

* add secrets.h and secrets.c

* add #pragma once

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

* Update .gitignore

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

* add local gitignore for secrets

* remove secrets

* update for secrets

* change FN_D to IT_D

* remove FN_D definition

Co-authored-by: pisilvio <silvio@picampus.it>
Co-authored-by: admin <admin@admins-MacBook-Pro.local>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-31 14:15:16 -07:00
854d46f833 Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
bdfdc506da Rename UC_OSX (and related constants) to UC_MAC (#8589)
* Rename UC_OSX (and related constants) to UC_MAC

* Update UNICODE_SONG_OSX references to UNICODE_SONG_MAC

* Update UC_M_OS references to UC_M_MA

* Add UC_OSX alias for backwards compatibility

* Add deprecation warning for UC_OSX to Unicode docs

* Add UC_M_OS alias for backwards compatibility

* Update newly found UC_M_OS and UNICODE_SONG_OSX references

* Add legacy UNICODE_MODE_OSX alias, revert changes to user keymaps

* Add legacy UNICODE_SONG_OSX alias, revert changes to user keymaps

* Replace removed sounds in Unicode song doc examples
2020-03-31 18:28:43 +02:00
51a81813b0 V-USB: Consolidate usbconfig.h's into a single file (#8584) 2020-03-31 13:17:04 +01:00
8566a684bc Add Japanese translation of cli_commands.md (#8513) 2020-03-31 19:21:47 +09:00
28d3c29704 [Docs] Update Japanese translation of cli.md (#8510)
* Update Japanese translation of cli.md

* Update docs/ja/cli.md

Co-Authored-By: s-show <s1shimz@gmail.com>

Co-authored-by: s-show <s1shimz@gmail.com>
2020-03-31 19:19:15 +09:00
dd5cb64851 [Docs] Update Japanese translation of faq related documents (#8521)
* Update Japanese translation of faq related documents

* Update docs/ja/faq_general.md

Co-Authored-By: s-show <s1shimz@gmail.com>

Co-authored-by: s-show <s1shimz@gmail.com>
2020-03-31 19:12:54 +09:00
b9a64ec93b Update Japanese translation of config_options.md 2020-03-31 19:06:18 +09:00
c9067dfe4f Update Japanese translation with prefix 'getting' 2020-03-31 18:30:21 +09:00
1592d7df24 Fix hasu usb converter bootloader (#8613) 2020-03-30 22:15:08 +01:00
9acd5e04d5 format code according to conventions [skip ci] 2020-03-30 20:52:13 +00:00
0afcb8a36c Added USSR anthem. (#8588) 2020-03-30 22:17:04 +02:00
89a675d57c add hid_raw feature to VUSB (#8380)
* rewrite usbhid feature on vusb

* Apply suggestions from code review

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

* fix typo

* fix typo again

* Update tmk_core/protocol/vusb/vusb.c

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

* clean up defines

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-30 21:15:05 +01:00
b892a1429d Fix inverted backlight for XD87 (#8612) 2020-03-31 02:41:26 +11:00
e90d66f93e [Keymap] Cleaning dbroqua's HHKB layout (#8578)
* Cleaning dbroqua's HHKB layout

Removed _ADJUST layout and integrate move directly on _FN layout.

* Update readme.md

* use enum
2020-03-29 23:51:53 -07:00
bfef2c7b05 [Keyboard] Iris via changes (#8597)
* Change PID to allow differentiation between Rev. 3 and Rev. 4

* Rebadge thumb keys in macro to show physical wiring better

* Add more rules for VIA keymap
2020-03-29 23:47:45 -07:00
74c01654c7 Update keymap keebio/nyquist (#8602)
* format code, add shift color

* testing colors

* todos, shift on right

* changed colors

* use rgh layers api

* impl shift layer

* replace xor with !=

* moved shift rbg

* breathing animation, simplyfy layers

* remove breating animation

* use tt

* minor cleanup

* debounce eager, lto

* shut down rbg when poweroff

* update readme

* readme.md fix

* more readme.md fix

* more readme.md fix
2020-03-29 22:14:43 +01:00
dc98d44582 [Docs] added the description of the reading order of the rules.mk files. (#8566)
* added the description of the reading order of the rules.mk files.

* Update docs/hardware_keyboard_guidelines.md

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

* Update docs/hardware_keyboard_guidelines.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-29 13:00:47 -07:00
defa1a1dc7 [Keyboard] Add keyboard jisplit89 (#8501)
* Add keyboard jisplit89

Add jisplit89 keyboard.

A 89 keys JIS Layout keyboard.
Salicylic-acid3

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

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

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

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

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

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/readme.md

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

* Update keyboards/jisplit89/rev1/rev1.h

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

* Copyright has been updated.

Changed signature to Salicylic_acid3 and changed year to 2020.

* Update readme

Added a note to the build guide.

* Remove unnecessary definitions.

Remove unnecessary definitions.

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

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/info.json

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/rules.mk

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

* Update keyboards/jisplit89/rules.mk

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

* Update keyboards/jisplit89/info.json

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

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

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

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

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Update keyboards/jisplit89/keymaps/salicylic/keymap.c

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

* Delete config.h

Removed to make it more default

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-29 12:42:15 -07:00
c89c084146 CLI: More MSYS2 fixes (#8577)
* CLI: More MSYS2 fixes

Now I can fully setup and work with qmk_firmware on an MSYS2
installation without any errors or exceptions.

* Apply suggestions from code review

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

* Some improvements

* Remove unnecessary import

* Remove slow, unused code

Getting the version from GIT was slow on both Windows and Docker.
Until we find a better, faster way, this is removed.

* remove unused imports

* Implement @vomindoraan's suggestions

* refine how we pick the shell to use

* Apply @fauxpark's suggestions

fauxpark investigated the topic of shells in MSYS2 a bit and we come to the conclusion that the safest bet was to just use the user's shell.
Anything more just opens up more edge-cases than it solves.

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

* Use `platform_id` in doctor

This will bring it in line with the new code.

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
Co-authored-by: skullY <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-29 14:29:44 +02:00
13fff52f6b fixed problem with implicit declaration in quantum/rgblight.c (#8406)
* Update tmk_core/common/progmem.h

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

* Update quantum/rgblight.c

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

* fixed problem with implicit declaration in quantum/rgblight.c (#8381)

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-28 23:35:11 +00:00
7bf9d9dc0a [keymap] Add Alice keymap and to userspace files (#8571)
* convert my 60 keymap to alice

* add via to rules for alice

* remove split backspace and add backlight keycodes

* disable LTO for alice pcb

* keymap alignment formatting
2020-03-28 03:57:27 +00:00
14079ce698 V-USB: Use structs for USB descriptors (#8572)
* V-USB: Use structs for USB descriptors

* Update usbconfigs

* cformat pass
2020-03-28 13:02:25 +11:00
05d9a0ff03 Fix inverted backlight for XD60 (#8575) 2020-03-27 11:00:13 +00:00
b9d0b1f064 [Keyboard] MountainBlocks MB17 (#8554)
* initial commit

* preliminary support for mb17 using the qmk default keymap

* add the VIA keymap

* add qmk configurator support

* code cleanups before submission

* Update keyboards/mountainblocks/mb17/rules.mk

* Update keyboards/mountainblocks/mb17/info.json

* remove file
2020-03-26 17:54:06 -07:00
ed80874f72 Fix IT_APOS backward compatibility define in keymap_italian.h (#8565)
* Fix IT_APOS backward compatibility define in keymap_italian.h

Found by ZSA.
2020-03-27 09:44:06 +11:00
23e942ae4e Enable SLEEP_LED on ATmega32A (#8531)
* Port over some AVR backlight logic to SLEEP_LED

* Port over some AVR backlight logic to SLEEP_LED - add timer 3

* Port over some AVR backlight logic to SLEEP_LED - clang format

* Enable SLEEP_LED within vusb protocol
2020-03-26 18:21:33 +00:00
c077300e19 [Keymap] BM16a stock layout (#8547)
* Stock layout

* Added the default readme

* Update keyboards/bm16a/keymaps/stock/keymap.c

Removed trailing backslashes from layouts

* Removed redundant files, renamed stock keymap and changed readme
2020-03-26 11:03:37 -07:00
11f12d386b Fix wrong python-pip package for MSYS setup instructions 2020-03-26 07:50:22 -07:00
4d76d85d7b V-USB: Use manufacturer and product strings from config.h (#7797)
* V-USB: Use manufacturer and product strings from config.h

* Update board configs
2020-03-26 13:11:32 +00:00
981ea87b05 Add Estonian keymap (#8527) 2020-03-26 16:51:07 +11:00
65252ebf67 Add Croatian keymap (#8525)
* Add Croatian keymap

* Fix comment on HR_DIAE
2020-03-26 16:50:39 +11:00
5bd0a5a585 [Docs] added the description of the reading order of the config.h files. (#8545)
* added the description of the reading order of the config.h files.

* Update docs/hardware_keyboard_guidelines.md

* Update docs/hardware_keyboard_guidelines.md

* Added a description of post_config.h.

* sample bug fix

* sample update

* Update docs/hardware_keyboard_guidelines.md

* Update docs/hardware_keyboard_guidelines.md

* update docs/hardware_keyboard_guidelines.md

* Update docs/hardware_keyboard_guidelines.md
2020-03-25 21:13:16 -07:00
9fbf17b90e format code according to conventions [skip ci] 2020-03-26 03:10:16 +00:00
96bfce7000 Add RawHID support to ATSAM (Massdrop boards) (#8530)
* Add support for RAW endpoint for arm_atsam

This the excellent work from helluvamatt/qmk_firmware in bb6eeb93b.

* Reformat arm_atsam RAW endpoint code

Co-authored-by: Matt Schneeberger <helluvamatt@gmail.com>
2020-03-26 02:34:57 +00:00
d68c4d8106 Add KeebsPCB pre-Alpha support (#8485)
* Add initial KeebsPCB support

* Update readme

* Update readme

* Correct readme typo

* Update keyboards/acheron/keebspcb/config.h

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

* Apply @noroadsleft suggestions from code review

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

* Update keyboards/acheron/keebspcb/info.json

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

* Update keyboards/acheron/keebspcb/keymaps/default/keymap.c

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

Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-26 02:22:08 +00:00
9fb988b6e8 Add _33 Keyboard folder (#8543)
* Add _33 Keyboard folder

* Correcting naming convetions and other code convetions

* Removed extra spaces

* fixed layout callbacks to new lower-case versions

* Remove tapping_term, fix RGB pin define. Added blank readme-to be updated.

* initial addition of the readme.md

* Update readme.md for hardware/pcb availability info

* Adding keymap readme

* Info.json added

* Incorporate Drashna's recommended changes
2020-03-26 01:53:40 +00:00
016d417253 add ansi with blocker layout and keymap for KBD67 rev2 PCB (#8538)
* add new layout for 65% with blocker and add matching keymap

the rev2 pcb gets used in the kbd67 which has a blocker between the left arrow key and the right ctrl key. this layout is missing so far even though it's probably the most used one for this board.

* add split backspace layout with blocker

* change keycode for backslash

* update rules.mk and add missing layouts in info.json

* Update keyboards/kbdfans/kbd67/rev2/rules.mk

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-25 14:51:05 -07:00
de58b07659 Slice Keyboard (#8464)
* Adding Slice Keyboard

* Update keyboards/basekeys/slice/rev1/config.h

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

* Update config.h

* Update keyboards/basekeys/slice/slice.h

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

* Update keyboards/basekeys/slice/slice.h

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

* Update and rename rev1.c to rev1_rgb.c

* Rename rev1.h to rev1_rgb.h

* Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/slice_font.c

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

* Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/slice_font.c

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

* Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/_font.c

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

* Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/_font.c

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

* slice_font location

* Update config.h

* Delete slice_font.c

* Update config.h

* Update keyboards/basekeys/slice/rev1/config.h

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

* Update keyboards/basekeys/slice/rev1_rgb/rules.mk

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

* Update keyboards/basekeys/slice/rev1_rgb/rules.mk

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

* Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c

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

* Update keyboards/basekeys/slice/rev1/rules.mk

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

* Update keyboards/basekeys/slice/rev1/rules.mk

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

* Update keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c

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

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

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

* Update keymap.c

* oled rotation, config handedness

* OLED and LED functionality removed

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

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

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

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

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

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

* Update keymap.c

* Update keymap.c

* oled rotation, config handedness

* rev1 added EE_HANDS

* oled function name

* oled function name

* oled function name

* Update keyboards/basekeys/slice/rev1_rgb/rules.mk

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

* keymap changes

* Delete _font.c

* keymap changes, VID/PID

* Update keyboards/basekeys/slice/rev1/config.h

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

* Update keyboards/basekeys/slice/rev1/config.h

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

* Update keyboards/basekeys/slice/rev1_rgb/config.h

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

* split_util.h used

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-03-25 10:25:10 +01:00
6ceaae30f5 Run clang-format manually to fix recently changed files (#8552) 2020-03-25 14:39:53 +11:00
5075a1d9e4 [Docs] Update RGB Matrix docs with function refs (#8367)
* [Docs] Update RGB Matrix docs with function refs

* Fix up code samples

* suggestions by noroadsleft

* Fix small typo

Co-authored-by: James Young <xxiinophobia@yahoo.com>
2020-03-24 18:54:38 -07:00
3587e20e70 [Keyboard] Add kudox game rev2 (#8529)
* Add Kudox Game rev2.

* Add the keymap of Kudox Game a layer for regulating RGB.

* Modified rgblight_init when RGBLIGHT_ENABLE=no.

* Remove invalid codes.

* Modified *init* function right intention of framework.
2020-03-24 13:02:41 -07:00
963bba1fc3 [Docs] Update Japanese translation of custom_quantum_functions.md (#8520) 2020-03-24 11:59:31 -07:00
571a589cfa [Docs] Update Japanese translation of _summary.md (#8508)
* Update Japanese translation of _summary.md

* Update translation

* Update translation
2020-03-24 11:51:45 -07:00
3c2d5599b9 [Docs] Update Japanese translation of README.md (#8507)
* Update Japanese translation of README.md

* Apply suggestions from code review

* Apply suggestions from code review

* Update translation

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-03-24 01:05:08 -07:00
3b05f25221 [Keymap] shadowprogr's personal keymap (#8497)
* Add personal keymap

* Add keymap readme.md

* Update keymap
2020-03-24 00:13:45 -07:00
e05e671871 Update Japanese translation of flashing.md 2020-03-24 14:26:11 +09:00
2d5b492550 Update Japanese translation of keymap.md 2020-03-24 14:24:19 +09:00
ad8774d6fa Update Japanese translation of contributing.md 2020-03-24 14:19:25 +09:00
297aad6ebd Set backlight and RGB pins for AVR onekeys (#8533)
* Set backlight and RGB pins for AVR onekeys

* Set pin for ADC as well

* Define ADC_PIN for F4 blackpills

* Use A0 for F4 ADCs

* Set ADC pins for F0 and F1
2020-03-24 03:32:23 +00:00
8f69983c58 [Keymap] Minidox Bepo layout (#8515)
* [Keymap] Minidox Bepo layout

Todo :
Lower
Adjust
Update Lower E and Lower S on schema

* Added config.h

* Code review, update config.h

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

Co-authored-by: dolie <olivier.ghafari@pm.me>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-24 00:51:49 +00:00
b779078c60 [Keyboard] Add support for Southpaw Extended 65% (#8465)
* Add support for Southpaw Extended 65%

* Update keyboards/switchplate/southpaw_65/readme.md

* Update keyboards/switchplate/southpaw_65/readme.md

* Update keyboards/switchplate/southpaw_65/readme.md

* Update keyboards/switchplate/southpaw_65/southpaw_65.c

* Update keyboards/switchplate/southpaw_65/rules.mk

* Cleaned up keymaps
-Removed default2 keymap
-Removed default_iso2 keymap
-Rename default keymap directory to default_ansi to reflect correct keymap name

* Update readme.md for default_ansi keymap directory change

* Add layout_all for configurator and correct maximum number of keys supported in readme.md

* Update keyboards/switchplate/southpaw_65/info.json

Forgot to change name to LAYOUT_all

* Update keyboards/switchplate/southpaw_65/info.json

* Update keyboards/switchplate/southpaw_65/readme.md

* Update keyboards/switchplate/southpaw_65/rules.mk

* Add LAYOUT_all keymap

* Update keyboards/switchplate/southpaw_65/keymaps/default/keymap.c

* Update keyboards/switchplate/southpaw_65/info.json
2020-03-23 15:26:22 -07:00
b936048b0b [Keyboard] Snap96 Keyboard (#8416)
* snap96

* fix readme

* small fixes

* remove 4th layer

* moved via config to via folder

* remove suspend

* via  config.h

* kc_nubs

* remove kc_trns to define and remove layer 2

* remove merge conflicts

* remove define and add 3rd layer for VIA keymap

* fix comma

Co-authored-by: Xelus22 <preyas22@gmail.com>
2020-03-22 21:27:00 -07:00
7e0dc5376f [Keymap] Add spidey3 keymap for 75_ansi, and a spidey3 userspace (#8470)
* First cut at Josh Diamond's KBD75 customizations.
Includes:
* My unique keymap with ChromeOS specific keys
* Use RGB underglow to indicate Caps Lock
* Some unicode bindings
* Some changes to make debugging easier

* Updated spidey3 to be applicable to all 75_ansi boards

* Sadly, ChromeOS doesn't pay attention to most consumer codes

* Add mac layer; fix flakeyness in CAPS_LOCK underglow.

* Make layers.json match the keymap (to the extent possible)

* Major cleanup; fix broken debug persistence

* Cleanup some whitespace issues

* Fix incorrect log message.

* Rework layer indication to user RGBLIGHT_LAYERS

* Update layouts/community/75_ansi/spidey3/keymap.c

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

* Rename users/spidey3/rgblight.c to layer_rgb.c per suggestion

* Refactor to use set_single_persistant_default_layer().

* Use dprint/f to make logging more elegant.

* Update users/spidey3/config.h

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

* Update users/spidey3/config.h

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

* Update layouts/community/75_ansi/spidey3/rules.mk

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

* Update users/spidey3/spidey3.c

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

* Update users/spidey3/layer_rgb.c

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

* Update users/spidey3/init.c

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

* Changes from code review

Co-authored-by: Joshua Diamond <jdiamond@Deep-Thought.local>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-22 21:11:41 -07:00
6d1af63842 Add Irish keymap (#8528) 2020-03-22 17:32:43 -07:00
6c4a744a1b Add Czech keymap (#8526) 2020-03-22 17:31:19 -07:00
f7722ef9ca [Keyboard] Added two new layouts for the cospad (#8502)
* creation

new numpad layout for 23 keys
creation of new keymap

* Update cospad.h

* Update info.json

* Update keymap.c

* Update keymap.c

Added a macro for the "00" key.

* added two new keymap. one for each new layout.

The new keymaps are based on the default keymap but focus on

* Update keyboards/cospad/cospad.h

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

* Update keyboards/cospad/cospad.h

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

* Update keyboards/cospad/keymaps/johannbl/numpad2/keymap.c

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

* Update keyboards/cospad/info.json

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

* Update keyboards/cospad/keymaps/johannbl/keymap.c

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

* Update keyboards/cospad/keymaps/johannbl/numpad2/keymap.c

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

* Update keyboards/cospad/info.json

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

* Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c

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

* Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c

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

* Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c

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

* Update keymap.c

layout name fix.

* Update keyboards/cospad/keymaps/johannbl/keymap.c

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

* Update keyboards/cospad/info.json

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

* Update keyboards/cospad/keymaps/johannbl/keymap.c

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

* Update keyboards/cospad/keymaps/johannbl/keymap.c

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

* Delete keymap.c

* Rename keyboards/cospad/keymaps/johannbl/numpad2/keymap.c to keyboards/cospad/keymaps/johannbl/split_plus_and_zero/keymap.c

* Rename keyboards/cospad/keymaps/johannbl/numpad3/keymap.c to keyboards/cospad/keymaps/johannbl/split_zero/keymap.c

* Rename keyboards/cospad/keymaps/johannbl/split_plus_and_zero/keymap.c to keyboards/cospad/keymaps/split_plus_and_zero/keymap.c

* Rename keyboards/cospad/keymaps/johannbl/split_zero/keymap.c to keyboards/cospad/keymaps/split_zero/keymap.c

* Update keyboards/cospad/keymaps/split_plus_and_zero/keymap.c

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-03-22 17:28:11 -07:00
76cb2b1160 format code according to conventions [skip ci] 2020-03-22 14:03:14 +00:00
5117dff6a2 Add Post Processing to process_record (#4892)
* Improve process_record system

Code based on @colinta's

* Rename and better handle functions

* Fix incorrect function call to process_record_user

* Add documentation for post_process_record

* Add both get_event_keycode and get_record_keycode functions

And add some comments about these functions

* Update code format

* Cleanup merge artifacts
2020-03-23 00:29:05 +11:00
e5d34fd084 Variable combo (#8120)
* keymap(gergo): colemak

* added flipped numbers

* add STENO_DISABLE_VIRTSER

* add STENO_DISABLE_VIRTSER

* Added GergoPlex and Faunchpad

* push retab

* push retab

* added variable option for combos

* removed accidental commit

* removed accidental commit

* More accidental deletions! (╯°□°)╯︵ ┻━┻

Co-authored-by: Damien Rajon <145502+pyrho@users.noreply.github.com>
2020-03-23 00:17:26 +11:00
bfb2f8e0a8 Add Word Per Minute calculation feature (#8054)
* Add Word Per Minute calculation feature

* Fix copyright info

* Remove header from quantum.c, setup overloadable keycode inclusion for WPM, update docs

* Simplify logic for keycode filtering

* Adding link from summary to wpm_feature info

* Update docs/feature_wpm.md

Typo in function prototype example in docs

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

* Add WPM transport via i2c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-23 00:06:16 +11:00
d8f3c28a37 Align some ChibiOS build logic (#8461)
* Align some ChibiOS build logic

* infer more makefile logic

* Move bootloader logic to chibios file
2020-03-22 20:48:17 +11:00
eef0cb2f90 Add US International keymap (#8493)
* Add US International keymap

* Add extra spacing to UK AltGr keycode comments
2020-03-22 20:45:27 +11:00
63e4ad13c8 Add Icelandic keymap and sendstring LUT (#8494) 2020-03-22 20:16:24 +11:00
f9e67338a4 Add Finnish keymap and sendstring LUT (#8495) 2020-03-22 19:52:54 +11:00
5f9f62fb8c Reorder logic within common_features.mk (#8517)
* Reorder logic within common_features.mk

* Revert haptic logic

* Add back path to make tests happy

* Update common_features.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-22 19:34:23 +11:00
147bc6ec43 Remove BOOTLOADER_SIZE stuff from template (#8516) 2020-03-22 08:50:37 +01:00
bea62add55 [Docs] Trivial documentation fix (#8509)
* Trivial documentation fix

* fix

* fix

* fix translation
2020-03-22 13:53:58 +11:00
d511e52c1f format code according to conventions [skip ci] 2020-03-21 23:44:27 +00:00
789e199450 Add support for Bootmagic lite when using SPLIT_HAND_PIN (#8347)
* Add support for Bootmagic lite when using SPLIT_HAND_PIN

* Deduplicate bootmagic_lite logic from within via

* Revert location of defaults so that user overrides still work for now

* Tidy up code slightly
2020-03-21 23:10:39 +00:00
a747c1c3de FLX Lodestone: add ANSI and ISO layout data and keymaps (#8481)
* Lodestone: add ANSI and ISO layout data and keymaps

* rename layout macros

LAYOUT_ansi -> LAYOUT_65_ansi_blocker_split_bs
LAYOUT_iso -> LAYOUT_65_iso_blocker_split_bs

* use four-space indent on the new keymaps

* add 65_ansi_blocker and 65_iso_blocker layouts
2020-03-21 15:36:27 -07:00
a521fc2b6c [Docs] Fixes for feature_rgblight.md (#8514)
* remove extra comma that breaks the RGBLight Layers example

* linting

- use four spaces instead of tabs for indenting
- remove trailing spaces
2020-03-21 20:11:06 +00:00
8651eef298 Claw44 rev1 Configurator layout support (#8488) 2020-03-21 12:43:27 -07:00
f4799481cd Fix formatting for report.h (#8512) 2020-03-22 06:19:01 +11:00
675b153525 Fix build of Equinox (#8505)
* Remove rules.mk from equinox dir

* Add explicit rules.mk to rev0 and rev1 dirs
2020-03-21 10:34:23 -07:00
5df2424651 [Docs] Update layer documentation (#8371)
* [Docs] Update layer documentation

* Add layer_state_cmp functions

* Fix cut/copy/paste issue

* Add id tags

* Apply noroads corrections

* Move Layers section to separate document

* Fix ID tag for layers

* Use better name for summary/side bar

* Fix feature page linkage

As well as a small spell error close by

* Remove paper analogy for now
2020-03-21 10:17:02 -07:00
f9c53ca71a format code according to conventions [skip ci] 2020-03-21 12:58:19 +00:00
0d189582c1 Update newbs installation procedure for MSYS2 (#8423) 2020-03-21 19:00:44 +11:00
c6b667623a [Keyboard] Palette1202 fix encoder rotate direction (#8489)
* revised hardware availability - URL

* fixed encoder rotate direction (reversed)
2020-03-20 23:22:08 -07:00
d96380e654 Initial arm->chibios pass - simplify some platform logic (#8450) 2020-03-21 16:20:04 +11:00
7e80686f1e Tidy up report.h (#8486)
* Tidy up report.h

* Add link to Review Request 41 for brightness controls
2020-03-21 16:19:15 +11:00
e967471c4f Remove ACT_COMMAND (#8487)
* Remove ACT_COMMAND

* And from action_t as well
2020-03-21 16:17:43 +11:00
eca3f9d935 fixing matrix layout (#8504) 2020-03-21 16:07:39 +11:00
44c62117ee Highlight .inc files as .c files (#8496) 2020-03-20 09:48:55 +01:00
f235822fba Add VIA support to Leaf 60 (#8490) 2020-03-19 22:36:54 -07:00
5d5ff807c6 Update JIS keymap and sendstring LUT (#8457) 2020-03-20 12:27:52 +11:00
1c7c5daad4 VIA Support for GH60 (#8442)
* VIA Support: GH60 Rev C and GH60 Satan

* Corrected GH60 VIA default keymap

* Corrected GH60 VIA default keymap pt 2

* Copied default keymap over via default keymap

* Satan GH60 default corrected for VIA

* Satan GH60 default corrected for VIA pt 2

* Satan GH60 LTO enable for size

* Transparent 4th dynamic layer for GH60 Via support

* Update keyboards/gh60/revc/info.json

* Update keyboards/gh60/satan/info.json

* Update keyboards/gh60/satan/info.json

* Removed deprecated JSON keys gh60/revc/info.json

* Removed inline comment next to VID for GH60 Satan
2020-03-19 16:33:13 -07:00
aeab11da88 Add tw1t611 ergodash keymap. (#8377)
* Add tw1t611 ergodash keymap.

* Fix keycodes. Change kc_rctl to kcb rsft.

* Change block to enum layers.

* Remove blackslahs.

* Remove last slash. Align row.

* Use new german keymap.

* Fix typo.

Co-authored-by: Daniel Schindler <client55@protonmail.com>
2020-03-19 14:08:36 +11:00
b53934805a Jotix (#8480)
* jotix ortho_4x12 layout

* jotix ortho_4x12 layout

* jotix ortho_4x12 layout

Co-authored-by: jotix <jotix@jotix-pc.localdomain>
2020-03-19 13:32:30 +11:00
6bfbdc30ca Fix missing deprecated keycodes for keymap_swedish (#8483) 2020-03-19 02:13:05 +00:00
02eb949479 VIA Support: PDXKBC Macropad (#8431)
* add via support for pdxkbc macropad

* add VIA support for the pdxkbc

* clean out some commented code

* remove unused files

* comment the vendor ID

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-19 01:46:52 +00:00
3a0f11eb27 Set MCU for some F103 boards (#8459) 2020-03-19 01:33:17 +00:00
c2013f0b7c Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator builds (#8482)
* Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator builds

* Also align rules.mk
2020-03-18 18:13:34 -07:00
19d7cbc858 M0lly: refactor OLED support and qmk-dfu bootloader (#8475) 2020-03-19 01:13:12 +00:00
73f903906e VIA support for projectkb/alice (#8474)
* Create rules.mk

Added rules.mk in keymaps/via

* Update rules.mk

Added new line at the end of the file

* Create via\keymap.c

Added keymap.c inside the via directory

* Update config.h in projectkb/alice

Defined VIA eeprom layout size to 2 bits to allow for 4 layout options
2020-03-19 01:10:28 +00:00
d235612e48 Also align rules.mk 2020-03-19 00:57:02 +00:00
6ad3328b83 Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator builds 2020-03-19 00:43:20 +00:00
13d736d6ab [Keyboard] FLX Lodestone (#8451)
* Add Lodestone PCB

Working Firmware for Lodestone PCB tested on physical PCB prototypes.

* Update keyboards/flx/lodestone/lodestone.c

* Update keyboards/flx/lodestone/keymaps/default/config.h

* Update keyboards/flx/lodestone/rules.mk

* Update keyboards/flx/lodestone/readme.md

* Delete config.h

* Update keyboards/flx/lodestone/info.json

Suggested by noroadsleft

* Update keyboards/flx/lodestone/info.json

* Update keyboards/flx/lodestone/info.json

Changed maintainer name as suggested.

* Update keyboards/flx/lodestone/keymaps/default/readme.md

* Update keyboards/flx/lodestone/info.json

* Update keyboards/flx/lodestone/rules.mk

Changed Link_Time_Optimization to LTO didn't know this was a thing :)

* Update keyboards/flx/lodestone/keymaps/default/keymap.c

Removed 2 unessisary layers from the default map.

* Update keyboards/flx/lodestone/readme.md

* Update keyboards/flx/lodestone/info.json

* Changed from LAYOUT to LAYOUT_all

AS suggested by noroadsleft, changed 4 files to match, and re-testeed on my hardware to confirm working.

* Update keyboards/flx/lodestone/config.h

Cleaned up Manu, Product and Descriptor as suggested.

* Update keyboards/flx/lodestone/readme.md
2020-03-18 12:56:22 -07:00
0b810bdff3 format code according to conventions [skip ci] 2020-03-18 19:12:13 +00:00
3f19117124 [Keyboard] uranuma (#8343)
* uranuma

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

* Update keyboards/uranuma/rules.mk

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

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

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

* Update keyboards/uranuma/uranuma.h

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

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

* 20200316change
2020-03-18 12:09:53 -07:00
fe3e5cba69 [Keyboard] Wheatfield Blocked65% (#8339)
* Initial support for Wheatfield Blocked65%

* Update keyboards/wheatfield/blocked65/blocked65.c

* Update keyboards/wheatfield/blocked65/blocked65.h

* Update keyboards/wheatfield/blocked65/blocked65.h

* Update keyboards/wheatfield/blocked65/info.json

* Update keyboards/wheatfield/blocked65/info.json

* Update keyboards/wheatfield/blocked65/keymaps/default/keymap.c

* Update keyboards/wheatfield/blocked65/keymaps/default/keymap.c

* Update keyboards/wheatfield/blocked65/readme.md

* Update keyboards/wheatfield/blocked65/readme.md

* Update keyboards/wheatfield/blocked65/rules.mk

* Update keyboards/wheatfield/blocked65/keymaps/default/keymap.c
2020-03-18 11:43:25 -07:00
6ba383cc5f [Docs] Japanese translation of docs/custom_matrix.md (#8463)
* add docs/ja/custom_matrix.md

* add original document TAG

* update ja/custom_matrix.md

* 「マトリクス」to 「マトリックス」

* docs/ja/custom_matrix.md:update section title

* update docs/ja/custom_matrix.md

* update docs/ja/custom_matrix.md
2020-03-18 11:37:59 -07:00
d44ca60cb0 [Keyboard] Splitreus62 (#8383)
* added splitreus62

* fixed rules.mk

* Update keymap.c

* Updated RGBLIGHT_ENABLE

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Updated NKRO

* added splitreus62

* fixed rules.mk

* Update keymap.c

* Updated RGBLIGHT_ENABLE

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Updated NKRO

* Update config.h

* Update keyboards/splitreus62/rules.mk

* Update keyboards/splitreus62/splitreus62.c

* Update keyboards/splitreus62/splitreus62.h

* Update keyboards/splitreus62/readme.md

* Update keyboards/splitreus62/rules.mk

* Update config.h

* Update keyboards/splitreus62/readme.md

* Update keyboards/splitreus62/rules.mk

* Update keyboards/splitreus62/splitreus62.h

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

* Update keyboards/splitreus62/readme.md
2020-03-18 11:36:22 -07:00
42b0e95ae6 [Keymap] Update default keymap for Choco60 (#8453)
* Update default keymap for Choco60

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

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-18 11:16:15 -07:00
b6316c5024 [Keymap] I2C scanner (#8454)
* Add i2c scanner keymap

* Add bodge for chibios

* Fix readme title

* make chibios bodge a little cleaner

* fix typo in readme
2020-03-18 11:14:45 -07:00
fc4ef6934d Update Programmer Dvorak keymap and add sendstring LUT (#8456)
* Update Programmer Dvorak keymap and add sendstring LUT

* Include quantum.h
2020-03-18 11:11:57 -07:00
0dff26b550 [Keyboard] Add more community layout support to Polaris (#8468)
- Add 60_ansi, 60_ansi_split_bs_rshift layouts
2020-03-18 10:45:13 -07:00
76d8558b1a VIA support for TKC1800 (#8178)
* VIA support for TKC1800

* Fixed VENDOR_ID
2020-03-18 10:28:13 -07:00
8123dd2649 CLI: Hide json-keymap subcommand, as it's been deprecated. 2020-03-18 10:17:23 -07:00
1ec648932f [Keymap] Add the fsck layout for iris (#8473) 2020-03-18 09:48:00 -07:00
427f7b3a39 [Userspace] alfrdmalr: swap # and @ symbols (#8469) 2020-03-17 21:44:55 -07:00
c670240503 Update UK keymap and sendstring LUT (#8458) 2020-03-17 17:09:12 -07:00
59d6b0faab [Keymap] Corodiak's Kyria (#8444)
* Add kyria keymap

* Delete wrong readme.md

* Move layer keys

* Refine keymap

* Clean up

* Add comment

* Improve OS depending macros

* Update keymap overview

* Add review suggestions
2020-03-17 16:57:53 -07:00
6f55aa993a [docs] Note the need to flash both sides for rgb layers. (#8467)
Update feature_rgblight.md to note that for split dual-mcu boards, 
both sides must be flash to get the new value of the rgblight_layers.

https://github.com/qmk/qmk_firmware/pull/7768#issuecomment-600237611
2020-03-17 23:43:04 +00:00
e34764502f Remove qmk archive generation (#8462) 2020-03-17 21:28:13 +00:00
8b0efc2124 [Keymap] New Massdrop ALT keymap for emptyflask (#8460)
amended to remove a couple of unnecessary lines,
thanks to @zvecr and @fauxpark
2020-03-17 21:01:54 +00:00
2f936420dd [Keyboard] Add sick68 keyboard (#8400)
* add sick68 keyboard

* relocate to keyboards/handwired/sick68

* Apply suggestions from code review

* delete config.h because was emply

* Apply suggestions from code review
2020-03-17 13:51:47 -07:00
6698af9c3d Fix Dimple VIA keymap (#8466) 2020-03-17 17:04:03 +01:00
61da615308 Add VIA support for LazyDesigners Dimple. (#8447)
* Assign unique VID to LazyDesigners' boards

* Add VIA support for LazyDesigners Dimple

* Apply @fauxpark's suggestions

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-17 15:34:37 +01:00
ece14278ef format code according to conventions [skip ci] 2020-03-17 01:02:01 +00:00
567bfc97ac ARM - ADC cleanup (#8385)
* Update switch to array to allow custom values

* Add adc keymap

* update docs to reflect alignment of default 10 bit

* start conversion to USE_ADCVn

* samplerate is hella wrong...stub out for now

* basic f1 and f4 functionality

* Tidy up current changes

* Restore old pinToMux function

* Add back sample rate for supported platforms

* F0 compile fixes

* wordsmithery

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

* Remove reference to avr only function

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-17 00:29:52 +00:00
7aff643031 Update Italian keymap and add sendstring LUT (#8438) 2020-03-16 14:32:48 +00:00
880 changed files with 35445 additions and 38021 deletions

View File

@ -11,6 +11,7 @@
"files.associations": {
"*.h": "c",
"*.c": "c",
"*.inc": "c",
"*.cpp": "cpp",
"*.hpp": "cpp",
"xstddef": "c",

67
bin/qmk
View File

@ -2,52 +2,61 @@
"""CLI wrapper for running QMK commands.
"""
import os
import subprocess
import sys
from importlib.util import find_spec
from time import strftime
from pathlib import Path
# Add the QMK python libs to our path
script_dir = os.path.dirname(os.path.realpath(__file__))
qmk_dir = os.path.abspath(os.path.join(script_dir, '..'))
python_lib_dir = os.path.abspath(os.path.join(qmk_dir, 'lib', 'python'))
sys.path.append(python_lib_dir)
script_dir = Path(os.path.realpath(__file__)).parent
qmk_dir = script_dir.parent
python_lib_dir = Path(qmk_dir / 'lib' / 'python').resolve()
sys.path.append(str(python_lib_dir))
# Make sure our modules have been setup
with open(os.path.join(qmk_dir, 'requirements.txt'), 'r') as fd:
for line in fd.readlines():
line = line.strip().replace('<', '=').replace('>', '=')
if line[0] == '#':
continue
def _check_modules(requirements):
""" Check if the modules in the given requirements.txt are available.
"""
with Path(qmk_dir / requirements).open() as fd:
for line in fd.readlines():
line = line.strip().replace('<', '=').replace('>', '=')
if '#' in line:
line = line.split('#')[0]
if len(line) == 0 or line[0] == '#' or line.startswith('-r'):
continue
module = line.split('=')[0] if '=' in line else line
if '#' in line:
line = line.split('#')[0]
module = dict()
module['name'] = module['import'] = line.split('=')[0] if '=' in line else line
if module in ['pep8-naming']:
# Not every module is importable by its own name.
continue
if module['name'] == "pep8-naming":
module['import'] = "pep8ext_naming"
if not find_spec(module):
print('Could not find module %s!' % module)
print('Please run `pip3 install -r requirements.txt` to install the python dependencies.')
exit(255)
if not find_spec(module['import']):
print('Could not find module %s!' % module['name'])
print('Please run `python3 -m pip install -r %s` to install required python dependencies.' % str(qmk_dir / requirements))
if developer:
print('You can also turn off developer mode: qmk config user.developer=None')
print()
exit(255)
# Figure out our version
# TODO(skullydazed/anyone): Find a method that doesn't involve git. This is slow in docker and on windows.
command = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags']
result = subprocess.run(command, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if result.returncode == 0:
os.environ['QMK_VERSION'] = result.stdout.strip()
else:
os.environ['QMK_VERSION'] = 'nogit-' + strftime('%Y-%m-%d-%H:%M:%S') + '-dirty'
developer = False
# Make sure our modules have been setup
_check_modules('requirements.txt')
# Setup the CLI
import milc # noqa
# For developers additional modules are needed
if milc.cli.config.user.developer:
# Do not run the check for 'config',
# so users can turn off developer mode
if len(sys.argv) == 1 or (len(sys.argv) > 1 and 'config' != sys.argv[1]):
developer = True
_check_modules('requirements-dev.txt')
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'

View File

@ -231,44 +231,19 @@ endif
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
# not used for LUFA
ifdef MCU_FAMILY
FIRMWARE_FORMAT?=bin
PLATFORM=CHIBIOS
PLATFORM_KEY=chibios
FIRMWARE_FORMAT?=bin
else ifdef ARM_ATSAM
PLATFORM=ARM_ATSAM
PLATFORM_KEY=arm_atsam
FIRMWARE_FORMAT=bin
else
PLATFORM=AVR
PLATFORM_KEY=avr
FIRMWARE_FORMAT?=hex
endif
ifeq ($(PLATFORM),CHIBIOS)
include $(TMK_PATH)/chibios.mk
OPT_OS = chibios
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_4)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_3)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_2)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h
else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","")
OPT_DEFS += -include $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h
endif
endif
# Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H :=
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
@ -304,11 +279,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
endif
# Save the defines and includes here, so we don't include any keymap specific ones
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
PROJECT_CONFIG := $(CONFIG_H)
# Userspace setup and definitions
ifeq ("$(USER_NAME)","")
USER_NAME := $(KEYMAP)
@ -354,23 +324,17 @@ SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
ifeq ($(PLATFORM),AVR)
ifeq ($(strip $(PROTOCOL)), VUSB)
include $(TMK_PATH)/protocol/vusb.mk
include $(TMK_PATH)/$(PLATFORM_KEY).mk
ifneq ($(strip $(PROTOCOL)),)
include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
else
include $(TMK_PATH)/protocol/lufa.mk
endif
include $(TMK_PATH)/avr.mk
include $(TMK_PATH)/protocol/$(PLATFORM_KEY).mk
endif
ifeq ($(PLATFORM),ARM_ATSAM)
include $(TMK_PATH)/arm_atsam.mk
include $(TMK_PATH)/protocol/arm_atsam.mk
endif
ifeq ($(PLATFORM),CHIBIOS)
include $(TMK_PATH)/protocol/chibios.mk
endif
# TODO: remove this bodge?
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
PROJECT_CONFIG := $(CONFIG_H)
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer

View File

@ -41,6 +41,7 @@ all: elf
VPATH += $(COMMON_VPATH)
PLATFORM:=TEST
PLATFORM_KEY:=test
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include tests/$(TEST)/rules.mk

File diff suppressed because it is too large Load Diff

View File

@ -52,7 +52,7 @@
* Simple Keycodes
* [Full List](keycodes.md)
* [Basic Keycodes](keycodes_basic.md)
* [Layer Switching](feature_advanced_keycodes.md)
* [Modifier Keys](feature_advanced_keycodes.md)
* [Quantum Keycodes](quantum_keycodes.md)
* Advanced Keycodes
@ -71,6 +71,7 @@
* [Combos](feature_combo.md)
* [Debounce API](feature_debounce_type.md)
* [Key Lock](feature_key_lock.md)
* [Layers](feature_layers.md)
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [Swap Hands](feature_swap_hands.md)
@ -79,6 +80,7 @@
* [Terminal](feature_terminal.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [WPM Calculation](feature_wpm.md)
* Hardware Features
* Displays
@ -119,6 +121,7 @@
* [Drivers](hardware_drivers.md)
* [ADC Driver](adc_driver.md)
* [I2C Driver](i2c_driver.md)
* [SPI Driver](spi_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [EEPROM Driver](eeprom_driver.md)
* [GPIO Controls](internals_gpio_control.md)

View File

@ -2,7 +2,7 @@
QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](feature_encoders.md).
This driver currently supports both AVR and a limited selection of ARM devices. On AVR devices, the values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V). On supported ARM devices, there is more flexibility in control of operation through `#define`s, but by default the values returned are 12-bit integers (0-4095) mapped between 0V and VCC (usually 3.3V).
This driver currently supports both AVR and a limited selection of ARM devices. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V for AVR, 3.3V only for ARM), however on ARM there is more flexibility in control of operation through `#define`s if you need more precision.
## Usage

View File

@ -1,38 +1,6 @@
# QMK CLI Commands
# CLI Commands
## `qmk cformat`
This command formats C code using clang-format.
Run it with no arguments to format all core code that has been changed. Default checks `origin/master` with `git diff`, branch can be changed using `-b <branch_name>`
Run it with `-a` to format all core code, or pass filenames on the command line to run it on specific files.
**Usage for specified files**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
**Usage for all core files**:
```
qmk cformat -a
```
**Usage for only changed files against origin/master**:
```
qmk cformat
```
**Usage for only changed files against branch_name**:
```
qmk cformat -b branch_name
```
# User Commands
## `qmk compile`
@ -136,16 +104,6 @@ This command lets you configure the behavior of QMK. For the full `qmk config` d
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `qmk docs`
This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936.
**Usage**:
```
qmk docs [-p PORT]
```
## `qmk doctor`
This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to.
@ -180,28 +138,6 @@ Creates a keymap.c from a QMK Configurator export.
qmk json2c [-o OUTPUT] filename
```
## `qmk kle2json`
This command allows you to convert from raw KLE data to QMK Configurator JSON. It accepts either an absolute file path, or a file name in the current directory. By default it will not overwrite `info.json` if it is already present. Use the `-f` or `--force` flag to overwrite.
**Usage**:
```
qmk kle2json [-f] <filename>
```
**Examples**:
```
$ qmk kle2json kle.txt
☒ File info.json already exists, use -f or --force to overwrite.
```
```
$ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk list-keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`
@ -232,6 +168,74 @@ This command creates a new keymap based on a keyboard's existing default keymap.
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
---
# Developer Commands
## `qmk cformat`
This command formats C code using clang-format.
Run it with no arguments to format all core code that has been changed. Default checks `origin/master` with `git diff`, branch can be changed using `-b <branch_name>`
Run it with `-a` to format all core code, or pass filenames on the command line to run it on specific files.
**Usage for specified files**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
**Usage for all core files**:
```
qmk cformat -a
```
**Usage for only changed files against origin/master**:
```
qmk cformat
```
**Usage for only changed files against branch_name**:
```
qmk cformat -b branch_name
```
## `qmk docs`
This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936.
**Usage**:
```
qmk docs [-p PORT]
```
## `qmk kle2json`
This command allows you to convert from raw KLE data to QMK Configurator JSON. It accepts either an absolute file path, or a file name in the current directory. By default it will not overwrite `info.json` if it is already present. Use the `-f` or `--force` flag to overwrite.
**Usage**:
```
qmk kle2json [-f] <filename>
```
**Examples**:
```
$ qmk kle2json kle.txt
☒ File info.json already exists, use -f or --force to overwrite.
```
```
$ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk pyformat`
This command formats python code in `qmk_firmware`.
@ -251,3 +255,4 @@ This command runs the python test suite. If you make changes to python code you
```
qmk pytest
```

View File

@ -6,6 +6,18 @@ This document has useful information for developers wishing to write new `qmk` s
The QMK CLI operates using the subcommand pattern made famous by git. The main `qmk` script is simply there to setup the environment and pick the correct entrypoint to run. Each subcommand is a self-contained module with an entrypoint (decorated by `@cli.subcommand()`) that performs some action and returns a shell returncode, or None.
## Developer mode:
If you intend to maintain keyboards and/or contribute to QMK, you can enable the CLI's "Developer" mode:
`qmk config user.developer=True`
This will allow you to see all available subcommands.
**Note:** You will have to install additional requirements:
```bash
python3 -m pip install -r requirements-dev.txt
```
# Subcommands
[MILC](https://github.com/clueboard/milc) is the CLI framework `qmk` uses to handle argument parsing, configuration, logging, and many other features. It lets you focus on writing your tool without wasting your time writing glue code.

View File

@ -20,11 +20,11 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
* We accept both forms of preprocessor if's: `#ifdef DEFINED` and `#if defined(DEFINED)`
* If you are not sure which to prefer use the `#if defined(DEFINED)` form.
* Do not change existing code from one style to the other, except when moving to a multiple condition `#if`.
* Do not put whitespace between `#` and `if`.
* When deciding how (or if) to indent directives keep these points in mind:
* Readability is more important than consistency.
* Follow the file's existing style. If the file is mixed follow the style that makes sense for the section you are modifying.
* When choosing to indent you can follow the indention level of the surrounding C code, or preprocessor directives can have their own indent level. Choose the style that best communicates the intent of your code.
* When deciding how (or if) to indent preprocessor directives, keep these points in mind:
* Readability is more important than consistency.
* Follow the file's existing style. If the file is mixed, follow the style that makes sense for the section you are modifying.
* When indenting, keep the hash at the start of the line and add whitespace between `#` and `if`, starting with 4 spaces after the `#`.
* You can follow the indention level of the surrounding C code, or preprocessor directives can have their own indentation levels. Choose the style that best communicates the intent of your code.
Here is an example for easy reference:

View File

@ -115,9 +115,9 @@ If you define these options you will disable the associated feature, which can s
* `#define NO_ACTION_ONESHOT`
* disable one-shot modifiers
* `#define NO_ACTION_MACRO`
* disable old style macro handling: MACRO() & action_get_macro
* disable old-style macro handling using `MACRO()`, `action_get_macro()` _(deprecated)_
* `#define NO_ACTION_FUNCTION`
* disable calling of action_function() from the fn_actions array (deprecated)
* disable old-style function handling using `fn_actions`, `action_function()` _(deprecated)_
## Features That Can Be Enabled
@ -317,10 +317,10 @@ 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`
* Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled.
It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
* 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`
* It has the same meaning as LINK_TIME_OPTIMIZATION_ENABLE. You can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_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`

View File

@ -98,6 +98,7 @@
* [ISP Flashing Guide](de/isp_flashing_guide.md)
* [ARM Debugging Guide](de/arm_debugging.md)
* [I2C Driver](de/i2c_driver.md)
* [SPI Driver](de/spi_driver.md)
* [GPIO Controls](de/internals_gpio_control.md)
* [Proton C Conversion](de/proton_c_conversion.md)

View File

@ -98,6 +98,7 @@
* [Guía de flasheado de ISP](es/isp_flashing_guide.md)
* [Guía de depuración de ARM](es/arm_debugging.md)
* [Driver I2C](es/i2c_driver.md)
* [Driver SPI](es/spi_driver.md)
* [Controles GPIO](es/internals_gpio_control.md)
* [Conversión Proton C](es/proton_c_conversion.md)

View File

@ -1,46 +1,3 @@
# Switching and Toggling Layers :id=switching-and-toggling-layers
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. For a detailed explanation of layers, see [Keymap Overview](keymap.md#keymap-and-layers). When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended.
* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).)
* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers: `MOD_LCTL`, `MOD_LSFT`, `MOD_LALT`, `MOD_LGUI` (note the use of `MOD_` constants instead of `KC_`). These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`.
* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15.
* `OSL(layer)` - momentarily activates *layer* until the next key is pressed. See [One Shot Keys](one_shot_keys.md) for details and additional functionality.
* `TG(layer)` - toggles *layer*, activating it if it's inactive and vice versa
* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
## Caveats
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Modifiers specified as part of a Layer Tap or Mod Tap's keycode will be ignored. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two.
# Working with Layers
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.
## Beginners
If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers:
* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number).
* Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer.
* In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone.
## Intermediate Users
Sometimes you need more than one base layer. For example, if you want to switch between QWERTY and Dvorak, switch between layouts for different countries, or switch your layout for different videogames. Your base layers should always be the lowest numbered layers. When you have multiple base layers you should always treat them as mutually exclusive. When one base layer is on the others are off.
## Advanced Users
Once you have a good feel for how layers work and what you can do, you can get more creative. The rules listed in the beginner section will help you be successful by avoiding some of the tricker details but they can be constraining, especially for ultra-compact keyboard users. Understanding how layers work will allow you to use them in more advanced ways.
Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem.
Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h).
# Modifier Keys :id=modifier-keys
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.
@ -63,10 +20,14 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown
You can also chain them, for example `LCTL(LALT(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
# Legacy Content
# Legacy Content :id=legacy-content
This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for.
## Layers :id=switching-and-toggling-layers
* [Layers](feature_layers.md)
## Mod-Tap :id=mod-tap
* [Mod-Tap](mod_tap.md)

View File

@ -123,7 +123,7 @@ If you would like to change the hotkey assignments for Bootmagic, `#define` thes
# Bootmagic Lite :id=bootmagic-lite
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
To enable this version of Bootmagic, you need to enable it in your `rules.mk` with:
@ -131,7 +131,7 @@ To enable this version of Bootmagic, you need to enable it in your `rules.mk` wi
BOOTMAGIC_ENABLE = lite
```
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW 0
@ -144,9 +144,20 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
!> Using bootmagic lite will **always reset** the EEPROM, so you will lose any settings that have been saved.
## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
```
By default, these values are not set.
## Advanced Bootmagic Lite
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
To replace the function, all you need to do is add something like this to your code:
@ -163,4 +174,4 @@ void bootmagic_lite(void) {
}
```
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.

94
docs/feature_layers.md Normal file
View File

@ -0,0 +1,94 @@
# Layers :id=layers
One of the most powerful and well used features of QMK Firmware is the ability to use layers. For most people, this amounts to a function key that allows for different keys, much like what you would see on a laptop or tablet keyboard.
For a detailed explanation of how the layer stack works, checkout [Keymap Overview](keymap.md#keymap-and-layers).
## Switching and Toggling Layers :id=switching-and-toggling-layers
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended.
* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).)
* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers: `MOD_LCTL`, `MOD_LSFT`, `MOD_LALT`, `MOD_LGUI` (note the use of `MOD_` constants instead of `KC_`). These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`.
* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15.
* `OSL(layer)` - momentarily activates *layer* until the next key is pressed. See [One Shot Keys](one_shot_keys.md) for details and additional functionality.
* `TG(layer)` - toggles *layer*, activating it if it's inactive and vice versa
* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
### Caveats :id=caveats
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-16, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only.
Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two.
## Working with Layers :id=working-with-layers
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.
### Beginners :id=beginners
If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers:
* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number).
* Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer.
* In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone.
### Intermediate Users :id=intermediate-users
Sometimes you need more than one base layer. For example, if you want to switch between QWERTY and Dvorak, switch between layouts for different countries, or switch your layout for different videogames. Your base layers should always be the lowest numbered layers. When you have multiple base layers you should always treat them as mutually exclusive. When one base layer is on the others are off.
### Advanced Users :id=advanced-users
Once you have a good feel for how layers work and what you can do, you can get more creative. The rules listed in the beginner section will help you be successful by avoiding some of the tricker details but they can be constraining, especially for ultra-compact keyboard users. Understanding how layers work will allow you to use them in more advanced ways.
Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem.
Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h).
## Functions :id=functions
There are a number of functions (and variables) related to how you can use or manipulate the layers.
|Function |Description |
|----------------------------------------------|---------------------------------------------------------------------------------------------------------|
| `layer_state_set(layer_mask)` | Directly sets the layer state (recommended, do not use unless you know what you are doing). |
| `layer_clear()` | Clears all layers (turns them all off). |
| `layer_move(layer)` | Turns specified layer on, and all other layers off. |
| `layer_on(layer)` | Turns specified layer on, leaves all other layers in existing state. |
| `layer_off(layer)` | Turns specified layer off, leaves all other layers in existing state. |
| `layer_invert(layer)` | Interverts/toggles the state of the specified layer |
| `layer_or(layer_mask)` | Turns on layers based on matching bits between specifed layer and existing layer state. |
| `layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing layer state. |
| `layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing layer state. |
| `layer_debug(layer_mask)` | Prints out the current bit mask and highest active layer to debugger console. |
| `default_layer_set(layer_mask)` | Directly sets the default layer state (recommended, do not use unless you know what you are doing). |
| `default_layer_or(layer_mask)` | Turns on layers based on matching bits between specifed layer and existing default layer state. |
| `default_layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing default layer state. |
| `default_layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing default layer state. |
| `default_layer_debug(layer_mask)` | Prints out the current bit mask and highest active default layer to debugger console. |
| [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) | Sets the default layer and writes it to persistent memory (EEPROM). |
| [`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 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 |
|-----------------------------------------------------|----------------------------------------------------------------------------------------|
| `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. |
| `default_layer_state_set_kb(layer_state_t state)` | Callback for default layer functions, for keyboard. Called on keyboard initialization. |
| `default_layer_state_set_user(layer_state_t state)` | Callback for default layer functions, for users. Called on keyboard initialization. |
?> 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). |
!> 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.

View File

@ -74,9 +74,9 @@ SEQ_THREE_KEYS(KC_C, KC_C, KC_C) {
## Strict Key Processing
By default, the Leader Key feature will filter the keycode out of [`Mod-Tap`](mod_tap.md) and [`Layer Tap`](feature_advanced_keycodes.md#switching-and-toggling-layers) functions when checking for the Leader sequences. That means if you're using `LT(3, KC_A)`, it will pick this up as `KC_A` for the sequence, rather than `LT(3, KC_A)`, giving a more expected behavior for newer users.
By default, the Leader Key feature will filter the keycode out of [`Mod-Tap`](mod_tap.md) and [`Layer Tap`](feature_layers.md#switching-and-toggling-layers) functions when checking for the Leader sequences. That means if you're using `LT(3, KC_A)`, it will pick this up as `KC_A` for the sequence, rather than `LT(3, KC_A)`, giving a more expected behavior for newer users.
While, this may be fine for most, if you want to specify the whole keycode (eg, `LT(3, KC_A)` from the example above) in the sequence, you can enable this by added `#define LEADER_KEY_STRICT_KEY_PROCESSING` to your `config.h` file. This well then disable the filtering, and you'll need to specify the whole keycode.
While, this may be fine for most, if you want to specify the whole keycode (eg, `LT(3, KC_A)` from the example above) in the sequence, you can enable this by added `#define LEADER_KEY_STRICT_KEY_PROCESSING` to your `config.h` file. This will then disable the filtering, and you'll need to specify the whole keycode.
## Customization

View File

@ -88,6 +88,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
```
### Advanced Macros
In addition to the `process_record_user()` function, is the `post_process_record_user()` function. This runs after `process_record` and can be used to do things after a keystroke has been sent. This is useful if you want to have a key pressed before and released after a normal key, for instance.
In this example, we modify most normal keypresses so that `F22` is pressed before the keystroke is normally sent, and release it __only after__ it's been released.
```c
static uint8_t f22_tracker;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_A ... KC_F21: //notice how it skips over F22
case KC_F23 ... KC_EXSEL: //exsel is the last one before the modifier keys
if (record->event.pressed) {
register_code(KC_F22); //this means to send F22 down
f22_tracker++;
register_code(keycode);
return false;
}
break;
}
return true;
}
void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_A ... KC_F21: //notice how it skips over F22
case KC_F23 ... KC_EXSEL: //exsel is the last one before the modifier keys
if (!record->event.pressed) {
f22_tracker--;
if (!f22_tracker) {
unregister_code(KC_F22); //this means to send F22 up
}
}
break;
}
}
```
### TAP, DOWN and UP
You may want to use keys in your macros that you can't write down, such as `Ctrl` or `Home`.

View File

@ -266,6 +266,25 @@ To reverse the scroll axes you can put:
into config.h.
### Rotate Mouse Axes :id=rotate-mouse-axes
Transform the output of the device with a clockwise rotation of 90, 180, or 270
degrees.
When compensating for device orientation, rotate the output the same amount in
the opposite direction. E.g. if the normal device orientation is considered to
be North-facing, compensate as follows:
```c
#define PS2_MOUSE_ROTATE 270 /* Compensate for East-facing device orientation. */
```
```c
#define PS2_MOUSE_ROTATE 180 /* Compensate for South-facing device orientation. */
```
```c
#define PS2_MOUSE_ROTATE 90 /* Compensate for West-facing device orientation. */
```
### Debug Settings :id=debug-settings
To debug the mouse, add `debug_mouse = true` or enable via bootmagic.

View File

@ -396,18 +396,88 @@ The EEPROM for it is currently shared with the RGBLIGHT system (it's generally a
Where `28` is an unused index from `eeconfig.h`.
## Suspended state :id=suspended-state
## Functions :id=functions
To use the suspend feature, add this to your `<keyboard>.c`:
### Direct Operation :id=direct-operation
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_set_color_all(r, g, b)` |Set all of the LEDs to the given RGB value, where `r`/`g`/`b` are between 0 and 255 (not written to EEPROM) |
|`rgb_matrix_set_color(index, r, g, b)` |Set a single LED to the given RGB value, where `r`/`g`/`b` are between 0 and 255, and `index` is between 0 and `DRIVER_LED_TOTAL` (not written to EEPROM) |
### Disable/Enable Effects :id=disable-enable-effects
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_toggle()` |Toggle effect range LEDs between on and off |
|`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) |
### Change Effect Mode :id=change-effect-mode
|Function |Description |
|--------------------------------------------|-------------|
|`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_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 |
### 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_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue |
|`rgb_matrix_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation |
|`rgb_matrix_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation |
|`rgb_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value |
|`rgb_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value |
|`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) |
### Query Current Status :id=query-current-status
|Function |Description |
|-----------------------|-----------------|
|`rgb_matrix_get_mode()` |Get current mode |
|`rgb_matrix_get_hue()` |Get current hue |
|`rgb_matrix_get_sat()` |Get current sat |
|`rgb_matrix_get_val()` |Get current val |
## Callbacks :id=callbacks
### Indicators :id=indicators
If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, you can use the `rgb_matrix_indicators_kb` or `rgb_matrix_indicators_user` function for that:
```c
void rgb_matrix_indicators_kb(void) {
rgb_matrix_set_color(index, red, green, blue);
}
```
### Suspended state :id=suspended-state
To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.
Additionally add this to your `<keyboard>.c`:
```c
void suspend_power_down_kb(void)
{
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
```
or add this to your `keymap.c`:
```c
void suspend_power_down_user(void) {
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_kb(void)
{
void suspend_wakeup_init_user(void) {
rgb_matrix_set_suspend_state(false);
}
```

View File

@ -175,23 +175,23 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
## Lighting Layers
By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently:
```c
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{6, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6
{12, 4, HSV_RED} // Light 4 LEDs, starting with LED 12
{6, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6
{12, 4, HSV_RED} // Light 4 LEDs, starting with LED 12
);
// Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{9, 2, HSV_CYAN}
{9, 2, HSV_CYAN}
);
// Light LEDs 11 & 12 in purple when keyboard layer 2 is active
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 2, HSV_PURPLE},
{11, 2, HSV_PURPLE}
);
// etc..
```
@ -201,14 +201,14 @@ We combine these layers into an array using the `RGBLIGHT_LAYERS_LIST` macro, an
```c
// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
my_capslock_layer,
my_layer1_layer, // Overrides caps lock layer
my_layer2_layer // Overrides other layers
my_capslock_layer,
my_layer1_layer, // Overrides caps lock layer
my_layer2_layer // Overrides other layers
);
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
// Enable the LED layers
rgblight_layers = my_rgb_layers;
}
```
@ -216,18 +216,20 @@ Finally, we enable and disable the lighting layers whenever the state of the key
```c
layer_state_t layer_state_set_user(layer_state_t state) {
// Both layers will light up if both kb layers are active
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
return state;
// Both layers will light up if both kb layers are active
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
return state;
}
bool led_update_user(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock);
return true;
rgblight_set_layer_state(0, led_state.caps_lock);
return true;
}
```
Note: For split keyboards with two controllers, both sides need to be flashed when updating the contents of rgblight_layers.
## Functions
If you need to change your RGB lighting in code, for example in a macro to change the color whenever you switch layers, QMK provides a set of functions to assist you. See [`rgblight.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight.h) for the full list, but the most commonly used functions include:

View File

@ -90,13 +90,15 @@ Unicode input in QMK works by inputting a sequence of characters to the OS, sort
The following input modes are available:
* **`UC_OSX`**: macOS built-in Unicode hex input. Supports code points up to `0xFFFF` (`0x10FFFF` with Unicode Map).
* **`UC_MAC`**: macOS built-in Unicode hex input. Supports code points up to `0xFFFF` (`0x10FFFF` with Unicode Map).
To enable, go to _System Preferences > Keyboard > Input Sources_, add _Unicode Hex Input_ to the list (it's under _Other_), then activate it from the input dropdown in the Menu Bar.
By default, this mode uses the left Option key (`KC_LALT`) for Unicode input, but this can be changed by defining [`UNICODE_KEY_OSX`](#input-key-configuration) with another keycode.
By default, this mode uses the left Option key (`KC_LALT`) for Unicode input, but this can be changed by defining [`UNICODE_KEY_MAC`](#input-key-configuration) with another keycode.
!> Using the _Unicode Hex Input_ input source may disable some Option based shortcuts, such as Option + Left Arrow and Option + Right Arrow.
!> `UC_OSX` is a deprecated alias of `UC_MAC` that will be removed in a future version of QMK.
* **`UC_LNX`**: Linux built-in IBus Unicode input. Supports code points up to `0x10FFFF` (all possible code points).
Enabled by default and works almost anywhere on IBus-enabled distros. Without IBus, this mode works under GTK apps, but rarely anywhere else.
@ -124,7 +126,7 @@ You can switch the input mode at any time by using one of the following keycodes
|----------------------|---------|------------|--------------------------------------------------------------|
|`UNICODE_MODE_FORWARD`|`UC_MOD` |Next in list|[Cycle](#input-mode-cycling) through selected modes |
|`UNICODE_MODE_REVERSE`|`UC_RMOD`|Prev in list|[Cycle](#input-mode-cycling) through selected modes in reverse|
|`UNICODE_MODE_OSX` |`UC_M_OS`|`UC_OSX` |Switch to macOS input |
|`UNICODE_MODE_MAC` |`UC_M_MA`|`UC_MAC` |Switch to macOS input |
|`UNICODE_MODE_LNX` |`UC_M_LN`|`UC_LNX` |Switch to Linux input |
|`UNICODE_MODE_WIN` |`UC_M_WI`|`UC_WIN` |Switch to Windows input |
|`UNICODE_MODE_BSD` |`UC_M_BS`|`UC_BSD` |Switch to BSD input (not implemented) |
@ -145,9 +147,9 @@ If you have the [Audio feature](feature_audio.md) enabled on the board, you can
For instance, you can add these definitions to your `config.h` file:
```c
#define UNICODE_SONG_OSX COIN_SOUND
#define UNICODE_SONG_MAC AUDIO_ON_SOUND
#define UNICODE_SONG_LNX UNICODE_LINUX
#define UNICODE_SONG_BSD MARIO_GAMEOVER
#define UNICODE_SONG_BSD TERMINAL_SOUND
#define UNICODE_SONG_WIN UNICODE_WINDOWS
#define UNICODE_SONG_WINC UNICODE_WINDOWS
```
@ -171,7 +173,7 @@ You can customize the keys used to trigger Unicode input for macOS, Linux and Wi
|Define |Type |Default |Example |
|------------------|----------|------------------|-------------------------------------------|
|`UNICODE_KEY_OSX` |`uint8_t` |`KC_LALT` |`#define UNICODE_KEY_OSX KC_RALT` |
|`UNICODE_KEY_MAC` |`uint8_t` |`KC_LALT` |`#define UNICODE_KEY_MAC KC_RALT` |
|`UNICODE_KEY_LNX` |`uint16_t`|`LCTL(LSFT(KC_U))`|`#define UNICODE_KEY_LNX LCTL(LSFT(KC_E))`|
|`UNICODE_KEY_WINC`|`uint8_t` |`KC_RALT` |`#define UNICODE_KEY_WINC KC_RGUI` |
@ -180,7 +182,7 @@ You can customize the keys used to trigger Unicode input for macOS, Linux and Wi
You can choose which input modes are available for cycling through. By default, this is disabled. If you want to enable it, limiting it to just the modes you use makes sense. Note that the values in the list are comma-delimited.
```c
#define UNICODE_SELECTED_MODES UC_OSX, UC_LNX, UC_WIN, UC_WINC
#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WIN, UC_WINC
```
You can cycle through the selected modes by using the `UC_MOD`/`UC_RMOD` keycodes, or by calling `cycle_unicode_input_mode(offset)` in your code (`offset` is how many modes to move forward by, so +1 corresponds to `UC_MOD`).

25
docs/feature_wpm.md Normal file
View File

@ -0,0 +1,25 @@
# Word Per Minute (WPM) Calculcation
The WPM feature uses time between keystrokes to compute a rolling average words
per minute rate and makes this available for various uses.
Enable the WPM system by adding this to your `rules.mk`:
WPM_ENABLE = yes
For split keyboards using soft serial, the computed WPM
score will be available on the master AND slave half.
## Public Functions
`uint8_t get_current_wpm(void);`
This function returns the current WPM as an unsigned integer.
## Customized keys for WPM calc
By default, the WPM score only includes letters, numbers, space and some
punctuation. If you want to change the set of characters considered as part of
the WPM calculation, you can implement `wpm_keycode_user(uint16_t keycode)`
and return true for any characters you would like included in the calculation,
or false to not count that particular keycode.

View File

@ -101,7 +101,8 @@
* [Guide des claviers soudés à la main](fr-fr/hand_wire.md)
* [Guide de flash de lISP](fr-fr/isp_flashing_guide.md)
* [Guide du débogage ARM](fr-fr/arm_debugging.md)
* [Drivers i2c](fr-fr/i2c_driver.md)
* [Drivers I2C](fr-fr/i2c_driver.md)
* [Drivers SPI](fr-fr/spi_driver.md)
* [Contrôles des GPIO](fr-fr/internals_gpio_control.md)
* [Conversion en Proton C](fr-fr/proton_c_conversion.md)

View File

@ -61,10 +61,76 @@ This file is used by the [QMK API](https://github.com/qmk/qmk_api). It contains
All projects need to have a `config.h` file that sets things like the matrix size, product name, USB VID/PID, description and other settings. In general, use this file to set essential information and defaults for your keyboard that will always work.
The `config.h` files can also be placed in sub-folders, and the order in which they are read is as follows:
* `keyboards/top_folder/config.h`
* `keyboards/top_folder/sub_1/config.h`
* `keyboards/top_folder/sub_1/sub_2/config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/config.h`
* `users/a_user_folder/config.h`
* `keyboards/top_folder/keymaps/a_keymap/config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/post_config.h`
* `keyboards/top_folder/sub_1/sub_2/sub_3/post_config.h`
* `keyboards/top_folder/sub_1/sub_2/post_config.h`
* `keyboards/top_folder/sub_1/post_config.h`
* `keyboards/top_folder/post_config.h`
The `post_config.h` file can be used for additional post-processing, depending on what is specified in the `config.h` file. For example, if you define the `IOS_DEVICE_ENABLE` macro in your keymap-level `config.h` file as follows, you can configure more detailed settings accordingly in the `post_config.h` file:
* `keyboards/top_folder/keymaps/a_keymap/config.h`
```c
#define IOS_DEVICE_ENABLE
```
* `keyboards/top_folder/post_config.h`
```c
#ifndef IOS_DEVICE_ENABLE
// USB_MAX_POWER_CONSUMPTION value for this keyboard
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
#ifdef RGBLIGHT_ENABLE
#ifndef IOS_DEVICE_ENABLE
#define RGBLIGHT_LIMIT_VAL 200
#define RGBLIGHT_VAL_STEP 17
#else
#define RGBLIGHT_LIMIT_VAL 35
#define RGBLIGHT_VAL_STEP 4
#endif
#ifndef RGBLIGHT_HUE_STEP
#define RGBLIGHT_HUE_STEP 10
#endif
#ifndef RGBLIGHT_SAT_STEP
#define RGBLIGHT_SAT_STEP 17
#endif
#endif
```
?> If you define options using `post_config.h` as in the above example, you should not define the same options in the keyboard- or user-level `config.h`.
### `rules.mk`
The presence of this file means that the folder is a keyboard target and can be used in `make` commands. This is where you setup the build environment for your keyboard and configure the default set of features.
The `rules.mk` file can also be placed in a sub-folder, and its reading order is as follows:
* `keyboards/top_folder/rules.mk`
* `keyboards/top_folder/sub_1/rules.mk`
* `keyboards/top_folder/sub_1/sub_2/rules.mk`
* `keyboards/top_folder/sub_1/sub_2/sub_3/rules.mk`
* `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/rules.mk`
* `keyboards/top_folder/keymaps/a_keymap/rules.mk`
* `users/a_user_folder/rules.mk`
* `common_features.mk`
Many of the settings written in the `rules.mk` file are interpreted by `common_features.mk`, which sets the necessary source files and compiler options.
?> See `build_keyboard.mk` and `common_features.mk` for more details.
### `<keyboard_name.c>`
This is where you will write custom code for your keyboard. Typically you will write code to initialize and interface with the hardware in your keyboard. If your keyboard consists of only a key matrix with no LEDs, speakers, or other auxiliary hardware this file can be blank.

View File

@ -114,6 +114,7 @@
* [מדריך לצריבת ISP](he-il/isp_flashing_guide.md)
* [מדריך לדיבאגינג ARM](he-il/arm_debugging.md)
* [מנהל התקן I2C](he-il/i2c_driver.md)
* [מנהל התקן SPI](he-il/spi_driver.md)
* [בקרת GPIO](he-il/internals_gpio_control.md)
* [המרת Proton C](he-il/proton_c_conversion.md)

View File

@ -1,8 +1,8 @@
# Quantum Mechanical Keyboard Firmware
<!---
original document: eae21eed7:docs/README.md
git diff eae21eed7 HEAD -- docs/README.md | cat
original document: 0.8.58:docs/README.md
git diff 0.8.58 HEAD -- docs/README.md | cat
-->
[![現在のバージョン](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
@ -12,26 +12,37 @@
[![GitHub 貢献者](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub フォーク](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## QMK ファームウェアとは何か?
## QMK ファームウェアとは何でしょうか?
QMK (*Quantum Mechanical Keyboard*)は QMK ファームウェア、QMK ツールボックス、qmk.fm およびそれらのドキュメントを保守するオープンソースコミュニティです。QMK ファームウェアは[tmk\_keyboard](http://github.com/tmk/tmk_keyboard) を元にしたキーボードファームウェアで、Atmel AVR コントローラ、より具体的には [OLKB 製品](http://olkb.com)、[ErgoDox EZ](http://www.ergodox-ez.com) キーボードおよび [Clueboard 製品](http://clueboard.co/) のための幾つかの便利な機能を持ちます。また、ChibiOS を使って ARM チップに移植されています。これを使ってあなたの作った手配線のキーボードあるいはカスタムキーボード PCB で作ったキーボードを動かすことができます。
QMK (*Quantum Mechanical Keyboard*)は、コンピュータ入力デバイスの開発を中心としたオープンソースコミュニティです。コミュニティには、キーボード、マウス、MIDI デバイスなど、全ての種類の入力デバイスが含まれます。協力者の中心グループは、[QMK ファームウェア](https://github.com/qmk/qmk_firmware)、[QMK Configurator](https://config.qmk.fm)、[QMK ツールボックス](https://github.com/qmk/qmk_toolbox)、[qmk.fm](https://qmk.fm)、そして、このドキュメントを、あなたのようなコミュニティメンバーの助けを借りて保守しています。
## 入手方法
## 始めましょう
QMK のキーマップ、キーボード、機能に貢献をする予定がある場合、最も簡単なのは、[Github を介してリポジトリをフォークし](https://github.com/qmk/qmk_firmware#fork-destination-box)、リポジトリをあなたの開発環境にクローンして変更を加え、それらをプッシュし、[プルリクエスト](https://github.com/qmk/qmk_firmware/pulls)を開くことです。
QMK は初めてですか始めるには2つの方法があります:
それ以外の場合は、`git clone https://github.com/qmk/qmk_firmware` を介して直接クローンすることができます。zip または tar ファイルをダウンロードしないでください。コンパイルするためのサブモジュールをダウンロードするために git リポジトリが必要です。
* 基本: [QMK Configurator](https://config.qmk.fm)
* ドロップダウンからあなたのキーボードを選択し、キーボードをプログラムします。
* 見ることができる [紹介ビデオ](https://www.youtube.com/watch?v=-imgglzDMdY) があります。
* 読むことができる概要 [ドキュメント](ja/newbs_building_firmware_configurator.md) があります。
* 発展: [ソースを使用します](ja/newbs.md)
* より強力ですが、使うのはより困難です。
## コンパイル方法
## 自分用にアレンジします
コンパイルをする前に、AVR または ARM 開発のための[環境をインストール](ja/getting_started_build_tools.md)する必要があります。それが完了したら、`make` コマンドを使用して、以下の表記でキーードとキーマップをビルドします。
QMK には、探求すべき多くの[機能](ja/features.md)と、深く知るためのリファレンスドキュメントがたくさんあります。ほとんどの機能は[キーマップ](ja/keymap.md)を変更し、[キーード](ja/keycodes.md)を変更することで活用されます。
make planck/rev4:default
## 手助けが必要ですか?
これは、`planck``rev4` リビジョンを `default` キーマップでビルドします。全てのキーボードにリビジョン(サブプロジェクトまたはフォルダとも呼ばれます)があるわけではありません。その場合は省略されます:
[サポートページ](ja/support.md) をチェックして、QMK の使い方について手助けを得る方法を確認してください。
make preonic:default
## 貢献する
## カスタマイズ方法
QMK コミュニティに貢献する方法はたくさんあります。始める最も簡単な方法は、それを使って友人に QMK という単語を広めることです。
QMK には、探求すべき多くの[機能](ja/features.md)と、深堀りするための[リファレンス ドキュメント](http://docs.qmk.fm)がたくさんあります。ほとんどの機能は[キーマップ](ja/keymap.md)を変更し、[キーコード](ja/keycodes.md)を変更することで活用されます
* フォーラムやチャットルームで人々を支援します:
* [/r/olkb](https://www.reddit.com/r/olkb/)
* [Discord サーバ](https://discord.gg/Uq7gcHh)
* 下にある「Edit This Page」をクリックしてドキュメントに貢献します
* [ドキュメントをあなたの言語に翻訳します](ja/translating.md)
* [バグを報告します](https://github.com/qmk/qmk_firmware/issues/new/choose)
* [プルリクエストを開きます](ja/contributing.md)

View File

@ -1,130 +1,163 @@
* [完全な初心者のガイド](ja/newbs.md)
* [はじめに](ja/newbs_getting_started.md)
* [初めてのファームウェアの構築](ja/newbs_building_firmware.md)
* [ファームウェアのフラッシュ](ja/newbs_flashing.md)
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [QMK における Git 運用作法](ja/newbs_git_best_practices.md)
* [あなたのフォークの master ブランチ](ja/newbs_git_using_your_master_branch.md)
* [マージの競合の解決](ja/newbs_git_resolving_merge_conflicts.md)
* [同期のとれていない git ブランチの再同期](ja/newbs_git_resynchronize_a_branch.md)
* [学習リソース](ja/newbs_learn_more_resources.md)
* チュートリアル
* [入門](ja/newbs.md)
* [セットアップ](ja/newbs_getting_started.md)
* [初めてのファームウェアの構築](ja/newbs_building_firmware.md)
* [ファームウェアのフラッシュ](ja/newbs_flashing.md)
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [手助けを得る/サポート](ja/support.md)
* [他のリソース](ja/newbs_learn_more_resources.md)
* [QMKの基本](ja/README.md)
* [QMK の導入](ja/getting_started_introduction.md)
* [QMK CLI](ja/cli.md)
* [QMK CLI 設定](ja/cli_configuration.md)
* [QMK への貢献](ja/contributing.md)
* [Github の使い方](ja/getting_started_github.md)
* [ヘルプ](ja/getting_started_getting_help.md)
* FAQ
* [一般的な FAQ](ja/faq_general.md)
* [QMK のビルド/コンパイル](ja/faq_build.md)
* [QMK のデバッグ/トラブルシューティング](ja/faq_debug.md)
* [キーマップ FAQ](ja/faq_keymap.md)
* [用語](ja/reference_glossary.md)
* [破壊的な変更](ja/breaking_changes.md)
* [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
* Configurator
* [概要](ja/newbs_building_firmware_configurator.md)
* [ステップ・バイ・ステップ](ja/configurator_step_by_step.md)
* [トラブルシューティング](ja/configurator_troubleshooting.md)
* QMK API
* [概要](ja/api_overview.md)
* [API ドキュメント](ja/api_docs.md)
* [キーボードサポート](ja/reference_configurator_support.md)
* [FAQ](ja/faq.md)
* [一般的な FAQ](ja/faq_general.md)
* [QMK のビルド/コンパイル](ja/faq_build.md)
* [QMK のデバッグ/トラブルシューティング](ja/faq_debug.md)
* [キーマップ](ja/faq_keymap.md)
* [Zadig を使ったドライバのインストール](ja/driver_installation_zadig.md)
* CLI
* [概要](ja/cli.md)
* [設定](ja/cli_configuration.md)
* [コマンド](ja/cli_commands.md)
* 詳細なガイド
* [ビルドツールのインストール](ja/getting_started_build_tools.md)
* [Vagrant のガイド](ja/getting_started_vagrant.md)
* [ビルド/コンパイルの説明](ja/getting_started_make_guide.md)
* [ファームウェアのフラッシュ](ja/flashing.md)
* [機能のカスタマイズ](ja/custom_quantum_functions.md)
* [キーマップの概要](ja/keymap.md)
* QMK を使う
* ガイド
* [機能のカスタマイズ](ja/custom_quantum_functions.md)
* [Zadig を使ったドライバのインストール](ja/driver_installation_zadig.md)
* [キーマップの概要](ja/keymap.md)
* [Vagrant のガイド](ja/getting_started_vagrant.md)
* 書き込み
* [書き込み](ja/flashing.md)
* [ATmega32A の書き込み (ps2avrgb)](ja/flashing_bootloadhid.md)
* IDE
* [Eclipse で QMK を使用](ja/other_eclipse.md)
* [VSCode で QMK を使用](ja/other_vscode.md)
* Git のベストプラクティス
* [入門](ja/newbs_git_best_practices.md)
* [フォーク](ja/newbs_git_using_your_master_branch.md)
* [マージの競合の解決](ja/newbs_git_resolving_merge_conflicts.md)
* [ブランチの修正](ja/newbs_git_resynchronize_a_branch.md)
* キーボードを作る
* [Hand Wiring ガイド](ja/hand_wire.md)
* [ISP 書き込みガイド](ja/isp_flashing_guide.md)
* [ハードウェア](ja/hardware.md)
* [互換性のあるマイクロコントローラ](ja/compatible_microcontrollers.md)
* [AVR プロセッサ](ja/hardware_avr.md)
* [ドライバ](ja/hardware_drivers.md)
* 単純なキーコード
* [完全なリスト](ja/keycodes.md)
* [基本的なキーコード](ja/keycodes_basic.md)
* [修飾キー](ja/feature_advanced_keycodes.md)
* [Quantum キーコード](ja/quantum_keycodes.md)
* リファレンス
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)
* [設定オプション](ja/config_options.md)
* [キーコード](ja/keycodes.md)
* [コーディング規約 - C](ja/coding_conventions_c.md)
* [コーディング規約 - Python](ja/coding_conventions_python.md)
* [ドキュメント ベストプラクティス](ja/documentation_best_practices.md)
* [ドキュメント テンプレート](ja/documentation_templates.md)
* [用語](ja/reference_glossary.md)
* [ユニットテスト](ja/unit_testing.md)
* [便利な関数](ja/ref_functions.md)
* [Configurator サポート](ja/reference_configurator_support.md)
* [info.json 形式](ja/reference_info_json.md)
* [Python CLI 開発](ja/cli_development.md)
* 高度なキーコード
* [コマンド](ja/feature_command.md)
* [動的マクロ](ja/feature_dynamic_macros.md)
* [グレイブ エスケープ](ja/feature_grave_esc.md)
* [リーダーキー](ja/feature_leader_key.md)
* [モッドタップ](ja/mod_tap.md)
* [マクロ](ja/feature_macros.md)
* [マウスキー](ja/feature_mouse_keys.md)
* [Space Cadet Shift](ja/feature_space_cadet.md)
* [US ANSI シフトキー](ja/keycodes_us_ansi_shifted.md)
* [機能](ja/features.md)
* [基本的なキーコード](ja/keycodes_basic.md)
* [US ANSI シフトキー](ja/keycodes_us_ansi_shifted.md)
* [Quantum キーコード](ja/quantum_keycodes.md)
* [Advanced キーコード](ja/feature_advanced_keycodes.md)
* [オーディオ](ja/feature_audio.md)
* [自動シフト](ja/feature_auto_shift.md)
* [バックライト](ja/feature_backlight.md)
* [ブルートゥース](ja/feature_bluetooth.md)
* [ブートマジック](ja/feature_bootmagic.md)
* [コンボ](ja/feature_combo.md)
* [コマンド](ja/feature_command.md)
* [デバウンス API](ja/feature_debounce_type.md)
* [DIP スイッチ](ja/feature_dip_switch.md)
* [動的マクロ](ja/feature_dynamic_macros.md)
* [エンコーダ](ja/feature_encoders.md)
* [グレイブ エスケープ](ja/feature_grave_esc.md)
* [触覚フィードバック](ja/feature_haptic_feedback.md)
* [HD44780 LCD コントローラ](ja/feature_hd44780.md)
* [キーロック](ja/feature_key_lock.md)
* [レイアウト](ja/feature_layouts.md)
* [リーダー キー](ja/feature_leader_key.md)
* [LED マトリクス](ja/feature_led_matrix.md)
* [マクロ](ja/feature_macros.md)
* [マウスキー](ja/feature_mouse_keys.md)
* [OLED ドライバ](ja/feature_oled_driver.md)
* [One Shot Keys](ja/one_shot_keys.md)
* [ポインティング デバイス](ja/feature_pointing_device.md)
* [PS/2 マウス](ja/feature_ps2_mouse.md)
* [RGB ライト](ja/feature_rgblight.md)
* [RGB マトリクス](ja/feature_rgb_matrix.md)
* [Space Cadet](ja/feature_space_cadet.md)
* [分割キーボード](ja/feature_split_keyboard.md)
* [Stenography](ja/feature_stenography.md)
* [Swap Hands](ja/feature_swap_hands.md)
* [タップ ダンス](ja/feature_tap_dance.md)
* [ターミナル](ja/feature_terminal.md)
* [感熱式プリンタ](ja/feature_thermal_printer.md)
* [ユニコード](ja/feature_unicode.md)
* [ユーザスペース](ja/feature_userspace.md)
* [Velocikey](ja/feature_velocikey.md)
* ソフトウェア機能
* [自動シフト](ja/feature_auto_shift.md)
* [コンボ](ja/feature_combo.md)
* [デバウンス API](ja/feature_debounce_type.md)
* [キーロック](ja/feature_key_lock.md)
* [レイヤー](ja/feature_layers.md)
* [One Shot Keys](ja/one_shot_keys.md)
* [ポインティング デバイス](ja/feature_pointing_device.md)
* [Swap Hands](ja/feature_swap_hands.md)
* [タップダンス](ja/feature_tap_dance.md)
* [タップホールド設定](ja/tap_hold.md)
* [ターミナル](ja/feature_terminal.md)
* [ユニコード](ja/feature_unicode.md)
* [ユーザスペース](ja/feature_userspace.md)
* [WPM 計算](ja/feature_wpm.md)
* メーカーおよびモッダーのために
* [Hand Wiring ガイド](ja/hand_wire.md)
* [ISP 書き込みガイド](ja/isp_flashing_guide.md)
* [ARM デバッグ ガイド](ja/arm_debugging.md)
* [ADC ドライバ](ja/adc_driver.md)
* [I2C ドライ](ja/i2c_driver.md)
* [WS2812 ドライバ](ja/ws2812_driver.md)
* [EEPROM ドライ](ja/eeprom_driver.md)
* [GPIO コントロール](ja/internals_gpio_control.md)
* [カスタムマトリックス](ja/custom_matrix.md)
* [Proton C 規約](ja/proton_c_conversion.md)
* ハードウェア機能
* 表示
* [HD44780 LCD コントローラ](ja/feature_hd44780.md)
* [OLED ドライバ](ja/feature_oled_driver.md)
* 電飾
* [バックライ](ja/feature_backlight.md)
* [LED マトリックス](ja/feature_led_matrix.md)
* [RGB ライ](ja/feature_rgblight.md)
* [RGB マトリックス](ja/feature_rgb_matrix.md)
* [オーディオ](ja/feature_audio.md)
* [Bluetooth](ja/feature_bluetooth.md)
* [ブートマジック](ja/feature_bootmagic.md)
* [カスタムマトリックス](ja/custom_matrix.md)
* [DIP スイッチ](ja/feature_dip_switch.md)
* [エンコーダ](ja/feature_encoders.md)
* [触覚フィードバック](ja/feature_haptic_feedback.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_thermal_printer.md)
* [Velocikey](ja/feature_velocikey.md)
* より深く知るために
* [キーボードがどのように動作するか](ja/how_keyboards_work.md)
* [QMK の理解](ja/understanding_qmk.md)
* QMK の開発
* 破壊的な変更
* [概要](ja/breaking_changes.md)
* [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md)
* 履歴
* [2020年2月29日](ja/ChangeLog/20200229.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
* 他の話題
* [Eclipse で QMK を使用](ja/other_eclipse.md)
* [VSCode で QMK を使用](ja/other_vscode.md)
* [サポート](ja/getting_started_getting_help.md)
* [翻訳を追加する方法](ja/translating.md)
* C 開発
* [ARM デバッグ ガイド](ja/arm_debugging.md)
* [AVR プロセッサ](ja/hardware_avr.md)
* [コーディング規約](ja/coding_conventions_c.md)
* [互換性のあるマイクロコントローラ](ja/compatible_microcontrollers.md)
* [ドライバ](ja/hardware_drivers.md)
* [ADC ドライバ](ja/adc_driver.md)
* [I2C ドライバ](ja/i2c_driver.md)
* [SPI ドライバ](ja/spi_driver.md)
* [WS2812 ドライバ](ja/ws2812_driver.md)
* [EEPROM ドライバ](ja/eeprom_driver.md)
* [GPIO コントロール](ja/internals_gpio_control.md)
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)
* QMK の内部詳細(作成中)
* [定義](ja/internals_defines.md)
* [Input Callback Reg](ja/internals_input_callback_reg.md)
* [Midi ドライバ](ja/internals_midi_device.md)
* [Midi デバイスのセットアップ手順](ja/internals_midi_device_setup_process.md)
* [Midi ユーティリティ](ja/internals_midi_util.md)
* [Send Functions](ja/internals_send_functions.md)
* [Sysex Tools](ja/internals_sysex_tools.md)
* Python 開発
* [コーディング規約](ja/coding_conventions_python.md)
* [QMK CLI 開発](ja/cli_development.md)
* Configurator 開発
* QMK API
* [開発環境](ja/api_development_environment.md)
* [アーキテクチャの概要](ja/api_development_overview.md)
* QMK Reference
* [QMK への貢献](ja/contributing.md)
* [QMK ドキュメントの翻訳](ja/translating.md)
* [設定オプション](ja/config_options.md)
* [Make ドキュメント](ja/getting_started_make_guide.md)
* [ドキュメント ベストプラクティス](ja/documentation_best_practices.md)
* [ドキュメント テンプレート](ja/documentation_templates.md)
* [コミュニティレイアウト](ja/feature_layouts.md)
* [ユニットテスト](ja/unit_testing.md)
* [便利な関数](ja/ref_functions.md)
* [info.json 形式](ja/reference_info_json.md)
* より深く知るために
* [キーボードがどのように動作するか](ja/how_keyboards_work.md)
* [マトリックスがどのように動作するか](ja/how_a_matrix_works.md)
* [QMK を理解する](ja/understanding_qmk.md)
* QMK の内部詳細(作成中)
* [定義](ja/internals_defines.md)
* [Input Callback Reg](ja/internals_input_callback_reg.md)
* [Midi デバイス](ja/internals_midi_device.md)
* [Midi デバイスのセットアップ手順](ja/internals_midi_device_setup_process.md)
* [Midi ユーティリティ](ja/internals_midi_util.md)
* [Send Functions](ja/internals_send_functions.md)
* [Sysex Tools](ja/internals_sysex_tools.md)

View File

@ -1,8 +1,8 @@
# Eclipse を使った ARM デバッグ
<!---
original document: eae21eed7:docs/arm_debugging.md
git diff eae21eed7 HEAD -- docs/arm_debugging.md | cat
original document: 0.8.58:docs/arm_debugging.md
git diff 0.8.58 HEAD -- docs/arm_debugging.md | cat
-->
このページでは、SWD アダプタとオープンソース/フリーツールを使って ARM MCU をデバッグするためのセットアップ方法について説明します。このガイドでは、GNU MCU Eclipse IDE for C/C++ Developers および OpenOCD を必要な依存関係と一緒にインストールします。
@ -60,7 +60,7 @@ Java は Eclipse で必要とされるため、[ここ](https://www.oracle.com/t
Eclipse に QMK をビルドしようとするデバイスを教える必要があります。QMK フォルダを右クリック -> Properties -> C/C++ Build -> Settings を選択します。Devices タブを選択し、Devices の下から MCU の適切な種類を選択します。私の例では、STM32F303CC です。
この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。
この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。Build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。
## ビルド
@ -70,13 +70,13 @@ Eclipse に QMK をビルドしようとするデバイスを教える必要が
### デバッガの接続
ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を 完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。
ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。
注意: SWCLK と SWDIO ピンがキーボードのマトリックスで使われていないことを確認してください。もし使われている場合は、一時的に他のピンに切り替えることができます。
### デバッガの設定
QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは stm32f3discovery.cfg と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。
QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは `stm32f3discovery.cfg` と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。
注意: 私の場合、この設定スクリプトはリセット操作を無効にするために編集が必要です。スクリプトの場所は、通常はパス `openocd/version/.content/scripts/board` の下の実際の実行可能フィールドの中で見つかります。ここで、私は `reset_config srst_only``reset_config none` に編集しました。
@ -86,7 +86,7 @@ Apply and Close を選択します。
キーボードをリセットしてください。
虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止するので、Play ボタンを押します。全てのデバッガのほとんどの機能は ARM MCU で動作しますが、正確な詳細については google があなたのお友達です!
虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止、Play ボタンが押されるのを待ちます。全てのデバッガのほとんどの機能は Arm MCU で動作しますが、正確な詳細については Google があなたのお友達です!
ハッピーデバッギング!

View File

@ -1,29 +1,19 @@
# QMK CLI
# QMK CLI :id=qmk-cli
<!---
original document: 79e6b7866:docs/cli.md
git diff 79e6b7866 HEAD -- docs/cli.md | cat
original document: 0.8.58:docs/cli.md
git diff 0.8.58 HEAD -- docs/cli.md | cat
-->
このページは QMK CLI のセットアップと使用方法について説明します。
# 概要
## 概要 :id=overview
QMK CLI を使用すると QMK キーボードの構築と作業が簡単になります。QMK ファームウェアの取得とコンパイル、キーマップの作成などのようなタスクを簡素化し合理化するためのコマンドを多く提供します。
* [グローバル CLI](#global-cli)
* [ローカル CLI](#local-cli)
* [CLI コマンド](#cli-commands)
### 必要事項 :id=requirements
# 必要事項
CLI は Python 3.5 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) に列挙されているパッケージもインストールする必要があります。これらは QMK CLI をインストールするときに自動的にインストールされます。
CLI は Python 3.5 以上を必要とします。我々は必要事項の数を少なくしようとしていますが、[`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt) にリストされているパッケージもインストールする必要があります。
# グローバル CLI :id=global-cli
QMK は、QMK ビルド環境のセットアップ、QMK の操作、および `qmk_firmware` の複数のコピーの操作を容易にできるインストール可能な CLI を提供します。これを定期的にインストールおよび更新することをお勧めします。
## Homebrew を使ったインストール (macOS、いくつかの Linux)
### Homebrew を使ったインストール (macOS、いくつかの Linux) :id=install-using-homebrew
[Homebrew](https://brew.sh) をインストールしている場合は、タップして QMK をインストールすることができます:
@ -34,7 +24,7 @@ export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
```
## easy_install あるいは pip を使ってインストール
### easy_install あるいは pip を使ってインストール :id=install-using-easy_install-or-pip
上のリストにあなたのシステムがない場合は、QMK を手動でインストールすることができます。最初に、python 3.5 (以降)をインストールしていて、pip をインストールしていることを確認してください。次に以下のコマンドを使って QMK をインストールします:
@ -44,7 +34,7 @@ export QMK_HOME='~/qmk_firmware' # オプション、`qmk_firmware` の場所を
qmk setup # これは `qmk/qmk_firmware` をクローンし、オプションでビルド環境をセットアップします
```
## 他のオペレーティングシステムのためのパッケージ
### 他のオペレーティングシステムのためのパッケージ :id=packaging-for-other-operating-systems
より多くのオペレーティングシステム用に `qmk` パッケージを作成および保守する人を探しています。OS 用のパッケージを作成する場合は、以下のガイドラインに従ってください:
@ -52,247 +42,3 @@ qmk setup # これは `qmk/qmk_firmware` をクローンし、オプション
* 逸脱する場合は、理由をコメントに文章化してください。
* virtualenv を使ってインストールしてください
* 環境変数 `QMK_HOME` を設定して、ファームウェアソースを `~/qmk_firmware` 以外のどこかにチェックアウトするようにユーザに指示してください。
# ローカル CLI :id=local-cli
グローバル CLI を使いたくない場合は、`qmk_firmware` に付属のローカル CLI があります。`qmk_firmware/bin/qmk` で見つけることができます。任意のディレクトリから `qmk` コマンドを実行でき、常に `qmk_firmware` のコピー上で動作します。
**例**:
```
$ ~/qmk_firmware/bin/qmk hello
Ψ Hello, World!
```
## ローカル CLI の制限
グローバル CLI と比較して、ローカル CLI には幾つかの制限があります:
* ローカル CLI は `qmk setup` あるいは `qmk clone` をサポートしません。
* 複数のリポジトリがクローンされている場合でも、ローカル CLI は常に `qmk_firmware` ツリー上で動作します。
* ローカル CLI は virtualenv で動作しません。そのため依存関係が競合する可能性があります
# CLI コマンド :id=cli-commands
## `qmk cformat`
このコマンドは clang-format を使って C コードを整形します。引数無しで実行して全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。
**使用法**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
## `qmk compile`
このコマンドにより、任意のディレクトリからファームウェアをコンパイルすることができます。<https://config.qmk.fm> からエクスポートした JSON をコンパイルするか、リポジトリ内でキーマップをコンパイルするか、現在の作業ディレクトリでキーボードをコンパイルすることができます。
**Configurator Exports での使い方**:
```
qmk compile <configuratorExport.json>
```
**キーマップでの使い方**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
**キーボードディレクトリでの使い方**:
default キーマップのあるキーボードディレクトリ、キーボードのキーマップディレクトリ、`--keymap <keymap_name>` で与えられるキーマップディレクトリにいなければなりません。
```
qmk compile
```
**例**:
```
$ qmk config compile.keymap=default
$ cd ~/qmk_firmware/keyboards/planck/rev6
$ qmk compile
Ψ Compiling keymap with make planck/rev6:default
...
```
あるいはオプションのキーマップ引数を指定して
```
$ cd ~/qmk_firmware/keyboards/clueboard/66/rev4
$ qmk compile -km 66_iso
Ψ Compiling keymap with make clueboard/66/rev4:66_iso
...
```
あるいはキーマップディレクトリで
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
...
```
**レイアウトディレクトリでの使い方**:
`qmk_firmware/layouts/` 以下のキーマップディレクトリにいなければなりません。
```
qmk compile -kb <keyboard_name>
```
**例**:
```
$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi
$ qmk compile -kb dz60
Ψ Compiling keymap with make dz60:mechmerlin-ansi
...
```
## `qmk flash`
このコマンドは `qmk compile` に似ていますが、ブートローダを対象にすることもできます。ブートローダはオプションで、デフォルトでは `:flash` に設定されています。
違うブートローダを指定するには、`-bl <bootloader>` を使ってください。利用可能なブートローダの詳細については、<https://docs.qmk.fm/#/ja/flashing>
を見てください。
**Configurator Exports での使い方**:
```
qmk flash <configuratorExport.json> -bl <bootloader>
```
**キーマップでの使い方**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader>
```
**ブートローダのリスト**
```
qmk flash -b
```
## `qmk config`
このコマンドにより QMK の挙動を設定することができます。完全な `qmk config` のドキュメントについては、[CLI 設定](ja/cli_configuration.md)を見てください。
**使用法**:
```
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `qmk docs`
このコマンドは、ドキュメントを参照または改善するために使うことができるローカル HTTP サーバを起動します。デフォルトのポートは 8936 です。
**使用法**:
```
qmk docs [-p PORT]
```
## `qmk doctor`
このコマンドは環境を調査し、潜在的なビルドあるいは書き込みの問題について警告します。必要に応じてそれらの多くを修正できます。
**使用法**:
```
qmk doctor [-y] [-n]
```
**例**:
環境に問題がないか確認し、それらを修正するよう促します:
qmk doctor
環境を確認し、見つかった問題を自動的に修正します:
qmk doctor -y
環境を確認し、問題のみをレポートします:
qmk doctor -n
## `qmk json2c`
QMK Configurator からエクスポートしたものから keymap.c を生成します。
**使用法**:
```
qmk json2c [-o OUTPUT] filename
```
## `qmk kle2json`
このコマンドにより、生の KLE データから QMK Configurator の JSON へ変換することができます。絶対パスあるいは現在のディレクトリ内のファイル名のいずれかを受け取ります。デフォルトでは、`info.json` が既に存在している場合は上書きしません。上書きするには、`-f` あるいは `--force` フラグを使ってください。
**使用法**:
```
qmk kle2json [-f] <filename>
```
**例**:
```
$ qmk kle2json kle.txt
☒ File info.json already exists, use -f or --force to overwrite.
```
```
$ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk list-keyboards`
このコマンドは現在 `qmk_firmware` で定義されている全てのキーボードをリスト化します。
**使用法**:
```
qmk list-keyboards
```
## `qmk list-keymaps`
このコマンドは指定されたキーボード(とリビジョン)の全てのキーマップをリスト化します。
**使用法**:
```
qmk list-keymaps -kb planck/ez
```
## `qmk new-keymap`
このコマンドは、キーボードの既存のデフォルトのキーマップに基づいて新しいキーマップを作成します。
**使用法**:
```
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk pyformat
```
## `qmk pytest`
このコマンドは python のテストスィートを実行します。python コードに変更を加えた場合、これの実行が成功することを確認する必要があります。
**使用法**:
```
qmk pytest
```

Some files were not shown because too many files have changed in this diff Show More