Compare commits

...

640 Commits

Author SHA1 Message Date
Joshua Diamond
563d5919b3 Fix layer mask size for RGBLIGHT_LAYER_BLINK (#9260) 2020-06-01 17:12:08 -07:00
Fredrik Salomonsson
0fee906e09 [Keymap] plattfot - Kyria layout (#9110)
* [Keymap] plattfot - Kyria layout

Keymap for programming, writing in both English and Swedish and
easy navigate a tiling window manager.

See README.md for more info

* Fix letter case on the headline for the readme

As suggested by fauxpark

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

Clean up double tap

As suggested by fauxpark

* Update led check for render_status

As suggested by fauxpark

* Update to use get_highest_layer for encoder_update_user

As suggested by fauxpark

* Missing an apostrophe in the header of the README.md

Last minute change.

* Removed explicit initialization for _DEFAULT

As suggested by drashna

* Use smaller image for the README.md

As suggested by noroadsleft
2020-06-01 16:35:44 -07:00
Ryan
c2fd7f1b5b Fix error_log complaint about Elongate info.json (#9262) 2020-06-01 16:29:58 -07:00
Joel Challis
faa3e62e70 Prime_E - Increase number of via layers (#9065)
* Prime_E - Increase number of via layers

* Fix keymap alignment
2020-06-01 14:01:45 -07:00
KOBAYASHI Daisuke
5f5a6fff8b Remove the extra comma in the macro in the community keymap (#9175) 2020-06-02 06:29:28 +10:00
cole smith
f1c33423b0 Added new keyboard boardsource/3x4 (#9247)
* added bordsource 3x4 macro pad

* added bordsource 3x4 macro pad

* Update keyboards/boardsource/3x4/3x4.h

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

* Update keyboards/boardsource/3x4/3x4.c

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

* Update keyboards/boardsource/3x4/config.h

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

* Update keyboards/boardsource/3x4/config.h

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

* Update keyboards/boardsource/3x4/config.h

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

* Update keyboards/boardsource/3x4/config.h

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

* added link to readme

* Update keyboards/boardsource/3x4/keymaps/default/keymap.c

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

* Apply suggestions from code review

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-02 06:07:49 +10:00
siano
5f8e8540fb Mac layout for XD87 (#9251)
* Mac layout for XD87

* Rename to mac_underglow

* Removed unused file

* Fixed missing KC_RGUI

* Cleanup

* Updated readme.
2020-06-01 23:24:18 +10:00
Kimat Boven
4f6f7b59cf French (Belgium) was missing (#9245) 2020-06-01 23:14:14 +10:00
Joshua Diamond
e2e287ec5f Option to allow lighting layers when RGB Lighting is off (#9051) 2020-06-01 11:02:28 +02:00
Kimat Boven
dfcd4f0d25 BE_J should map to KC_J (#9243) 2020-06-01 14:04:44 +10:00
Joel Challis
b2271d984d Move plaid via keymap to correct location (#9255) 2020-06-01 11:53:43 +10:00
Nick Brassel
8d3fca57a3 Fix build when using IGNORE_MOD_TAP_INTERRUPT_PER_KEY. (#9258) 2020-06-01 11:53:01 +10:00
James Young
fced377ac0 2020 May 30 Breaking Changes Update (#9215)
* Branch point for 2020 May 30 Breaking Change

* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)

* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)

* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)

* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)

* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)

* Convert V-USB usbdrv to a submodule (#8321)

* Unify Tap Hold functions and documentation (#8348)

* Changing board names to prevent confusion (#8412)

* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)

* Move spaceman keyboards (#8830)

* Migrate miscellaneous `fn_actions` entries (#8977)

* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)

* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)

* Refactor Lily58 to use split_common (#6260)

* Refactor zinc to use split_common (#7114)

* Add a message if bin/qmk doesn't work (#9000)

* Fix conflicting types for 'tfp_printf' (#8269)

* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480)

* Refactor and updates to TKC1800 code (#8472)

* Switch to qmk forks for everything (#9019)

* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)

* Audio enable corrections (2/3) (#8903)

* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)

* Audio enable corrections (Part 4) (#8974)

* Fix typo from PR7114 (#9171)

* Augment future branch Changelogs (#8978)

* Revert "Branch point for 2020 May 30 Breaking Change"
2020-05-30 13:14:59 -07:00
Manna Harbour
7b8a013826 Fix crkbd slave matrix print to require debug_matrix (#9217)
* Fix crkbd slave matrix print to require debug_matrix

* Remove redundant include

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-28 18:02:12 +01:00
Drashna Jaelre
5263dfd465 Keyboards/zsa updates (#9214) 2020-05-28 10:26:53 +02:00
Ryan
13206b2f87 Community layout support for KBDpad Mk.I (#9220)
* Community layout support for KBDpad Mk.I

* Matching spacing
2020-05-28 02:27:14 +01:00
onefiftynine
cb9be8a9dc Fix projectkb/alice LED indicator (#9226)
Keyboard pre initialization code for LED pins.
2020-05-28 02:03:02 +01:00
squizzler
a1af8542c7 RSTHD keymap for Minidox (#9178)
* Re-add liles after hard reset

* repopulate with keymap

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

Updated how the layers are defined to reduce firmware bloat

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

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

Removed unnecessary key codes

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

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

Removed backslash from each line of the layers in accordance with current convention.

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

* Edit of readme

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-27 13:23:57 +01:00
Zach White
1a5dc278bc Fix running qmk info without any arguments (#9218) 2020-05-27 09:43:22 +02:00
yttyx
10c1e1b3ab [Keymap] Update yttyx Planck keymap (#9191)
* Normalise layout and README from yttyx niu keymap.

* Correct case of README.

* Changes following review.

Co-authored-by: Nick Willis <nick@theb.org.uk>
2020-05-27 02:17:16 +01:00
Ryan
00c1401d3c Documentation for keymap_extras (#9194) 2020-05-27 01:52:48 +01:00
halfenergized
a9b3c0a807 Adding TGR Tris/Tris CE Numpad (#9139)
* Add TGR Tris

* Update readme.md

* Update rules.mk

* Update keyboards/tgr/tris/keymaps/default/keymap.c

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

* Update keyboards/tgr/tris/keymaps/via/keymap.c

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

* Update keyboards/tgr/tris/keymaps/default/keymap.c

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

* Update keyboards/tgr/tris/keymaps/via/keymap.c

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

* Update keyboards/tgr/tris/tris.h

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

* Update keyboards/tgr/tris/info.json

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

* update formatting

* Revert "update formatting"

This reverts commit ae2d683267.

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-05-27 01:20:32 +01:00
Wilba
ac447d8acb ISSI driver compile error fix (#9169) 2020-05-27 01:18:13 +01:00
Zach White
a5e749d8cd Fix the path for generated keymaps (#9213) 2020-05-26 15:18:49 -07:00
Zach White
4ee623fdd5 Fix compiling json files (#9210) 2020-05-26 14:29:48 -07:00
Zach White
751316c344 [CLI] Add a subcommand for getting information about a keyboard (#8666)
You can now use `qmk info` to get information about keyboards and keymaps.

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-05-26 13:05:41 -07:00
nathanvercaemert
5d3bf8a050 [Keymap] Contributing Home-Row-Centric-Mousekey Layout (#9195)
* adding personal keymap to repository

* starting to customize documentation to keymap

* updated readme

* updated readme
2020-05-26 11:46:02 -07:00
Erovia
6501377070 CLI: fix json2c subcommand and add/fix tests (#9206)
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
2020-05-26 17:43:33 +02:00
Leivince John Marte
af2ca13604 [Keymap] Ported ok60 to via (#9179)
* Initialize ok60/via

* Update vendorId for ok60 to K6 0x4b36

* Update keyboards/ok60/config.h
2020-05-26 03:35:06 -07:00
umi
451c472d1d [Docs] Japanese translation of docs/feature_pointing_device.md (#8993)
* add feature_pointing_device.md translation

* update based on comment

* update based on comment

* update based on comment

* update based on comment
2020-05-26 17:14:58 +09:00
yttyx
bfe76053ba [Keymap] Niu keymap and README update (#9190)
* - Balance 12 layers now in their final form
- Added Plover layer
- Updated README to use layout images

* Add headings to layer images.

* - Remove redundent TO(_BA) from FC layer
- Link to new FC layer image from README

* Highlight home keys.

* Changes following review.
2020-05-25 21:24:16 -07:00
Jumail Mundekkat
9d41281a1d [Keyboard] Add Key 65 by Fox Lab (#9116)
* Add Key65 Universal PCB

* Add ISO layout to universal

* Correct universal info.json

* Add Key 65 Hotswap

* Correct typo in Key 65 Universal

* Update readmes

* Correct name

* Update keyboards/foxlab/key65/hotswap/config.h

* Apply suggestions from code review

* Invert capslock LED state

* Avoid initial capslock LED flash

* Apply suggestions from code review

* Update rules.mk

* Apply suggestions from code review
2020-05-25 21:10:48 -07:00
Yasuhiro SHIMIZU
ba5e1f1bae [Keymap] update helix/rev2:yshrsmz keymap (#9047)
* update helix keymap

* use set_single_persistent_default_layer
2020-05-25 20:16:03 -07:00
Ryan
e4823aadec Fix capitalisation of "GitHub" (#9184) 2020-05-25 19:43:14 -07:00
KOBAYASHI Daisuke
5c9906eb4f Add VIA support for kbd67rev1 (#9173) 2020-05-25 19:26:27 -07:00
Wilba
f56d333db1 [Keyboard] Added wilba.tech WT60-XT (#9168)
* Added wilba.tech WT60-XT

* fix indent

* Update keyboards/wilba_tech/wt60_xt/readme.md

* Update keyboards/wilba_tech/wt60_xt/rules.mk

* Update keyboards/wilba_tech/wt60_xt/wt60_xt.c
2020-05-25 19:22:14 -07:00
yulei
d8f76f9e6d Added missing shutdown_user() hook (#9180)
* add missing shutdown_user()

* use reset_keyboard() from quantum
2020-05-25 22:16:33 +10:00
gmadrid
6ca00c2152 [Keyboard] PDBDOWN should be PCBDOWN. (#9192) 2020-05-24 21:12:31 -07:00
Joel Challis
dc6fe85b87 [Keyboard] Add zvecr/split_blackpill (#9166)
* Add split_blackpill keyboard

* Add RGB config

* tidy up rules

* fix usage of layer_state_t

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Add configurator support
2020-05-24 19:15:27 -07:00
Drashna Jaelre
883dd2df80 Fix i2c EEPROM compile issue when Console is enabled (#9186)
* Fix i2c EEPROM compile issue when Console is enabled

* Only use if both console and debugging is enabled
2020-05-24 23:02:13 +01:00
Drashna Jaelre
2ac3a51d71 Fix SPI EEPROM compile issue when Console is enabled (#9193) 2020-05-24 23:02:00 +01:00
Takeshi ISHII
f66680d233 Fixed the indentation of the sample code in feature_pointing_device docs (#9177)
* Fixed the indentation of the sample code in docs/feature_pointing_device.md sample.

* Update docs/feature_pointing_device.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-05-23 23:57:59 +01:00
shohart
503cf18aed ymdk/bface - RGB config and minila layout (#9127)
* Fix info about RGB LEDs on the bottom.

* Added RGB LEDs support

* Added RGB LEDs config options

* Added minila layout with RGB keys

* Create readme.md

* Update keyboards/ymdk/bface/keymaps/minila/keymap.c

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

* Update keyboards/ymdk/bface/keymaps/minila/keymap.c

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

* Update keyboards/ymdk/bface/keymaps/minila/keymap.c

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

* Update keyboards/ymdk/bface/keymaps/minila/readme.md

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

* Update keyboards/ymdk/bface/keymaps/minila/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-05-23 17:49:05 +01:00
Joe Doh
38d2c8cedf [Keymap] dohmain 60_tsangan_hhkb layout (#9157)
* initial commit for tsangan_hhkb community layout

* keymap.c done

* wrote readme

* move media keys; add shortcuts

* edit to reflect changes in keymap

* update readme with imgur link
2020-05-21 19:51:36 -07:00
Ckat
53224e03d6 [Keyboard] handwired/k8split (#9133)
* New Keyboard: k8split

* Apply suggestions from code review

* move NKRO rule to keymap scope
2020-05-21 16:37:09 -07:00
Ryan
7ef2ea3d49 Improve the Makefile message a bit more (#9161) 2020-05-22 00:28:55 +01:00
MechMerlin
9e4037465a [Keyboard] Wolfmark Club WM1 (#9121)
* do the basic port for the WM1

* with much help from tzarc, get the addresses correct

* make the keymap more closely mirror what the board has

* Add QMK Configurator support

* update the readme

* get indicator leds working

* enable RGB underglow

* fix up rgb underglow

* add notes regarding existence of backlight

* Update keyboards/wolfmarkclub/wm1/readme.md

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/config.h

* Update keyboards/wolfmarkclub/wm1/ld/wm1_f103.ld

* Update keyboards/wolfmarkclub/wm1/bootloader_defs.h

* Update keyboards/wolfmarkclub/wm1/config.h

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/wm1.c

* Update keyboards/wolfmarkclub/wm1/wm1.c

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/readme.md

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* Update keyboards/wolfmarkclub/wm1/rules.mk

* update readme
2020-05-21 13:34:28 -07:00
Nick Brassel
fd4f102977 Fix build. (#9163) 2020-05-22 06:25:03 +10:00
Joel Challis
6d84795bc1 Update ARM split keyboard docs (#9160)
* Update ARM split keyboard docs

* Update docs/serial_driver.md

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-22 06:20:46 +10:00
Erovia
179e5c018f CLI: Rework submodule checking (#9162) 2020-05-21 21:56:43 +02:00
Rys Sommefeldt
5246acb2e4 [Keyboard] Add support for Ace of Spades TKL keyboard (#9128)
* Add support for Ace of Spades

* Fix the F-row mappings

* Add the tkl_iso layout

* Put KC_PAUS back in place of top layer reset

* aholland909 personal keymap for Ace of Spades

* Address PR feedback and rename to aos/tkl

* Rename keyboard implementation filenames

* Remove unnecessary layers

* info.json for the configurator
2020-05-21 12:49:35 -07:00
Thomas Baart
02a8c874f8 [Keymap] Kyria: Updated personal keymap, added asapjockey's keymap (#8019)
* Updated personal keymap, added asapjockey's keymap

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

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

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

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

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

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

* Fixed layers, brackets

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

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

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

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

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

* Update keyboards/kyria/keymaps/asapjockey/keymap.c
2020-05-21 12:43:39 -07:00
ridingqwerty
dae6f6b39b Remove broken example from Makefile (#9159)
* Remove broken example from Makefile

* Correct example in Vagrantfile
2020-05-21 20:33:20 +01:00
Joel Challis
526c185e7e Initial arm serial partially based on old lets split code (#7072) 2020-05-21 19:39:51 +01:00
QMK Bot
c63fd051da format code according to conventions [skip ci] 2020-05-21 17:39:29 +00:00
zvecr
b95979560c Initial arm serial partially based on old lets split code 2020-05-21 18:04:30 +01:00
Joel Challis
65150984bd ARM split - Add uart half duplex transport support (#7987)
* ARM split - Add uart half duplex transport support

* Fix for f103

* initial full duplex pass

* partially remove full duplex

* Correct speeds within driver docs

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-21 18:00:21 +01:00
Joel Challis
205321c377 Slight speed increases for matrix scanning (#9150) 2020-05-21 17:59:56 +01:00
Joel Challis
1816ad01d0 Use LUFA funcs for split_util (#8594) 2020-05-21 17:59:01 +01:00
Ryan
9c8f61dfa0 [Docs] newbs_flashing.md: place bootloader instructions before Toolbox intro (#9077)
* newbs_flashing.md: place bootloader instructions before Toolbox intro

* Update docs/newbs_flashing.md

* More wordsmithing, point ARM users at Discord if all else fails

* Link Discord
2020-05-21 09:24:39 -07:00
Nick Brassel
d1df576ece Allow for overriding RAW endpoint usage page and ID. (#8834)
* Allow for overriding RAW endpoint usage page and ID.

* Move usb_descriptor_common.h.

* Docs update.
2020-05-21 20:31:42 +10:00
Erovia
83ebbf57b3 Fix submodule check (#9155) 2020-05-21 10:15:18 +02:00
Parker Coates
8e1f706ac6 Enable backlight breathing support for the TADA68 (#9145)
The factory TMK firmware for the TADA68 supports backlight breathing,
so I was surprised when the BL_BRTG key I set up in the online QMK
configurator didn't work.

As far as I can tell, this was just a simple omission.
2020-05-20 23:11:52 +01:00
Joel Challis
b0c780ed32 Fix ChibiOS FPU build logic (#9132) 2020-05-20 16:28:39 +01:00
Pete Johanson
3ad2be52a7 CLI: Improve experience when running qmk setup on FreeBSD. (#8798)
* CLI: Improve experience when running `qmk setup` on FreeBSD.

* Install the `avrdude` package as well.
* Switch to installing python packages w/ `--user` flag.
* Basic getting started sections for FreeBSD.
* Update `util/freebsd_install.sh` for root/non-root branches.

* Add ID to doc section.

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

* Add ID to another docs section.

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

* Use `; then` in script for consistency.

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

* Updated to use sudo in one shot if available.

* Apply suggestions from code review

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

* Style fixes for latest version in master.

* Apply suggestions from code review

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

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-20 08:09:13 -07:00
Joel Challis
0fbcb41c85 Reintegrate previous docker docs (#9084) 2020-05-19 21:54:55 -07:00
Garret G
ddca422776 Add VIA Keymap to Liminal Directory (#8965)
* add via keymap to liminal keyboard

* fix keymap clarifications

* Update keyboards/the_royal/liminal/keymaps/via/keymap.c

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

Co-authored-by: TheRoyalSweatshirt <TheRoyalSweatshirt@github.com>
Co-authored-by: Garret G <45295190+TheRoyalSweatshirt@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-05-20 02:08:34 +01:00
pcoleman
82bb7d2852 Adding Chimera Ortho Plus (#9093)
* Added Chimera Ortho keymap

* Cleaning up the rules

* Removing firmware sizes

* Modified URLs to point to new locations

* Remove _quantum functions from custom matrix.c code

* Fix 1<col instead of 1<<col typo in matrix_is_on()

* Make PREVENT_STUCK_MODIFIERS the default

* Removing the IS_COMMAND custom definition

* Adding info.json

* Adding config overrides

* Adjusting for the reformat

* removing backlight reference

* fixing some compile issues

* Fixing a matrix issue

* Update keyboards/chimera_ortho_plus/rules.mk

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

* Update keyboards/chimera_ortho_plus/rules.mk

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

* Update keyboards/chimera_ortho_plus/readme.md

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

* Update keyboards/chimera_ortho_plus/readme.md

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

* Update keyboards/chimera_ortho_plus/config.h

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

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

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

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

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

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

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

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

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

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

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

* Update keyboards/chimera_ortho_plus/config.h

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

* Update keyboards/chimera_ortho_plus/chimera_ortho_plus.h

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

* Update keyboards/chimera_ortho_plus/chimera_ortho_plus.h

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

* Update keyboards/chimera_ortho_plus/chimera_ortho_plus.c

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

* Update keyboards/chimera_ortho_plus/chimera_ortho_plus.c

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

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

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

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

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

* Update keyboards/chimera_ortho_plus/chimera_ortho_plus.h

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

* lining up the matrix

* Update keyboards/chimera_ortho_plus/readme.md

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

* Update keyboards/chimera_ortho_plus/readme.md

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

* Update keyboards/chimera_ortho_plus/info.json

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

* Update keyboards/chimera_ortho_plus/chimera_ortho_plus.h

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

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

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

* Update keyboards/chimera_ortho_plus/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-05-19 23:01:54 +01:00
Kamel Makhloufi
1044519f36 Added custom keymap with french mac layout. (#9115)
* Added custom keymap with french mac layout.

* Update keyboards/xd60/keymaps/melka/config.h

Tested on my branch, seems to work well, thanks @drashna !

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

* Update keyboards/xd60/keymaps/melka/keymap.c

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

* Update keyboards/xd60/keymaps/melka/keymap.c

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

* Update keyboards/xd60/keymaps/melka/keymap.c

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

* Comitted changes from merge request

- Removed rules.mk

Co-authored-by: Kamel Makhloufi <fabmanager@esaaa.fr>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-19 22:42:09 +01:00
artjomsR
209942366b Art userspace (#9068)
* added git codes

* started git layer

* finished structure for git layer. MOD: replaced mouse with mod keys on right hand

* layout changing layer

* mod enter. default qwerty layer. removed mods on number layer

* workman layout. git log, show. blank enter and bsspace

* config layer. toggleable ctrl/alt for OS

* removed keymap comments

* strings and combos layers. sarcasm and ctrl_ctv. RGB configs

* reintroduced enter and bspace. delete backspace as a function. git push -u and checkout -b

* string macros

* OS specific home/end

* OS mac & win keys. N delete global backspace

* refactored backspace functions

* ctrl lctv macro

* base layer toggle fix

* whitespace

* BS + L for FF and chrome

* replaced 1 keycode with userspace

* added userspace config

* remove comments

* add another keycode with a variable

* moved all keymaps and codes to common file

* ctrl z mod

* removed ctrl z

* sipmlified OS functions

* moved is_win to keyboard level

* added mac alt tab

* added ctrl tab in mac + clean up variables in art.h

* tild string macro. added mac left/right + home/end

* mac ctrl backspace

* enum layers for default layout

* added ergodone keymap

* ergodone compiles

* clean up

* clean up

* removed obsolete OS_HOME/END

* removed var

* added ctrl nav to split75

* ergodone clean up + caps lock fix 75

* fix mac ctrl alt on right handside. added mac alt tab left right

* fix ergodone config override

* fixed alt left right not working on mac

* added OS ctr_alt

* mac ctrl del. fix tild

* simplified tild macro

* git stash apply

* send_string_remembering_lenght

* shifted strings print

* restored KC_BSPACE functionality

* moved KC_BSPC

* numpad layer on Fn

* media lights

* ergodone final clean up

* ergodone GIT AND MEDIA layers

* ergodone GIT LAYER switch

* default behaviour for all modified keys on BASE layer

* refactored logic for default keycodes

* ergodone final layers

* ctrl_cav for translation and ctrl_l fix

* toggleable layer with numpad

* comments

* numpad layer

* Update users/art/config.h

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

* enable dynamic macros for split75

* git branch and develop/master

* removed esc from Nav

* ergodone: ctrl alt for shift layer

* macros and right alt for ergodone

* fix ergodone N_backspace not working on git layers

* mac language switch with alt+shift

* Update users/art/art.c

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

* Update users/art/art.c

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

* Update users/art/art.c

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

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

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

* Update users/art/art.h

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

* flashing leds to indicate current os

* using rshift on shifted layers

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-19 22:05:32 +01:00
Shadowtrance
494b34b63f Add Via support to the YMD09 (#9108)
* Add Via support to the YMD09

* Update keyboards/ymdk/ymd09/config.h

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

* Update keyboards/ymdk/ymd09/keymaps/via/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-19 21:28:55 +01:00
TerryMathews
58e3b01f37 Candybar: VIA support for lefty and righty (#9066)
* Candybar: VIA support for lefty and righty

* Update keyboards/candybar/lefty/config.h

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

* Update keyboards/candybar/righty/config.h

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

* Update keyboards/candybar/lefty/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-05-19 21:15:16 +01:00
Stefano
6c2008c688 Gherkin 26, 27, 28, 30 keys compatibility (#9136)
* Gherkin 26, 27, 28, 30 compatibility

* Update readme.md

Co-authored-by: stevexyz <warste@removethisandleavegoogle.com>
2020-05-19 21:03:23 +01:00
Ryan
bcedc80ec7 MSYS2 install: bodge out avrdude package installation for USBaspLoader 2020-05-19 04:39:52 -07:00
Drashna Jaelre
ef5fad137b Disable Mousekey Command interface when Constant speed is enabled (#7017) 2020-05-19 07:29:20 -04:00
Koichi Katano
15dd05c402 [Keyboard] Add Bakeneko 80 keyboard (#9118)
* Add Bakeneko 80 keyboard

* Update keyboards/bakeneko80/rules.mk

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

* Update keyboards/bakeneko80/config.h

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

* Update keyboards/bakeneko80/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-19 04:22:12 -07:00
jja2000
32d03db371 [Keymap] Add Via support to ALPS64 (#9041) 2020-05-19 03:27:43 -07:00
moyi4681
c9d396dd47 [Keyboard] add kbdfans/maja rgb keyboard (#9114)
* add kbd67 rev2 via support, kbd67mkiirgb small change

add kbd67 rev2 via support, kbd67mkiirgb small change

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

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

* define DYNAMIC_KEYMAP_LAYER_COUNT 2

* add kbdfans/maja rgb keyboard

* Update keyboards/kbdfans/maja/maja.c

* Update keyboards/kbdfans/maja/readme.md

* Update keyboards/kbdfans/maja/keymaps/default/keymap.c

* Update keyboards/kbdfans/maja/maja.h

* Update keyboards/kbdfans/maja/maja.c

* Update keyboards/kbdfans/maja/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/maja/maja.c

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

* Update readme.md

* Update readme.md

* Update keyboards/kbdfans/maja/rules.mk

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

* Update keyboards/kbdfans/maja/rules.mk

* Update keyboards/kbdfans/maja/rules.mk

* Update keyboards/kbdfans/maja/keymaps/default/keymap.c

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

* Update keyboards/kbdfans/maja/config.h

* Update keyboards/kbdfans/maja/readme.md
2020-05-19 02:23:07 -07:00
Eric Lau
2afb29e095 [Keyboard] Add NumDiscipline Keyboard - Modified Version of Discipline With Numpad (#9112)
* NumDiscipline firmware compiled

* renamed folder, deleted config.h from default

* deleted commented out code

* fix readme make example for lowercase foldername

* Update keyboards/ericrlau/numdiscipline/rev1/rules.mk

* Update product name

* Apply suggestions from code review - layout naming and key object ordering
2020-05-19 02:19:18 -07:00
skullY
fcf150bd82 Streamline the macos install process 2020-05-18 22:46:33 -07:00
umi
ee2eb01653 [Docs] Japanese translation of docs/feature_led_matrix.md (#8991)
* add feature_led_matrix.md translation

* update based on comment

* update based on comment
2020-05-18 20:37:25 -07:00
umi
0bece1d442 [Docs] Japanese translation of docs/feature_layouts.md (#8949)
* add feature_layouts.md translation

* update based on comment

* update based on comment
2020-05-18 20:29:04 -07:00
umi
be69dd22e8 [Docs] Japanese translation of docs/feature_thermal_printer.md (#9034)
* add feature_thermal_printer.md translation
2020-05-18 19:58:04 -07:00
umi
b9675d2106 [Docs] Japanese translation of docs/feature_velocikey.md (#9035)
* add feature_velocikey.md translation

* update based on comment

* update based on comment
2020-05-18 19:50:32 -07:00
umi
f689f043b1 [Docs] Japanese translation of docs/feature_leader_key.md (#8950)
* add feature_leader_key.md translation

* update based on comment

* set link as lang dir

* update based on comment

* update based on comment

* update based on comment
2020-05-18 19:43:36 -07:00
Nick Brassel
54b04d9665 Add SPI 25xx EEPROM support. (#8780) 2020-05-19 10:34:00 +10:00
AlisGraveNil
4604c70c4c [Keyboard] Add Bookerboard support (#9097)
* 5/14/20 first push for bookerboard

* Update rules.mk

* Update keyboards/clawsome/bookerboard/rules.mk

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

* Update keyboards/clawsome/bookerboard/keymaps/default/keymap.c

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

* Update keyboards/clawsome/bookerboard/config.h

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

* Update keyboards/clawsome/bookerboard/bookerboard.c

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

* Update keyboards/clawsome/bookerboard/bookerboard.h

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

* 5/15/20

* 2

* 3

* Update keyboards/clawsome/bookerboard/config.h

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

* Update keyboards/clawsome/bookerboard/config.h

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

* Update keyboards/clawsome/bookerboard/readme.md

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

* Update keyboards/clawsome/bookerboard/readme.md

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

* Update keyboards/clawsome/bookerboard/readme.md

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-18 20:45:52 +01:00
QMK Bot
010c5b12bd format code according to conventions [skip ci] 2020-05-18 13:42:23 +00:00
Drashna Jaelre
4adf4d5a89 Add SofleKeyboard support to QMK firmware. (#8970)
* Add SofleKeyboard support to QMK firmware.

* Sofle: Remove LAYOUT_kc macro for default layout. Remove unnecessary code.

* Fix mistake in the latest commit

* Remove duplicated layers for MAC/WIN support

* Improve according to suggestion in PR

* Add more improvements from PR

* Fix a typo in README.md

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

* Remove unneeded break.

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

* Remove unneeded break.

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

* Apply suggestions from code review

Remove unneeded breaks.

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

* Apply suggestions from code review

Remove unneeded breaks (few more forgotten ones).

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

* Apply suggestions from code review

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

* Remove TAPPING_FORCE_HOLD from default keymap.

* Add TAP_CODE_DELAY 10. Fix a typo (compilation error)

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-05-18 06:06:31 -07:00
Drashna Jaelre
d0e0202b27 Add query functions for RGB Light and RGB Matrix (#8960)
* Add additional query functions for RGBLIGHT

* Add additional query functions for RGB Matrix

* Change names of enable check functions

* Fix macro for rgb matrix takeover of rgblight functions

* Add documentation for rgb_matrix_get_hsv()

* Add *_get_hsv function to rgblight
2020-05-18 06:05:35 -07:00
Josef Adamcik
fb9425df82 Add TAP_CODE_DELAY 10. Fix a typo (compilation error) 2020-05-18 13:11:22 +02:00
Josef Adamčík
22ad35b225 Remove TAPPING_FORCE_HOLD from default keymap. 2020-05-18 12:57:16 +02:00
Josef Adamčík
f6cec668c7 Apply suggestions from code review
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-05-18 12:56:08 +02:00
Josef Adamčík
2651edc243 Apply suggestions from code review
Remove unneeded breaks (few more forgotten ones).

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-18 12:45:38 +02:00
Josef Adamčík
2a43989d30 Apply suggestions from code review
Remove unneeded breaks.

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-18 12:43:35 +02:00
Josef Adamčík
2f5521cd48 Remove unneeded break.
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-18 12:42:32 +02:00
Josef Adamčík
ac3d2a3810 Remove unneeded break.
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-18 12:42:17 +02:00
Josef Adamčík
1786490993 Fix a typo in README.md
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-18 12:41:55 +02:00
AbstractKB
e55d55edc0 [Keymap] added my gergo keymap (#8476)
* added my gergo keymap

* updated personal bfo9000 keymap

* fixed redundancy, extended debounce time
2020-05-18 03:29:01 -07:00
CalciumNitride
ad014c2539 [Keyboard] Arabica37 (#8471)
* adding arabica37

* jp_keymap

* update

* try refactor to use split_common

* fix and update to use split_common

* update and adjust

* clean up

* update

* update

* fix keymap.c

* update

* oled logo

* fix info.json

* remove pro_micro.h

* remove KC_ macro

* move font file
2020-05-18 03:28:00 -07:00
Frothy
81698df056 [Keymap] Add Via keymap for Contra (#9119)
* Add Via keymap for Contra

 * Added Via-enabled keymap
 * Changed VENDOR_ID from 0xFEED to 0x4354 (CT)

* Removed unnecessary RGB mappings

* PR changes

 * Removed empty via/config.h
 * Changed product ID from 0x6060 to 0x0001
2020-05-18 02:40:41 -07:00
Tracy Wadleigh
fca35a3540 [Keyboard] handwired/twadlee/tp69 (#9013)
Includes info.json for custom layout and a minimal default keymap.
2020-05-18 01:52:55 -07:00
powerlemming
5d01cc45be [Keyboard] KBDClack kaishi65 (#9089)
* Added kaishi65 keyboard

* added kaishi65

* Update readme.md

* Updated info.json and keymap

* Updated folder structure

* Updated readme + keymap

* Updated info.json

* Update keyboards/KBDClack/kaishi65/readme.md

* Update keyboards/KBDClack/kaishi65/kaishi65.c

* Update keyboards/KBDClack/kaishi65/readme.md

* Deleted \keymaps\config.h

* Update keyboards/KBDClack/kaishi65/config.h

* Folder name changed

* Update keyboards/kbdclack/kaishi65/info.json

* Update keyboards/kbdclack/kaishi65/kaishi65.h

* Update keyboards/kbdclack/kaishi65/keymaps/default/keymap.c

* Update keyboards/kbdclack/kaishi65/rules.mk

* Update keyboards/kbdclack/kaishi65/keymaps/default/keymap.c
2020-05-18 01:36:27 -07:00
NekuSoul
eaab0844e8 Fix typo in led_config for dztech/dz65rgb (#9122) 2020-05-18 03:38:38 +01:00
Ryan
ce842f912e Remove DEBUG_LEVEL from V-USB rules.mk (#9117) 2020-05-17 21:37:04 +01:00
Maxr1998
cceab93baa [Pulse4k] Add personal keymap 2020-05-17 13:05:06 -07:00
Maxr1998
4161573b28 [Pulse4k] Various improvements
Rework led adjustment combo (have it defined by keymap now), reformat code, update copyright
2020-05-17 13:05:06 -07:00
Ryan
d0e684ef55 DZ60: update to current template & code style (#9113) 2020-05-16 23:10:54 -07:00
codecoffeecode
f125406700 Adding unit tests for list-keymaps command (#7711)
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: Erovia <Erovia@users.noreply.github.com>
2020-05-16 22:47:07 +02:00
Vincent Lee
afebb6576c [Keymap] Add Via support to the Melody96 (#9050)
* Add files needed to The Via support on Melody 96

* Remove manufacture name from product name

* replace blank key with Transparent keys

* Update keyboards/melody96/rules.mk

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

* Change Product ID to "M" + 96

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

* add LTO to via's local file

* Update keyboards/melody96/rules.mk
2020-05-16 09:21:35 -07:00
MechMerlin
7f6ba2bf8a [Keymap] VIA Support: Exclusive E7-V1 (#9038)
* add a VIA Keymap

* update VID and PID

* update readme

* Update keyboards/exclusive/e7v1/readme.md
2020-05-16 09:16:51 -07:00
Nick Blyumberg
142ebaea46 [Docs] Clarify layer transparency keymap.md (#9081)
* Revised the grammar and clarity of the Layer Precedence and Transparency

* Update docs/keymap.md

* Update docs/keymap.md

* Update docs/keymap.md

* Update docs/keymap.md

* Update docs/keymap.md

* Update docs/keymap.md

* Update docs/keymap.md
2020-05-16 00:35:19 -07:00
Rossman360
bbd17def21 [Keyboard] Rebound rev3 (#9101)
* more stoof

* readme update

* reverting keymap

* re-adding userspace

* new userspace needed

* no want 0 under thumb

* gettin fancier with my knob

* macro fix

* had pins for oled ver

* wait, these are the right pins

* reduntant line

* image fix

* get highest layer every day

* whoops

* correct rev name in json

* a few good catches

* what I had planned
2020-05-16 00:17:02 -07:00
Max Rumpf
d89e552419 [Phoebe] Keymap improvements (#9092)
Enable leader key with some useful macros, use fancier design for keymap previews in code, other smaller tweaks
2020-05-15 23:43:10 -07:00
Konstantin Đorđević
9cf69a1997 [Keymap] Update personal userspace and keymaps (#9082)
* Replace custom RCTRL implementation with built-in LM

Caveat: sends LCtrl instead of RCtrl

* Enable VIA support in KBD6X keymap

* Disable LTO on ChibiOS boards

* Disable locking support and Magic keycodes for all keymaps

* Organize and annotate rules.mk and config.h files

* Enable Console for Melody96 keymap

* L_RANGE_KEYMAP → LAYERS_KEYMAP

* Revert "Replace custom RCTRL implementation with built-in LM"

This reverts commit 17d706a82d7e31b53cd84efeb9b2ddb9922a2368.

* Set DYNAMIC_KEYMAP_LAYER_COUNT to 3 in Doro67 and Wasdat keymaps

* Enable Bootmagic Lite for all VIA keymaps
2020-05-15 23:36:08 -07:00
Paul Scheikl
c6cf1ae4e7 [Keymap] Added the K.O,Y layout for the xd75 and atreus62 boards (#9079)
* added koy layout to qmk on xd75 board

* added koy keymap for the atreus62 board

* reduced time for autoshift

* added documentation

* changed layer 7 to a tap toggle and adjusted mouse speed a little

* Update keyboards/xd75/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h

* Update keyboards/xd75/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h

* Update keyboards/xd75/keymaps/ScheiklP/koy_common.h

* Update keyboards/atreus62/keymaps/ScheiklP/koy_common.h

* Update keyboards/atreus62/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h

* Update keyboards/atreus62/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h

* changed keymap to lowercase name to conform with qmk guidelines

* Update keyboards/xd75/keymaps/scheiklp/rules.mk

remove unnecessary rules

* Update keyboards/atreus62/keymaps/scheiklp/rules.mk

remove unnecessary rules

* moved common files for koy layouts to the users folder and removed empty file

* Update keyboards/atreus62/keymaps/scheiklp/keymap.c

* Update keyboards/xd75/keymaps/scheiklp/readme.md

* Update keyboards/xd75/keymaps/scheiklp/readme.md

* Update keyboards/atreus62/keymaps/scheiklp/readme.md

* Update keyboards/atreus62/keymaps/scheiklp/readme.md
2020-05-15 22:37:58 -07:00
Peter (Rocky) Villano
2c9ab8a606 [Keymap] adds pvillano's preonic keymap (#9106)
* adds pvillano's preonic keymap

* Remove unnecessary "\" (tested - ok)
2020-05-15 19:17:24 -07:00
Wilba
0bf60acc4b [Keyboard] Added wilba.tech WT60-C (#9025) 2020-05-15 19:02:49 -07:00
Erovia
6b54f3ce1c CLI: Tune doctor's udev rule checking to match #8750 2020-05-15 12:59:46 -07:00
Keenan Brock
c3aaed8dfb [kle2info] Trim the code in kle2xy (#8955)
* [kle2jinfo] use min/max instead of if

This is a slight change.
Before, the key_skel would keep the invalid value for future keys.
I think this is what was actually intended.

* [kle2info] calculate x

x is the current_x * key_size + (key_size/2)
y is the current_y * key_size + (key_size/2)

no reason to track both
2020-05-15 12:09:22 -07:00
Jonathan Arnett
ebc274209e Update j3rn keymap (#9100) 2020-05-16 04:14:47 +10:00
dlgoodr
1bdfac8afc update dlg's tada68 keymap (#9098) 2020-05-16 04:13:55 +10:00
stanrc85
9b716b7ada stanrc85 userspace and keymap updates (#9103)
* Update flash command in userspace

* Switch to BackspaceFN on split spacebar
2020-05-15 18:59:25 +01:00
Wilba
b591c0c24a [Keyboard] Added wilba.tech WT80-BC (#9024)
* Added WT80-BC

* Update keyboards/wilba_tech/wt80_bc/info.json

* Update keyboards/wilba_tech/wt80_bc/info.json

* Update keyboards/wilba_tech/wt80_bc/rules.mk

* Update keyboards/wilba_tech/wt80_bc/rules.mk

* Update keyboards/wilba_tech/wt80_bc/rules.mk

* Update keyboards/wilba_tech/wt80_bc/wt80_bc.h
2020-05-15 04:21:44 -07:00
Adrian
6ba014a572 Fixed Murciélago info.json to work with qmk configurator -> wrong assignments (#9095)
* fixed json to work with qmk configurator
updates to readme

* Change spacing of keys

* changed overall size of keymap
2020-05-15 03:36:40 -07:00
Joel Challis
2dd47a3bf4 avoid 'Entering|Leaving directory' messages (#9061) 2020-05-14 23:17:17 +01:00
Conor Fischer
887c1c4e0e Fix bad key labels in ascii art (#9094) 2020-05-14 15:56:52 +10:00
Ryan
f66850bfd0 Improve stock bootloader list (#9067)
* Improve stock bootloader list

* Switch version numbers on USB64/128 bootloaders

* Unix line endings for PS2AVRGB bootloader

* Update PS2AVRGB bootloader to 1.0.1

* Also mention bootloader rule

* Didn't need to change the links
2020-05-13 19:32:43 -07:00
yiancar
632285c982 V-USB Interface reorder (#9090) 2020-05-14 10:24:18 +10:00
Zsolt Parragi
805f5cb72b One shot support for swap hands (#8590)
This commits add the SH_OS keycode, which works similarly to one shot
layers:
* while pressed, the keyboard is swapped
* if no keys were pressed while it was pressed, the next key press is
swapped

SH_OS also supports chaining with one shot layers:
OSL(x) + SH_OS + key interprets the key press on the oneshot layer.

The ONESHOT_TIMEOUT setting used by one shot keys and layers is also
used by oneshot swap hands. In the above chaining scenario the timeout
of the oneshot layer is reset when swap hands is activated.

Resolves #2682
2020-05-14 07:36:55 +10:00
Joshua Diamond
a8a8bf0ff3 Allow expanding from 8 to 32 RGB Lighting Layers (#8941)
* Allow 16 lighting layers

* Require #define RGBLIGHT_LAYERS_16 to enable 16 layers

* Override RGBLIGHT_MAX_LAYERS to set maximum number of lighting layers

* Enforce lower bound on RGBLIGHT_MAX_LAYERS

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

* Fix an error in the check for valid RGBLIGHT_MAX_LAYERS

* Don't use bitfield / PACKED, as it causes bloat

* Update documentation re: up to 32 lighting layers

* Run cformat

* Add note about increasing FW size in docs/config_options.md

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

* Remove no-longer-valid comment

* Add doc note that split sync will be slower

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-05-13 21:39:05 +01:00
Adrian
fadd3cb461 added murcielago keyboard (#8920)
* Squashed pull request for murcielago

* removed rotation prior to creating info.json
2020-05-13 21:29:11 +01:00
bottilabo
a41f973f75 optimize source code for size. reduce compiled binary size 292 bytes (#8428)
* optimize source code for size. reduce compiled binary size 292 bytes

* more size optimization
2020-05-14 06:22:27 +10:00
James Young
7abbc95cd6 Fix incorrect key sizes in Configurator (#9073)
* fix key size: exclusive/e6v2/le_bmc

* fix key size: exclusive/e6v2/oe_bmc

* fix key sizes: flx/lodestone

* fix key size: handwired/prime_exl

* fix key sizes: massdrop/ctrl
2020-05-13 20:00:37 +01:00
Hund
30a6f231bf [Keyboard] Added support for Aves 65 (#8880)
* First commit.

* Apply suggestions from code review

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

* Update keyboards/aves65/rules.mk

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

* Update keyboards/aves65/aves65.h

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

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

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

* Update keyboards/aves65/rules.mk

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

* Changes.

* Changes

* Changes

* Update keyboards/aves65/rules.mk

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

Co-authored-by: Hund <hund@ubuntu.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-05-13 19:43:28 +01:00
Ryan
44ff14f290 Update Neo2 keymap (#9063) 2020-05-13 19:34:55 +01:00
Ryan
741c7d5eec Update Canadian Multilingual keymap and add sendstring LUT (#8786) 2020-05-13 19:34:31 +01:00
eniigmakeyboards
f3c30e80cc Updated rules.mk to allow for audio control in VIA (#9087) 2020-05-13 19:20:39 +01:00
floookay
d846660e00 fixed typo for clear lcd screen function in hd44780 docs (#9086)
* fixed typo for clear lcd screen function

brought to attention by #9085

* fixed typo for clear lcd screen function (ja docs)
2020-05-13 19:06:41 +01:00
Xyverz
774384ce31 Added defines for RAISE and LOWER (#9083)
I like being able to use layers. This fixes my screw-up from my last
code overhaul.
2020-05-13 10:59:47 +10:00
Alex Ong
361ac2f32a Optimization for scanning less layers. (#8311)
* Optimization for scanning less layers.

* Rename NUM_LAYERS to MAX_LAYER.
2020-05-11 01:04:38 +01:00
pabile
d15a60d2d3 [Keyboard] Add P40, P20 and P18 Keyboards by pabile (#8759)
* Add files via upload

* removed

* Add files via upload

* Rename pabile40.c to p40.c

* Rename pabile40.h to p40.h

* Add files via upload

* Update p40.c

* Update p40.h

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Updated readme file

* Updated readme file

* Add files via upload

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

* config update

* Delete README.md.save

* Delete keymap.c.save

* Delete keymaps.c

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

* Update p18.h

* testing layout config

* Create info.json

* Create info.json

* Create readme.md

* Update readme.md

* Updated description

* Updated description

* Update config.h

updated vendor ID to 0000

* Update keymap.c

removed unnecessary comments

* Update keyboards/pabile/p18/p18.h

* Update keyboards/pabile/p18/p18.h

* Update p18.h

removed unnecessary comments

* Update keyboards/pabile/p18/rules.mk

* Update keyboards/pabile/p18/rules.mk

* Update config.h

updated vendor id and removed unnecessary comments

* Update keyboards/pabile/p40/info.json

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

* Update keyboards/pabile/p40/p40.h

* Update keyboards/pabile/p40/p40.h

* Update keyboards/pabile/p40/p40.h

* Update keyboards/pabile/p40/rules.mk

* Update keyboards/pabile/p40/rules.mk

* Added p20 macropad

* Update README.md

* Updated VID and PID

* Updated VID and PID

* Update rules.mk

* Update config.h

* Update config.h

* Update config.h

* Update keymap.c

* Replaced blank keys with KC_NO

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

* Update keyboards/pabile/p18/p18.h

* Update keyboards/pabile/p18/rules.mk

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

* Update keymap.c

* Update keymap.c

* Update keyboards/pabile/p20/rules.mk

* Update keyboards/pabile/p40/info.json

* Update keyboards/pabile/p20/p20.h

* Updated product ID

* Updated product ID

* Update keyboards/pabile/p20/config.h

* Update keyboards/pabile/p20/p20.h

* Update keyboards/pabile/p20/p20.h

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

* Update keyboards/pabile/p18/readme.md

* Update keyboards/pabile/p20/README.md

* Update keyboards/pabile/p20/rules.mk

* Update keyboards/pabile/p20/rules.mk

* Update keyboards/pabile/p20/rules.mk

* Update keyboards/pabile/p20/rules.mk

* Update keyboards/pabile/p40/README.md

* Update keyboards/pabile/p40/rules.mk

* Update keyboards/pabile/p40/rules.mk

* Update keyboards/pabile/p18/rules.mk

* Update keyboards/pabile/p18/rules.mk

* Update keyboards/pabile/p40/config.h

* Update keyboards/pabile/p40/config.h

* Update keyboards/pabile/p18/readme.md

* Changed to lowercase filename

* Rename README.md to readme.md

* Update keyboards/pabile/p18/rules.mk
2020-05-09 21:46:17 -07:00
Chuck Lauer Vose
73992c68d5 Add one-handed Viterbi layout for gaming (#8963)
* Add one-handed Viterbi layout for gaming

* fixes for pr feedback

* Update keyboards/keebio/viterbi/keymaps/vosechu/config.h

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-05-10 04:53:32 +01:00
Brian Mock
8ca4ed9a98 Fix off by one error with oled_write_raw_P (#9045) 2020-05-10 04:14:07 +01:00
Zach White
640d12d070 Improve security of avrdude by eliminating the use of well-known names. (#9026)
* Improve security by eliminating the use of well-known names.

* Add an additional $ so the shell expands $TMP1 and $TMP2

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-05-10 04:08:13 +01:00
Xyverz
3beda5c16e [Keymap] Added MACLOCK macro (#9037)
* Added MACLOCK macro

Added my MACLOCK macro to my Atreus keymap.

* Updated comments & readme

Documented where in the layout I added the MACLOCK macro.
2020-05-09 19:21:32 -07:00
TheFourthCow
fb7fc54923 [Keymap] added shifted symbols support (#9059)
* added shifted symbols to default keymap
2020-05-09 19:06:44 -07:00
Nick Blyumberg
179c868059 [Keymap] Add nblyumberg 1upkeyboards super16 keymap (#8902)
* Updated with my super16 version for my keypad

* Added my folder to super16

* Set max LED brightness to 50%

* Added custom keycodes for enter/shift+enter and copy/paste on one key

* Fixed the boot up layer color

* Renamed folder

* Revert changes to root super16 files

* Update keymap config.h and rules.mk files

* Restore deleted 15game keymap files

* Corrected the hold keycode for CCCV

* Removed unnecessary comments

* Update keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c

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

* Update keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h

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

* Update keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c

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

* Rewriting the layer color functionality

* Revisions

* Fixed the layer switching

* Fixed the default layer color problem

* Added a function suggested by Drashna but it won't compile

* Cleaned up the code for PR

* Removed unnecessary define for layer colors

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-05-09 22:52:58 +01:00
James Young
7b11dcce10 Docs: fix links in feature_hd44780.md (#9053)
The referenced site was moved.
2020-05-09 22:47:11 +01:00
1m38
e2fa05c6d2 [Keymap] Add Chidori OLED-enabled sample keymap (#8446)
* create chidori/oled_sample keymap

* Implement OLED enabled keymap

* Update readme.md

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

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

* delete chidori:oled_sample/config.h

* use oled_write_ln_P to print layer state

* delete unnecessary include

* merge nested switches in oled_write_layer_state()
2020-05-09 10:48:17 -07:00
mechlovin
4c4009c0fd [Keyboard] add adelais PCB (#8945)
* add adelais PCB

* clean up

* merger

* update

* Update readme.md

* Update config.h

* update

* update

* move keymap folder

* Update info.json

* Update info.json

* Update info.json

Co-authored-by: vuhopkep <boy9x0@gmail.com>
2020-05-09 02:38:19 -07:00
QMK Bot
e7860d673b format code according to conventions [skip ci] 2020-05-09 09:31:49 +00:00
Joshua Diamond
2fe7e221ec New RGB Lighting effect: Twinkle (#8887)
* Add twinkle RGB Lighting effect

* 2nd twinkle algo - double-buffering

* Further refinement: Per-LED twinkle

* Add documentation for Twinkle RBG Lighting mode

* Bias twinkle saturation closer to the set value

* Fix whitespace
2020-05-09 01:56:16 -07:00
Joshua Diamond
e0f548085c Add ability to blink lighting layer for a specified duration (#8760)
* Implement momentarily blink of lighting layers

* Refactor spidey3 userspace to use rgb layer blink

* Remove un-necessary line from example in documentation

* Revert "Refactor spidey3 userspace to use rgb layer blink"

This reverts commit 831649bb68.

* Adds a missing bit of documentation about lighting layer blink

* Update docs/feature_rgblight.md per suggestions

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

* Update docs/feature_rgblight.md per suggestions

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

* Update docs/feature_rgblight.md per suggestions

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

* cformat, as suggested

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-05-09 01:38:33 -07:00
Konstantin Đorđević
94fc32f431 Fix bug in UC_RMOD, add shift and audio support for UC_MOD/UC_RMOD(#8674)
* Invert UC_MOD/UC_RMOD direction when Shift is held

Also use MOD_MASK_SHIFT in process_rgb.c

* Allow audio to be played for UC_MOD, UC_RMOD keycodes as well

* Fix signedness bug in reverse input mode cycling

* Misc formatting in process_unicode_common.c

* Address clang-format issues

* Make decode_utf8 helper function file-local (static)
2020-05-09 01:22:02 -07:00
Andrew Dunai
1f7bbf279c [Keyboard] Added D48 keyboard (#8548)
* [Keyboard] Added D48 keyboard.

* Updated README.

* Cleanups.

* Moved d48 to handwired/

* Added link to build process album.

* Coding conventions cleanups.

* Added DS1307 RTC!

* Minor cleanups.

* Apply suggestions from code review

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

* Minor refactoring.

* Readme fix.

* Moved leftover keymap-specific code from keyboard space into keymap.

* Added encoder button pins to extra matrix row.

* Updated README, updated pinout & cleaned up the glcdfont

* Apply suggestions from code review

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

* Update config.h

* Apply suggestions from code review

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

* Added default keymap. Refactored existing keymap.

* Update keyboards/handwired/d48/README.md

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

* Apply suggestions from code review

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

* Minor alignment fix.

* Update keyboards/handwired/d48/glcdfont_d48.c

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

* Changes as per PR.

* Apply suggestions from code review

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-05-08 23:59:50 -07:00
milestogo
803610a284 [Keymap] initial user directory for milestogo + babblepaste (#7698)
* initial user directory

* fix missing endif in vi mode

* fix includes per drashna and a few typos. I have not tested the userspace keymap, it is just there to help keep the user space and keymap in sync

* move babblepaste docs to md format

* clean up block quotes

* TIL clang-format - miles2go userspace
2020-05-08 23:15:26 -07:00
OsciX
cd0edbb1fb [Keyboard] Shambles TKL (#8500)
* Add support for the Shambles TKL

* Fix Shambles files

* Add files via upload

* Fix Shambles again

* Delete shambles.h.h

* Delete shambles.c.c

* Add files via upload

* Delete Makefile

* Apply suggestions from code review

* Fix default layout to work with review

* Apply suggestions from code review

* Add info files

* Update readme.md

* Update keyboards/shambles/readme.md
2020-05-08 17:08:19 -07:00
Eriq M. Adams
6919772fb9 Add TENKI keyboard (#9029)
* Add TENKI keyboard

Add TENKI keyboard, default keymap and via keymap

* Minor Update Readme.md

Change description of hardware supported

* change layout name

change layout name from ortho_20 to ortho_5x4

* Fix invalid format in info.json

Fix invalid format in info.json

* Fix invalid format

* Fix formatting

Fix formatting tenki.h

* Fix formatting in keymap.c

Fix formatting in keymap.c

* Add new line at EOF info.json

Add new line at EOF

* Fix formatting

* Fix formatting

* Update rules.mk

Fix Formatting
2020-05-08 23:57:11 +01:00
tominabox1
fedd8e81d1 Add Le Chiffre keyboard (#8995)
* Initial

* update json, added basic oled config, updated matrix to correct rotary location

* disable oled by default

* Tuned oled for release

* Completed OLED function implementation
Correct spelling error in readme

* Fixed image in readme

* Should not be in this branch

* Incorporating recommended changes by zvecr

* Update keyboards/le_chiffre/info.json

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

* Update keyboards/le_chiffre/readme.md

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-05-08 23:54:55 +01:00
Joel Challis
adda5d7770 Revert "Use nano specs (#8270)" (#9044)
This reverts commit c775104b9f.
2020-05-08 14:51:00 +01:00
eniigmakeyboards
d2581884d9 [Keyboard] Eniigma Keyboards ek87 (#8937)
* Added ek87 support

* Fixed readme

* Update keyboards/eniigmakeyboards/ek87/rules.mk

* Update keyboards/eniigmakeyboards/ek87/config.h

* Update keyboards/eniigmakeyboards/ek87/ek87.c

* fixed title

* Deleted old files

* Added rules.mk file to VIA keymap folder

* Update keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c

* Update keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c

* Update keyboards/eniigmakeyboards/ek87/rules.mk

* Deleted requested file

* Removed VIA line from rules

* Update keyboards/eniigmakeyboards/ek87/readme.md

* Update keyboards/eniigmakeyboards/ek87/ek87.h

* Update keyboards/eniigmakeyboards/ek87/ek87.h

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/keymaps/default/keymap.c

* Update keyboards/eniigmakeyboards/ek87/keymaps/via/keymap.c

* Renamed layouts and removed obsolete ones

* Update keyboards/eniigmakeyboards/ek87/rules.mk

* Update keyboards/eniigmakeyboards/ek87/rules.mk

* Update keyboards/eniigmakeyboards/ek87/ek87.h

* Update keyboards/eniigmakeyboards/ek87/ek87.h

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/info.json

* Update keyboards/eniigmakeyboards/ek87/info.json
2020-05-07 12:14:16 -07:00
mechlovin
58fd782ce0 [Keyboard] Mechlovin hannah60rgb (#8951)
* add new keyboard hannah60rgb

* delete line

* Delete config.h

* Update hannah60rgb.c

* Update hannah60rgb.c

* update

* Update hannah60rgb.c

* update

Co-authored-by: vuhopkep <boy9x0@gmail.com>
2020-05-07 11:58:36 -07:00
marksard
8e56d10e4e [Keyboard] treadstone48/rev2 (#8719)
* Keyboard: add treeadstone48

* rename layout defines

* Use of pragma once

* move common include code

* fixed info.json

* change keymap layout from kc to normal

* fix alpha revision keymap

* fixed info.json

* remove USE_Link_Time_Optimization

* Add keyboard firmware of treadstone48 rev.2

* move the rev1-supported keymap.

* layout code was updated by review

* remove comment bar

* remove LTO ifded

* Update keyboards/treadstone48/rev2/rev2.h

* Update keyboards/treadstone48/rev2/rev2.h
2020-05-07 11:49:40 -07:00
mechlovin
43868a5e20 [Keyboard] Mechlovin Pisces (#8943)
* add new keyboard

* clean up

* Update rules.mk

* Update rules.mk

* update

Co-authored-by: vuhopkep <boy9x0@gmail.com>
2020-05-07 11:17:23 -07:00
QMK Bot
db167ecf79 format code according to conventions [skip ci] 2020-05-07 18:10:54 +00:00
halfenergized
2b8b1045a1 Add TGR-910 VIA support (#8985)
* Add VIA support

* Update readme.md

* Update readme.md

* Update keyboards/tgr/910/readme.md

* Update keyboards/tgr/910/readme.md

* Update keyboards/tgr/910/readme.md
2020-05-07 11:08:37 -07:00
a_p_u_r_o
7a6e52b5d8 Fix inconsistent MATRIX_COLS: basekeys/slice (#9022) 2020-05-07 02:28:01 -07:00
marksard
ae5f7365ea [Keyboard] Add keyboard firmware treadstone32lite (#8720)
* Keyboard: add treeadstone48

* rename layout defines

* Use of pragma once

* move common include code

* fixed info.json

* change keymap layout from kc to normal

* fix alpha revision keymap

* fixed info.json

* remove USE_Link_Time_Optimization

* Add keyboard firmware of treadstone32lite

* fixed by the review

* I used to set this to a per-keymap setting, so I'll undo it.
2020-05-07 02:23:26 -07:00
ai03
606438692d [Keyboard] Add QUAD-H LB75 keyboard (#8607)
* Copy back old files from 9 months ago

* Delete unnecessary functions in lb75.c

* Remove LCD and MIDI config

* Modernize ancient files

* Update keymaps as necessary

* Move files to vendor folder

* Update readme to reflect changes

* Modernize makefile

* Remove split config

* Update keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c

* Update keyboards/quad_h/lb75/keymaps/via/keymap.c

* Update keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c

* Update keyboards/quad_h/lb75/lb75.c

* Update lb75.c

* Update keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c

* Update keyboards/quad_h/lb75/readme.md

* Update keyboards/quad_h/lb75/keymaps/via/keymap.c

* Update keyboards/quad_h/lb75/keymaps/continuous_fnrow/keymap.c

* Update keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c

* Update keyboards/quad_h/lb75/keymaps/divided_fnrow/keymap.c

* Update keyboards/quad_h/lb75/keymaps/via/keymap.c

* Add default keymap as required

* Update keyboards/quad_h/lb75/info.json

* Update keyboards/quad_h/lb75/info.json

* Update keyboards/quad_h/lb75/readme.md

* Update keyboards/quad_h/lb75/readme.md
2020-05-07 01:44:19 -07:00
MakotoKurauchi
5d29a13e22 Changed the VID/PID for Helix keyboards (#8989) 2020-05-07 00:27:12 -07:00
Jonathan Rascher
81c648e947 More community layout support for legacy KBD67 PCBs (#8933)
* Community layout support for KBD67 hotswap

* Community layout support for KBD67 rev1

* Community layout support for KBD67 rev2

* Move bcat's KBD67 hotswap layout to community
2020-05-06 22:47:55 -07:00
Daniel Racine
923bad46f9 [Keymap] New keymap layout for dztech/dz65rgb/keymaps (#8199)
* New keymap layout for dztech/dz65rgb/keymaps

* New keymap layout for dztech/dz65rgb/keymaps
- Conding conventions fixes

* Fix typo in Leader Key table

* PR #8199 Feedback Commit #1

* Fixed data types and function names - Simplified accent macros by removing repetition - Added selection wrap macros - readme.md doc updated with changes

* PR #8199 second feedback commit - Clarified function names, variables names and comments

* Fix: accent output fix _grave  <==> _circumflex

* dry fixes on led set_color with hsv and led blinking code blocks
2020-05-06 21:01:19 -07:00
Stefano
19513fac5f jj28 (jj40 SuperMicro) update (#8885)
* jj28 (jj40 SuperMicro) update

* Update keyboards/jj40/keymaps/stevexyz/config.h

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

* removed jpegs

* Update keyboards/jj40/keymaps/stevexyz/keymap.c

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

* Update keyboards/jj40/keymaps/stevexyz/keymap.c

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

* Update keyboards/jj40/keymaps/stevexyz/keymap.c

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

Co-authored-by: stevexyz <warste@removethisandleavegoogle.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-05-07 00:31:22 +01:00
Alex Daigre
7bb9c76c80 [Keymap] Custom preonic layout optimised for programming (#8263)
* my new layout, draft one, untested.

* updated mapping to include more keys

* updated layout name to be more descriptive. Updated readme with more information.

* added more info to the readme and spellchecked it.

* Added the Json for the keyboard layout images and updated the readme to reflect this.

* Updated Image link

Updated Image link so that it links to the correct place

* updated copyright info to include MY name.

* Updated copyright attribuatation to include the author of the file I modified.

* added the backlighting key back to the adjust layer so that it is usable.

* updated the name of the keymap to match my github name.
2020-05-06 16:03:42 -07:00
Ryan
57e67a4cc8 Remove old_keymap_files directory from planck (#8917) 2020-05-06 23:56:12 +01:00
Xyverz
cf3913cd79 [Keymap] Xyverz Kinesis keymap update (#9018)
* Mitor Tweaks

Updating Dvorak keymap to change location of Slash and Backslash
to positions more in line with my 12x5 and similar ortho layouts

* Fixed readme.md

Tidied up the readme and make some minor changes.

* Adding atreus config file

Adding a config file for my Atreus keyboard. This is to help with
the keychatter issues I've been having on my Atreus.

* Changes as requested per @zvecr

Added `#pragma once` to beginning of config.h file as requested
by @zvecr.
2020-05-06 22:14:28 +01:00
Zach White
a30cc37c09 New keyboard: Clueboard 2x1800 2019 (#8721)
* Initial support for the 2019 2x1800

* Get all hardware working.

* Fix shake to undo

* Use the method suggested by @reywood

* Remove the unnecessary for loop

* changes suggested by @noroadsleft

* Fix comma, period, and forward slash keys for clueboard 2x1800 default keymap by @reywood

* Call led_set_user at the end of led_set_kb (#6265)

* [Keymap] Add default layouts for 2u spacebar (#6266)

* make progress on drawing mode

* Finish drawing toy mode

* Update keyboards/clueboard/2x1800/2019/config.h

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

* Update keyboards/clueboard/2x1800/2019/2019.c

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

* Update keyboards/clueboard/2x1800/2019/2019.c

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

* Update keyboards/clueboard/2x1800/2019/2019.c

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

* Update keyboards/clueboard/2x1800/2019/rules.mk

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

* Update keyboards/clueboard/2x1800/2019/rules.mk

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

* remove unnecessary files

* Update keyboards/clueboard/2x1800/2019/rules.mk

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

* apply suggestions

* Apply suggestions from code review

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

Co-authored-by: Sean Dwyer <sean.dwyer@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-05-06 09:55:44 -07:00
Álvaro A. Volpato
b18c261040 Add Elongate PCB support (#8419)
* Working on proto

* Start adding VIA support

* Apply suggestions from code review

Removed redundant comments and fixed typos

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

* Delete useless config.h

As per code review

* Delete elongate.c

As per code review

* Updated readme.md

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

As per code review

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

* Apply suggestions from code review

Removed RGB_MODE_TEST definition and substituted for RGB_M_T

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

* Apply suggestions from code review

Reverted changes to alice.h

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

* Update info.json

* Update via/keymap.c

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

* Solve compiling issue for via keymap

* Add botmagic support and remoce console_enable

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

* Update keyboards/acheron/elongate/rules.mk

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

* Update keyboards/acheron/elongate/keymaps/via/rules.mk

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

* Update keyboards/acheron/elongate/rules.mk

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

* Update keyboards/acheron/elongate/config.h

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

Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-05-06 17:11:59 +01:00
TheFourthCow
bac5d6bc6a edit to default funky40 keymap (#9014) 2020-05-06 11:29:47 +10:00
Juno Nguyen
ab1650606c [Keymap] Minor keymap update to layouts/community/ortho_4x12/junonum/ (#9021) 2020-05-05 23:05:16 +10:00
XScorpion2
dc00942be1 Xulkal Changes (#9004)
* Xulkal Changes

* Fixing alt keymap
2020-05-05 13:54:26 +01:00
halfenergized
e8f842e798 Update TGR 910 VID/PID (#8988)
To fix the vendor ID and product ID
2020-05-04 23:37:45 +01:00
Jake Happersett
3745ebc22b [Keyboard] Fix Romeo ANSI Split Matrix (#9002) 2020-05-04 23:09:53 +01:00
Ryan
d646cba72a Remove Bluefruit protocol (#9008)
* Remove Bluefruit protocol

* Remove dir from doxygen TODO pile
2020-05-04 23:05:45 +01:00
Jeremy Bernhardt
15e84f79f1 gBoards Common (#8921)
Co-Authored-By: Drashna Jaelre <drashna@live.com>
2020-05-04 12:49:47 -04:00
skullY
6f30b402a2 Revert "Fix conflicting types for 'tfp_printf' (#8269)"
This reverts commit e17b55e33a.
2020-05-04 09:25:44 -07:00
QMK Bot
1ff526dac0 format code according to conventions [skip ci] 2020-05-04 06:59:44 +00:00
Joel Challis
e17b55e33a Fix conflicting types for 'tfp_printf' (#8269)
* Refactor to use mpaland/printf

* trim firmware size

* remove keymap changes

* run clang format

* Fixup after rebase

* fix up git-submodule command for printf
2020-05-03 23:19:51 -07:00
Ryan
f31bf1b202 Disable console and command on TGR 910CE (#9011) 2020-05-03 15:56:10 +01:00
Joel Challis
5f82b0782f Initial vusb console support (#8559) 2020-05-03 01:25:39 +01:00
Joshua Moses Diamond
2e6959ed87 Add some usages needed for ChromeOS hosts (#8996) 2020-05-03 10:24:11 +10:00
Joel Challis
c482a2944b Provide a mechanism for split keyboards to process key press on both halves (#9001) 2020-05-03 00:39:37 +01:00
Josef Adamcik
65c8ac9ac9 Add more improvements from PR 2020-05-02 10:03:17 +02:00
Joel Challis
e182a38e7c Add redirect for old getting started links (#8987) 2020-05-02 04:29:55 +01:00
buzzlighter1
fe4581c1a1 Formatting (#8981) 2020-05-02 03:30:20 +01:00
JohSchneider
ddd055b1e2 Audio_Enable, AVR template update (#8901)
* Branch point for 2020 May 30 Breaking Change

* audio-configuration: template: audio_avr.c does NOT default to C6

not on its own, it needs a pin configured per define in config.h for audio to actually work
otherwise only parts of the code are included in the firmware, wasting space and possibly breaking builds because auf hitting the firmware-size limits

* audio-configuration: strip comment to bare essentials

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

* revert future change

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Johannes <you@example.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: zvecr <git@zvecr.com>
2020-05-01 21:30:12 +01:00
Joel Challis
f7324ec684 Add xd002 support (#8598)
* Add xd002 support

* tidy some whitespace

* align filename

* Update keyboards/xd002/info.json

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

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-05-01 17:59:22 +01:00
Josef Adamcik
3d760caa85 Improve according to suggestion in PR 2020-05-01 16:37:07 +02:00
Ahmed Elshafey
750c7c2bdb [Documentation] Added raw hid documentation page (#7640)
* Added raw hid feature documentation page

* Update docs/feature_rawhid.md

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

* Update docs/feature_rawhid.md

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

* Update docs/feature_rawhid.md

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

* Update docs/features.md

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

* added feature_rawhid.md to _summary.md in docs

* fixed _summary.md order

* Update docs/feature_rawhid.md

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

* Update feature_rawhid.md

Removed the useless bit about finding usage page and usage.

* Update feature_rawhid.md

* Update docs/feature_rawhid.md

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* Update docs/feature_rawhid.md

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* Update docs/feature_rawhid.md

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* Update docs/feature_rawhid.md

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* Remove teensy client, small origanization fixes

* Fixed merge conflicts
Removed features.md
Updated _summary.md with new format and added RAW HID entry under Software Features

* Added rawhid feature page
Messy is what you get when you don't do things right the first time

Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-05-01 23:41:58 +10:00
Eriq M. Adams
4846c8eba0 Add Via Keymap to Blackplum (#8975) 2020-05-01 13:16:59 +10:00
Josef Adamcik
3de4c3ea6a Remove duplicated layers for MAC/WIN support 2020-04-30 20:21:08 +02:00
umi
830bd5460c [Docs] Japanese translation of docs/feature_key_lock.md (#8948)
* add feature_key_lock.md translation

* update based on comment

* set link as lang dir
2020-05-01 01:43:22 +09:00
umi
9f54a26dc0 [Docs] Japanese translation of docs/feature_haptic_feedback.md (#8874)
* add feature_haptic_feedback.md translation

* update based on comment

* update based on comment
2020-05-01 01:42:33 +09:00
Ryan
16a15c1cfc QMK-ify some GPIO macros (#8315) 2020-04-30 16:24:47 +10:00
Ryan
37a4b53c4f BACKLIGHT_ON_STATE config.h fixes (#8862) 2020-04-30 16:24:13 +10:00
Josef Adamcik
a84d239661 Fix mistake in the latest commit 2020-04-29 17:30:04 +02:00
Josef Adamcik
41fd60d624 Sofle: Remove LAYOUT_kc macro for default layout. Remove unnecessary code. 2020-04-29 17:18:14 +02:00
QMK Bot
231464c49c format code according to conventions [skip ci] 2020-04-29 11:38:51 +00:00
JohSchneider
d26a14c169 add 'togglePin' convenience function (#8734)
* add 'togglePin' conveniance function

for AVR and chibios

* drop outmost parantheses

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

* toggle pin on avrs

toggle a pin configured as output by writing the corresponding bit to the PIN register

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

* togglepin: add documentation for newly added function

* Update docs/internals_gpio_control.md

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

* on AVR: use PORTD to toggle the output

... since not all MCUs support toggling through writing to PIN

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

Co-authored-by: Johannes <you@example.com>
Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-29 04:04:29 -07:00
Mikkel Jeppesen
195be50745 [Keyboard] Vitamins included VIA support (#8876)
* Added VIA support

* added via support to vitamins included

* Added VIA support

* added via support to vitamins included

* Used actual nkro alias
2020-04-29 03:55:54 -07:00
Sergey Vlasov
8fdb229b66 [Keyboard] id80: Transpose matrix to use faster COL2ROW routines (#8930)
* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
2020-04-29 03:52:15 -07:00
Garret G
fd3456f362 [Keymap] Add VIA Keymap to RoMac+ Directory (#8966) 2020-04-29 03:11:02 -07:00
QMK Bot
812d80efbd format code according to conventions [skip ci] 2020-04-29 08:57:41 +00:00
Drashna Jaelre
86c4c4e91d Convert clipping variables in rgblight.c to a structure (#7720) 2020-04-29 10:22:28 +02:00
Josef Adamcik
168ba88ada Add SofleKeyboard support to QMK firmware. 2020-04-29 09:15:45 +02:00
yd-null
5f5c2a219c [Keyboard] Add via support for cypher rev5 PCB (#8898) 2020-04-28 21:42:50 -07:00
Drashna Jaelre
e415198235 A few final edits to the keymap and readme. (#8845)
* A few final edits to the keymap and readme.

* Update keyboards/xd75/keymaps/buzzlighter1/readme.md

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

* Update keyboards/xd75/keymaps/buzzlighter1/readme.md

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

* Update keyboards/xd75/keymaps/buzzlighter1/readme.md

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

* Update keyboards/xd75/keymaps/buzzlighter1/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-28 21:01:52 -07:00
Nick Brassel
b17482c3fd Add SPI master for ChibiOS/ARM. (#8779) 2020-04-29 14:01:20 +10:00
Umberto Baldi
5b4870c046 fix sick68 space key handwiring location (#8962)
* fix space key handwiring location

* fix mechmerlin layout

* Revert changes from mechmerlin layout

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

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

* revert

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-29 00:45:51 +01:00
Joel Challis
374525c995 Allow some usbconfig.h overrides at the keyboard level (#8647) 2020-04-29 00:17:54 +01:00
Alexander Hart
e02a3c559d Edit Unit Testing Documentation (#8961) 2020-04-29 07:39:08 +10:00
Chris Ko
e1217dae5a [Keymap] add chriskopher keymap for usb-usb converter (#8856) 2020-04-28 03:10:42 -07:00
Eric Gebhart
485a0b0bc3 [Keymap] Added Xd75 and viterbi keymaps,refactored my userspace. (#8776) 2020-04-28 02:58:42 -07:00
HASU
23cfc4b145 [Keyboard] latinpad(Original:hasupad,RENAMED latinpad) (#8766)
Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-Authored-By: Drashna Jaelre <drashna@live.com>
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-04-28 02:54:22 -07:00
QMK Bot
bd639752db format code according to conventions [skip ci] 2020-04-28 07:04:07 +00:00
Ryan
aaeef7a833 Add Romanian keymap and sendstring LUT (#8852) 2020-04-28 16:23:48 +10:00
TheFourthCow
0d6614f71f adding info.json for funky40 (#8956) 2020-04-27 21:30:10 -07:00
MechMerlin
d322ec5452 [Keyboard] TGR 910 CE (#8940)
* initial commit for TGR 910 CE

* got firmware working on the 910 CE

* add VIA support

* add iso and all layouts

* update information about resetting the board

* fixup default keymap to have a second layer

* fixup default keymap

* add VIA enabled keymap

* cleanups and adding community layout support

* add caps lock led support and backlight

* add qmk configurator support

* Update keyboards/tgr/910ce/info.json
2020-04-27 18:17:12 -07:00
Garret G
c7449b3840 [Keyboard] Add royal directory and add 2 keyboard releases (#8877)
* add royal project folder and 2 released keyboards

* fix iso keymap clarification

* Apply suggestions from code review

* Update keyboards/the_royal/schwann/schwann.h

* Update keyboards/the_royal/liminal/liminal.h

* Update keyboards/the_royal/schwann/keymaps/default/keymap.c

* Apply suggestions from code review

new

* Update keymap.c

* Update keymap.c

* Apply suggestions from code review

* Update rules.mk

* add rules.mk to schwann default

* Apply suggestions from code review

* add rules.mk to shwann default
2020-04-27 14:35:03 -07:00
TheFourthCow
4c51049b2b [Keyboard] Add Funky40 support (#8942)
* Adding all relevant files for the Funky40

This should add all proper files for the funky40 a keyboard I designed for myself, /u/TheFourthcow, a 40% ortholinear with split spacebar.

* Second attempt to add all relevant files for the funky40, includes all reccomended changes from my previous pull request

* Revised most files for Funky40 including reccomenations from my previous pull request

* further modifications made to default funky40 board, compiles on my side with no errors hopefully this one works!

* Update keyboards/funky40/readme.mk.mk

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

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

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

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

* Update keyboards/funky40/config.h

* updating readmes and keymap

* final update to keymap and readmes should function correctly with updates requested

* made changes as requested by noroadsleft to config and readme
2020-04-27 14:19:06 -07:00
mpstewart
dd60fcda28 [Keymap] Add personal layout: dz60:mpstewart (#8938)
* mpstewart dz60 layout

* Remove macro aliases from keymap

* Remove macro aliases from keymap

* Update keyboards/dz60/keymaps/mpstewart/keymap.c

* Remove macro aliases from keymap

* use AG_TOGG instead of AG_SWAP

Also some commentary changes, and a change to one of the layout graphics
2020-04-27 14:05:12 -07:00
Stefano
fd6b674b49 [Keymap] Gherkin SuperMicro 28 (#8886)
* Gherkin SuperMicro 28

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk

* removed jpegs

* removed jpegs

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk

* removed firmware sizes

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c

* Update keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk

* Update keymap.c
2020-04-27 13:11:02 -07:00
Erovia
2c0deb8a13 Update and try to clarify the CLI installation on Linux (#8783)
* Update and try to clarify the CLI installation on Linux

* Update commands, add note for Debian/Ubuntu

* Update docs/newbs_getting_started.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-27 20:29:31 +01:00
Daniel Dylewsky
a904371b29 [Keymap] Vitamins_included keymap vitavim (#8864)
* Add new keymap to vitamins_included, this has four layers. Updated config file to sync rgb between the two halves.

* Cleaned up and added documentation for the keymap

* Updated the keymaps and documentation.

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/config.h

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
2020-04-27 10:29:27 -07:00
Aplyard
cfdd105d9d [Keyboard] Aplx2 osu! keyboard (#8847)
* Create test.txt

* aplx6

* Delete test.txt

* fff

* Delete ffff

* test compile

* Create README.md

* edited

* requests

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/rules.mk

* Update keyboards/aplx6/rules.mk

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* pins update

* update

* update pins

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* initial commit

* Update aplx2.h

* Update keyboards/aplx2/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx2/README.md

* folder change

* Update keyboards/handwired/aplx2/README.md

* Update keyboards/handwired/aplx2/README.md

* latest suggestion

* Update keyboards/handwired/aplx2/README.md
2020-04-27 10:25:51 -07:00
umi
82ae6ee007 [Docs] Japanese translation of docs/feature_grave_esc.md (#8873)
* add feature_grave_esc.md translation

* update based on comment

* update based on comment

* update based on comment

* update based on comment

* update based on comment
2020-04-27 00:47:15 -07:00
umi
f220e7d713 [Docs] Japanese translation of docs/feature_hd44780.md (#8875)
* add feature_hd44780.md translation

* update based on comment

* update based on comment

* update based on comment
2020-04-27 00:43:41 -07:00
Joel Challis
3cb6fb2935 Merge pull request #8931 from kbrock/kle2info_2
[kle2json] fix rounding in output
2020-04-26 22:23:54 +01:00
Keenan Brock
5c666398d5 kle2info: trim down x and y output
fixes quirks with float implementation.

before:
{"label":"Esc", "x":0.66, "y":1.45}, {"label":"!", "x":1.6600000000000001, "y":1.45}

after:
{"label":"Esc", "x":0.66, "y":1.45}, {"label":"!", "x":1.66, "y":1.45}
2020-04-26 12:20:40 -04:00
Keenan Brock
a47915d2d2 kle2json: fix invocation error
resolves an issue while finding the file path

TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str'
2020-04-26 12:19:37 -04:00
umi
6ec3cc029e [Docs] Japanese translation of docs/feature_dynamic_macros.md (#8842)
* add feature_dynamic_macros.md translation

* add header

* add header

* update based on comment

* update based on comment
2020-04-26 23:10:05 +09:00
Jonathan Rascher
4597f2bcc8 [Keymap] Make personal keymaps a bit more consistent (#8915)
* Move menu key on ergo boards to match staggered

* Unify 60_tsangan_hhkb and 60_ansi_split_bs_rshift

* Sync KBD67, Quefrency with community layouts

* Update ergo KLE images

* Update community layout KLE images

* Update KLE images/descriptions for remaining keebs
2020-04-25 23:01:43 -07:00
Michele Ferri
52af38da37 [Keyboard] Add pimentoso/paddino02 (#8756)
* added pimentoso/paddino02

* pimentoso/paddino02 fix config

* pimentoso/paddino02 fix right handed keymap

* pimentoso/paddino02 fix readme

* pimentoso/paddino02 code style

* pimentoso/paddino02 code style

* pimentoso/paddino02 code style

* pimentoso/paddino02 fix readme

* pimentoso/paddino02 code style

* pimentoso/paddino02 code style
2020-04-25 15:45:55 -07:00
Joel Challis
b2dbc3f515 Merge pull request #8896 from Salicylic-acid3/master
Correction of the number of LEDs and DEVICE_VER
2020-04-25 23:40:39 +01:00
Joel Challis
86b62eadc2 Merge pull request #8881 from Maartenwut/ta-65-via
Add VIA support for ta-65
2020-04-25 23:16:15 +01:00
Brandon Schlack
3337eb10b2 New 65 ANSI Blocker layouts: Split BS, Tsangan (#8793)
* Add 65 ANSI Blocker Split BS default layout

- Add new 65 ANSI Blocker Split BS layout as many 65 ANSI Blocker layouts also support split backspace

* Add 65 ANSI Blocker Tsangan default layout

- Add new 65 ANSI Blocker Tsangan layout as many 65 ANSI Blocker layouts also support a split backspace and a 7u bottom row configuration.

* Fix file names

* Fix 65_ansi_blocker_tsangan keymap

* Fix 65_ansi_blocker_split_bs alignment

* Fix readme name for 65_ansi_blocker_split_bs

* Change 65_ansi_blocker_tsangan to 2u backspace

* Change spaces in preview to NBSP

* Change more spaces in preview to NBSP (right-alt)
2020-04-25 14:29:43 -07:00
Danny
32bab55def Add Keebio lighting defaults (#8884)
* Set Iris LED/RGB defaults

* Add lighting defaults for more boards
2020-04-25 14:26:26 -07:00
buzzlighter1
47fc2f8855 Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-25 15:22:05 +03:00
buzzlighter1
ee29b515ec Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-25 15:21:57 +03:00
buzzlighter1
c031e13982 Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-25 15:21:34 +03:00
Salicylic-acid3
84bf82f2c9 Update keyboards/7skb/rev1/config.h
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-25 07:30:32 +09:00
Salicylic-acid3
af26238385 Update keyboards/7skb/rev1/config.h
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-25 07:30:18 +09:00
Joel Challis
28e5969f78 Merge pull request #8897 from Maartenwut/ta-65-encoder
Add encoder support to ta-65
2020-04-24 22:42:43 +01:00
Joel Challis
59246756e5 Merge pull request #8905 from marhalloweenvt/marhalloweenvt_dev
[p1800fl] Adjust info.json to work with QMK Config tool
2020-04-24 22:42:13 +01:00
Joel Challis
423ce39f18 Merge pull request #8806 from awkannan/202004_obliterated75
Add Obliterated75 Keyboard
2020-04-24 21:39:41 +01:00
Joel Challis
217debff07 Merge pull request #8807 from danielhklein/uni660rev2
Add uni660 rev2 support
2020-04-24 21:37:18 +01:00
Joel Challis
52e9719d09 Merge pull request #8867 from bbeckford/master
Configure RGBLIGHT_SLEEP for cospad
2020-04-24 21:35:20 +01:00
Joel Challis
9df367e227 Fix ISO Enter order in Wasdat info.json (#8891) 2020-04-24 19:52:58 +01:00
Ryan
8650b9f10c VIA keymap for JJ4x4 and general cleanup (#8888) 2020-04-24 19:52:27 +01:00
Maarten Dekkers
5c9c45619e Change keymap encoder code
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-24 19:41:05 +02:00
marhalloweenvt
09caf19389 Adjust info.json to work with QMK Config tool 2020-04-25 00:08:14 +07:00
marhalloweenvt
4baf49191f [Keyboard] Add p1800fl (#8879)
* My commit message

* Adjust p1800fl
2020-04-24 17:05:57 +01:00
Maarten Dekkers
427da3c19c Update Plain60 VIA keymap (#8882)
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-04-24 16:59:33 +01:00
Maarten Dekkers
1df8bb3cdb Update keymap.c
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-24 01:40:01 +02:00
Maarten Dekkers
99eacdc47a [Keyboard] Add VIA support for Wasdat Code (#8892)
* Add VIA keymap

Also adds more backlight levels.

* Change wasdat code PID

* Alias LAYOUT_fullsize_iso to LAYOUT_all

* Change VIA layout macro to LAYOUT_all

Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-04-23 13:38:24 -07:00
Peter Becich
5e235d30c7 [Keymap] Dvorak for Keeb.io Iris (#8863)
* Dvorak keymap for Iris

Tested to work with Iris rev. 2

Squashed commit of the following:

commit c7a1bcf831e79953e81dda4a014b90daf4f63276
Author: Peter Becich <peterbecich@gmail.com>
Date:   Sat Oct 13 17:34:11 2018 -0700

    backtick

commit 7a7f6a5fec56446f973a4f145c5f8d002de6cd08
Author: Peter Becich <peterbecich@gmail.com>
Date:   Sun Sep 23 17:27:17 2018 -0700

    iris dvorak

commit 625461097eb1ba4585a716853999a0f30daffb2b
Author: Peter Becich <peterbecich@gmail.com>
Date:   Sun Sep 23 17:22:01 2018 -0700

    iris dvorak

* dvorak keymap readme

* key correction, keymap readme

* Apply suggestions from code review

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

* revise backspace key

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-23 21:07:58 +01:00
Ryan
6586280bf3 Add missing packages to Linux install scripts (#8895) 2020-04-23 21:56:36 +02:00
Marc
0722986d7a Added YD60MQ ISO layout (#8815) 2020-04-24 05:19:01 +10:00
Maarten Dekkers
22a10cc8a3 Add encoder to ta-65 default keymap 2020-04-23 20:59:32 +02:00
Maarten Dekkers
b349fa0a57 Add encoder to ta-65 2020-04-23 20:57:49 +02:00
Ramon Imbao
e98a9578a1 [Keyboard] Add VIA support for Wete, fix layout error (#8802)
* Add VIA support for Wete

* Fix incorrect layout for ANSI and ISO
2020-04-23 11:55:40 -07:00
Salicylic-acid3
d2b03bf150 Correction of the number of LEDs and DEVICE_VER.
The number of LED is changed from 5 to 6 on one side.
DEVICE_VER was changed to a number with no duplicates.
2020-04-24 02:50:23 +09:00
fauxpark
35ca1c2212 Fix ISO Enter order in Wasdat info.json 2020-04-24 00:10:01 +10:00
Maarten Dekkers
ccc8338b0e [Keyboard] Add wasdat code controller (#8858)
* Initial keyboard upload

* Code cleanup and product name

* Fix sequence in info.json layouts
2020-04-22 17:01:46 -07:00
Takeshi ISHII
bafa35ff46 fix sample code indent in feature_encoders.md (#8883) 2020-04-23 08:56:22 +10:00
Maarten Dekkers
182286680a Add VIA support for ta-65 2020-04-22 22:39:53 +02:00
Jonathan Rascher
c1c579c554 [Keymap] Clean up my ergo keymaps and userspace (#8857)
* Remove more mouse keys settings missed in #8836

* Turn off more unwanted make options

* clang-format my userspace

* Reword ergo layout docs so Crkbd is canonical

* Add a basic readme to my userspace

* Tweak Crkbd readme wording and fix typos

* Enable SPLIT_USB_DETECT for Lily58 w/ Elite-C bug
2020-04-22 13:26:51 -07:00
pngu
19bd8aa942 idb 60 Bugfixes / Preparations for Open Source Hardware (#8866)
* Added idb 60 keyboard

* fixed info.json

* implemented revievers' suggested changes

* fixed an error

* implemented revievers' suggestions

* further cleanup

* implemented suggested changes

* fixed errors

* checkout

* delete old files

* delete old files

* preparations for open source hardware files

* revert eager debounce mode to default

* fix indicator LEDs stuck in "on" mode, rename ESC LED to fn LED (rev 2 PCB will have another LED slot on the right shift FN key)

* cleanup

* cleanup

* lost+found lufa

* lost+found lufa

* lost+found lufa

* lost+found lufa

* lost+found lufa

* Update keyboards/idb/idb_60/keymaps/pngu/keymap.c

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

* Update idb_60.h

* Update idb_60.h

* made suggested changes

* Update keyboards/idb/idb_60/idb_60.h

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

Co-authored-by: root <root@DESKTOP-QQ80MAV.localdomain>
Co-authored-by: tbrandt <thorben.brandt@dg-cybersicherheit.de>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-22 13:17:57 +01:00
Daniel Klein
d0d105b083 split config.h 2020-04-21 16:53:49 -07:00
Daniel Klein
c0a57c2a50 split rev2.h for ansi and iso 2020-04-21 16:51:11 -07:00
Rossman360
738c6612ca Rebound: add rev2 and thus rev1 as well (#8630)
* add rev2 and thus rev1 as well

* nitpicks :)

* buncha stuff

* back to one rev

* back to community layout with errors

* I see you've met my typo

* remove default48 kemap rules

* re-rework into 2 revs

* readme changes

* whitespace cleanup

* default folder

* rev1 be default
2020-04-21 23:25:13 +01:00
Andrew Kannan
643fc1d806 Update keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-21 12:03:42 -04:00
Mikkel Jeppesen
f78896589e Update vitamins included default keymap, enable NKRO, rev2 rgbsplit (#8871)
* Update default vitamins_included keymap

* Turned on NKRO support
* Added NKRO toggle key to keymap
* Cleaned up key map to be more up to date with current standards

* configured RGBLED_SPLIT
2020-04-21 13:15:29 +01:00
Alex Ong
837ffd0006 Update to xealousbrown. (#8215)
* Update to xealousbrown.

5-13ms Latency decrease, 4x scan rate improvement.
(CUSTOM_MATRIX = lite) is a really great feature!

* Updated Readme.md, added an extra speedhack.

* More optimizations

* Update keyboards/handwired/xealousbrown/rules.mk

* Update keyboards/handwired/xealousbrown/rules.mk
2020-04-21 00:41:15 -07:00
Nicholas Junker
92a50a386a [Keyboard] DMQ Design SPIN (#8820)
* added SPIN keyboard and respective keymaps

* Update keyboards/dmqdesign/spin/keymaps/default/keymap.c

* Update keyboards/dmqdesign/spin/keymaps/encoderLayers/keymap.c

* Update keyboards/dmqdesign/spin/rules.mk

* Update keyboards/dmqdesign/spin/spin.c

* Update keyboards/dmqdesign/spin/spin.h

* Update keyboards/dmqdesign/spin/keymaps/encoderLayers/keymap.c

* Update keyboards/dmqdesign/spin/readme.md

* Update keyboards/dmqdesign/spin/readme.md

* Update keyboards/dmqdesign/spin/spin.h

* Update keyboards/dmqdesign/spin/rules.mk

* Update keyboards/dmqdesign/spin/config.h

* Update keyboards/dmqdesign/spin/keymaps/encoderLayers/keymap.c

* Update keyboards/dmqdesign/spin/keymaps/encoderLayers/keymap.c

* changed keymap to all lowercase, removed LED typecasts

* made encoderLayers all lowercase

* fixed the duplicate folder after changing name (hopefully)

* fixed the info.json, followed the keyboard support doc

* Update keyboards/dmqdesign/spin/info.json

* Update keyboards/dmqdesign/spin/info.json

* Update keyboards/dmqdesign/spin/info.json

* Update keyboards/dmqdesign/spin/info.json
2020-04-20 19:55:17 -07:00
TerryMathews
357c6009be Wheatfield Blocked65: Update RGBLED num (#8725)
Evidently there is a polycarb variant with underglow LEDs. This change should support that without negatively impacting aluminum case variant which only has 2 RGB LEDs on top.
2020-04-20 17:27:52 -07:00
Sergey Vlasov
e916ce5f3e Add VIA support to ID80 (#8791) 2020-04-20 16:06:48 -07:00
Brandon Schlack
086a7cf800 CFTKB Mysterium & Discipad VIA support (#8794)
* [Keyboard] Add VIA support to Mysterium

* [Keyboard] Add VIA support to Discipad
2020-04-20 16:00:01 -07:00
Ryan
99f7fe6bd4 Clean up ATSAM ifdefs (#8808) 2020-04-20 15:38:34 -07:00
umi
d0c3a4c8d5 [Docs] Japanese translation of docs/feature_encoders.md (#8843)
* add feature_encoders.md translation

* update based on comment
2020-04-20 15:36:04 -07:00
Fred Silberberg
2dca087b04 Add naked60 layout, clean up my userspace files and rules.mk. (#8848) 2020-04-20 11:00:14 +01:00
Ben Beckford
b80340c207 Merge branch 'master' of https://github.com/bbeckford/qmk_firmware 2020-04-20 10:58:45 +01:00
Ben Beckford
cb4a86475e Changed default RGBLIGHT_SLEEP for cospad 2020-04-20 10:58:36 +01:00
huajijam
7e4cf9ace2 Fixing DecadePad Numlock LED Bug (#8831)
* Fixing Numlock LED Bugs

* Change LED CODE to new API
2020-04-20 10:54:33 +01:00
umi
0d658e0c95 [Docs] Japanese translation of docs/feature_command.md (#8672)
* add feature_command.md translation

* update based on comment
2020-04-20 14:49:12 +09:00
Jared Hendry
1522d97c2b Add support for YMD75 rev 2 (#8853) 2020-04-20 00:58:58 +01:00
Konstantin Đorđević
2d39a9dcdb Remove no-longer-necessary LTO checks from keyboards' config.h files (#8773)
* Remove no-longer-necessary LTO checks from keyboards' config.h files

* Remove unnecessary LTO check in @danielo515's Ergodox EZ keymap

* Remove unnecessary USE_Link_Time_Optimization checks from keyboards' config.h files

Note: DISABLE_LEADER doesn't seem to be used anywhere
2020-04-19 23:56:48 +01:00
Maarten Dekkers
33bf4863f5 Fix ta-65 tsangan layouts (#8855)
The key next to the spacebar wasn't working, fixed that.

Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-04-19 23:29:15 +01:00
Maarten Dekkers
ad547c1fdd Fix Plain60 layout (#8854)
Fixes the LAYOUT_60_ansi_split_bs_rshift where the key next to right shift didn't work.

Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-04-19 23:12:19 +01:00
Chris Ko
9b70e53508 [Docs] Fixed minor typos (#8860) 2020-04-19 23:04:26 +01:00
khitsule
33a5dc4fcf [Keymap] Updates to personal keymaps (#8818)
* sync with upstream; initial iris design

* sync with upstream

* update to iris keymap

* merge upstream

* iris keymap refined

* Iris readme update

* messed up upstream merge somehow, hopefully fixed

* removed extra closing bracket

* Apply suggestions from code review

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

* change layers from define to enum per suggestions

Co-authored-by: Mysti Woodard <mystiwoodard@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-19 10:15:12 -07:00
Elisiano Petrini
e0fffcde99 Updated personal preonic keymap (#8851) 2020-04-20 03:12:48 +10:00
MechMerlin
06bffbd45b [Keyboard] VIA Support: Singa x TGR Unikorn 60 (#8838)
* add via keymap

* change up VID and PID

* enabling the RGB just so VIA has access to it
2020-04-19 10:11:55 -07:00
MechMerlin
c261076f8e [Keyboard] VIA Support: KBD67mkii SOLDERED (#8837)
* add VIA keymap to soldered kbd67mkii

* clean up config file
2020-04-19 10:11:32 -07:00
Erovia
51ecd37d7b Add VIA support for Minivan (#8849)
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-19 18:44:05 +02:00
Toshihiro Suzuki
ed5e69093c Update my keymaps (#8840) 2020-04-20 01:17:47 +10:00
Ryan
43785126a7 Merge pull request #8710 from vomindoraan/keymap_extras_fixup 2020-04-19 19:18:05 +10:00
skullydazed
8c97b4a3a4 Add a syllabus to guide people who are learning QMK (#8816) 2020-04-19 09:08:38 +02:00
Joel Challis
0698b15aa5 Update cli CI checkout to v2 (#8823) 2020-04-19 09:08:12 +02:00
Jonathan Rascher
d600631ad1 [Keymap] Rework my Tsangan layout; turn off mousekeys (#8836)
* Give Tsangan layout a real Fn2 layer

* Disable mouse keys to work around qmk#8323

I don't actually use this feature, so there's no reason for it to be
enabled anyway, and it seems to cause spurious wakeups on Windows.
2020-04-18 18:41:40 -07:00
Josh Hinnebusch
f3595f65b7 [Keyboard] add dual-direction diode capability for hbcp (#8795)
* add dual-direction diode capability

* update per PR requests

Co-authored-by: hineybush <hineybushkeyboards@gmail.com>
2020-04-18 18:06:28 -07:00
mechanicalguy21
23df763a31 [Keyboard] Adding Novem keyboard (macropad) and demo layout (#8781)
* Adding Novem keyboard (macropad) and demo layout

* Making changes suggested during pull request

* Removing keyboards/novem/keymaps/default/config.h as suggested during the pull request

* Moving keyboard to the handwired folder and changing the build line from readme in order to reflect this new location
2020-04-18 17:58:58 -07:00
Konstantin Đorđević
ed910c8e97 Add back deprecated SE_AE keycode 2020-04-19 02:56:52 +02:00
Cody Bender
7e1c0bd4c0 [Keyboard] Add Absinthe keyboard (#8769)
* Initial absinthe setup

* Update Absinthe files

* Add absinthe ANSI layout

* Update absinthe keymaps

* Update Absinthe for rev3

* Flip encoder pins

* Fix rules.mk

* Update absinthe files

* Fix absinthe ansi config

* Add RGB

* Change rules for absinthe for firmware size

* Fix pins for rev4

* Fix pins and GESC

* Remove GESC from ANSI layout

* Rebase upstream/master

* Update formatting and convention from 8769 feedback

* Format rules.mk
2020-04-18 17:40:13 -07:00
Spaceman
d2b8398f75 [Keyboard] Add DGG-56 Handwired (#8740)
* Add ddg_56 keyboard

* Add ddg_56 default keymap

* Fix config.h

* Update config.h

* Update ddg_56.h

* Update keyboards/handwired/ddg_56/readme.md

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

* Update keyboards/handwired/ddg_56/readme.md

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

* Update keyboards/handwired/ddg_56/info.json

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-18 17:20:42 -07:00
joseandres42
195324cc4c Add dvorak's spanish variant to quantum/keymap_extras (#8732)
* Added dvorak's spanish variant.

* Fixed spacing

* Fixed filename typo

* Applied fixes and suggestions.

* Fixed spacing

* Added sendstring_spanish_dvorak.h

* Fixed sendstring_spanish.h

* Update quantum/keymap_extras/sendstring_spanish_dvorak.h

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

* Update quantum/keymap_extras/sendstring_spanish.h

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

* Update quantum/keymap_extras/sendstring_spanish_dvorak.h

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

Co-authored-by: joseandres42 <joseandres42@Orion-PC.localdomain>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-18 17:12:36 -07:00
Ryan
cd5399942b Merge pull request #8722 from fauxpark/keymap-extras-bepo 2020-04-19 06:58:01 +10:00
Ryan
fd4bbd8d11 Update Italian macOS keymaps and add sendstring LUTs (#8701)
* Update Italian macOS keymaps and add sendstring LUTs

* Wrong letter
2020-04-19 06:57:36 +10:00
Ryan
f43cb31476 Update French and German macOS keymaps and add sendstring LUTs (#8700) 2020-04-19 06:57:05 +10:00
Ryan
89eb3a9e42 Update Swiss French/German keymaps and add sendstring LUTs (#8689) 2020-04-19 06:56:49 +10:00
skullydazed
66d94dc22a Move everything to Python 3.6 (#8835) 2020-04-18 22:00:56 +02:00
MechMerlin
5a8f59503e VIA Support: All QMK Winkeyless.kr boards (#8846) 2020-04-18 21:45:24 +02:00
skullydazed
7918f7d61d Document the Proton C pins for manual Pro Micro conversion (#7043) 2020-04-18 10:58:59 -07:00
buzzlighter1
a6bd8fe67b Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-18 20:32:24 +03:00
worldspawn00
55b43f02f0 fixing Walletburner Neuron layout for configurator (#8839)
* fixing layout for configurator

adding missing bottom row key to resolve formatting
2020-04-18 10:27:47 -07:00
buzzlighter1
db4b11f866 A few final edits to the keymap and readme. 2020-04-18 18:16:11 +03:00
Erovia
46a84ec84a Load keymap-level rules.mk when compiling keymap.json (#8841) 2020-04-18 14:29:48 +01:00
James Young
3b5998085c Add info.json for bat43 (#8824) 2020-04-17 19:26:04 +01:00
Andrew Kannan
7a9980fd85 Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-17 11:04:25 -04:00
Ryan
bc13dcd349 Remove Atmel FLIP from install scripts and documentation (#8822) 2020-04-17 09:50:58 +02:00
moyi4681
55002338b1 add kbd67 rev2 via support, kbd67mkiirgb small change (#8810)
* add kbd67 rev2 via support, kbd67mkiirgb small change

add kbd67 rev2 via support, kbd67mkiirgb small change

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

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

* define DYNAMIC_KEYMAP_LAYER_COUNT 2
2020-04-16 17:41:56 -07:00
Andrew Kannan
99d9250045 Apply suggestions from code review
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-16 16:20:43 -04:00
MechMerlin
4a92dd327c [Keyboard] Botanical Keyboards FM2U (#8819)
* initial commit for fm2u keyboard

* add fm2u keyboard along with VIA keymap

* add meme LAYOUT support

* minor cleanups

* fixup layout macro names
2020-04-16 12:28:49 -07:00
Mikkel Jeppesen
7873b49d40 Keeb.werk nano.slider Improved Default Layout (#8785)
* Improved default layout to match improved layout from configurator PR

* fixed keycode spacing

* Update keyboards/keebwerk/nano_slider/keymaps/default/keymap.c
2020-04-16 12:04:27 -07:00
stanrc85
fcf2b45263 Update stanrc85 rules for alice/rev1 (#8821) 2020-04-16 16:57:32 +01:00
umi
5607af8524 [Docs] Japanese translation of docs/feature_combo.md (#8671)
* add feature_combo.md translation

* change tiny word

* update based on comment

* update based on comment
2020-04-15 22:08:00 -04:00
Ryan
5a45627e17 Remove old setup scripts (#8811) 2020-04-16 00:32:40 +01:00
Andrew Kannan
17d0f6338e [Keyboard] ProjectKB Alice rev2 (#8718)
* Add revision 1 and revision 2 to ProjectKB Alice PCB

* Swap SLEEP LED to no

* Basic root rules.mk

* Apply suggestions from code review

* Update keyboards/projectkb/alice/rules.mk
2020-04-15 15:37:47 -07:00
skullydazed
484c059d86 MILC: Fix setting config values for store_true and store_false (#8813) 2020-04-15 22:49:22 +02:00
James Young
3cc68543ca KC60 Refactor (#8782) 2020-04-15 22:31:09 +02:00
MakotoKurauchi
daf6dedb02 Fix quick7 build command (#8812) 2020-04-16 03:35:42 +10:00
Andrew Kannan
7a0d145e27 Whitespace changes
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-15 12:35:24 -04:00
Ryan
e990863296 Miscellaneous stuff: remove clang-complete and autocomplete.sh, fix some rules.mk comments (#8784) 2020-04-15 02:03:49 -07:00
Daniel Klein
d06340f665 uni660rev2 added 2020-04-14 21:25:25 -07:00
Andrew Kannan
4c0065dda7 Add new obliterated75 files 2020-04-15 00:04:03 -04:00
MakotoKurauchi
2ae39ccf38 [Keyboard] add new keyboard quick7 (#8670)
* add new keyboard quick7

* Update keyboards/yushakobo/quick7/keymaps/default/keymap.c

* Update keyboards/yushakobo/quick7/quick7.c

* Update keyboards/yushakobo/quick7/rules.mk

* Update keyboards/yushakobo/quick7/keymaps/default/keymap.c

* Update keyboards/yushakobo/quick7/readme.md

* Update keyboards/yushakobo/quick7/rules.mk

* Update keyboards/yushakobo/quick7/rules.mk

* Deleted unnecessary file.

* Comment added.

* Update keyboards/yushakobo/quick7/config.h

* Update keyboards/yushakobo/quick7/readme.md

* Update keyboards/yushakobo/quick7/keymaps/default/keymap.c

* Update keyboards/yushakobo/quick7/config.h
2020-04-14 18:45:14 -07:00
Jason Scatena
5185c52b4a [Keymap] Added custom layout for KBDFans KBD67 rev2 (#8752)
* added v1 of keyboard layout

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

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

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

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

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

* Delete config.h
2020-04-14 18:38:48 -07:00
x1
c0b99badcb [keyboard] Add kudox rev3 (#8704)
* Add kudox rev3.

* Add default keymap for Kudox rev3.

* Add JIS keymap for Kudox rev3.

* Modified default revision of kudox rev3.

* Modified unnecessary codes.
2020-04-14 18:24:56 -07:00
Pete Johanson
f9bb9ef0b8 CLI: Fix doctor error when can't run bin/qmk --version. (#8796) 2020-04-14 16:58:00 +02:00
Øyvind Wilhelmsen
3d9ffd3efb deleted unused keymap (#8797) 2020-04-14 12:09:33 +01:00
mimkorn
3cea9fedff Add missing repository name to qmk setup w/ github (#8792)
Using just qmk setup <github_username> would fail w/ "Could not find repo github.com/<username>, whereas the repo is actually after another slash after the user name. Can consider changing code to add the default forked repo name if slash is not detected in the arg.
2020-04-14 21:03:13 +10:00
eucalyn
575d99816e Configure RGBLIGHT_SPLIT for Mint60 (#8788) 2020-04-13 23:40:15 +01:00
Aplyard
4bccde37d4 [Keyboard] Aplx6 (#8727)
* Create test.txt

* aplx6

* Delete test.txt

* fff

* Delete ffff

* test compile

* Create README.md

* edited

* requests

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/rules.mk

* Update keyboards/aplx6/rules.mk

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md

* pins update

* update

* update pins

* Update keyboards/aplx6/README.md

* Update keyboards/aplx6/README.md
2020-04-13 12:13:41 -07:00
Pavlos Vinieratos
f6b40da7f8 update pvinis keymap (#8746)
* update a bunch of stuff

Better rules, better config, added encoders, lights, audio.

* some fmt

* more fmt
2020-04-13 11:59:04 -07:00
Pete Johanson
6fb048fdaf CLI: Use shutil.which to detect gmake, instead of OS check. 2020-04-13 10:48:27 -07:00
Pete Johanson
06b571aa53 CLI: Invoke gmake on FreeBSD when using qmk compile.
* Current makefiles aren't portable, so invoke gmake on FreeBSD.
2020-04-13 10:48:27 -07:00
umi
355b693e4e [Docs] Japanese translation of docs/feature_dip_switch.md (#8673)
* add git_dip_switch.md translation

* update based on comment

* update based on comment
2020-04-13 10:25:57 -07:00
Casey Leask
f514ad5503 Fix broken KBD8X MKII Hardware link (#8787) 2020-04-13 15:45:51 +01:00
fauxpark
09a1917103 Slight rename of double angle quote keycodes 2020-04-13 21:15:37 +10:00
Nick Brassel
46e4493761 Fix AVR SPI parameter configuration, remove timeouts due to sync protocol. (#8775) 2020-04-13 17:09:50 +10:00
MechMerlin
157d121c71 VIA Support: Jane V2 (#8735)
* add VIA enabled keymap with some layers taken out for space

* get a more sane VID and PID so we don't collide with the other BMC powered boards

* small cleanups

* Update keyboards/tgr/jane/keymaps/via/keymap.c

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

* add tkl_ansi_tsangan LAYOUT

* add tkl_iso_tsangan LAYOUT

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-13 08:21:22 +02:00
Gautham Yerroju
7e6b550ebf Add a simple custom keymap for Gergo. (#8662)
* Add a simple custom keymap for Gergo.

* update readme, keymap cleanup
2020-04-13 07:37:23 +02:00
Joshua Rubin
7f4ce4a8b7 Add via support to keebio/bdn9 (#8620)
Signed-off-by: Joshua Rubin <me@jawa.dev>
2020-04-13 07:32:46 +02:00
MechMerlin
6452973761 DP60 VIA cleanups (#8697)
* some via cleanups for the dp60 firmware

* update matrix size
2020-04-13 07:28:05 +02:00
codecoffeecode
a2309b306a Adding Niu Mini to VIA (#8702)
* porting the niu_mini to via

* Wrong values in mk

* Updating to unique Vendor ID and Product ID

* Addressing zvecr comments

* Addressing fauxpark comments

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

Co-authored-by: Lauren Harris <lauren.y.harris@outlook.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-13 07:22:26 +02:00
Nick Brassel
52ac6c4303 Allow trailing whitespace in markdown docs, for formatting purposes. (#8774) 2020-04-13 11:31:40 +10:00
Nick Brassel
05e9ff6554 Add support for hardware and board initialisation overrides. (#8330)
* Add support for hardware and board initialisation overrides.

* qmk cformat.

* Add some documentation.

* Docs clarity.

* Make early_hardware_init_pre a no-op for now, until migrations occur.

* Doco update

* Make distinction between keyboard and ChibiOS board in docs

* Doc anchors.

* Update tmk_core/protocol/chibios/main.c

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

* Rework bootloader entry to be off by default, allow opting-in.

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-13 09:39:38 +10:00
Sergey Vlasov
17bda000f3 [Keyboard] Add IDOBAO ID80 (#8728)
* id80: New keyboard (IDOBAO ID80)

Add initial support for the IDOBAO ID80 keyboard.

Most source files were generated by the KBFirmware JSON to QMK Parser
(https://noroadsleft.github.io/kbf_qmk_converter/) based on the
ID80.json file provided by the keyboard vendor.  The only change to
rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware
fit into the available flash space.

* id80: Update default keymap to match stock

Update the Fn layer in the default keymap to match the stock firmware
which was actually flashed into the PCB.

* id80: Add Caps Lock indicator support

Although the KBFirmware JSON includes information about the MCU pins
used for keyboard indicator LEDs, the KBF to QMK converter does not
generate the required code automatically.  Implement the LED handling
code, and at the same time switch from the older `led_set_kb` API to the
newer `led_update_kb`.

* id80: Remove placeholder functions

The provided skeletons for `matrix_scan_kb` and `process_record_kb` did
not do anything useful, so remove them.

* id80: Use Esc as the Bootmagic Lite activation key

The Esc key is not at the (0, 0) position in the ID80 matrix, therefore
setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to
use the Esc key for Bootmagic Lite.

* id80: Update info.json

Replace info.json generated by the KBF to QMK converter with another
version generated using http://www.keyboard-layout-editor.com/ and the
KLE raw to QMK info.json converter (https://qmk.fm/converter/).  The
updated info.json has the correct physical layout (the distance between
the function key row and the main block is actually 0.25U, but the
vendor-provided ID80.json had 0.5U there) and correct key labels (using
the stock layout instead of raw matrix locations and pin names).

* id80: Enable NKRO

The default keymap is updated to have NK_TOGG at Fn+N, like most other
keyboards which have NKRO enabled.

* id80: Use unique USB vendor/product ID

Having an unique USB vendor/product ID is required for VIA support.
The vendor ID value is the same as for the `idobo` (ID75) keyboard.

* id80: Fix right modifiers in the default keymap

For some reason the default keymap converted from the vendor-supplied
JSON had the right Shift, Alt and Ctrl keys mapped to the left side
modifier keycodes.

* id80: Remove empty row 6 (F0) from matrix

The matrix layout which was defined in the vendor-supplied ID80.json
file had 12 rows which corresponded to the left and right parts of the
6 physical rows.  However, the row 6 of the matrix (connected to the F0
pin), which corresponded to the right part of the physical bottom row,
was completely empty (all 9 keys of the bottom row were placed in the
matrix row for the left part).  Keeping this row in the matrix just
wastes resources; in particular, when the VIA support is enabled, having
a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic
macros, which is less than the recommended minimum of 128 bytes.
Removing the unused row reduces the matrix size to 9×11, which leaves
194 bytes of EEPROM space for dynamic macros.

* id80: Update row numbers in the LAYOUT macro

Update row numbers in the names of the LAYOUT macro parameters after
removing a row in the middle.

* id80: Set RGBLED_NUM to 20 to match the actual PCB

The vendor-supplied ID80.json file specified that the PCB should have
28 RGB LEDs in the chain.  However, the actual PCB that was shipped
from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4
more LEDs on top of the PCB, to the right of the Enter key location).
Update RGBLED_NUM to match the actual PCB.
2020-04-12 23:55:01 +01:00
Danny
46a69d1f3b [Keyboard] Quefrency Rev2 Caps Lock LED, set lighting defaults (#8729)
* Add support for Caps Lock LED

Currently ignores the fact that led_state is not synced between halves, so caps lock LED doesn't do anything if USB is plugged into right half

* Set initial backlight and RGB mode/values on blank EEPROM

* Set default VIA layout options

* Add backlight/RGB ifdefs

* Set bootloaders for each rev
2020-04-12 13:09:09 -07:00
Derek
b56a41800a [Keyboard] Add handwired Fc200rt qmk board (#8726)
* Added handwired Leopold fc200rt

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Delete readme.md

* Delete config.h

* Update readme.md

* Update rules.mk

* Update keyboards/handwired/fc200rt_qmk/fc200rt_qmk.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-12 13:05:46 -07:00
Takeshi ISHII
d3c29c9b3c Bugfix for quantum/dip_switch.c (#8731)
* dipsw test on helix/rev2/sc/back:five_rows

* bug fix quantum/dip_switch.c

* test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"

This reverts commit 4b13ebb996.

* dipsw test on helix/rev2/sc/back:five_rows

* update quantum/dip_switch.c

* test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"

This reverts commit bf99ace095.
2020-04-12 12:44:24 -07:00
Konstantin Đorđević
370577e4ed Add *OPT aliases for *ALT keycodes and macros (#8714) 2020-04-12 11:37:55 -07:00
George Petri
6e84247ec2 [Keymap] Add keymap for Nyquist rev3 (#8706)
* copy nyquist setup

* enable i2c

* update colors

* update readme

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

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-12 11:33:11 -07:00
QMK Bot
5380c29dd7 format code according to conventions [skip ci] 2020-04-12 18:11:52 +00:00
artjomsR
23f19852b9 Added Workman ZXCVM variation (#8686)
* Added Workman ZXCVM variation

* Update quantum/keymap_extras/keymap_workman_zxcvm.h

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

* Update quantum/keymap_extras/sendstring_workman_zxcvm.h

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

* Update quantum/keymap_extras/keymap_workman_zxcvm.h

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

* Update quantum/keymap_extras/keymap_workman_zxcvm.h

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

* Update quantum/keymap_extras/sendstring_workman_zxcvm.h

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

Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-04-12 10:37:17 -07:00
jotix
8a5c1e1859 [Keyboard] jotpad16 status leds (#8643)
* jotpad16 status leds

* jotpad16

* readme.md
2020-04-12 10:25:09 -07:00
Benjamin Smith
6265b78307 [Keyboard] Add handwired BDN9-BLE (#8192)
* Add handwired BDN9-BLE

* Apply suggestions from code review

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

* Update keyboards/handwired/bdn9_ble/rules.mk

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

* Update keyboards/handwired/bdn9_ble/rules.mk

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

* Update keyboards/handwired/bdn9_ble/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-04-12 09:15:31 -07:00
Drashna Jaelre
23124b9fd1 Fix bug with layer caching in get_event_keycode (#8693)
* Fix bug with layer caching in get_event_keycode

* Improve naming
2020-04-12 17:27:17 +02:00
Andrew Kannan
eb7fc7f9d9 [Keyboard] Add CannonKeys Atlas keyboard (#8207)
* Atlas keyboard

* Update info and readme

* Update firmware

* Apply suggestions from code review

* Updates

* Add 2x2U layout

* Minor cleanup

* Fix trailing comma

* Remove line

* Apply suggestions from code review
2020-04-12 08:08:15 -07:00
Ryan
c2df714c3b Add VIA keymap for Wasdat (#8762)
* Add VIA keymap for Wasdat

* Enable Bootmagic Lite at keyboard level
2020-04-12 15:02:14 +02:00
Andrew Kannan
799b21f8cd [Keyboard] Add CannonKeys Rekt1800 keyboard (#7760)
* Add Rekt1800 keyboards

* Update keyboards/cannonkeys/rekt1800/config.h

* Update keyboards/cannonkeys/rekt1800/info.json

* Apply suggestions from code review

* Apply suggestions from code review

* Remove line

* Apply suggestions from code review
2020-04-12 03:36:03 -07:00
Joshua Moses Diamond
750179e111 Fix a couple of typos that were causing confusion (#8767) 2020-04-12 16:22:59 +10:00
James Forcier
f538b2273a Upgrade gcc version/tweak package installs in Gentoo installation (#8757)
GCC 4.9.4 is no longer available on Gentoo (or Sabayon), which causes
problems when attempting to install on either of these platforms. Since
QMK is not particularly sensitive to its GCC version, modify the version
restriction to <9 so newer versions of GCC may be installed. Since the
toolchain for arm-none-eabi isn't currently installed as part of setup,
add that as well.

Additionally, drop the Python installation as part of the Gentoo
installation process. Python is a core system package on Gentoo and can
therefore be assumed to be present; in addition, the slot restriction of
3.5 which was present is also no longer available in Gentoo.

Finally, separate the gcc rebuild invocation of `emerge` from the new
packages that may need to be installed, and apply the `--noreplace` flag
to new packages so that they are not rebuilt if already present.
2020-04-12 16:13:45 +10:00
Joel Challis
50e85f91e8 Fix compile issues with devastatingtkl (#8765) 2020-04-12 14:53:30 +10:00
Andrew Kannan
27e7f322a5 CannonKeys DB60 (Daughterboard60) PCB (#8208)
* Cannonkeys DB60 Keyboard

* WhitespacE

* Add ISO and make layer names more idiomatic

* backlight enable

* Remove big backslash from ISO

* Apply suggestions from code review

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

* Update for correct matrix

* Apply suggestions from code review

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

* Update chibios config files

* Complete VIA keymap

* Remove ugly hack comments

* Update keyboards/cannonkeys/db60/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-11 23:21:36 +01:00
Andrew Kannan
dfdc89296b DevastatingTKL Keyboard (#8209)
* Save progress

* Finished matrix and everything

* Apply suggestions from code review

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

* Update DevastatingTKL

* Renames

* Add renamed files

* Update chibios files and VIA keymap for completion

* Some cleanup

* Apply suggestions from code review

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

* Update keyboards/cannonkeys/devastatingtkl/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-04-11 23:19:44 +01:00
James Young
671020af08 hineybush Physix Configurator bugfix (#8761)
* file linting

* fix object order
2020-04-11 12:42:13 +01:00
Purdea Andrei
b8c3f4c60b quantum/debounce: Added sym_pk debounce algorithm (#8587)
* quantum/debounce: Added sym_pk debounce algorithm

* Apply suggestions from code review

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

* quantum/debounce/sym_pk: delete comments and rename functions following code review

* quantum/debounce/sym_pk: Modifications for code readability according to code review

* quantum/debounce/sym_pk: Modifications for code readability according to code review (2)

* quantum/debounce/sym_pk: code review: cleaner code

Co-Authored-By: Nick Brassel <nick@tzarc.org>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-04-11 21:29:48 +10:00
Takeshi ISHII
511fe643c2 [Keymap] fix OLED display on Helix keyboard keymaps default and… (#8737)
Since #7773, the mode number of RGBlight is no longer displayed on the Helix OLEDs. I fixed this.
2020-04-11 10:41:12 +02:00
moyi4681
f7601dba13 change kbd67 rev1 and rev2 default keymaps (#8758)
* change kbd67 default keymap
2020-04-10 20:15:23 -07:00
Reid
89cab95b63 [Keyboard] Add splitish (#8751)
* Added personal minivan keymap, and started work on splitish directory

* Merge branch 'splitish' of github.com:RSchneyer/qmk_firmware into splitish

Trying to undo attempted fix

Added splitish keyboard files, removed personal Minivan keymap

* Removed personal Minivan keymaps

* Fixed small issue in readme

* Added changes based on inital PR feedback

* forgot a semicolon

* Quick config.h file and default keymap update
2020-04-11 11:43:21 +10:00
QMK Bot
cc38627816 format code according to conventions [skip ci] 2020-04-11 00:48:16 +00:00
Purdea Andrei
6c2c3c13e9 Various fixes to how timer differences are calculated (#8585)
* tmk_core/common: Fixing TIMER_DIFF macro to calculate difference correctly after the timer wraps.

Let's go through an example, using the following macro:

If the first timer read is 0xe4 and the second one is 0x32, the timer wrapped.
If the timer would have had more bits, it's new value would have been 0x132,
and the correct difference in time is 0x132 - 0xe4 = 0x4e

old code TIMER_DIFF_8(0x32, 0xe4) = 0xff - 0xe4 + 0x32 = 0x4d, which is wrong.
new code TIMER_DIFF_8(0x32, 0xe4) = 0xff + 1 - 0xe4 + 0x32 = 0x4e, which is correct.

This also gives a chance for a smart compiler to optimize the code using normal
integer overflow.

For example on AVR, the following C code:
uint8_t __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
    return TIMER_DIFF_8(current_timer, start_timer);
}
With the original code, it gets translated to the following list of instructions:
00004c6e <test>:
    4c6e:       98 2f           mov     r25, r24
    4c70:       86 1b           sub     r24, r22
    4c72:       96 17           cp      r25, r22
    4c74:       08 f4           brcc    .+2             ; 0x4c78 <test+0xa>
    4c76:       81 50           subi    r24, 0x01       ; 1
    4c78:       08 95           ret
But with this commit, it gets translated to a single instruction:
00004c40 <test>:
    4c40:       86 1b           sub     r24, r22
    4c42:       08 95           ret

This unfortunately doesn't always work so nicely, for example the following C code:
int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
    return TIMER_DIFF_8(current_timer, start_timer);
}
(Note: return type changed to int)
With the original code it gets translated to:
00004c6e <test>:
    4c6e:       28 2f           mov     r18, r24
    4c70:       30 e0           ldi     r19, 0x00       ; 0
    4c72:       46 2f           mov     r20, r22
    4c74:       50 e0           ldi     r21, 0x00       ; 0
    4c76:       86 17           cp      r24, r22
    4c78:       20 f0           brcs    .+8             ; 0x4c82 <test+0x14>
    4c7a:       c9 01           movw    r24, r18
    4c7c:       84 1b           sub     r24, r20
    4c7e:       95 0b           sbc     r25, r21
    4c80:       08 95           ret
    4c82:       c9 01           movw    r24, r18
    4c84:       84 1b           sub     r24, r20
    4c86:       95 0b           sbc     r25, r21
    4c88:       81 50           subi    r24, 0x01       ; 1
    4c8a:       9f 4f           sbci    r25, 0xFF       ; 255
    4c8c:       08 95           ret
Wth this commit it gets translated to:
00004c40 <test>:
    4c40:       28 2f           mov     r18, r24
    4c42:       30 e0           ldi     r19, 0x00       ; 0
    4c44:       46 2f           mov     r20, r22
    4c46:       50 e0           ldi     r21, 0x00       ; 0
    4c48:       86 17           cp      r24, r22
    4c4a:       20 f0           brcs    .+8             ; 0x4c54 <test+0x14>
    4c4c:       c9 01           movw    r24, r18
    4c4e:       84 1b           sub     r24, r20
    4c50:       95 0b           sbc     r25, r21
    4c52:       08 95           ret
    4c54:       c9 01           movw    r24, r18
    4c56:       84 1b           sub     r24, r20
    4c58:       95 0b           sbc     r25, r21
    4c5a:       93 95           inc     r25
    4c5c:       08 95           ret
There is not much performance improvement in this case, however at least with this
commit it functions correctly.

Note: The following commit will improve compiler output for the latter example.

* tmk_core/common: Improve code generation for TIMER_DIFF* macros

Because of integer promotion the compiler is having a hard time generating
efficient code to calculate TIMER_DIFF* macros in some situations.
In the below example, the return value is "int", and this is causing the
trouble.

Example C code:

int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
    return TIMER_DIFF_8(current_timer, start_timer);
}

BEFORE: (with -Os)

00004c40 <test>:
    4c40:       28 2f           mov     r18, r24
    4c42:       30 e0           ldi     r19, 0x00       ; 0
    4c44:       46 2f           mov     r20, r22
    4c46:       50 e0           ldi     r21, 0x00       ; 0
    4c48:       86 17           cp      r24, r22
    4c4a:       20 f0           brcs    .+8             ; 0x4c54 <test+0x14>
    4c4c:       c9 01           movw    r24, r18
    4c4e:       84 1b           sub     r24, r20
    4c50:       95 0b           sbc     r25, r21
    4c52:       08 95           ret
    4c54:       c9 01           movw    r24, r18
    4c56:       84 1b           sub     r24, r20
    4c58:       95 0b           sbc     r25, r21
    4c5a:       93 95           inc     r25
    4c5c:       08 95           ret

AFTER: (with -Os)

00004c40 <test>:
    4c40:       86 1b           sub     r24, r22
    4c42:       90 e0           ldi     r25, 0x00       ; 0
    4c44:       08 95           ret

Note: the example is showing -Os but improvements can be seen at all optimization levels,
including -O0. We never use -O0, but I tested it to make sure that no extra code is
generated in that case.OA

* quantum/debounce: Fix custom wrapping timers in eager_pr and eager_pk debounce algorithms

Please see the below simulated sequence of events:
Column A is the 16-bit value returned by read_timer();
Column B is the value returned by custom_wrap_timer_read();
Column C is the original code: (timer_read() % MAX_DEBOUNCE)

    A,     B,     C
65530,    19,    30
65531,    20,    31
65532,    21,    32
65533,    22,    33
65534,    23,    34
65535,    24,    35
    0     25,     0
    1,    26,     1
    2,    27,     2
    3,    28,     3
    4,    29,     4
    5,    30,     5

read_timer() wraps about every 1.09 seconds, and so debouncing might
fail at these times without this commit.

* quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review.

* quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review. (2)
2020-04-11 10:14:28 +10:00
Joshua Moses Diamond
e4cc642a79 Some refinements of 75_ansi/spidey3 layout (#8581)
* 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

* Numpad layer, various keys for 75_ansi/spidey3

* Add Fn-B to toggle NKRO

* Blink rgb to acknowledge some setting changes

* Updated media control & reset key location

* Minor cleanup

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-04-11 10:10:37 +10:00
Keith Long
c3c3943432 [Keymap] added vim compatibility, backspace above enter, and general macOS opt… (#8080)
* added vim compatibility, backspace above enter, and general macOS optimizations on top of default layout

* add space65 macOS keymap for vim users with an optimized bottom row

* Update keyboards/projectkb/alice/keymaps/keithlo/keymap.c
2020-04-10 14:53:13 -07:00
foxx1337
061ed87b89 Modernize ctrl, shift, alt mods detection (#8724) 2020-04-10 20:19:34 +01:00
Spaceman
5c1aca0b88 Fix spaceman naming (#8741)
* Fix spaceman naming

* Update keyboards/pancake/info.json

* Update keyboards/2_milk/info.json
2020-04-10 00:44:45 -07:00
Marko Bakan
6384a2abd8 [Keyboard] obuwunkunubi/spaget handwired (#8738)
* adding my keymap

* Update keyboards/handwired/obuwunkunubi/spaget/readme.md

* Update keyboards/handwired/obuwunkunubi/spaget/readme.md

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/rules.mk

* Update rules.mk

* Update keyboards/handwired/obuwunkunubi/spaget/spaget.h

* Update keyboards/handwired/obuwunkunubi/spaget/spaget.h

* Update keyboards/handwired/obuwunkunubi/spaget/info.json

* Update keyboards/handwired/obuwunkunubi/spaget/rules.mk

* Update rules.mk

* Update keyboards/handwired/obuwunkunubi/spaget/spaget.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c

* Update keyboards/handwired/obuwunkunubi/spaget/info.json

* Update keymap.c

* Apply suggestions from code review

* Apply suggestions from code review

* Update spaget.h

* Update keymap.c

Updated comments
2020-04-09 12:45:08 -07:00
Konstantin Đorđević
439afc883a [Keymap] Update personal userspace and keymaps (#8747)
* Update mousekey parameters in userspace

* Disable GRAVE_ESC in boards where it isn't used

* Tweak MODERN_DOLCH_RED and reset RGB on Shift+Toggle in KBD6X

* Disable RGB controls when Fn/Caps indicator lights are on

* Use LTO_ENABLE instead of setting -flto directly

* Add led_update_keymap, use SS_LCTL instead of SS_LCTRL

* Change TAPPING_TOGGLE from 2 to 3
2020-04-09 09:54:19 -07:00
Manna Harbour
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
Joshua Rubin
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
George Wietor
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
Konstantin Đorđević
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
Yan-Fa Li
6ef13f83e2 [Keymap] Updates to personal keymaps (#8665) 2020-04-08 18:20:58 -07:00
Konstantin Đorđević
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
stanrc85
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
Danny
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
Jared Giles
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
Erovia
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
Erovia
38f14c4174 Don't hide for devs... 2020-04-08 09:31:14 -07:00
Erovia
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
Erovia
21799be1ca Make dedicated sections for user/dev commands in docs 2020-04-08 09:31:14 -07:00
Erovia
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
Erovia
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
Erovia
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
Salicylic-acid3
ea7e40bae1 Update info.json (#8723)
Addressed a key shift in the QMK Configurator.
2020-04-08 15:09:20 +02:00
QMK Bot
974f83ec4b format code according to conventions [skip ci] 2020-04-08 01:38:16 +00:00
Ryan
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
DennyTom
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
fauxpark
0499f30f59 Update BÉPO keymap and sendstring LUT 2020-04-07 20:50:10 +10:00
elmo-space
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
artjomsR
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
skullY
b4ef72423e Correctly handle json keymaps with ANY() 2020-04-07 01:34:21 -07:00
Konstantin Đorđević
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
Andrew Kannan
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
Joel Challis
6c8e205fc0 Remove keyboard level ws2812 spi drivers (#7694) 2020-04-06 21:31:34 +01:00
Joel Challis
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
Wilba
9bfa713421 Configurable VIA layout options default value (#8707) 2020-04-06 20:27:44 +01:00
Salicylic-acid3
b6fc3ad8e7 Keymap Update jisplit89 (#8708)
Fixed wrong Enter key position.
2020-04-06 19:28:42 +01:00
Konstantin Đorđević
e0909a31c7 GR_DTON → GR_DIAT 2020-04-06 19:32:40 +02:00
Konstantin Đorđević
d6bffdf577 Small corrections to Belgian, Serbian and Slovenian keymaps 2020-04-06 19:10:57 +02:00
Pekaso
d1190df10b fix for split-common (#8703) 2020-04-06 20:47:31 +10:00
fauxpark
bf38f39c3f Wrong letter 2020-04-06 20:15:13 +10:00
James Young
6add103827 add 60_ansi layout to YD60MQ (#8696) 2020-04-05 22:47:24 -07:00
fauxpark
62d1d69ba9 Update Italian macOS keymaps and add sendstring LUTs 2020-04-06 15:30:36 +10:00
QMK Bot
7642075fc3 format code according to conventions [skip ci] 2020-04-05 22:57:28 +00:00
Ryan
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
jotix
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
Joel Challis
2392ddb76b Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
Ryan
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
ThePanduuh
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
Wilba
48cad94d7e Added Caps Lock LED handler to wilba.tech PCBs (#8660) 2020-04-05 15:18:17 +01:00
halfenergized
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
Drashna Jaelre
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
Ryan
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
Ryan
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
Drashna Jaelre
ccb37f673a Add Russian keymap (#8638)
* Add Russian keymap

* Switch to ANSI layout
2020-04-05 00:53:52 -07:00
Ryan
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
Joshua Rubin
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
coseyfannitutti
2fbbac04bb [Keyboard] romeo - add via layout (#8667) 2020-04-04 22:38:25 -07:00
huajijam
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
yfuku
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
skullY
2f15cb2126 minor tweaks 2020-04-04 12:43:13 -07:00
Ross Baquir
8af156d976 Fix saving output from avrdude and dfu-programmer 2020-04-04 12:43:13 -07:00
Ross Baquir
70b5015162 Use version_arg in ESSENTIAL_BINARIES dict 2020-04-04 12:43:13 -07:00
Ross Baquir
3fad3854d6 Fixes #8541 by getting version from -dumpversion then --version as fallback 2020-04-04 12:43:13 -07:00
MechMerlin
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
Ethan Durrant
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
coseyfannitutti
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
ai03
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
Joshua Rubin
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
Joshua Rubin
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
QMK Bot
59188bf29d format code according to conventions [skip ci] 2020-04-02 21:59:37 +00:00
Joel Challis
9c4bf0ac4a Initial support for ATtiny85 (#8632)
* Initial support for ATtiny85

* Update mcu selection
2020-04-02 22:23:57 +01:00
yiancar
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
Takuya Urakawa
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
chemicalwill
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
Joel Challis
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
Ryan
2b427f774a Fix pgm_read_ptr() define for ARM (#8658) 2020-04-02 16:52:16 +01:00
Silvio Gulizia
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
2Moons-JP
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
Xyverz
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
Joel Challis
58a9c84d6b Strip out features to allow minimum firmware sizes (#8645) 2020-04-01 21:06:22 +01:00
yiancar
c217186bea Updated V-USB template to allow usbFunctionWriteOut (#8634) 2020-04-01 17:11:24 +01:00
fauxpark
781308507d Switch to ANSI layout 2020-04-02 03:10:51 +11:00
spe2
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
Ryan
95c5c11d0b Miscellaneous cleanups (#8639)
* Miscellaneous cleanups

* Cast NO_PIN
2020-04-01 15:49:45 +01:00
Joel Challis
b6a09502c6 Migrate :program logic to :flash (#8631) 2020-04-01 13:27:16 +01:00
shela
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
Takuya Urakawa
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
fauxpark
3fe8d604a4 Add Russian keymap 2020-04-01 14:09:34 +11:00
Ryan
194bc7a7e1 Add Slovak keymap and sendstring LUT (#8561) 2020-04-01 14:01:24 +11:00
Ryan
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
Ryan
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
Ryan
712ded1f2f Add Latvian keymap and sendstring LUT (#8563) 2020-04-01 14:00:02 +11:00
Drashna Jaelre
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
Danny
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
mcmadhatter
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
chemicalwill
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
marksard
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
Bram de Wilde
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
Silvio Gulizia
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
Joel Challis
854d46f833 Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
Konstantin Đorđević
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
Ryan
51a81813b0 V-USB: Consolidate usbconfig.h's into a single file (#8584) 2020-03-31 13:17:04 +01:00
shela
8566a684bc Add Japanese translation of cli_commands.md (#8513) 2020-03-31 19:21:47 +09:00
shela
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
shela
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
shela
b9a64ec93b Update Japanese translation of config_options.md 2020-03-31 19:06:18 +09:00
shela
c9067dfe4f Update Japanese translation with prefix 'getting' 2020-03-31 18:30:21 +09:00
Joel Challis
1592d7df24 Fix hasu usb converter bootloader (#8613) 2020-03-30 22:15:08 +01:00
QMK Bot
9acd5e04d5 format code according to conventions [skip ci] 2020-03-30 20:52:13 +00:00
Antosha
0afcb8a36c Added USSR anthem. (#8588) 2020-03-30 22:17:04 +02:00
Takuya Urakawa
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
Sergey Vlasov
b892a1429d Fix inverted backlight for XD87 (#8612) 2020-03-31 02:41:26 +11:00
Damien
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
Danny
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
George Petri
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
Takeshi ISHII
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
Salicylic-acid3
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
Erovia
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
Casper Weiss Bang
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
stanrc85
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
Ryan
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
Ryan
05d9a0ff03 Fix inverted backlight for XD60 (#8575) 2020-03-27 11:00:13 +00:00
MechMerlin
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
Drashna Jaelre
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
Joel Challis
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
Jakub Darowski
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
fauxpark
11f12d386b Fix wrong python-pip package for MSYS setup instructions 2020-03-26 07:50:22 -07:00
Ryan
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
Ryan
981ea87b05 Add Estonian keymap (#8527) 2020-03-26 16:51:07 +11:00
Ryan
65252ebf67 Add Croatian keymap (#8525)
* Add Croatian keymap

* Fix comment on HR_DIAE
2020-03-26 16:50:39 +11:00
Takeshi ISHII
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
QMK Bot
9fbf17b90e format code according to conventions [skip ci] 2020-03-26 03:10:16 +00:00
foxx1337
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
Álvaro A. Volpato
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
tominabox1
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
elmo-space
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
2Moons-JP
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
Joel Challis
6ceaae30f5 Run clang-format manually to fix recently changed files (#8552) 2020-03-25 14:39:53 +11:00
Drashna Jaelre
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
shela
963bba1fc3 [Docs] Update Japanese translation of custom_quantum_functions.md (#8520) 2020-03-24 11:59:31 -07:00
shela
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
shela
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
Hoàng Vương
3b05f25221 [Keymap] shadowprogr's personal keymap (#8497)
* Add personal keymap

* Add keymap readme.md

* Update keymap
2020-03-24 00:13:45 -07:00
shela
e05e671871 Update Japanese translation of flashing.md 2020-03-24 14:26:11 +09:00
shela
2d5b492550 Update Japanese translation of keymap.md 2020-03-24 14:24:19 +09:00
shela
ad8774d6fa Update Japanese translation of contributing.md 2020-03-24 14:19:25 +09:00
Ryan
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
Olivier
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
horza21
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
Xelus22
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
spidey3
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
Ryan
6d1af63842 Add Irish keymap (#8528) 2020-03-22 17:32:43 -07:00
Ryan
6c4a744a1b Add Czech keymap (#8526) 2020-03-22 17:31:19 -07:00
johannbl
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
QMK Bot
76cb2b1160 format code according to conventions [skip ci] 2020-03-22 14:03:14 +00:00
Drashna Jaelre
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
Jeremy Bernhardt
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
brickbots
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
Joel Challis
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
Ryan
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
Ryan
63e4ad13c8 Add Icelandic keymap and sendstring LUT (#8494) 2020-03-22 20:16:24 +11:00
Ryan
f9e67338a4 Add Finnish keymap and sendstring LUT (#8495) 2020-03-22 19:52:54 +11:00
Joel Challis
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
Ryan
147bc6ec43 Remove BOOTLOADER_SIZE stuff from template (#8516) 2020-03-22 08:50:37 +01:00
shela
bea62add55 [Docs] Trivial documentation fix (#8509)
* Trivial documentation fix

* fix

* fix

* fix translation
2020-03-22 13:53:58 +11:00
QMK Bot
d511e52c1f format code according to conventions [skip ci] 2020-03-21 23:44:27 +00:00
Joel Challis
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
James Young
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
James Young
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
James Young
8651eef298 Claw44 rev1 Configurator layout support (#8488) 2020-03-21 12:43:27 -07:00
Ryan
f4799481cd Fix formatting for report.h (#8512) 2020-03-22 06:19:01 +11:00
Wilba
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
Drashna Jaelre
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
QMK Bot
f9c53ca71a format code according to conventions [skip ci] 2020-03-21 12:58:19 +00:00
Ryan
0d189582c1 Update newbs installation procedure for MSYS2 (#8423) 2020-03-21 19:00:44 +11:00
Takashi Shibusawa
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
Joel Challis
d96380e654 Initial arm->chibios pass - simplify some platform logic (#8450) 2020-03-21 16:20:04 +11:00
Ryan
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
Ryan
e967471c4f Remove ACT_COMMAND (#8487)
* Remove ACT_COMMAND

* And from action_t as well
2020-03-21 16:17:43 +11:00
worldspawn00
eca3f9d935 fixing matrix layout (#8504) 2020-03-21 16:07:39 +11:00
Nick Snyder
44c62117ee Highlight .inc files as .c files (#8496) 2020-03-20 09:48:55 +01:00
Wilba
f235822fba Add VIA support to Leaf 60 (#8490) 2020-03-19 22:36:54 -07:00
Ryan
5d5ff807c6 Update JIS keymap and sendstring LUT (#8457) 2020-03-20 12:27:52 +11:00
Diego Song
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
tw1t611
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
jotix
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
Ryan
6bfbdc30ca Fix missing deprecated keycodes for keymap_swedish (#8483) 2020-03-19 02:13:05 +00:00
MechMerlin
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
Ryan
3a0f11eb27 Set MCU for some F103 boards (#8459) 2020-03-19 01:33:17 +00:00
James Young
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
TerryMathews
19d7cbc858 M0lly: refactor OLED support and qmk-dfu bootloader (#8475) 2020-03-19 01:13:12 +00:00
Ryan Miguel
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
zvecr
d235612e48 Also align rules.mk 2020-03-19 00:57:02 +00:00
zvecr
6ad3328b83 Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator builds 2020-03-19 00:43:20 +00:00
Flexerm
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
QMK Bot
0b810bdff3 format code according to conventions [skip ci] 2020-03-18 19:12:13 +00:00
yohewi
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
TerryMathews
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
Takeshi ISHII
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
Derek
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
Naoto Takai
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
Joel Challis
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
Ryan
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
Brandon Schlack
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
Wilba
76d8558b1a VIA support for TKC1800 (#8178)
* VIA support for TKC1800

* Fixed VENDOR_ID
2020-03-18 10:28:13 -07:00
Erovia
8123dd2649 CLI: Hide json-keymap subcommand, as it's been deprecated. 2020-03-18 10:17:23 -07:00
Frederick Hirsch
1ec648932f [Keymap] Add the fsck layout for iris (#8473) 2020-03-18 09:48:00 -07:00
Alfred Maler
427f7b3a39 [Userspace] alfrdmalr: swap # and @ symbols (#8469) 2020-03-17 21:44:55 -07:00
Ryan
c670240503 Update UK keymap and sendstring LUT (#8458) 2020-03-17 17:09:12 -07:00
Jann-Niklas Zimmermann
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
Frei
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
Joel Challis
e34764502f Remove qmk archive generation (#8462) 2020-03-17 21:28:13 +00:00
Jon Roberts
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
Umberto Baldi
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
Erovia
6698af9c3d Fix Dimple VIA keymap (#8466) 2020-03-17 17:04:03 +01:00
Erovia
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
QMK Bot
ece14278ef format code according to conventions [skip ci] 2020-03-17 01:02:01 +00:00
Joel Challis
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
Ryan
7aff643031 Update Italian keymap and add sendstring LUT (#8438) 2020-03-16 14:32:48 +00:00
Ryan
7fe4097792 Update German keymap and sendstring LUT (#8437) 2020-03-16 14:31:48 +00:00
Ryan
652f4492d3 Update French keymap and sendstring LUT (#8436) 2020-03-16 14:30:57 +00:00
Ryan
910c466cfe Update Brazilian keymap and add sendstring LUT (#8435) 2020-03-16 14:30:17 +00:00
Joel Challis
19dbcf3814 Document 'make all:<name>' (#8439)
* Document 'make all:<name>'

* add cli docs

* Apply suggestions from code review

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

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-03-16 14:27:19 +00:00
QMK Bot
c89012566c format code according to conventions [skip ci] 2020-03-16 10:01:22 +00:00
Takeshi ISHII
9dfebb9d67 Remove unnecessary import of rgblight.h in tmk_core/protocol/*/*.c (#8432)
* Remove unnecessary import of rgblight.h in tmk_core/protocol/*/*.c

 * tmk_core/protocol/chibios/main.c
 * tmk_core/protocol/lufa/lufa.c

see #8380 for tmk_core/protocol/vusb/main.c.

* Remove '#include "rgblight.h"' from tmk_core/protocol/vusb/main.c.
2020-03-16 10:26:32 +01:00
coseyfannitutti
2a31fbf9a6 [Keyboard] Add the Romeo keyboard (#8434)
* Add Keyboard - Romeo

* Update rules.mk

* Update readme.md

* Update keyboards/coseyfannitutti/romeo/readme.md

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

* Update keyboards/coseyfannitutti/romeo/romeo.c

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

* Update keyboards/coseyfannitutti/romeo/keymaps/default/keymap.c

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

* Update keyboards/coseyfannitutti/romeo/keymaps/default/keymap.c

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

* Update keyboards/coseyfannitutti/romeo/readme.md

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

* Update keyboards/coseyfannitutti/romeo/rules.mk

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

* Update keyboards/coseyfannitutti/romeo/usbconfig.h

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

* Update keyboards/coseyfannitutti/romeo/usbconfig.h

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

* Update keyboards/coseyfannitutti/romeo/usbconfig.h

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-15 21:46:48 -07:00
Yann Hodique
cce2420bb2 [Keymap] fix sigma keymaps build (#8427)
handle unicode input properly.
2020-03-15 21:42:10 -07:00
James Young
b272c035ba [Docs] Random Fixes (#8340)
* fix CLI section links in the Summary

* fix heading in Pointing Device doc

* fix headings in PS/2 Mouse Support doc

* add explicit section ids to I2C Master Driver doc

* reformat GPIO Controls table

Much like the I2C Master Driver doc, I found this a bit less than ideal to read. (The table was actually wider than the space available for it.)

Reformatted so each GPIO function is an H3 heading, followed by a paragraph and a table of each architecture's old-style function.

* migrate changes from I2C Master Driver doc to Japanese translation

* add explicit anchors to I2C Master Driver docs

* fix code block language markers

The language markers are case-sensitive; using the wrong case means the syntax highlighting doesn't work.

Good: ```c
Bad: ```C

* restore Japanese I2C Master Driver doc to current master

Can't update the internal tracking references accurately until the changes to the English doc are committed to master.

* add explicit anchors to edited files

* change ChibiOS/ARM to ARM/ChibiOS

Because ARM/ATSAM is also a thing that exists.

* fix code block language markers again

Used the wrong markers in a few spots. Also these are apparently always supposed to be lowercase.

* add section anchors to cli.md

* restore table formatting on GPIO Control doc

* remove changes to _summary.md
2020-03-15 20:29:11 -07:00
Ryan
5f1f370463 Update Belgian keymap and sendstring LUT (#8349) 2020-03-16 07:41:34 +11:00
Ryan
49a2fbea0c Update Slovenian keymap and add sendstring LUT (#8350) 2020-03-16 07:40:54 +11:00
Ryan
4b1430fd09 Update Norman keymap and sendstring LUT (#8404) 2020-03-16 07:38:05 +11:00
Ryan
f1c6fa3895 Update Plover keymap (#8405) 2020-03-16 07:37:32 +11:00
jotix
fe1a055391 [Keymap] Update ortho 4x12 jotix layout (#8425)
* ortho 4x12 jotix layout

* jotix ortho_4x12 layout
2020-03-15 17:16:30 +00:00
Ryan
c18b51e68e msys2_install.sh: wrap requirements.txt in quotes (#8424) 2020-03-15 17:15:42 +00:00
skullydazed
dc68418660 Fix some broken links in the docs (#8394)
* fix some broken links

* remove duplicate and confusing material from cli.md

* Switch brazil to the 2 letter country code

* Update docs/_langs.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-15 07:48:44 -07:00
brickbots
499d7c8ce6 [Docs] Update to I2C docs: Clarify address expectation and return values (#8413)
* Clarifying docs for i2c

* Fix typo

* Fix up punctuation

* Implementing great suggestions

* Update docs/i2c_driver.md

* Update docs/i2c_driver.md
2020-03-15 00:17:48 -07:00
QMK Bot
60b020acab format code according to conventions [skip ci] 2020-03-14 21:37:29 +00:00
brickbots
b5be96f8bb Adding OLED scroll setup functions (#8386)
* Adding scroll setup functions:

* Clarifying values stored in oled_scroll_speed
2020-03-14 21:04:34 +00:00
MechMerlin
7aa21cc287 VIA Support: Doro 67 (#8399)
* add via keymap for doro67

* have more sensible VID and PID

* apply the same VIA changes to the regular PCB

* Update keyboards/doro67/rgb/keymaps/via/keymap.c

* Update keyboards/doro67/regular/config.h

* fix some formatting

* add via support for multi doro67
2020-03-14 11:47:29 -07:00
Ryan
d597af9e1e Remove pro_micro.h (#8374)
* Remove pro_micro.h

* Include quantum.h
2020-03-14 15:31:15 +00:00
QMK Bot
03ed819717 format code according to conventions [skip ci] 2020-03-14 14:08:48 +00:00
Wilba
141535c9db Realign dynamic macros with recent SEND_STRING changes (#8407) 2020-03-14 13:35:12 +00:00
NeoTheFox
a92947fcdb added olkb_style layout for XD75 (#8409)
* added olkb_style layout for XD75

* removed unnecessary config.h

* cleaned up empty functions

* refactored fuction type for clarity

* renamed the layout
2020-03-14 13:32:26 +00:00
Takeshi ISHII
cde5237a88 fix two links on docs/other_eclipse.md (#8417) 2020-03-14 13:25:21 +00:00
3003 changed files with 121501 additions and 60970 deletions

View File

@@ -1,24 +0,0 @@
-I.
-I./drivers
-I./drivers/avr
-I./keyboards/ergodox_ez
-I./keyboards/ergodox_ez/keymaps/vim
-I./lib
-I./lib/lufa
-I./quantum
-I./quantum/api
-I./quantum/audio
-I./quantum/keymap_extras
-I./quantum/process_keycode
-I./quantum/serial_link
-I./quantum/template
-I./quantum/tools
-I./quantum/visualizer
-I./tmk_core
-I./tmk_core/common
-I./tmk_core/common/debug.h
-I./tmk_core/protocol
-I./tmk_core/protocol/lufa
-I./util
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"

View File

@@ -19,7 +19,7 @@ jobs:
container: qmkfm/base_container
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install dependencies

2
.gitignore vendored
View File

@@ -24,6 +24,7 @@ quantum/version.h
.idea/
CMakeLists.txt
cmake-build-debug
.clang_complete
doxygen/
.DS_Store
/util/wsl_downloaded
@@ -47,7 +48,6 @@ doxygen/
*.iml
.browse.VC.db*
*.stackdump
util/Win_Check_Output.txt
# Let these ones be user specific, since we have so many different configurations
.vscode/c_cpp_properties.json
.vscode/launch.json

8
.gitmodules vendored
View File

@@ -12,7 +12,13 @@
branch = master
[submodule "lib/googletest"]
path = lib/googletest
url = https://github.com/google/googletest
url = https://github.com/qmk/googletest
[submodule "lib/lufa"]
path = lib/lufa
url = https://github.com/qmk/lufa
[submodule "lib/vusb"]
path = lib/vusb
url = https://github.com/qmk/v-usb
[submodule "lib/printf"]
path = lib/printf
url = https://github.com/qmk/printf

19
.vscode/settings.json vendored
View File

@@ -9,12 +9,17 @@
"**/*.bin": true
},
"files.associations": {
"*.h": "c",
"*.c": "c",
"*.cpp": "cpp",
"*.hpp": "cpp",
"xstddef": "c",
"type_traits": "c",
"utility": "c"
"*.h": "c",
"*.c": "c",
"*.inc": "c",
"*.cpp": "cpp",
"*.hpp": "cpp",
"xstddef": "c",
"type_traits": "c",
"utility": "c"
},
"[markdown]": {
"editor.trimAutoWhitespace": false,
"files.trimTrailingWhitespace": false
}
}

View File

@@ -29,6 +29,9 @@ $(info QMK Firmware $(QMK_VERSION))
endif
endif
# avoid 'Entering|Leaving directory' messages
MAKEFLAGS += --no-print-directory
ON_ERROR := error_occurred=1
BREAK_ON_ERRORS = no
@@ -291,8 +294,8 @@ define PARSE_RULE
$$(info | QMK's make format recently changed to use folder locations and colons:)
$$(info | make project_folder:keymap[:target])
$$(info | Examples:)
$$(info | make planck/rev4:default:dfu)
$$(info | make planck:default)
$$(info | make dz60:default)
$$(info | make planck/rev6:default:flash)
$$(info |)
endif
endef
@@ -559,14 +562,16 @@ endef
%:
# Check if we have the CMP tool installed
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
# Ensure that python3 is installed. This check can be removed after python is used in more places.
if ! python3 --version 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi
# Ensure that bin/qmk works. This will be a failing check after the next develop merge on 2020 Aug 29.
if ! bin/qmk hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi
# Check if the submodules are dirty, and display a warning if they are
ifndef SKIP_GIT
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 50 --init lib/chibios; fi
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 50 --init lib/chibios-contrib; fi
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --depth 50 --init lib/ugfx; fi
if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 50 --init lib/lufa; fi
if [ ! -e lib/vusb ]; then git submodule sync lib/vusb && git submodule update --depth 50 --init lib/vusb; fi
if [ ! -e lib/printf ]; then git submodule sync lib/printf && git submodule update --depth 50 --init lib/printf; fi
git submodule status --recursive 2>/dev/null | \
while IFS= read -r x; do \
case "$$x" in \

2
Vagrantfile vendored
View File

@@ -89,7 +89,7 @@ Vagrant.configure(2) do |config|
Examples:
make planck/rev4:default:dfu
make planck:default
make planck/rev4:default
EOT
end

File diff suppressed because one or more lines are too long

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.' % (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

@@ -21,6 +21,11 @@ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
endif
# Load the keymap-level rules.mk if exists
ifneq ("$(wildcard $(KEYMAP_PATH))", "")
-include $(KEYMAP_PATH)/rules.mk
endif
# Generate the keymap.c
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
bin/qmk json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)

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

View File

@@ -13,52 +13,42 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH += $(SERIAL_PATH)
QUANTUM_SRC += \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes
SRC += $(QUANTUM_DIR)/api/api_sysex.c
SRC += $(QUANTUM_DIR)/api.c
endif
MUSIC_ENABLE := 0
ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE
MUSIC_ENABLE := 1
MUSIC_ENABLE = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/audio/audio.c
else
SRC += $(QUANTUM_DIR)/audio/audio_arm.c
endif
SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE := 1
MUSIC_ENABLE = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
ifeq ($(MUSIC_ENABLE), 1)
MUSIC_ENABLE ?= no
ifeq ($(MUSIC_ENABLE), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(STENO_ENABLE)), yes)
OPT_DEFS += -DSTENO_ENABLE
VIRTSER_ENABLE ?= yes
@@ -80,29 +70,7 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/pointing_device.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi
EEPROM_DRIVER ?= vendor
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
$(error EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
@@ -117,6 +85,11 @@ else
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += i2c_master.c
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += spi_master.c
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), transient)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
COMMON_VPATH += $(DRIVER_PATH)/eeprom
@@ -249,31 +222,18 @@ ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
OPT_DEFS += -DKEY_LOCK_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
endif
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
OPT_DEFS += -DAUTO_SHIFT_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
endif
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH += $(SERIAL_PATH)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH)
@@ -315,11 +275,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
else
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm)
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
else
SRC += $(QUANTUM_DIR)/backlight/backlight_arm.c
endif
SRC += $(QUANTUM_DIR)/backlight/backlight_$(PLATFORM_KEY).c
else
SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c
endif
@@ -371,34 +327,16 @@ ifeq ($(strip $(USB_HID_ENABLE)), yes)
include $(TMK_DIR)/protocol/usb_hid.mk
endif
ifeq ($(strip $(WPM_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/wpm.c
OPT_DEFS += -DWPM_ENABLE
endif
ifeq ($(strip $(ENCODER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/encoder.c
OPT_DEFS += -DENCODER_ENABLE
endif
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
OPT_DEFS += -DHAPTIC_ENABLE
endif
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
SRC += DRV2605L.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DDRV2605L
endif
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
SRC += solenoid.c
OPT_DEFS += -DSOLENOID_ENABLE
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
endif
ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
OPT_DEFS += -DVELOCIKEY_ENABLE
SRC += $(QUANTUM_DIR)/velocikey.c
@@ -417,26 +355,11 @@ ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
endif
ifeq ($(strip $(LEADER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
OPT_DEFS += -DLEADER_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c
OPT_DEFS += -DDIP_SWITCH_ENABLE
OPT_DEFS += -DDIP_SWITCH_ENABLE
SRC += $(QUANTUM_DIR)/dip_switch.c
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
QUANTUM_SRC:= \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no
@@ -494,6 +417,29 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
OPT_DEFS += -DHAPTIC_ENABLE
endif
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
SRC += DRV2605L.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DDRV2605L
endif
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
SRC += solenoid.c
OPT_DEFS += -DSOLENOID_ENABLE
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
endif
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
OPT_DEFS += -DOLED_DRIVER_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
@@ -501,10 +447,34 @@ ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
SRC += oled_driver.c
endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
SPACE_CADET_ENABLE ?= yes
ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
OPT_DEFS += -DSPACE_CADET_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
OPT_DEFS += -DSPACE_CADET_ENABLE
endif
MAGIC_ENABLE ?= yes
@@ -523,3 +493,31 @@ ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c
OPT_DEFS += -DDYNAMIC_MACRO_ENABLE
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
OPT_DEFS += -DCOMBO_ENABLE
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
OPT_DEFS += -DTAP_DANCE_ENABLE
endif
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
OPT_DEFS += -DKEY_LOCK_ENABLE
endif
ifeq ($(strip $(LEADER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
OPT_DEFS += -DLEADER_ENABLE
endif
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
OPT_DEFS += -DAUTO_SHIFT_ENABLE
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
endif
endif

239
docs/ChangeLog/20200530.md Normal file
View File

@@ -0,0 +1,239 @@
# QMK Breaking Change - 2020 May 30 Changelog
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
The list of changes follows.
## Core Changes
### Converting V-USB usbdrv to a submodule
[#8321](https://github.com/qmk/qmk_firmware/pull/8321) and [qmk_compiler#62](https://github.com/qmk/qmk_compiler/pull/62).
These PRs move the V-USB driver code out of the qmk_firmware repository and into a submodule pointed at https://github.com/obdev/v-usb. This will make it easier to update the codebase if needed, while applying any potential QMK-specific modifications by forking it to the QMK GitHub organization.
### Unify Tap Hold functions and documentation
[#8348](https://github.com/qmk/qmk_firmware/pull/8348)
Updates all of the per key tap-hold functions to pass the `keyrecord_t` structure, and include documentation changes.
Any remaining versions or code outside of the main repo will need to be converted:
| Old function | New Function |
|------------------------------------------------------|---------------------------------------------------------------------------|
|`uint16_t get_tapping_term(uint16_t keycode)` |`uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record)` |
|`bool get_ignore_mod_tap_interrupt(uint16_t keycode)` |`bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record)` |
### Python Required In The Build Process
[#9000](https://github.com/qmk/qmk_firmware/pull/9000)
This is the last release of QMK that will work without having Python 3.6 (or later) installed. If your environment is not fully setup you will get a warning instructing you to set it up.
After the next breaking change you will not be able to build if `bin/qmk hello` does not work.
### Upgrade from tinyprintf to mpaland/printf
[#8269](https://github.com/qmk/qmk_firmware/pull/8269)
- Provides debug functionality on ChibiOS/ARM that is more compliant than previous integrations.
- Less maintenence, fewer QMK customisations, and allows QMK to sidestep previous compile and runtime issues.
- A `make git-submodule` may be required after pulling the latest QMK Firmware code to update to the new dependency.
### Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup
[#6480](https://github.com/qmk/qmk_firmware/pull/6480)
- Changes `RGB_DISABLE_AFTER_TIMEOUT` to be based on milliseconds instead of ticks.
- Includes a code cleanup, resulting in a savings of 100 bytes, depending on features used.
- Fixed issues with timeouts / suspending at the wrong time not turning off all LEDs in some cases.
The `RGB_DISABLE_AFTER_TIMEOUT` definition is now deprecated, and has been superseded by `RGB_DISABLE_TIMEOUT`. To use the new definition, rename `RGB_DISABLE_AFTER_TIMEOUT` to `RGB_DISABLE_TIMEOUT` in your `config.h` file, and multiply the value set by 1200.
Before: `#define RGB_DISABLE_AFTER_TIMEOUT 100`
After: `#define RGB_DISABLE_TIMEOUT 120000`
### Switch to qmk forks for everything
[#9019](https://github.com/qmk/qmk_firmware/pull/9019)
Fork all QMK submodules to protect against upstream repositories disappearing.
### code cleanup regarding deprecated macro PLAY_NOTE_ARRAY by replacing it with PLAY_SONG
[#8484](https://github.com/qmk/qmk_firmware/pull/8484)
Removes the deprecated `PLAY_NOTE_ARRAY` macro. References to it are replaced with `PLAY_SONG`, which references the same function.
### fixing wrong configuration of AUDIO feature
[#8903](https://github.com/qmk/qmk_firmware/pull/8903) and [#8974](https://github.com/qmk/qmk_firmware/pull/8974)
`audio_avr.c` does not default to any pin; there has to be a #define XX_AUDIO in config.h at some level for Audio to actually work. Otherwise, the Audio code ends up cluttering the firmware, possibly breaking builds because the maximum allowed firmware size is exceeded.
These changes fix this by disabling Audio on keyboards that have the feature misconfigured, and therefore non-functional.
Also, add a compile-time error to alert the user to a missing pin-configuration (on AVR boards) when `AUDIO_ENABLE = yes` is set.
## Keyboard Refactors
### Migrating Lily58 to use split_common
[#6260](https://github.com/qmk/qmk_firmware/pull/6260)
Modifies the default firmware for Lily58 to use the `split_common` library, instead of including and depending on its own set of libraries for the following functionality:
- SSD1306 display
- i2c for OLED
- Serial Communication
This allows current lily58 firmware to advance with updates to the `split_common` library, which is shared with many other split keyboards.
#### To migrate existing Lily58 firmware:
[Changes to `config.h`](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-445ac369c8717dcd6fc6fc3630836fc1):
- Remove `#define SSD1306OLED` from config.h
[Changes to `keymap.c`](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7):
- Find/Replace each instance of `#ifdef SSD1306OLED` with `#ifdef OLED_DRIVER_ENABLE`
- The following changes are for compatibility with the OLED driver. If you don't use the OLED driver you may safely delete [this section](https://github.com/qmk/qmk_firmware/blob/e6b9980bd45c186f7360df68c24b6e05a80c10dc/keyboards/lily58/keymaps/default/keymap.c#L144-L190)
- Alternatively, if you did not change the OLED code from that in `default`, you may find it easier to simply copy the [relevant section](https://github.com/qmk/qmk_firmware/blob/4ac310668501ae6786c711ecc8f01f62ddaa1c0b/keyboards/lily58/keymaps/default/keymap.c#L138-L172). Otherwise, the changes you need to make are as follows (sample change [here](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7R138-R173))
- [Remove](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7L138-L141) the block
```c
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
#endif
```
- Within the block bounded by `#ifdef OLED_DRIVER_ENABLE` and `#endif // OLED_DRIVER_ENABLE`, add the following block to ensure that your two OLEDs are rotated correctly across the left and right sides:
```c
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master())
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
return rotation;
}
```
- Remove the functions `matrix_scan_user`, `matrix_update` and `iota_gfx_task_user`
- Find/Replace `matrix_render_user(struct CharacterMatrix *matrix)` with `iota_gfx_task_user(void)`
- Find/Replace `is_master` with `is_keyboard_master()`
- For each instance of `matrix_write_ln(matrix, display_fn())`, rewrite it as `oled_write_ln(read_layer_state(), false);`
- For each instance of `matrix_write(matrix, read_logo());`, replace with `oled_write(read_logo(), false);`
### Refactor zinc to use split_common
[#7114](https://github.com/qmk/qmk_firmware/pull/7114) and [#9171](https://github.com/qmk/qmk_firmware/pull/9171)
* Refactor to use split_common and remove split codes under the zinc/revx/
* Add - backlight RGB LED and/or underglow RGB LED option
* Add - continuous RGB animations feature (between L and R halves)
* Fix - keymap files to adapt to changes
* all authors of keymaps confirmed this PR
* Update - documents and rules.mk
### Refactor of TKC1800 to use common OLED code
[#8472](https://github.com/qmk/qmk_firmware/pull/8472)
Modifies the default firmware for TKC1800 to use the in-built I2C and OLED drivers, instead of including and depending on its own set of libraries for the following functionality:
- SSD1306 display
- i2c for OLED
This allows current TKC1800 firmware to advance with updates to those drivers, which are shared with other keyboards.
#### To migrate existing TKC1800 firmware:
[Changes to `config.h`](https://github.com/qmk/qmk_firmware/pull/8472/files#diff-d10b26e676b4a55cbb00d71955116526):
- Remove `#define SSD1306OLED` from config.h
[Changes to `tkc1800.c`](https://github.com/qmk/qmk_firmware/pull/8472/files#diff-3b35bd30abe89c8110717c6972cd2cc5):
- Add the following to avoid debug errors on HID_listen if the screen is not present
```c
void keyboard_pre_init_kb(void) {
setPinInputHigh(D0);
setPinInputHigh(D1);
keyboard_pre_init_user();
}
```
[Changes to `keymap.c`](https://github.com/qmk/qmk_firmware/pull/8472/files#diff-05a2a344ce27e4d045fe68520ccd4771):
- Find/Replace each instance of `#ifdef SSD1306OLED` with `#ifdef OLED_DRIVER_ENABLE`
- The following changes are for compatibility with the OLED driver. If you don't use the OLED driver you may safely delete [this section](https://github.com/qmk/qmk_firmware/blob/e6b9980bd45c186f7360df68c24b6e05a80c10dc/keyboards/lily58/keymaps/default/keymap.c#L144-L190)
- [Remove](https://github.com/qmk/qmk_firmware/pull/6260/files#diff-20943ea59856e9bdf3d99ecb2eee40b7L91-L158) the block
```c
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
#endif
```
- Within the block bounded by `#ifdef OLED_DRIVER_ENABLE` and `#endif // OLED_DRIVER_ENABLE`, add the following block to ensure that your two OLEDs are rotated correctly across the left and right sides:
```c
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master())
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
return rotation;
}
```
- Remove the function `iota_gfx_task_user`
### Split HHKB to ANSI and JP layouts and Add VIA support for each
[#8582](https://github.com/qmk/qmk_firmware/pull/8582)
- Splits the HHKB codebase into two separate folders `keyboards/hhkb/ansi` and `keyboards/hhkb/jp`.
- Adds VIA Configurator support for both versions.
#### Migrating existing HHKB keymaps
- Remove any checks for the `HHKB_JP` definition
- All checks for this definition have been removed, and each version uses the source that is appropriate to that version.
- Move the directory for your keymap into the appropriate `keymaps` directory
- `keyboards/hhkb/ansi/keymaps/` for ANSI HHKBs
- `keyboards/hhkb/jp/keymaps/` for HHKB JPs
- Compile with the new keyboard names
- This PR changes the compilation instructions for the HHKB Alternate Controller. To compile firmware for this controller moving forward, use:
- `make hhkb/ansi` for ANSI-layout HHKBs
- `make hhkb/jp` for HHKB JP keyboards
## Keyboard Moves
- [#8412](https://github.com/qmk/qmk_firmware/pull/8412 "Changing board names to prevent confusion") by blindassassin111
- [#8499](https://github.com/qmk/qmk_firmware/pull/8499 "Move the Keyboardio Model01 to a keyboardio/ subdir") by algernon
- [#8830](https://github.com/qmk/qmk_firmware/pull/8830 "Move spaceman keyboards") by Spaceman (formerly known as Rionlion100)
- [#8537](https://github.com/qmk/qmk_firmware/pull/8537 "Organizing my keyboards (plaid, tartan, ergoinu)") by hsgw
Keyboards by Keyboardio, Spaceman, and hsgw move to vendor folders, while PCBs designed by blindassassin111 are renamed.
Old Name | New Name
:----------------- | :-----------------
2_milk | spaceman/2_milk
at101_blackheart | at101_bh
ergoinu | dm9records/ergoinu
model01 | keyboardio/model01
omnikey_blackheart | omnikey_bh
pancake | spaceman/pancake
plaid | dm9records/plaid
tartan | dm9records/tartan
z150_blackheart | z150_bh
If you own one of these PCBs, please use the new names to compile your firmware moving forward.
## Keycode Migration PRs
[#8954](https://github.com/qmk/qmk_firmware/pull/8954 "Migrate `ACTION_LAYER_TOGGLE` to `TG()`"), [#8957](https://github.com/qmk/qmk_firmware/pull/8957 "Migrate `ACTION_MODS_ONESHOT` to `OSM()`"), [#8958](https://github.com/qmk/qmk_firmware/pull/8958 "Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()`"), [#8959](https://github.com/qmk/qmk_firmware/pull/8959 "Migrate `ACTION_LAYER_MODS` to `LM()`"), [#8968](https://github.com/qmk/qmk_firmware/pull/8968 "Migrate `ACTION_MODS_TAP_KEY` to `MT()`"), [#8977](https://github.com/qmk/qmk_firmware/pull/8977 "Migrate miscellaneous `fn_actions` entries"), and [#8979](https://github.com/qmk/qmk_firmware/pull/8979 "Migrate `ACTION_MODS_KEY` to chained mod keycodes")
Authored by fauxpark, these pull requests remove references to deprecated TMK macros that have been superseded by native QMK keycodes.
Old `fn_actions` action | New QMK keycode
:---------------------- | :--------------
`ACTION_DEFAULT_LAYER_SET(layer)` | `DF(layer)`
`ACTION_LAYER_MODS(layer, mod)` | `LM(layer, mod)`
`ACTION_LAYER_ONESHOT(mod)` | `OSL(mod)`
`ACTION_LAYER_TOGGLE(layer)` | `TG(layer)`
`ACTION_MODS_ONESHOT(mod)` | `OSM(mod)`
`ACTION_MODS_TAP_KEY(mod, kc)` | `MT(mod, kc)`
`ACTION_MODS_KEY(mod, kc)`<br>e.g. `ACTION_MODS_KEY(MOD_LCTL, KC_0)` | `MOD(kc)`<br>e.g. `LCTL(KC_0)`

View File

@@ -6,6 +6,7 @@
* [Testing and Debugging](newbs_testing_debugging.md)
* [Getting Help/Support](support.md)
* [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md)
* FAQs
* [General FAQ](faq_general.md)
@@ -18,7 +19,6 @@
* [Overview](newbs_building_firmware_configurator.md)
* [Step by Step](configurator_step_by_step.md)
* [Troubleshooting](configurator_troubleshooting.md)
* [Problems and Bugs](configurator_problems.md)
* QMK API
* [Overview](api_overview.md)
* [API Documentation](api_docs.md)
@@ -34,7 +34,9 @@
* [Customizing Functionality](custom_quantum_functions.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* [Keymap Overview](keymap.md)
* [Vagrant Guide](getting_started_vagrant.md)
* Development Environments
* [Docker Guide](getting_started_docker.md)
* [Vagrant Guide](getting_started_vagrant.md)
* Flashing
* [Flashing](flashing.md)
* [Flashing ATmega32A (ps2avrgb)](flashing_bootloadhid.md)
@@ -53,7 +55,8 @@
* Simple Keycodes
* [Full List](keycodes.md)
* [Basic Keycodes](keycodes_basic.md)
* [Layer Switching](feature_advanced_keycodes.md)
* [Language-Specific Keycodes](reference_keymap_extras.md)
* [Modifier Keys](feature_advanced_keycodes.md)
* [Quantum Keycodes](quantum_keycodes.md)
* Advanced Keycodes
@@ -72,14 +75,17 @@
* [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)
* [Raw HID](feature_rawhid.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Tap-Hold Configuration](tap_hold.md)
* [Terminal](feature_terminal.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [WPM Calculation](feature_wpm.md)
* Hardware Features
* Displays
@@ -109,6 +115,7 @@
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* History
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)
@@ -120,21 +127,26 @@
* [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)
* ['serial' Driver](serial_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* Python Development
* [Coding Conventions](coding_conventions_python.md)
* [QMK CLI Development](cli_development.md)
* [QMK CLI Config](cli_dev_configuration.md)
* Configurator Development
* QMK API
* [Development Environment](api_development_environment.md)
* [Architecture Overview](api_development_overview.md)
* Hardware Platform Development
* Arm/ChibiOS
* [Early initialization](platformdev_chibios_earlyinit.md)
* QMK Reference
* [Contributing to QMK](contributing.md)
* [Translating the QMK Docs](translating.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

@@ -6,27 +6,28 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)
## When is the next Breaking Change?
The next Breaking Change is scheduled for May 30, 2020.
The next Breaking Change is scheduled for Aug 29, 2020.
### Important Dates
* [x] 2020 Feb 29 - `future` is created. It will be rebased weekly.
* [ ] 2020 May 2 - `future` closed to new PR's.
* [ ] 2020 May 2 - Call for testers.
* [ ] 2020 May 28 - `master` is locked, no PR's merged.
* [ ] 2020 May 30 - Merge `future` to `master`.
* [ ] 2020 May 30 - `master` is unlocked. PR's can be merged again.
* [x] 2020 May 30 - `develop` is created. It will be rebased weekly.
* [ ] 2020 Aug 1 - `develop` closed to new PR's.
* [ ] 2020 Aug 1 - Call for testers.
* [ ] 2020 Aug 27 - `master` is locked, no PR's merged.
* [ ] 2020 Aug 29 - Merge `develop` to `master`.
* [ ] 2020 Aug 29 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
To see a list of breaking change candidates you can look at the [`breaking_change` label](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr). New changes might be added between now and when `future` is closed, and a PR with that label applied is not guaranteed to be merged.
To see a list of breaking change candidates you can look at the [`breaking_change` label](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+label%3Abreaking_change+is%3Apr). New changes might be added between now and when `develop` is closed, and a PR with that label applied is not guaranteed to be merged.
If you want your breaking change to be included in this round you need to create a PR with the `breaking_change` label and have it accepted before `future` closes. After `future` closes no new breaking changes will be accepted.
If you want your breaking change to be included in this round you need to create a PR with the `breaking_change` label and have it accepted before `develop` closes. After `develop` closes no new breaking changes will be accepted.
Criteria for acceptance:
@@ -37,9 +38,9 @@ Criteria for acceptance:
This section documents various processes we use when running the Breaking Changes process.
## Rebase `future` from `master`
## Rebase `develop` from `master`
This is run every Friday while `future` is open.
This is run every Friday while `develop` is open.
Process:
@@ -47,31 +48,31 @@ Process:
cd qmk_firmware
git checkout master
git pull --ff-only
git checkout future
git checkout develop
git rebase master
git push --force
```
## Creating the `future` branch
## Creating the `develop` branch
This happens immediately after the previous `future` branch is merged.
This happens immediately after the previous `develop` branch is merged.
* `qmk_firmware` git commands
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git checkout -b future`
* [ ] `git checkout -b develop`
* [ ] Edit `readme.md`
* [ ] Add a big notice at the top that this is a testing branch.
* [ ] Include a link to this document
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* [ ] `git push origin future`
* [ ] `git push origin develop`
* [ ] `git push --tags`
## 4 Weeks Before Merge
* `future` is now closed to new PR's, only fixes for current PR's may be merged
* `develop` is now closed to new PR's, only fixes for current PR's may be merged
* Post call for testers
* [ ] Discord
* [ ] GitHub PR
@@ -94,15 +95,15 @@ This happens immediately after the previous `future` branch is merged.
## Day Of Merge
* `qmk_firmware` git commands
* [ ] `git checkout future`
* [ ] `git checkout develop`
* [ ] `git pull --ff-only`
* [ ] `git rebase origin/master`
* [ ] Edit `readme.md`
* [ ] Remove the notes about `future`
* [ ] Remove the notes about `develop`
* [ ] Roll up the ChangeLog into one file.
* [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
* [ ] `git push origin future`
* Github Actions
* [ ] Create a PR for `future`
* [ ] `git push origin develop`
* GitHub Actions
* [ ] Create a PR for `develop`
* [ ] Make sure travis comes back clean
* [ ] Merge `future` PR
* [ ] Merge `develop` PR

View File

@@ -27,7 +27,7 @@ If you are contributing core code, and the only reason it needs to go through br
We require submissions that go through the Breaking Change process to include a changelog entry. The entry should be a short summary of the changes your pull request makes &ndash; [each section here started as a changelog](ChangeLog/20190830.md "n.b. This should link to the 2019 Aug 30 Breaking Changes doc - @noroadsleft").
Your changelog should be located at `docs/ChangeLog/YYYYMMDD/PR####.md`, where `YYYYMMDD` is the date on which QMK's breaking change branch &ndash; usually named `future` &ndash; will be merged into the `master` branch, and `####` is the number of your pull request.
Your changelog should be located at `docs/ChangeLog/YYYYMMDD/PR####.md`, where `YYYYMMDD` is the date on which QMK's breaking change branch &ndash; usually named `develop` &ndash; will be merged into the `master` branch, and `####` is the number of your pull request.
If your submission requires action on the part of users, your changelog should instruct users what action(s) must be taken, or link to a location that does so.

View File

@@ -1,45 +1,34 @@
# QMK CLI
# QMK CLI :id=qmk-cli
This page describes how to setup and use the QMK CLI.
# Overview
## Overview :id=overview
The QMK CLI makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
* [Global CLI](#global-cli)
* [Local CLI](#local-cli)
* [CLI Commands](#cli-commands)
### Requirements :id=requirements
# Requirements
QMK requires Python 3.6 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
The CLI requires Python 3.5 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt).
# Global CLI
QMK provides an installable CLI that can be used to setup your QMK build environment, work with QMK, and which makes working with multiple copies of `qmk_firmware` easier. We recommend installing and updating this periodically.
## Install Using Homebrew (macOS, some Linux)
### Install Using Homebrew (macOS, some Linux) :id=install-using-homebrew
If you have installed [Homebrew](https://brew.sh) you can tap and install QMK:
```
brew tap qmk/qmk
brew install qmk
brew install qmk/qmk/qmk
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
```
## Install Using easy_install or pip
### Install Using pip :id=install-using-easy_install-or-pip
If your system is not listed above you can install QMK manually. First ensure that you have python 3.5 (or later) installed and have installed pip. Then install QMK with this command:
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.6 (or later) installed and have installed pip. Then install QMK with this command:
```
pip3 install qmk
python3 -m pip install qmk
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
```
## Packaging For Other Operating Systems
### Packaging For Other Operating Systems :id=packaging-for-other-operating-systems
We are looking for people to create and maintain a `qmk` package for more operating systems. If you would like to create a package for your OS please follow these guidelines:
@@ -47,268 +36,3 @@ We are looking for people to create and maintain a `qmk` package for more operat
* Document why in a comment when you do deviate
* Install using a virtualenv
* Instruct the user to set the environment variable `QMK_HOME` to have the firmware source checked out somewhere other than `~/qmk_firmware`.
# Local CLI
If you do not want to use the global CLI there is a local CLI bundled with `qmk_firmware`. You can find it in `qmk_firmware/bin/qmk`. You can run the `qmk` command from any directory and it will always operate on that copy of `qmk_firmware`.
**Example**:
```
$ ~/qmk_firmware/bin/qmk hello
Ψ Hello, World!
```
## Local CLI Limitations
There are some limitations to the local CLI compared to the global CLI:
* The local CLI does not support `qmk setup` or `qmk clone`
* The local CLI always operates on the same `qmk_firmware` tree, even if you have multiple repositories cloned.
* The local CLI does not run in a virtualenv, so it's possible that dependencies will conflict
# 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
```
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm>, compile keymaps in the repo, or compile the keyboard in the current working directory.
**Usage for Configurator Exports**:
```
qmk compile <configuratorExport.json>
```
**Usage for Keymaps**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
**Usage in Keyboard Directory**:
Must be in keyboard directory with a default keymap, or in keymap directory for keyboard, or supply one with `--keymap <keymap_name>`
```
qmk compile
```
**Example**:
```
$ qmk config compile.keymap=default
$ cd ~/qmk_firmware/keyboards/planck/rev6
$ qmk compile
Ψ Compiling keymap with make planck/rev6:default
...
```
or with optional keymap argument
```
$ cd ~/qmk_firmware/keyboards/clueboard/66/rev4
$ qmk compile -km 66_iso
Ψ Compiling keymap with make clueboard/66/rev4:66_iso
...
```
or in keymap directory
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
...
```
**Usage in Layout Directory**:
Must be under `qmk_firmware/layouts/`, and in a keymap folder.
```
qmk compile -kb <keyboard_name>
```
**Example**:
```
$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi
$ qmk compile -kb dz60
Ψ Compiling keymap with make dz60:mechmerlin-ansi
...
```
## `qmk flash`
This command is similar to `qmk compile`, but can also target a bootloader. The bootloader is optional, and is set to `:flash` by default.
To specify a different bootloader, use `-bl <bootloader>`. Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
**Usage for Configurator Exports**:
```
qmk flash <configuratorExport.json> -bl <bootloader>
```
**Usage for Keymaps**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader>
```
**Listing the Bootloaders**
```
qmk flash -b
```
## `qmk config`
This command lets you configure the behavior of QMK. For the full `qmk config` documentation see [CLI Configuration](cli_configuration.md).
**Usage**:
```
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.
**Usage**:
```
qmk doctor [-y] [-n]
```
**Examples**:
Check your environment for problems and prompt to fix them:
qmk doctor
Check your environment and automatically fix any problems found:
qmk doctor -y
Check your environment and report problems only:
qmk doctor -n
## `qmk json2c`
Creates a keymap.c from a QMK Configurator export.
**Usage**:
```
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`
**Usage**:
```
qmk list-keyboards
```
## `qmk list-keymaps`
This command lists all the keymaps for a specified keyboard (and revision).
**Usage**:
```
qmk list-keymaps -kb planck/ez
```
## `qmk new-keymap`
This command creates a new keymap based on a keyboard's existing default keymap.
**Usage**:
```
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk pyformat`
This command formats python code in `qmk_firmware`.
**Usage**:
```
qmk pyformat
```
## `qmk pytest`
This command runs the python test suite. If you make changes to python code you should ensure this runs successfully.
**Usage**:
```
qmk pytest
```

291
docs/cli_commands.md Normal file
View File

@@ -0,0 +1,291 @@
# QMK CLI Commands
# User Commands
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm>, compile keymaps in the repo, or compile the keyboard in the current working directory.
This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.
**Usage for Configurator Exports**:
```
qmk compile <configuratorExport.json>
```
**Usage for Keymaps**:
```
qmk compile -kb <keyboard_name> -km <keymap_name>
```
**Usage in Keyboard Directory**:
Must be in keyboard directory with a default keymap, or in keymap directory for keyboard, or supply one with `--keymap <keymap_name>`
```
qmk compile
```
**Usage for building all keyboards that support a specific keymap**:
```
qmk compile -kb all -km <keymap_name>
```
**Example**:
```
$ qmk config compile.keymap=default
$ cd ~/qmk_firmware/keyboards/planck/rev6
$ qmk compile
Ψ Compiling keymap with make planck/rev6:default
...
```
or with optional keymap argument
```
$ cd ~/qmk_firmware/keyboards/clueboard/66/rev4
$ qmk compile -km 66_iso
Ψ Compiling keymap with make clueboard/66/rev4:66_iso
...
```
or in keymap directory
```
$ cd ~/qmk_firmware/keyboards/gh60/satan/keymaps/colemak
$ qmk compile
Ψ Compiling keymap with make make gh60/satan:colemak
...
```
**Usage in Layout Directory**:
Must be under `qmk_firmware/layouts/`, and in a keymap folder.
```
qmk compile -kb <keyboard_name>
```
**Example**:
```
$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi
$ qmk compile -kb dz60
Ψ Compiling keymap with make dz60:mechmerlin-ansi
...
```
## `qmk flash`
This command is similar to `qmk compile`, but can also target a bootloader. The bootloader is optional, and is set to `:flash` by default. To specify a different bootloader, use `-bl <bootloader>`. Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders.
This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.
**Usage for Configurator Exports**:
```
qmk flash <configuratorExport.json> -bl <bootloader>
```
**Usage for Keymaps**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader>
```
**Listing the Bootloaders**
```
qmk flash -b
```
## `qmk config`
This command lets you configure the behavior of QMK. For the full `qmk config` documentation see [CLI Configuration](cli_configuration.md).
**Usage**:
```
qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN]
```
## `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.
**Usage**:
```
qmk doctor [-y] [-n]
```
**Examples**:
Check your environment for problems and prompt to fix them:
qmk doctor
Check your environment and automatically fix any problems found:
qmk doctor -y
Check your environment and report problems only:
qmk doctor -n
## `qmk info`
Displays information about keyboards and keymaps in QMK. You can use this to get information about a keyboard, show the layouts, display the underlying key matrix, or to pretty-print JSON keymaps.
**Usage**:
```
qmk info [-f FORMAT] [-m] [-l] [-km KEYMAP] [-kb KEYBOARD]
```
This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.
**Examples**:
Show basic information for a keyboard:
qmk info -kb planck/rev5
Show the matrix for a keyboard:
qmk info -kb ergodox_ez -m
Show a JSON keymap for a keyboard:
qmk info -kb clueboard/california -km default
## `qmk json2c`
Creates a keymap.c from a QMK Configurator export.
**Usage**:
```
qmk json2c [-o OUTPUT] filename
```
## `qmk list-keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`
**Usage**:
```
qmk list-keyboards
```
## `qmk list-keymaps`
This command lists all the keymaps for a specified keyboard (and revision).
This command is directory aware. It will automatically fill in KEYBOARD if you are in a keyboard directory.
**Usage**:
```
qmk list-keymaps -kb planck/ez
```
## `qmk new-keymap`
This command creates a new keymap based on a keyboard's existing default keymap.
This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.
**Usage**:
```
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`.
**Usage**:
```
qmk pyformat
```
## `qmk pytest`
This command runs the python test suite. If you make changes to python code you should ensure this runs successfully.
**Usage**:
```
qmk pytest
```

View File

@@ -108,7 +108,7 @@ compile.keymap: skully -> None
|-----|---------------|-------------|
| user.keyboard | None | The keyboard path (Example: `clueboard/66/rev4`) |
| user.keymap | None | The keymap name (Example: `default`) |
| user.name | None | The user's github username. |
| user.name | None | The user's GitHub username. |
# All Configuration Options

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.
@@ -32,7 +44,7 @@ def hello(cli):
First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.5/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
# User Interaction
@@ -44,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c
You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.5/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
You should never use the format operator (`%`) directly, always pass values as arguments.
### Logging (`cli.log`)
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.5/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The default log level is `INFO`. If the user runs `qmk -v <subcommand>` the default log level will be set to `DEBUG`.
@@ -198,7 +210,7 @@ Our tests can be found in `lib/python/qmk/tests/`. You will find both unit and i
If your PR does not include a comprehensive set of tests please add comments like this to your code so that other people know where they can help:
# TODO(unassigned/<yourGithubUsername>): Write <unit|integration> tests
# TODO(unassigned/<your_github_username>): Write <unit|integration> tests
We use [nose2](https://nose2.readthedocs.io/en/latest/getting_started.html) to run our tests. You can refer to the nose2 documentation for more details on what you can do in your test functions.

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

@@ -2,7 +2,7 @@
Most of our style follows PEP8 with some local modifications to make things less nit-picky.
* We target Python 3.5 for compatability with all supported platforms.
* We target Python 3.6 for compatability with all supported platforms.
* We indent using four (4) spaces (soft tabs)
* We encourage liberal use of comments
* Think of them as a story describing the feature
@@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the
## Integration Tests
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.5/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.6/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
## Unit Tests

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
@@ -191,7 +191,14 @@ If you define these options you will enable the associated feature, which may in
* `#define RGBLIGHT_ANIMATIONS`
* run RGB animations
* `#define RGBLIGHT_LAYERS`
* Lets you define [lighting layers](feature_rgblight.md) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state.
* Lets you define [lighting layers](feature_rgblight.md?id=lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state.
* `#define RGBLIGHT_MAX_LAYERS`
* Defaults to 8. Can be expanded up to 32 if more [lighting layers](feature_rgblight.md?id=lighting-layers) are needed.
* Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards.
* `#define RGBLIGHT_LAYER_BLINK`
* Adds ability to [blink](feature_rgblight.md?id=lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
* If defined, then [lighting layers](feature_rgblight?id=overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off.
* `#define RGBLED_NUM 12`
* number of LEDs
* `#define RGBLIGHT_SPLIT`
@@ -317,10 +324,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

@@ -12,7 +12,7 @@ I'll say that again because it's important:
!> **MAKE SURE YOU SELECT THE RIGHT VERSION!**
If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own github accounts. Double check for that as well. <!-- FIXME(skullydazed): This feels too wordy and I'm not sure we want to encourage these kinds of issues. Also, should we prompt them to bug the manufacutrer? -->
If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own GitHub accounts. Double check for that as well. <!-- FIXME(skullydazed): This feels too wordy and I'm not sure we want to encourage these kinds of issues. Also, should we prompt them to bug the manufacutrer? -->
## Step 2: Select Your Keyboard Layout

View File

@@ -57,7 +57,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case KC_ENTER:
// Play a tone when enter is pressed
if (record->event.pressed) {
PLAY_NOTE_ARRAY(tone_qwerty);
PLAY_SONG(tone_qwerty);
}
return true; // Let QMK send the enter press/release events
default:
@@ -438,7 +438,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case KC_ENTER:
// Play a tone when enter is pressed
if (record->event.pressed) {
PLAY_NOTE_ARRAY(tone_qwerty);
PLAY_SONG(tone_qwerty);
}
return true; // Let QMK send the enter press/release events
case RGB_LYR: // This allows me to use underglow as layer indication, or as normal
@@ -486,56 +486,3 @@ And you're done. The RGB layer indication will only work if you want it to. And
* Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)`
The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM.
# Custom Tapping Term
By default, the tapping term and related options (such as `IGNORE_MOD_TAP_INTERRUPT`) are defined globally, and are not configurable by key. For most users, this is perfectly fine. But in some cases, dual function keys would be greatly improved by different timeout behaviors than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable timeout behaviors.
There are two configurable options to control per-key timeout behaviors:
- `TAPPING_TERM_PER_KEY`
- `IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
You need to add `#define` lines to your `config.h` for each feature you want.
```
#define TAPPING_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```
## Example `get_tapping_term` Implementation
To change the `TAPPING_TERM` based on the keycode, you'd want to add something like the following to your `keymap.c` file:
```c
uint16_t get_tapping_term(uint16_t keycode) {
switch (keycode) {
case SFT_T(KC_SPC):
return TAPPING_TERM + 1250;
case LT(1, KC_GRV):
return 130;
default:
return TAPPING_TERM;
}
}
```
## Example `get_ignore_mod_tap_interrupt` Implementation
To change the `IGNORE_MOD_TAP_INTERRUPT` value based on the keycode, you'd want to add something like the following to your `keymap.c` file:
```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```
## `get_tapping_term` / `get_ignore_mod_tap_interrupt` Function Documentation
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard level function. Only user level functions are useful here, so no need to mark them as such.

View File

@@ -13,7 +13,7 @@ QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die Q
## Bezugsquelle für QMK
Wenn Du vorhast, deine Tastatur, Tastaturbelegung oder Features zu QMK beizusteuern, geht das am einfachsten, indem Du das [Repository auf Github](https://github.com/qmk/qmk_firmware#fork-destination-box) forkst, die Änderungen in deinem lokalen Repo vornimmst und anschließend einen [Pull Request](https://github.com/qmk/qmk_firmware/pulls) einreichst.
Wenn Du vorhast, deine Tastatur, Tastaturbelegung oder Features zu QMK beizusteuern, geht das am einfachsten, indem Du das [Repository auf GitHub](https://github.com/qmk/qmk_firmware#fork-destination-box) forkst, die Änderungen in deinem lokalen Repo vornimmst und anschließend einen [Pull Request](https://github.com/qmk/qmk_firmware/pulls) einreichst.
Ansonsten kannst Du es als [zip](https://github.com/qmk/qmk_firmware/zipball/master) oder [tar](https://github.com/qmk/qmk_firmware/tarball/master) herunterladen, oder es direkt via git klonen (`git clone git@github.com:qmk/qmk_firmware.git` bzw. `git clone https://github.com/qmk/qmk_firmware.git`).

View File

@@ -11,7 +11,7 @@
* [QMK CLI](de/cli.md)
* [QMK CLI Konfiguration](de/cli_configuration.md)
* [Zu QMK beitragen](de/contributing.md)
* [Anleitung für Github](de/getting_started_github.md)
* [Anleitung für GitHub](de/getting_started_github.md)
* [Nach Hilfe fragen](de/getting_started_getting_help.md)
* [Breaking Changes](de/breaking_changes.md)
@@ -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

@@ -6,7 +6,7 @@ Git Ressourcen:
* [Gutes allgemeines Tutorial](https://www.codecademy.com/learn/learn-git) (auf Englisch)
* [Git spielerisch anhand von Beispielen lernen](https://learngitbranching.js.org/) (auf Englisch)
* [Mehr über den allgemeinen Umgang mit Github](getting_started_github.md)
* [Mehr über den allgemeinen Umgang mit GitHub](getting_started_github.md)
* [Mehr über Git im Bezug zu QMK](contributing.md)
Mehr über die Arbeit mit der Befehlszeile:

View File

@@ -1,4 +1,4 @@
# EEPROM Driver Configuration
# EEPROM Driver Configuration :id=eeprom-driver-configuration
The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.
@@ -6,15 +6,20 @@ Driver | Description
-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`EEPROM_DRIVER = vendor` (default) | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. STM32L0xx and STM32L1xx will use the onboard dedicated true EEPROM. Other chips will generally act as "transient" below.
`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = spi` | Supports writing to SPI-based 25xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
## Vendor Driver Configuration
## Vendor Driver Configuration :id=vendor-eeprom-driver-configuration
#### STM32 L0/L1 Configuration :id=stm32l0l1-eeprom-driver-configuration
!> Resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.
No configurable options are available.
`config.h` override | Description | Default Value
------------------------------------|--------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------
`#define STM32_ONBOARD_EEPROM_SIZE` | The size of the EEPROM to use, in bytes. Erase times can be high, so it's configurable here, if not using the default value. | Minimum required to cover base _eeconfig_ data, or `1024` if VIA is enabled.
## I2C Driver Configuration
## I2C Driver Configuration :id=i2c-eeprom-driver-configuration
Currently QMK supports 24xx-series chips over I2C. As such, requires a working i2c_master driver configuration. You can override the driver configuration via your config.h:
@@ -41,7 +46,21 @@ MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | <https://www.adafruit.com/p
?> If you find that the EEPROM is not cooperating, ensure you've correctly shifted up your EEPROM address by 1. For example, the datasheet might state the address as `0b01010000` -- the correct value of `EXTERNAL_EEPROM_I2C_BASE_ADDRESS` needs to be `0b10100000`.
## Transient Driver configuration
## SPI Driver Configuration :id=spi-eeprom-driver-configuration
Currently QMK supports 25xx-series chips over SPI. As such, requires a working spi_master driver configuration. You can override the driver configuration via your config.h:
`config.h` override | Description | Default Value
-----------------------------------------------|--------------------------------------------------------------------------------------|--------------
`#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN` | SPI Slave select pin in order to inform that the EEPROM is currently being addressed | _none_
`#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR` | Clock divisor used to divide the peripheral clock to derive the SPI frequency | `64`
`#define EXTERNAL_EEPROM_BYTE_COUNT` | Total size of the EEPROM in bytes | 8192
`#define EXTERNAL_EEPROM_PAGE_SIZE` | Page size of the EEPROM in bytes, as specified in the datasheet | 32
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | The number of bytes to transmit for the memory location within the EEPROM | 2
!> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero.
## Transient Driver configuration :id=transient-eeprom-driver-configuration
The only configurable item for the transient EEPROM driver is its size:

View File

@@ -13,7 +13,7 @@ QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el
## Cómo conseguirlo
Si estás pensando en contribuir con un keymap, teclado, or característica a QMK, la manera más sencilla es hacer un [fork del repositorio en Github](https://github.com/qmk/qmk_firmware#fork-destination-box), y clonar tu repositorio localmente para hacer los cambios, subirlos, y abir un [Pull Request](https://github.com/qmk/qmk_firmware/pulls) desde tu fork.
Si estás pensando en contribuir con un keymap, teclado, or característica a QMK, la manera más sencilla es hacer un [fork del repositorio en GitHub](https://github.com/qmk/qmk_firmware#fork-destination-box), y clonar tu repositorio localmente para hacer los cambios, subirlos, y abir un [Pull Request](https://github.com/qmk/qmk_firmware/pulls) desde tu fork.
De cualquier manera, también puedes descargarlo directamente en formatos ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), o clonarlo via git (`git@github.com:qmk/qmk_firmware.git`), o https (`https://github.com/qmk/qmk_firmware.git`).

View File

@@ -11,7 +11,7 @@
* [QMK CLI](es/cli.md)
* [Configuración de QMK CLI](es/cli_configuration.md)
* [Contribuyendo a QMK](es/contributing.md)
* [Cómo usar Github](es/getting_started_github.md)
* [Cómo usar GitHub](es/getting_started_github.md)
* [Obtener ayuda](es/getting_started_getting_help.md)
* [Cambios incompatibles](es/breaking_changes.md)
@@ -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

@@ -6,7 +6,7 @@ Este documento procura instruir a los novatos en las mejores prácticas para ten
En este documento suponemos un par de cosas:
1. Tienes una cuenta de Github, y has hecho un [fork del repo qmk_firmware](getting_started_github.md) en tu cuenta.
1. Tienes una cuenta de GitHub, y has hecho un [fork del repo qmk_firmware](getting_started_github.md) en tu cuenta.
2. Has [configurado tu entorno de desarrollo](newbs_getting_started.md?id=environment-setup).

View File

@@ -21,7 +21,7 @@ Lo diré otra vez porque es importante
!> **ASEGÚRATE DE QUE SELECCIONAS LA VERSIÓN CORRECTA!**
Si se ha anunciado que tu teclado funciona con QMK pero no está en la lista, es probable que un desarrollador no se haya encargado de él aún o que todavía no hemos tenido la oportunidad de incluirlo. Abre un issue en [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) solicitando soportar ese teclado un particular, si no hay un [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) activo para ello. Hay también teclados que funcionan con QMK que están en las cuentas de github de sus manufacturantes. Acuérdate de comprobar esto también.
Si se ha anunciado que tu teclado funciona con QMK pero no está en la lista, es probable que un desarrollador no se haya encargado de él aún o que todavía no hemos tenido la oportunidad de incluirlo. Abre un issue en [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) solicitando soportar ese teclado un particular, si no hay un [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) activo para ello. Hay también teclados que funcionan con QMK que están en las cuentas de GitHub de sus manufacturantes. Acuérdate de comprobar esto también.
## Eligiendo el layout de tu teclado

View File

@@ -6,7 +6,7 @@ Recursos de Git:
* [Excelente tutorial general](https://www.codecademy.com/learn/learn-git)
* [Juego de Git para aprender usando ejemplos](https://learngitbranching.js.org/)
* [Recursos de Git para aprender más sobre Github](getting_started_github.md)
* [Recursos de Git para aprender más sobre GitHub](getting_started_github.md)
* [Recursos de Git dirigidos específicamente a QMK](contributing.md)

View File

@@ -113,26 +113,16 @@ OPT_DEFS += -DBOOTLOADER_SIZE=2048
```
## `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` on MacOS
This is an issue with updating on brew, causing symlinks that avr-gcc depend on getting mangled.
The solution is to remove and reinstall all affected modules.
```
brew rm avr-gcc
brew rm avr-gcc@8
brew rm dfu-programmer
brew rm dfu-util
brew rm gcc-arm-none-eabi
brew rm arm-gcc-bin@8
brew rm avrdude
brew install avr-gcc@8
brew install dfu-programmer
brew install dfu-util
brew install arm-gcc-bin@8
brew install avrdude
brew rm avr-gcc avr-gcc@8 dfu-programmer dfu-util gcc-arm-none-eabi arm-gcc-bin@8 avrdude qmk
brew install qmk/qmk/qmk
brew link --force avr-gcc@8
brew link --force arm-gcc-bin@8
```
### `avr-gcc` and LUFA

View File

@@ -160,10 +160,3 @@ As of now root of its cause is not clear but some build options seem to be relat
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
## FLIP Doesn't Work
### `AtLibUsbDfu.dll` Not Found
Remove current driver and reinstall one FLIP provides from DeviceManager.
http://imgur.com/a/bnwzy

View File

@@ -1,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.
@@ -49,11 +6,11 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown
|----------|-------------------------------|----------------------------------------------------|
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`|`A(kc)` |Hold Left Alt and press `kc` |
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ALGR(kc)` |Hold Right Alt and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
@@ -61,12 +18,16 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
You can also chain them, for example `LCTL(LALT(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
# 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.

View File

@@ -38,5 +38,6 @@ For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computati
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
* eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occured, all input changes are pushed.
* sym_pk - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occured on that key, the key status change is pushed.

View File

@@ -61,7 +61,7 @@ void encoder_update_user(uint8_t index, bool clockwise) {
} else {
tap_code(KC_PGUP);
}
} else if (index == 1) { /* Second encoder */
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_DOWN);
} else {

View File

@@ -1,6 +1,6 @@
# HD44780 LCD Displays
This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes.
@@ -50,8 +50,8 @@ LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing
````
This is best done in your keyboards `matrix_init_kb` or your keymaps `matrix_init_user`.
It is advised to clear the display before use.
To do so call `lcd_clrsrc()`.
To do so call `lcd_clrscr()`.
To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`.
There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)

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`.
@@ -121,11 +161,11 @@ There's also a couple of mod shortcuts you can use:
* `SS_LCTL(string)`
* `SS_LSFT(string)`
* `SS_LALT(string)`
* `SS_LALT(string)` or `SS_LOPT(string)`
* `SS_LGUI(string)`, `SS_LCMD(string)` or `SS_LWIN(string)`
* `SS_RCTL(string)`
* `SS_RSFT(string)`
* `SS_RALT(string)` or `SS_ALGR(string)`
* `SS_RALT(string)`, `SS_ROPT(string)` or `SS_ALGR(string)`
* `SS_RGUI(string)`, `SS_RCMD(string)` or `SS_RWIN(string)`
These press the respective modifier, send the supplied string and then release the modifier.

View File

@@ -261,12 +261,24 @@ void oled_task(void);
// Called at the start of oled_task, weak function overridable by the user
void oled_task_user(void);
// Scrolls the entire display right
// Set the specific 8 lines rows of the screen to scroll.
// 0 is the default for start, and 7 for end, which is the entire
// height of the screen. For 128x32 screens, rows 4-7 are not used.
void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
// Sets scroll speed, 0-7, fastest to slowest. Default is three.
// Does not take effect until scrolling is either started or restarted
// the ssd1306 supports 8 speeds with the delay
// listed below betwen each frame of the scrolling effect
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
void oled_scroll_set_speed(uint8_t speed);
// Begin scrolling the entire display right
// Returns true if the screen was scrolling or starts scrolling
// NOTE: display contents cannot be changed while scrolling
bool oled_scroll_right(void);
// Scrolls the entire display left
// Begin scrolling the entire display left
// Returns true if the screen was scrolling or starts scrolling
// NOTE: display contents cannot be changed while scrolling
bool oled_scroll_left(void);

View File

@@ -1,10 +1,10 @@
## Pointing Device
# Pointing Device :id=pointing-device
Pointing Device is a generic name for a feature intended to be generic: moving the system pointer around. There are certainly other options for it - like mousekeys - but this aims to be easily modifiable and lightweight. You can implement custom keys to control functionality, or you can gather information from other peripherals and insert it directly here - let QMK handle the processing for you.
To enable Pointing Device, uncomment the following line in your rules.mk:
```
```makefile
POINTING_DEVICE_ENABLE = yes
```
@@ -25,22 +25,19 @@ When the mouse report is sent, the x, y, v, and h values are set to 0 (this is d
In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example:
```
```c
case MS_SPECIAL:
report_mouse_t currentReport = pointing_device_get_report();
if (record->event.pressed)
{
report_mouse_t currentReport = pointing_device_get_report();
if (record->event.pressed) {
currentReport.v = 127;
currentReport.h = 127;
currentReport.buttons |= MOUSE_BTN1; //this is defined in report.h
}
else
{
currentReport.h = 127;
currentReport.buttons |= MOUSE_BTN1; // this is defined in report.h
} else {
currentReport.v = -127;
currentReport.h = -127;
currentReport.buttons &= ~MOUSE_BTN1;
}
pointing_device_set_report(currentReport);
pointing_device_set_report(currentReport);
break;
```

View File

@@ -1,4 +1,4 @@
## PS/2 Mouse Support
# PS/2 Mouse Support :id=ps2-mouse-support
Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device.
@@ -6,7 +6,7 @@ To hook up a Trackpoint, you need to obtain a Trackpoint module (i.e. harvest fr
There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
### The Cirtuitry between Trackpoint and Controller
## The Circuitry between Trackpoint and Controller :id=the-circuitry-between-trackpoint-and-controller
To get the things working, a 4.7K drag is needed between the two lines DATA and CLK and the line 5+.
@@ -24,20 +24,20 @@ MODULE 5+ --------+--+--------- PWR CONTROLLER
```
### Busywait Version
## Busywait Version :id=busywait-version
Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible.
In rules.mk:
```
```makefile
PS2_MOUSE_ENABLE = yes
PS2_USE_BUSYWAIT = yes
```
In your keyboard config.h:
```
```c
#ifdef PS2_USE_BUSYWAIT
# define PS2_CLOCK_PORT PORTD
# define PS2_CLOCK_PIN PIND
@@ -50,20 +50,20 @@ In your keyboard config.h:
#endif
```
### Interrupt Version
## Interrupt Version :id=interrupt-version
The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data.
In rules.mk:
```
```makefile
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
```
In your keyboard config.h:
```
```c
#ifdef PS2_USE_INT
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
@@ -88,20 +88,20 @@ In your keyboard config.h:
#endif
```
### USART Version
## USART Version :id=usart-version
To use USART on the ATMega32u4, you have to use PD5 for clock and PD2 for data. If one of those are unavailable, you need to use interrupt version.
In rules.mk:
```
```makefile
PS2_MOUSE_ENABLE = yes
PS2_USE_USART = yes
```
In your keyboard config.h:
```
```c
#ifdef PS2_USE_USART
#define PS2_CLOCK_PORT PORTD
#define PS2_CLOCK_PIN PIND
@@ -145,13 +145,13 @@ In your keyboard config.h:
#endif
```
### Additional Settings
## Additional Settings :id=additional-settings
#### PS/2 Mouse Features
### PS/2 Mouse Features :id=ps2-mouse-features
These enable settings supported by the PS/2 mouse protocol.
```
```c
/* Use remote mode instead of the default stream mode (see link) */
#define PS2_MOUSE_USE_REMOTE_MODE
@@ -170,7 +170,7 @@ These enable settings supported by the PS/2 mouse protocol.
You can also call the following functions from ps2_mouse.h
```
```c
void ps2_mouse_disable_data_reporting(void);
void ps2_mouse_enable_data_reporting(void);
@@ -188,36 +188,36 @@ void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution);
void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
```
#### Fine Control
### Fine Control :id=fine-control
Use the following defines to change the sensitivity and speed of the mouse.
Note: you can also use `ps2_mouse_set_resolution` for the same effect (not supported on most touchpads).
```
```c
#define PS2_MOUSE_X_MULTIPLIER 3
#define PS2_MOUSE_Y_MULTIPLIER 3
#define PS2_MOUSE_V_MULTIPLIER 1
```
#### Scroll Button
### Scroll Button :id=scroll-button
If you're using a trackpoint, you will likely want to be able to use it for scrolling.
It's possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
To enable the feature, you must set a scroll button mask as follows:
```
```c
#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */
```
To disable the scroll button feature:
```
```c
#define PS2_MOUSE_SCROLL_BTN_MASK 0
```
The available buttons are:
```
```c
#define PS2_MOUSE_BTN_LEFT 0
#define PS2_MOUSE_BTN_RIGHT 1
#define PS2_MOUSE_BTN_MIDDLE 2
@@ -229,27 +229,28 @@ Once you've configured your scroll button mask, you must configure the scroll bu
This is the interval before which if the scroll buttons were released they would be sent to the host.
After this interval, they will cause the mouse to scroll and will not be sent.
```
```c
#define PS2_MOUSE_SCROLL_BTN_SEND 300 /* Default */
```
To disable sending the scroll buttons:
```
```c
#define PS2_MOUSE_SCROLL_BTN_SEND 0
```
Fine control over the scrolling is supported with the following defines:
```
```c
#define PS2_MOUSE_SCROLL_DIVISOR_H 2
#define PS2_MOUSE_SCROLL_DIVISOR_V 2
```
#### Invert Mouse and Scroll Axes
### Invert Mouse and Scroll Axes :id=invert-mouse-and-scroll-axes
To invert the X and Y axes you can put:
```
```c
#define PS2_MOUSE_INVERT_X
#define PS2_MOUSE_INVERT_Y
```
@@ -258,18 +259,37 @@ into config.h.
To reverse the scroll axes you can put:
```
```c
#define PS2_MOUSE_INVERT_H
#define PS2_MOUSE_INVERT_V
```
into config.h.
#### Debug Settings
### 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.
```
```c
/* To debug the mouse reports */
#define PS2_MOUSE_DEBUG_HID
#define PS2_MOUSE_DEBUG_RAW

69
docs/feature_rawhid.md Normal file
View File

@@ -0,0 +1,69 @@
# Raw HID
Raw HID allows for bidirectional communication between QMK and the host computer over an HID interface. This has many potential use cases, such as switching keymaps on the fly or changing RGB LED colors and modes.
There are two main components to getting raw HID working with your keyboard.
## Keyboard firmware
The implementation is fairly straightforward for the firmware.
In your `rules.mk` add:
```make
RAW_ENABLE = yes
```
In your `keymap.c` include `"raw_hid.h"` and implement the following:
```C
void raw_hid_receive(uint8_t *data, uint8_t length) {
// Your code goes here. data is the packet received from host.
}
```
The `"raw_hid.h"` header also declares `void raw_hid_send(uint8_t *data, uint8_t length);` which allows sending packets from keyboard to host. As an example, it can also be used for debugging when building your host application by returning all data back to the host.
```C
void raw_hid_receive(uint8_t *data, uint8_t length) {
raw_hid_send(data, length);
}
```
`raw_hid_receive` can receive variable size packets from host with maximum length `RAW_EPSIZE`. `raw_hid_send` on the other hand can send packets to host of exactly `RAW_EPSIZE` length, therefore it should be used with data of length `RAW_EPSIZE`.
Make sure to flash raw enabled firmware before proceeding with working on the host side.
## Host (Windows/macOS/Linux)
This is the more complicated part as it will require some digging.
To connect your host computer to your keyboard with raw HID you need four pieces of information about your keyboard:
1. Vendor ID
2. Product ID
3. Usage Page
4. Usage
The first two can easily be found in your keyboard's `config.h` in the keyboard's main directory under `VENDOR_ID` and `PRODUCT_ID`.
The final two can be overridden in your keyboard's `config.h` in the keyboard's main directory by redefining the values: `#define RAW_USAGE_PAGE 0xFF60` and `#define RAW_USAGE_ID 0x61`.
By default, **Usage Page** is `0xFF60` and **Usage** is `0x61`.
### Building your host
You can build your host using any language that has an available HID implementation library if you don't wish to make your own. The ones we know of for popular languages are:
* Node: [node-hid](https://github.com/node-hid/node-hid).
* C: [hidapi](https://github.com/libusb/hidapi).
* Java: [purejavahidapi](https://github.com/nyholku/purejavahidapi) and [hid4java](https://github.com/gary-rowe/hid4java).
* Python: [pyhidapi](https://pypi.org/project/hid/).
This is not an exhaustive cross-platform list but should get you started. There are no special requirements for using raw HID so any HID library should work.
Now that you have all four pieces of information required to open HID interface to your keyboard. All you need to do is use your library's available functions to open the device with its ID parameters.
Note that Vendor ID and Product ID are not actually required to open the device. They are used only to filter to a specific device out of the many HID devices you have plugged in. Many libraries will give you the option to open the device using Product Name or Manufacturer Name instead, `node-hid` being a prime example. This will create issues for devices with builtin USB Hub or any extra HID interfaces where you will have multiple interfaces with the same name or from the same manufacturer. The Vendor ID together with Product ID create a unique designation to a single interface and will not exhibit this problem. Therefore, even if your library doesn't require you to, it is best to use them to avoid issues.
Unlike Vendor ID and Product ID though, Usage Page and Usage are necessary for successful communication.
It should go without saying that regardless of the library you're using, you should always make sure to close the interface when finished. Depending on the operating system and your particular environment there may be issues connecting to it again afterwards with another client or another instance of the same client if it's not explicitly closed.

View File

@@ -1,22 +1,22 @@
# RGB Matrix Lighting
# RGB Matrix Lighting :id=rgb-matrix-lighting
This feature allows you to use RGB LED matrices driven by external drivers. It hooks into the RGBLIGHT system so you can use the same keycodes as RGBLIGHT to control it.
If you want to use single color LED's you should use the [LED Matrix Subsystem](feature_led_matrix.md) instead.
## Driver configuration
## Driver configuration :id=driver-configuration
---
### IS31FL3731
### IS31FL3731 :id=is31fl3731
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
```C
```makefile
RGB_MATRIX_ENABLE = IS31FL3731
```
Configure the hardware via your `config.h`:
```C
```c
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
@@ -39,7 +39,7 @@ Currently only 2 drivers are supported, but it would be trivial to support all 4
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```C
```c
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
@@ -55,19 +55,19 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now).
---
### IS31FL3733/IS31FL3737
### IS31FL3733/IS31FL3737 :id=is31fl3733is31fl3737
!> For the IS31FL3737, replace all instances of `IS31FL3733` below with `IS31FL3737`.
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`:
```C
```makefile
RGB_MATRIX_ENABLE = IS31FL3733
```
Configure the hardware via your `config.h`:
```C
```c
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
@@ -90,7 +90,7 @@ Currently only a single drivers is supported, but it would be trivial to support
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```C
```c
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
@@ -107,17 +107,17 @@ Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](
---
### WS2812
### WS2812 :id=ws2812
There is basic support for addressable RGB matrix lighting with a WS2811/WS2812{a,b,c} addressable LED strand. To enable it, add this to your `rules.mk`:
```C
```makefile
RGB_MATRIX_ENABLE = WS2812
```
Configure the hardware via your `config.h`:
```C
```c
// The pin connected to the data pin of the LEDs
#define RGB_DI_PIN D7
// The number of LEDs connected
@@ -128,7 +128,7 @@ Configure the hardware via your `config.h`:
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
```C
```c
const led_config_t g_led_config = { {
// Key Matrix to LED Index
{ 5, NO_LED, NO_LED, 0 },
@@ -146,7 +146,7 @@ const led_config_t g_led_config = { {
The first part, `// Key Matrix to LED Index`, tells the system what key this LED represents by using the key's electrical matrix row & col. The second part, `// LED Index to Physical Position` represents the LED's physical `{ x, y }` position on the keyboard. The default expected range of values for `{ x, y }` is the inclusive range `{ 0..224, 0..64 }`. This default expected range is due to effects that calculate the center of the keyboard for their animations. The easiest way to calculate these positions is imagine your keyboard is a grid, and the top left of the keyboard represents `{ x, y }` coordinate `{ 0, 0 }` and the bottom right of your keyboard represents `{ 224, 64 }`. Using this as a basis, you can use the following formula to calculate the physical position:
```C
```c
x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION
y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION
```
@@ -157,7 +157,7 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
`// LED Index to Flag` is a bitmask, whether or not a certain LEDs is of a certain type. It is recommended that LEDs are set to only 1 type.
## Flags
## Flags :id=flags
|Define |Description |
|------------------------------------|-------------------------------------------|
@@ -169,7 +169,7 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
|`#define LED_FLAG_UNDERGLOW 0x02` |If the LED is for underglow. |
|`#define LED_FLAG_KEYLIGHT 0x04` |If the LED is for key backlight. |
## Keycodes
## Keycodes :id=keycodes
All RGB keycodes are currently shared with the RGBLIGHT system:
@@ -189,11 +189,11 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system
## RGB Matrix Effects
## RGB Matrix Effects :id=rgb-matrix-effects
All effects have been configured to support current configuration values (Hue, Saturation, Value, & Speed) unless otherwise noted below. These are the effects that are currently available:
```C
```c
enum rgb_matrix_effects {
RGB_MATRIX_NONE = 0,
RGB_MATRIX_SOLID_COLOR = 1, // Static single hue, no speed support
@@ -285,7 +285,7 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|`#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Disables `RGB_MATRIX_SOLID_MULTISPLASH` |
## Custom RGB Matrix Effects
## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects
By setting `RGB_MATRIX_CUSTOM_USER` (and/or `RGB_MATRIX_CUSTOM_KB`) in `rules.mk`, new effects can be defined directly from userspace, without having to edit any QMK core files.
@@ -294,7 +294,7 @@ To declare new effects, create a new `rgb_matrix_user/kb.inc` that looks somethi
`rgb_matrix_user.inc` should go in the root of the keymap directory.
`rgb_matrix_kb.inc` should go in the root of the keyboard directory.
```C
```c
// !!! DO NOT ADD #pragma once !!! //
// Step 1.
@@ -341,7 +341,7 @@ static bool my_cool_effect2(effect_params_t* params) {
For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix_animation/`
## Colors
## Colors :id=colors
These are shorthands to popular colors. The `RGB` ones can be passed to the `setrgb` functions, while the `HSV` ones to the `sethsv` functions.
@@ -369,12 +369,13 @@ These are shorthands to popular colors. The `RGB` ones can be passed to the `set
These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h). Feel free to add to this list!
## Additional `config.h` Options
## Additional `config.h` Options :id=additional-configh-options
```C
```c
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off
#define RGB_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
@@ -386,28 +387,102 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set
```
## EEPROM storage
## EEPROM storage :id=eeprom-storage
The EEPROM for it is currently shared with the RGBLIGHT system (it's generally assumed only one RGB would be used at a time), but could be configured to use its own 32bit address with:
```C
```c
#define EECONFIG_RGB_MATRIX (uint32_t *)28
```
Where `28` is an unused index from `eeconfig.h`.
## 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) |
```C
void suspend_power_down_kb(void)
{
### 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_is_enabled()` |Gets current on/off status |
|`rgb_matrix_get_mode()` |Gets current mode |
|`rgb_matrix_get_hue()` |Gets current hue |
|`rgb_matrix_get_sat()` |Gets current sat |
|`rgb_matrix_get_val()` |Gets current val |
|`rgb_matrix_get_hsv()` |Gets hue, sat, and val and returns a [`HSV` structure](https://github.com/qmk/qmk_firmware/blob/7ba6456c0b2e041bb9f97dbed265c5b8b4b12192/quantum/color.h#L56-L61)|
|`rgb_matrix_get_speed()` |Gets current speed |
|`rgb_matrix_get_suspend_state()` |Gets current suspend state |
## 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) {
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

@@ -94,6 +94,7 @@ if `RGBLIGHT_EFFECT_xxxx` or `RGBLIGHT_ANIMATIONS` is defined, you also have a n
|`RGBLIGHT_MODE_STATIC_GRADIENT`| 0,1,..,9 |Static gradient |
|`RGBLIGHT_MODE_RGB_TEST` | *None* |RGB Test |
|`RGBLIGHT_MODE_ALTERNATING` | *None* |Alternating |
|`RGBLIGHT_MODE_TWINKLE` | 0,1,2,3,4,5 |Twinkle |
Check out [this video](https://youtube.com/watch?v=VKrpPAHlisY) for a demonstration.
@@ -103,8 +104,8 @@ Note: For versions older than 0.6.117, The mode numbers were written directly. I
Use these defines to add or remove animations from the firmware. When you are running low on flash space, it can be helpful to disable animations you are not using.
|Define |Default |Description |
|------------------------------------|-------------|-------------------------------------------------------------------------------------|
|Define |Default |Description |
|------------------------------------|-------------|-------------------------------------------------------------------------|
|`RGBLIGHT_ANIMATIONS` |*Not defined*|Enable all additional animation modes. |
|`RGBLIGHT_EFFECT_ALTERNATING` |*Not defined*|Enable alternating animation mode. |
|`RGBLIGHT_EFFECT_BREATHING` |*Not defined*|Enable breathing animation mode. |
@@ -115,6 +116,7 @@ Use these defines to add or remove animations from the firmware. When you are ru
|`RGBLIGHT_EFFECT_RGB_TEST` |*Not defined*|Enable RGB test animation mode. |
|`RGBLIGHT_EFFECT_SNAKE` |*Not defined*|Enable snake animation mode. |
|`RGBLIGHT_EFFECT_STATIC_GRADIENT` |*Not defined*|Enable static gradient mode. |
|`RGBLIGHT_EFFECT_TWINKLE` |*Not defined*|Enable twinkle animation mode. |
### Effect and Animation Settings
@@ -131,6 +133,8 @@ The following options are used to tweak the various animations:
|`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by |
|`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls |
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`75` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) |
|`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) |
### Example Usage to Reduce Memory Footprint
1. Remove `RGBLIGHT_ANIMATIONS` from `config.h`.
@@ -168,6 +172,9 @@ const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
// How long (in milliseconds) to wait between animation steps for each of the "Knight" animations
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
// How long (in milliseconds) to wait between animation steps for each of the "Twinkle" animations
const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {50, 25, 10};
// These control which hues are selected for each of the "Static gradient" modes
const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
```
@@ -175,23 +182,27 @@ 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.
### Defining Lighting Layers :id=defining-lighting-layers
By default, 8 layers are possible. This can be expanded to as many as 32 by overriding the definition of `RGBLIGHT_MAX_LAYERS` in `config.h` (e.g. `#define RGBLIGHT_MAX_LAYERS 32`). Please note, if you use a split keyboard, you will need to flash both sides of the split after changing this. Also, increasing the maximum will increase the firmware size, and will slow sync on split keyboards.
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,33 +212,76 @@ 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;
}
```
Note: For split keyboards with two controllers, both sides need to be flashed when updating the contents of rgblight_layers.
Finally, we enable and disable the lighting layers whenever the state of the keyboard changes:
### Enabling and disabling lighting layers :id=enabling-lighting-layers
Everything above just configured the definition of each lighting layer.
We can now enable and disable the lighting layers whenever the state of the keyboard changes:
```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;
}
```
### Lighting layer blink :id=lighting-layer-blink
By including `#define RGBLIGHT_LAYER_BLINK` in your `config.h` file you can turn a lighting
layer on for a specified duration. Once the specified number of milliseconds has elapsed
the layer will be turned off. This is useful, e.g., if you want to acknowledge some
action (e.g. toggling some setting):
```c
const rgblight_segment_t PROGMEM _yes_layer[] = RGBLIGHT_LAYER_SEGMENTS( {9, 6, HSV_GREEN} );
const rgblight_segment_t PROGMEM _no_layer[] = RGBLIGHT_LAYER_SEGMENTS( {9, 6, HSV_RED} );
const rgblight_segment_t* const PROGMEM _rgb_layers[] =
RGBLIGHT_LAYERS_LIST( _yes_layer, _no_layer );
void keyboard_post_init_user(void) {
rgblight_layers = _rgb_layers;
}
// Note we user post_process_record_user because we want the state
// after the flag has been flipped...
void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case DEBUG:
rgblight_blink_layer(debug_enable ? 0 : 1, 500);
break;
case NK_TOGG:
case NK_ON:
case NK_OFF:
rgblight_blink_layer(keymap_config.nkro ? 0 : 1, 500);
break;
}
}
```
### Overriding RGB Lighting on/off status
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
## 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:
@@ -326,12 +380,14 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2
|`rgblight_set_layer_state(i, is_on)` |Enable or disable lighting layer `i` based on value of `bool is_on` |
#### query
|Function |Description |
|-----------------------|-----------------|
|`rgblight_get_mode()` |Get current mode |
|`rgblight_get_hue()` |Get current hue |
|`rgblight_get_sat()` |Get current sat |
|`rgblight_get_val()` |Get current val |
|Function |Description |
|-----------------------|---------------------------|
|`rgblight_is_enabled()`|Gets current on/off status |
|`rgblight_get_mode()` |Gets current mode |
|`rgblight_get_hue()` |Gets current hue |
|`rgblight_get_sat()` |Gets current sat |
|`rgblight_get_val()` |Gets current val |
|`rgblight_get_speed()` |Gets current speed |
## Colors

View File

@@ -8,9 +8,20 @@ QMK Firmware has a generic implementation that is usable by any board, as well a
For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards.
!> ARM is not yet supported for Split Keyboards. Progress is being made, but we are not quite there, yet.
!> ARM is not yet fully supported for Split Keyboards and has many limitations. Progress is being made, but we have not yet reached 100% feature parity.
## Compatibility Overview
| Transport | AVR | ARM |
|------------------------------|--------------------|--------------------|
| ['serial'](serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> |
| I2C | :heavy_check_mark: | |
Notes:
1. Both hardware and software limitations are detailed within the [driver documentation](serial_driver.md).
## Hardware Configuration
This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves.

View File

@@ -1,16 +1,16 @@
# Stenography in QMK
# Stenography in QMK :id=stenography-in-qmk
[Stenography](https://en.wikipedia.org/wiki/Stenotype) is a method of writing most often used by court reports, closed-captioning, and real-time transcription for the deaf. In stenography words are chorded syllable by syllable with a mixture of spelling, phonetic, and shortcut (briefs) strokes. Professional stenographers can reach 200-300 WPM without any of the strain usually found in standard typing and with far fewer errors (>99.9% accuracy).
The [Open Steno Project](http://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports
## Plover with QWERTY Keyboard
## Plover with QWERTY Keyboard :id=plover-with-qwerty-keyboard
Plover can work with any standard QWERTY keyboard, although it is more efficient if the keyboard supports NKRO (n-key rollover) to allow Plover to see all the pressed keys at once. An example keymap for Plover can be found in `planck/keymaps/default`. Switching to the `PLOVER` layer adjusts the position of the keyboard to support the number bar.
To use Plover with QMK just enable NKRO and optionally adjust your layout if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys.
## Plover with Steno Protocol
## Plover with Steno Protocol :id=plover-with-steno-protocol
Plover also understands the language of several steno machines. QMK can speak a couple of these languages, TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`.
@@ -20,26 +20,26 @@ In this mode Plover expects to speak with a steno machine over a serial port so
> Note: Due to hardware limitations you may not be able to run both a virtual serial port and mouse emulation at the same time.
### TX Bolt
### TX Bolt :id=tx-bolt
TX Bolt communicates the status of 24 keys over a very simple protocol in variable-sized (1-5 byte) packets.
### GeminiPR
### GeminiPR :id=geminipr
GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything that is necessary for standard stenography, GeminiPR opens up many more options, including supporting non-English theories.
## Configuring QMK for Steno
## Configuring QMK for Steno :id=configuring-qmk-for-steno
Firstly, enable steno in your keymap's Makefile. You may also need disable mousekeys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them.
```Makefile
```makefile
STENO_ENABLE = yes
MOUSEKEY_ENABLE = no
```
In your keymap create a new layer for Plover. You will need to include `keymap_steno.h`. See `planck/keymaps/steno/keymap.c` for an example. Remember to create a key to switch to the layer as well as a key for exiting the layer. If you would like to switch modes on the fly you can use the keycodes `QK_STENO_BOLT` and `QK_STENO_GEMINI`. If you only want to use one of the protocols you may set it up in your initialization function:
```C
```c
void matrix_init_user() {
steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT
}
@@ -49,37 +49,37 @@ Once you have your keyboard flashed launch Plover. Click the 'Configure...' butt
On the display tab click 'Open stroke display'. With Plover disabled you should be able to hit keys on your keyboard and see them show up in the stroke display window. Use this to make sure you have set up your keymap correctly. You are now ready to steno!
## Learning Stenography
## Learning Stenography :id=learning-stenography
* [Learn Plover!](https://sites.google.com/site/learnplover/)
* [QWERTY Steno](http://qwertysteno.com/Home/)
* [Steno Jig](https://joshuagrams.github.io/steno-jig/)
* More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki
## Interfacing with the code
## Interfacing with the code :id=interfacing-with-the-code
The steno code has three interceptible hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
```C
```c
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]);
```
This function is called when a chord is about to be sent. Mode will be one of `STENO_MODE_BOLT` or `STENO_MODE_GEMINI`. This represents the actual chord that would be sent via whichever protocol. You can modify the chord provided to alter what gets sent. Remember to return true if you want the regular sending process to happen.
```C
```c
bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
```
This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values.
```C
```c
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
```
This function is called after a key has been processed, but before any decision about whether or not to send a chord. If `IS_PRESSED(record->event)` is false, and `pressed` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This is where to put hooks for things like, say, live displays of steno chords or keys.
## Keycode Reference
## Keycode Reference :id=keycode-reference
As defined in `keymap_steno.h`.

View File

@@ -28,3 +28,4 @@ Note that the array indices are reversed same as the matrix and the values are o
|`SH_MOFF` |Momentarily turns off swap. |
|`SH_TG` |Toggles swap on and off with every key press. |
|`SH_TT` |Toggles with a tap; momentary when held. |
|`SH_OS` |One shot swap hands: toggles while pressed or until next key press. |

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`).

View File

@@ -1,6 +1,6 @@
# Userspace: Sharing Code Between Keymaps
If you use more than one keyboard with a similar keymap, you might see the benefit in being able to share code between them. Create your own folder in `users/` named the same as your keymap (ideally your github username, `<name>`) with the following structure:
If you use more than one keyboard with a similar keymap, you might see the benefit in being able to share code between them. Create your own folder in `users/` named the same as your keymap (ideally your GitHub username, `<name>`) with the following structure:
* `/users/<name>/` (added to the path automatically)
* `readme.md` (optional, recommended)
@@ -73,7 +73,7 @@ The reason for this, is that `<name>.h` won't be added in time to add settings (
## Readme (`readme.md`)
Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses).
Please include authorship (your name, GitHub username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses).
You can use this as a template:
```
@@ -93,17 +93,29 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
```
You'd want to replace the year, name, email and github username with your info.
You'd want to replace the year, name, email and GitHub username with your info.
Additionally, this is a good place to document your code, if you wish to share it with others.
# Examples
## Build All Keyboards That Support a Specific Keymap
Want to check all your keymaps build in a single command? You can run:
make all:<name>
For example,
make all:jack
This is ideal for when you want ensure everything compiles successfully when preparing a [_Pull request_](https://github.com/qmk/qmk_firmware/pulls).
## Examples
For a brief example, checkout [`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna).
For a more complicated example, checkout [`/users/drashna/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna)'s userspace.
## Customized Functions
### Customized Functions
QMK has a bunch of [functions](custom_quantum_functions.md) that have [`_quantum`, `_kb`, and `_user` versions](custom_quantum_functions.md#a-word-on-core-vs-keyboards-vs-keymap) that you can use. You will pretty much always want to use the user version of these functions. But the problem is that if you use them in your userspace, then you don't have a version that you can use in your keymap.
@@ -130,7 +142,7 @@ The `_keymap` part here doesn't matter, it just needs to be something other than
You can see a list of this and other common functions in [`template.c`](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/template.c) in [`users/drashna`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna).
## Custom Features
### Custom Features
Since the Userspace feature can support a staggering number of boards, you may have boards that you want to enable certain functionality for, but not for others. And you can actually create "features" that you can enable or disable in your own userspace.
@@ -166,7 +178,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
```
## Consolidated Macros
### Consolidated Macros
If you wanted to consolidate macros and other functions into your userspace for all of your keymaps, you can do that. This builds upon the [Customized Functions](#customized-functions) example above. This lets you maintain a bunch of macros that are shared between the different keyboards, and allow for keyboard specific macros, too.

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

@@ -26,7 +26,6 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line)
* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (not recommended)
Flashing sequence:

View File

@@ -4,8 +4,8 @@
[![Statut du build](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Statut de la doc](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![Contributeurs Github](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![Forks Github](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
[![Contributeurs GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![Forks GitHub](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## Qu'est-ce que QMK Firmware?
@@ -13,7 +13,7 @@ QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintien
## Comment l'obtenir
Si vous souhaitez contribuer à une disposition de clavier (keymap), ou à des fonctionnalités de QMK alors le plus simple est de [forker le dépôt avec Github](https://github.com/qmk/qmk_firmware#fork-destination-box) puis cloner le dépôt localement pour y faire des changements. Vous pourrez pousser vos changements sur github puis ouvrir un [Pull Request](https://github.com/qmk/qmk_firmware/pulls) depuis votre fork Github.
Si vous souhaitez contribuer à une disposition de clavier (keymap), ou à des fonctionnalités de QMK alors le plus simple est de [forker le dépôt avec GitHub](https://github.com/qmk/qmk_firmware#fork-destination-box) puis cloner le dépôt localement pour y faire des changements. Vous pourrez pousser vos changements sur GitHub puis ouvrir un [Pull Request](https://github.com/qmk/qmk_firmware/pulls) depuis votre fork GitHub.
Sinon, vous pouvez aussi le télécharger directement en ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), ou le cloner avec git en ssh (`git@github.com:qmk/qmk_firmware.git`), ou https (`https://github.com/qmk/qmk_firmware.git`).

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

@@ -101,7 +101,7 @@ Ceci est fait immédiatement après la fusion de la branche `future` précédent
* [ ] Regroupe ChangeLog dans un fichier.
* [ ] `git commit -m 'Merge point for <DATE> Breaking Change'`
* [ ] `git push origin future`
* Actions sur Github
* Actions sur GitHub
* [ ] Crée un PR pour `future`
* [ ] S'assurer que Travis ne relève aucun problème
* [ ] Fusion le PR `future`

View File

@@ -155,11 +155,3 @@ Pour le moment, l'origine du problème n'est pas comprise, mais certaines option
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
## FLIP ne marche pas
### `AtLibUsbDfu.dll` Not Found
Supprimez le pilote actuel et réinstallez celui donné par FLIP dans le gestionnaire de périphériques.
http://imgur.com/a/bnwzy

View File

@@ -26,7 +26,6 @@ Méthodes de flash compatibles :
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` avec QMK (outil en ligne de commande recommandé)
* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (non recommandé)
Ordre des actions:

View File

@@ -6,11 +6,11 @@ GitHub peut être un peu compliqué pour ceux qui n'y sont pas familier. Ce guid
Commencez par la [page GitHub de QMK](https://github.com/qmk/qmk_firmware), et vous verrez un bouton dans le coin en haut à droite qui indique "Fork":
![Fork on Github](http://i.imgur.com/8Toomz4.jpg)
![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg)
Si vous faites partie d'une organisation, vous aurez besoin de savoir quel compte utiliser pour le fork. Dans la plupart des cas, vous voudrez créer le fork dans votre compte personnel. Une fois le fork complet (cela peut quelques fois prendre un peu de temps), appuyez sur le bouton "Clone or download":
![Download from Github](http://i.imgur.com/N1NYcSz.jpg)
![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg)
Faites attention à sélectionner "HTTPS", et sélectionnez le lien et copiez-le:

View File

@@ -44,7 +44,7 @@ git pull upstream master
git push origin master
```
Cela vous change la branche courante en master, synchronise les données de références du dépôt QMK vers votre ordinateur. La commande pull tire les données de références vers votre branche courante puis les y téleverse. La commande push permet de pousser la branche courante (master) vers votre fork github.
Cela vous change la branche courante en master, synchronise les données de références du dépôt QMK vers votre ordinateur. La commande pull tire les données de références vers votre branche courante puis les y téleverse. La commande push permet de pousser la branche courante (master) vers votre fork GitHub.
### Faire des changements

View File

@@ -0,0 +1,47 @@
# Docker Quick Start
This project includes a Docker workflow that will allow you to build a new firmware for your keyboard very easily without major changes to your primary operating system. This also ensures that when you clone the project and perform a build, you have the exact same environment as anyone else and the QMK build infrastructure. This makes it much easier for people to help you troubleshoot any issues you encounter.
## Requirements
The main prerequisite is a working `docker` install.
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
## Usage
Acquire a local copy of the QMK's repository (including submodules):
```bash
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
```
Run the following command to build a keymap:
```bash
util/docker_build.sh <keyboard>:<keymap>
# For example: util/docker_build.sh planck/rev6:default
```
This will compile the desired keyboard/keymap and leave the resulting `.hex` or `.bin` file in the QMK directory for you to flash. If `:keymap` is omitted, all keymaps are used. Note that the parameter format is the same as when building with `make`.
There is also support for building _and_ flashing the keyboard straight from Docker by specifying the `target` as well:
```bash
util/docker_build.sh keyboard:keymap:target
# For example: util/docker_build.sh planck/rev6:default:flash
```
You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use:
```bash
util/docker_build.sh
# Reads parameters as input (leave blank for all keyboards/keymaps)
```
## FAQ
### Why can't I flash on Windows/macOS
On Windows and macOS, it requires [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/) to be running. This is tedious to set up, so it's not recommended; use [QMK Toolbox](https://github.com/qmk/qmk_toolbox) instead.
!> Docker for Windows requires [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) to be enabled. This means that it cannot work on versions of Windows which don't have Hyper-V, such as Windows 7, Windows 8 and **Windows 10 Home**.

View File

@@ -1,16 +1,16 @@
# How to Use Github with QMK
# How to Use GitHub with QMK
Github can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK.
GitHub can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK.
?> This guide assumes you're somewhat comfortable with running things at the command line, and have git installed on your system.
Start on the [QMK Github page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":
Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":
![Fork on Github](http://i.imgur.com/8Toomz4.jpg)
![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg)
If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button:
![Download from Github](http://i.imgur.com/N1NYcSz.jpg)
![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg)
And be sure to select "HTTPS", and select the link and copy it:
@@ -54,7 +54,7 @@ To https://github.com/whoeveryouare/qmk_firmware.git
+ 20043e64...7da94ac5 master -> master
```
Your changes now exist on your fork on Github - if you go back there (`https://github.com/<whoeveryouare>/qmk_firmware`), you can create a "New Pull Request" by clicking this button:
Your changes now exist on your fork on GitHub - if you go back there (`https://github.com/<whoeveryouare>/qmk_firmware`), you can create a "New Pull Request" by clicking this button:
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg)

View File

@@ -20,7 +20,6 @@ The "easy" way to flash the firmware is using a tool from your host OS:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox) (recommended)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
* [Atmel FLIP](http://www.atmel.com/tools/flip.aspx)
If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version.

View File

@@ -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

@@ -14,7 +14,7 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour
## איך להשיג אותה
אם אתם מתכננים לתרום מיפוי מקשים, מקלדת או יכולת ל QMK, הדבר הקל ביותר הוא [לעשות פורק לריפו בGithub](https://github.com/qmk/qmk_firmware#fork-destination-box), ולעשות קלון לריפו בסביבה המקומית ושם לבצע את השינויים שלכם, לדחוף אותם ולפתוח [Pull Request](https://github.com/qmk/qmk_firmware/pulls) מהפורק שלך.
אם אתם מתכננים לתרום מיפוי מקשים, מקלדת או יכולת ל QMK, הדבר הקל ביותר הוא [לעשות פורק לריפו בGitHub](https://github.com/qmk/qmk_firmware#fork-destination-box), ולעשות קלון לריפו בסביבה המקומית ושם לבצע את השינויים שלכם, לדחוף אותם ולפתוח [Pull Request](https://github.com/qmk/qmk_firmware/pulls) מהפורק שלך.
אחרת, אפשר להוריד את הקושחה באופן ישיר ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), או לשכפל אותה באמצעות git (`git@github.com:qmk/qmk_firmware.git`), או https (`https://github.com/qmk/qmk_firmware.git`).

View File

@@ -5,7 +5,7 @@
* [מקורות ללמידה](he-il/newbs_learn_more_resources.md)
* [בסיס QMK](he-il/README.md)
* [מבוא לQMK](he-il/getting_started_introduction.md)
* [איך להשתמש בGithub](he-il/getting_started_github.md)
* [איך להשתמש בGitHub](he-il/getting_started_github.md)
* [קבלת עזרה](he-il/getting_started_getting_help.md)
* [שאלות נפוצות](he-il/faq.md)
* [שאלות נפוצות כלליות](he-il/faq_general.md)
@@ -27,7 +27,7 @@
* [QMK CLI](he-il/cli.md)
* [QMK CLI Config](he-il/cli_configuration.md)
* [תרומה ל QMK](he-il/contributing.md)
* [איך להשתמש בGithub](he-il/getting_started_github.md)
* [איך להשתמש בGitHub](he-il/getting_started_github.md)
* [קבלת עזרה](he-il/getting_started_getting_help.md)
* [שינויים משמעותיים](he-il/breaking_changes.md)
@@ -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

@@ -11,7 +11,7 @@
הפורום הרשמי של QMK נמצא ב - [/r/olkb](https://reddit.com/r/olkb) באתר [reddit.com](https://reddit.com).
## סוגיות Github
## סוגיות GitHub
ניתן לפתוח [סוגייה ב-GitHub](https://github.com/qmk/qmk_firmware/issues). הדבר שימושי במיוחד כאשר הסוגיה דורשת דיון עמוק וארוך או דיבאגינג.
</div>

View File

@@ -1,17 +1,17 @@
<div dir="rtl" markdown="1">
# איך להשתמש ב-Github עם QMK
# איך להשתמש ב-GitHub עם QMK
Github עלול להיות קצת טריקי למי שלא מכיר את העבודה איתו - מדריך זה ילווה אתכם שלב אחר שלב דרך ביצוע פעולות fork, clone ו-pull request עם QMK.
GitHub עלול להיות קצת טריקי למי שלא מכיר את העבודה איתו - מדריך זה ילווה אתכם שלב אחר שלב דרך ביצוע פעולות fork, clone ו-pull request עם QMK.
?> מדריך זה מניח שאתם מרגישים בנוח עם הרצה של פקודות בסביבת command line (שורת הפקודה) ו-git מותקן במערכת שלכם.
התחילו ב- [עמוד של QMK ב-Github](https://github.com/qmk/qmk_firmware), ותצמאו כפתור בחלק העליון מימין עם התיכוב "Fork":
התחילו ב- [עמוד של QMK ב-GitHub](https://github.com/qmk/qmk_firmware), ותצמאו כפתור בחלק העליון מימין עם התיכוב "Fork":
![Fork ב-Github](http://i.imgur.com/8Toomz4.jpg)
![Fork ב-GitHub](http://i.imgur.com/8Toomz4.jpg)
אם אתם חלק מארגון, תצטרכו לבחור לאיזה חשבון לבצע פעולת fork. ברוב המבקרים, תרצו לבצע fork לתוך החשבון הפרטי שלכם. ברגע שה-fork הסתיים (לפעמים זה יכול לקחת קצת זמן) הקליקו על כפתור ה-"Clone or Download":
![הורדה מ-Github](http://i.imgur.com/N1NYcSz.jpg)
![הורדה מ-GitHub](http://i.imgur.com/N1NYcSz.jpg)
תוודאו שאתם בוחרים באופצייה של "HTTPS", בחרו את הקישור והעתיקו אותו:

View File

@@ -1,33 +1,46 @@
# I2C Master Driver
# I2C Master Driver :id=i2c-master-driver
The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs.
## Available functions
## An important note on I2C Addresses :id=note-on-i2c-addresses
All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting
the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed
on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be
shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`.
You can either do this on each call to the functions below, or once in your definition of the address. For example if your device has an address of `0x18`:
`#define MY_I2C_ADDRESS (0x18 << 1)`
See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details.
## Available functions :id=available-functions
|Function |Description |
|------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|`void i2c_init(void);` |Initializes the I2C driver. This function should be called once before any transaction is initiated. |
|`uint8_t i2c_start(uint8_t address, uint16_t timeout);` |Starts an I2C transaction. Address is the 7-bit slave address without the direction bit. |
|`uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Transmit data over I2C. Address is the 7-bit slave address without the direction. Returns status of transaction. |
|`uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Receive data over I2C. Address is the 7-bit slave address without the direction. Saves number of bytes specified by `length` in `data` array. Returns status of transaction. |
|`uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_transmit` function but `regaddr` sets where in the slave the data will be written. |
|`uint8_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_receive` function but `regaddr` sets from where in the slave the data will be read. |
|`uint8_t i2c_stop(void);` |Ends an I2C transaction. |
|`i2c_status_t i2c_start(uint8_t address, uint16_t timeout);` |Starts an I2C transaction. Address is the 7-bit slave address without the direction bit. |
|`i2c_status_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Transmit data over I2C. Address is the 7-bit slave address without the direction. Returns status of transaction. |
|`i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Receive data over I2C. Address is the 7-bit slave address without the direction. Saves number of bytes specified by `length` in `data` array. Returns status of transaction. |
|`i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_transmit` function but `regaddr` sets where in the slave the data will be written. |
|`i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_receive` function but `regaddr` sets from where in the slave the data will be read. |
|`i2c_status_t i2c_stop(void);` |Ends an I2C transaction. |
### Function Return
### Function Return :id=function-return
All the above functions, except `void i2c_init(void);` return the following truth table:
|Return Value |Description |
|---------------|---------------------------------------------------|
|0 |Operation executed successfully. |
|-1 |Operation failed. |
|-2 |Operation timed out. |
|Return Constant |Value|Description |
|--------------------|-----|--------------------------------|
|`I2C_STATUS_SUCCESS`|0 |Operation executed successfully.|
|`I2C_STATUS_ERROR` |-1 |Operation failed. |
|`I2C_STATUS_TIMEOUT`|-2 |Operation timed out. |
## AVR
## AVR :id=avr
### Configuration
### Configuration :id=avr-configuration
The following defines can be used to configure the I2C master driver.
@@ -37,12 +50,12 @@ The following defines can be used to configure the I2C master driver.
AVRs usually have set GPIO which turn into I2C pins, therefore no further configuration is required.
## ARM
## ARM :id=arm
For ARM the Chibios I2C HAL driver is under the hood.
This section assumes an STM32 MCU.
### Configuration
### Configuration :id=arm-configuration
The configuration for ARM MCUs can be quite complex as often there are multiple I2C drivers which can be assigned to a variety of ports.
@@ -77,7 +90,7 @@ The ChibiOS I2C driver configuration depends on STM32 MCU:
STM32F1xx, STM32F2xx, STM32F4xx, STM32L0xx and STM32L1xx use I2Cv1;
STM32F0xx, STM32F3xx, STM32F7xx and STM32L4xx use I2Cv2;
#### I2Cv1
#### I2Cv1 :id=i2cv1
STM32 MCUs allow for different clock and duty parameters when configuring I2Cv1. These can be modified using the following parameters, using <https://www.playembedded.org/blog/stm32-i2c-chibios/#I2Cv1_configuration_structure> as a reference:
| Variable | Default |
@@ -86,7 +99,7 @@ STM32 MCUs allow for different clock and duty parameters when configuring I2Cv1.
| `I2C1_CLOCK_SPEED` | `100000` |
| `I2C1_DUTY_CYCLE` | `STD_DUTY_CYCLE` |
#### I2Cv2
#### I2Cv2 :id=i2cv2
STM32 MCUs allow for different timing parameters when configuring I2Cv2. These can be modified using the following parameters, using <https://www.st.com/en/embedded-software/stsw-stm32126.html> as a reference:
| Variable | Default |
@@ -104,10 +117,10 @@ STM32 MCUs allow for different "alternate function" modes when configuring GPIO
| `I2C1_SCL_PAL_MODE` | `4` |
| `I2C1_SDA_PAL_MODE` | `4` |
#### Other
#### Other :id=other
You can also overload the `void i2c_init(void)` function, which has a weak attribute. If you do this the configuration variables above will not be used. Please consult the datasheet of your MCU for the available GPIO configurations. The following is an example initialization function:
```C
```c
void i2c_init(void)
{
setPinInput(B6); // Try releasing special pins for a short time

View File

@@ -32,7 +32,8 @@
// Moved pages
'/adding_a_keyboard_to_qmk': '/hardware_keyboard_guidelines',
'/build_environment_setup': '/getting_started_build_tools',
'/build_environment_setup': '/newbs_getting_started',
'/cli_dev_configuration': '/cli_configuration',
'/dynamic_macros': '/feature_dynamic_macros',
'/feature_common_shortcuts': '/feature_advanced_keycodes',
'/glossary': '/reference_glossary',
@@ -44,6 +45,7 @@
'/tap_dance': '/feature_tap_dance',
'/unicode': '/feature_unicode',
'/python_development': '/cli_development',
'/getting_started_build_tools':'/newbs_getting_started',
},
basePath: '/',
name: 'QMK Firmware',

View File

@@ -1,22 +1,23 @@
# GPIO Control
# GPIO Control :id=gpio-control
QMK has a GPIO control abstraction layer which is microcontroller agnostic. This is done to allow easy access to pin control across different platforms.
## Functions
## Functions :id=functions
The following functions can provide basic control of GPIOs and are found in `quantum/quantum.h`.
|Function |Description | Old AVR Examples | Old ChibiOS/ARM Examples |
|----------------------|------------------------------------------------------------------|------------------------------------------------|-------------------------------------------------|
|`setPinInput(pin)` |Set pin as input with high impedance (High-Z) | `DDRB &= ~(1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT)` |
|`setPinInputHigh(pin)`|Set pin as input with builtin pull-up resistor | `DDRB &= ~(1<<2); PORTB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)` |
|`setPinInputLow(pin)` |Set pin as input with builtin pull-down resistor | N/A (Not supported on AVR) | `palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)` |
|`setPinOutput(pin)` |Set pin as output | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
|`writePinHigh(pin)` |Set pin level as high, assuming it is an output | `PORTB \|= (1<<2)` | `palSetLine(pin)` |
|`writePinLow(pin)` |Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
|`writePin(pin, level)`|Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
|`readPin(pin)` |Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
|Function |Description | Old AVR Examples | Old ChibiOS/ARM Examples |
|------------------------|--------------------------------------------------|-------------------------------------------------|-------------------------------------------------|
| `setPinInput(pin)` | Set pin as input with high impedance (High-Z) | `DDRB &= ~(1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT)` |
| `setPinInputHigh(pin)` | Set pin as input with builtin pull-up resistor | `DDRB &= ~(1<<2); PORTB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_INPUT_PULLUP)` |
| `setPinInputLow(pin)` | Set pin as input with builtin pull-down resistor | N/A (Not supported on AVR) | `palSetLineMode(pin, PAL_MODE_INPUT_PULLDOWN)` |
| `setPinOutput(pin)` | Set pin as output | `DDRB \|= (1<<2)` | `palSetLineMode(pin, PAL_MODE_OUTPUT_PUSHPULL)` |
| `writePinHigh(pin)` | Set pin level as high, assuming it is an output | `PORTB \|= (1<<2)` | `palSetLine(pin)` |
| `writePinLow(pin)` | Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
| `writePin(pin, level)` | Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
| `readPin(pin)` | Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
| `togglePin(pin)` | Invert pin level, assuming it is an output | `PORTB ^= (1<<2)` | `palToggleLine(pin)` |
## Advanced Settings
## Advanced Settings :id=advanced-settings
Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used.

View File

@@ -115,12 +115,18 @@ The simplest and quickest way to get things back to normal is to flash only a bo
You can find the stock bootloaders in the [`util/` folder](https://github.com/qmk/qmk_firmware/tree/master/util). Be sure to flash the correct bootloader for your chip:
* [`atmega32u4`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) - Most keyboards, Planck Rev 1-5, Preonic Rev 1-2
* [`Pro Micro`](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex) - The default bootloader for Pro Micro controllers
* [`at90usb1286`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128x_1_0_1.hex) - Planck Light Rev 1
* [`atmega32a`](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32a_1_0_0.hex) - jj40, and other V-USB/ps2avrGB keyboards
* **Atmel DFU**
* [ATmega16U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega16u4_1.0.1.hex)
* [ATmega32U4](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1.0.0.hex)
* [AT90USB64](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb64_1.0.0.hex)
* [AT90USB128](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_at90usb128_1.0.1.hex)
* **Caterina**
* [Pro Micro (5V/16MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro16.hex)
* [Pro Micro (3.3V/8MHz)](https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/avr/bootloaders/caterina/Caterina-promicro8.hex)
* **BootloadHID (PS2AVRGB)**
* [ATmega32A](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_ps2avrgb_bootloadhid_1.0.1.hex)
If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU =` line will have the value you need. It may differ between different versions of the board.
If you're not sure what your board uses, look in the `rules.mk` file for the keyboard in QMK. The `MCU` and `BOOTLOADER` lines will have the value you need. It may differ between different versions of the board.
### Production Techniques

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
```

258
docs/ja/cli_commands.md Normal file
View File

@@ -0,0 +1,258 @@
# QMK CLI コマンド
<!---
original document: 0.8.58:docs/cli.md
git diff 0.8.58 HEAD -- docs/cli.md | cat
-->
# CLI コマンド
## `qmk cformat`
このコマンドは clang-format を使って C コードを整形します。
引数無しで実行すると、変更された全てのコアコードを整形します。デフォルトでは `git diff``origin/master` をチェックし、ブランチは `-b <branch_name>` を使って変更できます。
`-a` で全てのコアコードを整形するか、コマンドラインでファイル名を渡して特定のファイルに対して実行します。
**指定したファイルに対する使い方**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
**全てのコアファイルに対する使い方**:
```
qmk cformat -a
```
**origin/master で変更されたファイルのみに対する使い方**:
```
qmk cformat
```
**branch_name で変更されたファイルのみに対する使い方**:
```
qmk cformat -b branch_name
```
## `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 compile -kb all -km <keymap_name>
```
**例**:
```
$ 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>` を使ってください。利用可能なブートローダの詳細については、[ファームウェアを書き込む](ja/flashing.md)を見てください。
**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
```

View File

@@ -113,7 +113,7 @@ compile.keymap: skully -> None
|-----|---------------|-------------|
| user.keyboard | None | キーボードのパス (例: `clueboard/66/rev4`) |
| user.keymap | None | キーマップ名 (例: `default`) |
| user.name | None | ユーザの github のユーザ名。 |
| user.name | None | ユーザの GitHub のユーザ名。 |
# 全ての設定オプション

View File

@@ -1,8 +1,8 @@
# QMK の設定
<!---
original document: 2fe288d01:docs/config_options.md
git diff 2fe288d01 HEAD -- docs/config_options.md | cat
original document: 0.8.62:docs/config_options.md
git diff 0.8.62 HEAD -- docs/config_options.md | cat
-->
QMK はほぼ無制限に設定可能です。可能なところはいかなるところでも、やりすぎな程、ユーザーがコードサイズを犠牲にしてでも彼らのキーボードをカスタマイズをすることを許しています。ただし、このレベルの柔軟性により設定が困難になります。
@@ -39,167 +39,173 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
## ハードウェアオプション
* `#define VENDOR_ID 0x1234`
* VID を定義します。ほとんどの DIY プロジェクトにおいて、任意のものを定義できます
* VID を定義します。ほとんどの DIY プロジェクトにおいて、任意のものを定義できます
* `#define PRODUCT_ID 0x5678`
* PID を定義します。ほとんどの DIY プロジェクトでは、任意のものを定義できます
* PID を定義します。ほとんどの DIY プロジェクトでは、任意のものを定義できます
* `#define DEVICE_VER 0`
* デバイスのバージョンを定義します (多くの場合リビジョンに使われます)
* デバイスのバージョンを定義します (多くの場合リビジョンに使われます)
* `#define MANUFACTURER Me`
* 一般的に、誰もしくはどのブランドがボードを作成したか
* 一般的に、誰もしくはどのブランドがボードを作成したか
* `#define PRODUCT Board`
* キーボードの名前
* キーボードの名前
* `#define DESCRIPTION a keyboard`
* キーボードの簡単な説明
* キーボードの簡単な説明
* `#define MATRIX_ROWS 5`
* キーボードのマトリックスの行の数
* キーボードのマトリックスの行の数
* `#define MATRIX_COLS 15`
* キーボードのマトリックスの列の数
* キーボードのマトリックスの列の数
* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }`
* 行のピン、上から下へ
* 行のピン、上から下へ
* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
* 列のピン、左から右へ
* 列のピン、左から右へ
* `#define MATRIX_IO_DELAY 30`
* マトリックスピン状態の変更と値の読み取り間のマイクロ秒単位の遅延
* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
* 参考として、キーボードで使われていないピン
* 参考として、キーボードで使われていないピン
* `#define MATRIX_HAS_GHOST`
* マトリックスにゴーストがあるか(ありそうにないか)定義します
* マトリックスにゴーストがあるか(ありそうにないか)定義します
* `#define DIODE_DIRECTION COL2ROW`
* COL2ROW あるいは ROW2COL - マトリックスがどのように設定されているか。COL2ROW は、スイッチとロウ(行)ラインの間にダイオードが黒い印をロウ(行)ラインに向けて置いてあることを意味します。
* COL2ROW あるいは ROW2COL - マトリックスがどのように設定されているか。COL2ROW は、スイッチとロウ(行)ラインの間にダイオードが黒い印をロウ(行)ラインに向けて置いてあることを意味します。
* `#define DIRECT_PINS { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* ロウ(行)ラインとカラム(列)ラインにマップされているピンを左から右に。各スイッチが個別のピンとグラウンドに接続されているマトリックスを定義します。
* ロウ(行)ラインとカラム(列)ラインにマップされているピンを左から右に。各スイッチが個別のピンとグラウンドに接続されているマトリックスを定義します。
* `#define AUDIO_VOICES`
* (循環させるために)代替音声を有効にします
* (循環させるために)代替音声を有効にします
* `#define C4_AUDIO`
* ピン C4 のオーディオを有効にします
* ピン C4 のオーディオを有効にします
* `#define C5_AUDIO`
* ピン C5 のオーディオを有効にします
* ピン C5 のオーディオを有効にします
* `#define C6_AUDIO`
* ピン C6 のオーディオを有効にします
* ピン C6 のオーディオを有効にします
* `#define B5_AUDIO`
* ピン B5 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* ピン B5 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* `#define B6_AUDIO`
* ピン B6 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* ピン B6 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* `#define B7_AUDIO`
* ピン B7 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* ピン B7 のオーディオを有効にします (C[4-6]\_AUDIO の1つとともに B[5-7]\_AUDIO の1つが有効にされている場合、疑似ステレオが有効にされます)
* `#define BACKLIGHT_PIN B7`
* バックライトのピン
* バックライトのピン
* `#define BACKLIGHT_LEVELS 3`
* バックライトのレベル数 (off を除いて最大31)
* バックライトのレベル数 (off を除いて最大31)
* `#define BACKLIGHT_BREATHING`
* バックライトのブレスを有効にします
* バックライトのブレスを有効にします
* `#define BREATHING_PERIOD 6`
* 1つのバックライトの "ブレス" の長さの秒数
* 1つのバックライトの "ブレス" の長さの秒数
* `#define DEBOUNCE 5`
* ピンの値を読み取る時の遅延 (5がデフォルト)
* ピンの値を読み取る時の遅延 (5がデフォルト)
* `#define LOCKING_SUPPORT_ENABLE`
* メカニカルロックのサポート。キーマップで KC_LCAP、 KC_LNUM そして KC_LSCR を使えるようにします
* メカニカルロックのサポート。キーマップで KC_LCAP、 KC_LNUM そして KC_LSCR を使えるようにします
* `#define LOCKING_RESYNC_ENABLE`
* キーボードの LED の状態をスイッチの状態と一致させ続けようとします
* キーボードの LED の状態をスイッチの状態と一致させ続けようとします
* `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)`
* マジックコマンドの使用を可能にするキーの組み合わせ (デバッグに便利です)
* マジックコマンドの使用を可能にするキーの組み合わせ (デバッグに便利です)
* `#define USB_MAX_POWER_CONSUMPTION 500`
* デバイスの USB 経由の最大電力(mA) を設定します (デフォルト: 500)
* デバイスの USB 経由の最大電力(mA) を設定します (デフォルト: 500)
* `#define USB_POLLING_INTERVAL_MS 10`
* キーボード、マウス および 共有 (NKRO/メディアキー) インタフェースのための USB ポーリングレートをミリ秒で設定します
* キーボード、マウス および 共有 (NKRO/メディアキー) インタフェースのための USB ポーリングレートをミリ秒で設定します
* `#define F_SCL 100000L`
* I2C を使用するキーボードのための I2C クロックレート速度を設定します。デフォルトは `400000L` ですが、`split_common` を使っているキーボードは別でデフォルトは `100000L` です。
* I2C を使用するキーボードのための I2C クロックレート速度を設定します。デフォルトは `400000L` ですが、`split_common` を使っているキーボードは別でデフォルトは `100000L` です。
## 無効にできる機能
これらのオプションを定義すると、関連する機能が無効になり、コードサイズを節約できます。
* `#define NO_DEBUG`
* デバッグを無効にします
* デバッグを無効にします
* `#define NO_PRINT`
* hid_listen を使った出力やデバッグを無効にします
* hid_listen を使った出力やデバッグを無効にします
* `#define NO_ACTION_LAYER`
* レイヤーを無効にします
* レイヤーを無効にします
* `#define NO_ACTION_TAPPING`
* タップダンスと他のタップ機能を無効にします
* タップダンスと他のタップ機能を無効にします
* `#define NO_ACTION_ONESHOT`
* ワンショットモディファイアを無効にします
* ワンショットモディファイアを無効にします
* `#define NO_ACTION_MACRO`
* 古い形式のマクロ処理を無効にします: MACRO() & action_get_macro
* 古い形式のマクロ処理を無効にします: MACRO() & action_get_macro
* `#define NO_ACTION_FUNCTION`
* fn_actions 配列(非推奨)からの action_function() の呼び出しを無効にします
* fn_actions 配列(非推奨)からの action_function() の呼び出しを無効にします
## 有効にできる機能
これらのオプションを定義すると、関連する機能が有効になり、コードサイズが大きくなるかもしれません。
* `#define FORCE_NKRO`
* NKRO をデフォルトでオンにする必要があります。これにより EEPROM の設定に関係なく、キーボードの起動時に NKRO が強制的にオンになります。NKRO は引き続きオフにできますが、キーボードを再起動すると再びオンになります。
* NKRO をデフォルトでオンにする必要があります。これにより EEPROM の設定に関係なく、キーボードの起動時に NKRO が強制的にオンになります。NKRO は引き続きオフにできますが、キーボードを再起動すると再びオンになります。
* `#define STRICT_LAYER_RELEASE`
* キーリリースがどのレイヤーから来たのかを覚えるのではなく、現在のレイヤースタックを使って強制的に評価されるようにします (高度なケースに使われます)
* キーリリースがどのレイヤーから来たのかを覚えるのではなく、現在のレイヤースタックを使って強制的に評価されるようにします (高度なケースに使われます)
## 設定可能な挙動
* `#define TAPPING_TERM 200`
* タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照)
* タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照)
* `#define TAPPING_TERM_PER_KEY`
* キーごとの `TAPPING_TERM` 設定の処理を有効にします
* キーごとの `TAPPING_TERM` 設定の処理を有効にします
* `#define RETRO_TAPPING`
* 押下とリリースの間に他のキーによる中断がなければ、TAPPING_TERM の後であってもとにかくタップします
* 詳細は [Retro Tapping](ja/feature_advanced_keycodes.md#retro-tapping) を見てください
* 押下とリリースの間に他のキーによる中断がなければ、TAPPING_TERM の後であってもとにかくタップします
* 詳細は [Retro Tapping](ja/tap_hold.md#retro-tapping) を見てください
* `#define TAPPING_TOGGLE 2`
* トグルを引き起こす前のタップ数
* トグルを引き起こす前のタップ数
* `#define PERMISSIVE_HOLD`
* `TAPPING_TERM` にヒットしていなくても、リリースする前に別のキーが押されると、タップとフォールドキーがホールドを引き起こします
* 詳細は [Permissive Hold](ja/feature_advanced_keycodes.md#permissive-hold) を見てください
* `TAPPING_TERM` にヒットしていなくても、リリースする前に別のキーが押されると、タップとールドキーがホールドを引き起こします
* 詳細は [Permissive Hold](ja/tap_hold.md#permissive-hold) を見てください
* `#define PERMISSIVE_HOLD_PER_KEY`
* キーごとの `PERMISSIVE_HOLD` 設定の処理を有効にします
* `#define IGNORE_MOD_TAP_INTERRUPT`
* 両方のキーに `TAPPING_TERM` を適用することで、ホールド時に他のキーに変換するキーを使ってローリングコンボ (zx) をすることができるようにします
* 詳細は [Mod tap interrupt](ja/feature_advanced_keycodes.md#ignore-mod-tap-interrupt) を見てください
* 両方のキーに `TAPPING_TERM` を適用することで、ホールド時に他のキーに変換するキーを使ってローリングコンボ (zx) をすることができるようにします
* 詳細は [Ignore Mod Tap Interrupt](ja/tap_hold.md#ignore-mod-tap-interrupt) を見てください
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
* キーごとの `IGNORE_MOD_TAP_INTERRUPT` 設定の処理を有効にします
* キーごとの `IGNORE_MOD_TAP_INTERRUPT` 設定の処理を有効にします
* `#define TAPPING_FORCE_HOLD`
* タップされた直後に、デュアルロールキーを修飾子として使用できるようにします
* [Hold after tap](ja/feature_advanced_keycodes.md#tapping-force-hold)を見てください
* タップトグル機能を無効にします (`TT` あるいは One Shot Tap Toggle)
* タップされた直後に、デュアルロールキーを修飾子として使用できるようにします
* [Tapping Force Hold](ja/tap_hold.md#tapping-force-hold)を見てください
* タップトグル機能を無効にします (`TT` あるいは One Shot Tap Toggle)
* `#define TAPPING_FORCE_HOLD_PER_KEY`
* キーごとの `TAPPING_FORCE_HOLD` 設定処理を有効にします。
* キーごとの `TAPPING_FORCE_HOLD` 設定処理を有効にします。
* `#define LEADER_TIMEOUT 300`
* リーダーキーがタイムアウトするまでの時間
* タイムアウトする前にシーケンスを終了できない場合は、タイムアウトの設定を増やす必要があるかもしれません。あるいは、`LEADER_PER_KEY_TIMING` オプションを有効にすると良いでしょう。これは各キーがタップされた後でタイムアウトを再設定します。
* リーダーキーがタイムアウトするまでの時間
* タイムアウトする前にシーケンスを終了できない場合は、タイムアウトの設定を増やす必要があるかもしれません。あるいは、`LEADER_PER_KEY_TIMING` オプションを有効にすると良いでしょう。これは各キーがタップされた後でタイムアウトを再設定します。
* `#define LEADER_PER_KEY_TIMING`
* 全体では無く各キーを押すたびに実行されるリーダーキーコードのタイマーを設定します
* 全体では無く各キーを押すたびに実行されるリーダーキーコードのタイマーを設定します
* `#define LEADER_KEY_STRICT_KEY_PROCESSING`
* Mod-Tap および Layer-Tap キーコードのためのキーコードフィルタリングを無効にします。例えば、これを有効にすると、`KC_A` を使いたい場合は `MT(MOD_CTL, KC_A)` を指定する必要があります。
* Mod-Tap および Layer-Tap キーコードのためのキーコードフィルタリングを無効にします。例えば、これを有効にすると、`KC_A` を使いたい場合は `MT(MOD_CTL, KC_A)` を指定する必要があります。
* `#define ONESHOT_TIMEOUT 300`
* ワンショットがタイムアウトするまでの時間
* ワンショットがタイムアウトするまでの時間
* `#define ONESHOT_TAP_TOGGLE 2`
* ワンショットトグルが引き起こされるまでのタップ数
* ワンショットトグルが引き起こされるまでのタップ数
* `#define QMK_KEYS_PER_SCAN 4`
* 走査ごとに1つ以上のキーを送信できるようにします。デフォルトでは、走査ごとに `process_record()` 経由で1つのキーイベントのみが送信されます。これはほとんどのタイピングにほとんど影響しませんが、多くのコードを入力しているか、走査レートが最初から遅い場合、キーイベントの処理に多少の遅延が生じる可能性があります。それぞれのプレスとリリースは別のイベントです。スキャン時間が 1ms 程度のキーボードの場合、とても高速なタイピストでさえ、実際にキーボードから数 ms 以上の遅延を発生させるのに必要な 500 キーストロークを1秒間に生成することはないでしょう。しかし、34ms の走査時間でコードを入力している場合はどうでしょうか?おそらくこれが必要です。
* 走査ごとに1つ以上のキーを送信できるようにします。デフォルトでは、走査ごとに `process_record()` 経由で1つのキーイベントのみが送信されます。これはほとんどのタイピングにほとんど影響しませんが、多くのコードを入力しているか、走査レートが最初から遅い場合、キーイベントの処理に多少の遅延が生じる可能性があります。それぞれのプレスとリリースは別のイベントです。スキャン時間が 1ms 程度のキーボードの場合、とても高速なタイピストでさえ、実際にキーボードから数 ms 以上の遅延を発生させるのに必要な 500 キーストロークを1秒間に生成することはないでしょう。しかし、34ms の走査時間でコードを入力している場合はどうでしょうか?おそらくこれが必要です。
* `#define COMBO_COUNT 2`
* [コンボ](ja/feature_combo.md)機能で使っているコンボの数にこれを設定します。
* [コンボ](ja/feature_combo.md)機能で使っているコンボの数にこれを設定します。
* `#define COMBO_TERM 200`
* コンボキーが検出されるまでの時間。定義されていない場合は、デフォルトは `TAPPING_TERM` です。
* コンボキーが検出されるまでの時間。定義されていない場合は、デフォルトは `TAPPING_TERM` です。
* `#define TAP_CODE_DELAY 100`
* 適切な登録に問題がある場合(VUSB ボードで珍しくない)、`register_code``unregister_code` の間の遅延を設定します。値はミリ秒です。
* 適切な登録に問題がある場合(VUSB ボードで珍しくない)、`register_code``unregister_code` の間の遅延を設定します。値はミリ秒です。
* `#define TAP_HOLD_CAPS_DELAY 80`
* MacOS で特別な処理が行われるため、`KC_CAPSLOCK` を使う時にタップホールドキー (`LT`, `MT`) に遅延を設定します。この値はミリ秒で、定義されていない場合はデフォルトは80msです。macOS については、これを200以上に設定すると良いでしょう。
* MacOS で特別な処理が行われるため、`KC_CAPSLOCK` を使う時にタップホールドキー (`LT`, `MT`) に遅延を設定します。この値はミリ秒で、定義されていない場合はデフォルトは80msです。macOS については、これを200以上に設定すると良いでしょう。
## RGB ライト設定 :id=rgb-light-configuration
* `#define RGB_DI_PIN D7`
* WS2812 の DI 端子につなぐピン
* WS2812 の DI 端子につなぐピン
* `#define RGBLIGHT_ANIMATIONS`
* RGB アニメーションを実行します
* RGB アニメーションを実行します
* `#define RGBLIGHT_LAYERS`
* オンとオフを切り替えることができる [ライトレイヤー](ja/feature_rgblight.md) を定義できます。現在のキーボードレイヤーまたは Caps Lock 状態を表示するのに最適です。
* `#define RGBLED_NUM 12`
* LED の数
* LED の数
* `#define RGBLIGHT_SPLIT`
* 分割キーボードの左半分の RGB LED の出力を右半分の RGB LED の入力につなげるかわりに、それぞれの側で個別にコントローラの出力ピンが直接 RGB LED の入力に繋がっているときは、この定義が必要です。
* 分割キーボードの左半分の RGB LED の出力を右半分の RGB LED の入力につなげるかわりに、それぞれの側で個別にコントローラの出力ピンが直接 RGB LED の入力に繋がっているときは、この定義が必要です。
* `#define RGBLED_SPLIT { 6, 6 }`
* 分割キーボードの各半分の `RGB_DI_PIN` に直接配線されている接続されている LED の数
* 最初の値は左半分の LED の数を示し、2番目の値は右半分です。
* RGBLED_SPLIT が定義されている場合、RGBLIGHT_SPLIT は暗黙的に定義されます。
* 分割キーボードの各半分の `RGB_DI_PIN` に直接配線されている接続されている LED の数
* 最初の値は左半分の LED の数を示し、2番目の値は右半分です。
* RGBLED_SPLIT が定義されている場合、RGBLIGHT_SPLIT は暗黙的に定義されます。
* `#define RGBLIGHT_HUE_STEP 12`
* 色相の増減時のステップ単位
* 色相の増減時のステップ単位
* `#define RGBLIGHT_SAT_STEP 25`
* 彩度の増減時のステップ単位
* 彩度の増減時のステップ単位
* `#define RGBLIGHT_VAL_STEP 12`
* 値(明度)の増減時のステップ単位
* 値(明度)の増減時のステップ単位
* `#define RGBW`
* RGBW LED のサポートを有効にします
* RGBW LED のサポートを有効にします
## マウスキーオプション
@@ -214,7 +220,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
分割キーボード固有のオプション。あなたの rules.mk に 'SPLIT_KEYBOARD = yes' が有ることを確認してください。
* `SPLIT_TRANSPORT = custom`
* 標準の分割通信ルーチンをカスタムのものに置き換えることができます。現在、ARM ベースの分割キーボードはこれを使わなければなりません。
* 標準の分割通信ルーチンをカスタムのものに置き換えることができます。現在、ARM ベースの分割キーボードはこれを使わなければなりません。
### 左右の設定
@@ -233,52 +239,52 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
#### 左右を定義します
* `#define SPLIT_HAND_PIN B7`
* high/low ピンを使って左右を決定します。low = 右手、high = 左手。`B7` を使っているピンに置き換えます。これはオプションで、`SPLIT_HAND_PIN` が未定義のままである場合、EE_HANDS メソッドまたは標準の Let's Splitが使っている MASTER_LEFT / MASTER_RIGHT 定義をまだ使うことができます。
* high/low ピンを使って左右を決定します。low = 右手、high = 左手。`B7` を使っているピンに置き換えます。これはオプションで、`SPLIT_HAND_PIN` が未定義のままである場合、EE_HANDS メソッドまたは標準の Let's Splitが使っている MASTER_LEFT / MASTER_RIGHT 定義をまだ使うことができます。
* `#define EE_HANDS` (`SPLIT_HAND_PIN` が定義されていない場合のみ動作します)
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。
* `eeprom-lefthand.eep`/`eeprom-righthand.eep` がそれぞれの半分に書き込まれた後で、EEPROM 内に格納されている左右の設定の値を読み込みます。
* `#define MASTER_RIGHT`
* マスター側が右側と定義されます。
* マスター側が右側と定義されます。
### 他のオプション
* `#define USE_I2C`
* Serial の代わりに I2C を使う場合 (デフォルトは serial)
* Serial の代わりに I2C を使う場合 (デフォルトは serial)
* `#define SOFT_SERIAL_PIN D0`
* serial を使う場合、これを定義します。`D0` あるいは `D1`,`D2`,`D3`,`E6`
* serial を使う場合、これを定義します。`D0` あるいは `D1`,`D2`,`D3`,`E6`
* `#define MATRIX_ROW_PINS_RIGHT { <row pins> }`
* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
* 右半分に左半分と異なるピン配置を指定したい場合は、`MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT` を定義することができます。現在のところ、`MATRIX_ROW_PINS` のサイズは `MATRIX_ROW_PINS_RIGHT` と同じでなければならず、列の定義も同様です。
* 右半分に左半分と異なるピン配置を指定したい場合は、`MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT` を定義することができます。現在のところ、`MATRIX_ROW_PINS` のサイズは `MATRIX_ROW_PINS_RIGHT` と同じでなければならず、列の定義も同様です。
* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
* 右半分に左半分と異なる直接ピン配置を指定したい場合は、`DIRECT_PINS_RIGHT` を定義することができます。現在のところ、`DIRECT_PINS` のサイズは `DIRECT_PINS_RIGHT` と同じでなければなりません。
* 右半分に左半分と異なる直接ピン配置を指定したい場合は、`DIRECT_PINS_RIGHT` を定義することができます。現在のところ、`DIRECT_PINS` のサイズは `DIRECT_PINS_RIGHT` と同じでなければなりません。
* `#define RGBLED_SPLIT { 6, 6 }`
* [RGB ライト設定](#rgb-light-configuration)を見てください。
* [RGB ライト設定](#rgb-light-configuration)を見てください。
* `#define SELECT_SOFT_SERIAL_SPEED <speed>` (デフォルトの速度は1です)
* serial 通信を使う時のプロトコルの速度を設定します。
* 速度:
* 0: 約 189kbps (実験目的のみ)
* 1: 約 137kbps (デフォルト)
* 2: 約 75kbps
* 3: 約 39kbps
* 4: 約 26kbps
* 5: 約 20kbps
* serial 通信を使う時のプロトコルの速度を設定します。
* 速度:
* 0: 約 189kbps (実験目的のみ)
* 1: 約 137kbps (デフォルト)
* 2: 約 75kbps
* 3: 約 39kbps
* 4: 約 26kbps
* 5: 約 20kbps
* `#define SPLIT_USB_DETECT`
* マスタ/スレーブを委任する時に(タイムアウト付きで) USB 接続を検出します
* ARM についてはデフォルトの挙動
* AVR Teensy については必須
* マスタ/スレーブを委任する時に(タイムアウト付きで) USB 接続を検出します
* ARM についてはデフォルトの挙動
* AVR Teensy については必須
* `#define SPLIT_USB_TIMEOUT 2000`
* `SPLIT_USB_DETECT` を使う時のマスタ/スレーブを検出する場合の最大タイムアウト
* `SPLIT_USB_DETECT` を使う時のマスタ/スレーブを検出する場合の最大タイムアウト
* `#define SPLIT_USB_TIMEOUT_POLL 10`
* `SPLIT_USB_DETECT` を使う時のマスタ/スレーブを検出する場合のポーリング頻度
* `SPLIT_USB_DETECT` を使う時のマスタ/スレーブを検出する場合のポーリング頻度
# `rules.mk` ファイル
@@ -287,11 +293,11 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
## ビルドオプション
* `DEFAULT_FOLDER`
* キーボードに1つ以上のサブフォルダがある場合にデフォルトのフォルダを指定するために使われます。
* キーボードに1つ以上のサブフォルダがある場合にデフォルトのフォルダを指定するために使われます。
* `FIRMWARE_FORMAT`
* ビルドの後でルート `qmk_firmware` フォルダにコピーされる形式 (bin, hex) を定義します。
* ビルドの後でルート `qmk_firmware` フォルダにコピーされる形式 (bin, hex) を定義します。
* `SRC`
* コンパイル・リンクリストにファイルを追加するために使われます。
* コンパイル・リンクリストにファイルを追加するために使われます。
* `LIB_SRC`
* コンパイル・リンクリストにライブラリとしてファイルを追加するために使われます。
`LIB_SRC` で指定されたファイルは、`SRC` で指定されたファイルの後にリンクされます。
@@ -307,11 +313,11 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
... a.o c.o ... lib_b.a lib_d.a ...
```
* `LAYOUTS`
* このキーボードがサポートする[レイアウト](ja/feature_layouts.md)のリスト
* このキーボードがサポートする[レイアウト](ja/feature_layouts.md)のリスト
* `LINK_TIME_OPTIMIZATION_ENABLE`
* キーボードをコンパイルする時に、Link Time Optimization (`LTO`) を有効にします。これは処理に時間が掛かりますが、コンパイルされたサイズを大幅に減らします (そして、ファームウェアが小さいため、追加の時間は分からないくらいです)。ただし、`LTO` が有効な場合、古いマクロと関数の機能が壊れるため、自動的にこれらの機能を無効にします。これは `NO_ACTION_MACRO` と `NO_ACTION_FUNCTION` を自動的に定義することで行われます。
* キーボードをコンパイルする時に、Link Time Optimization (`LTO`) を有効にします。これは処理に時間が掛かりますが、コンパイルされたサイズを大幅に減らします (そして、ファームウェアが小さいため、追加の時間は分からないくらいです)。ただし、`LTO` が有効な場合、古いマクロと関数の機能が壊れるため、自動的にこれらの機能を無効にします。これは `NO_ACTION_MACRO` と `NO_ACTION_FUNCTION` を自動的に定義することで行われます。
* `LTO_ENABLE`
* LINK_TIME_OPTIMIZATION_ENABLE と同じ意味です。`LINK_TIME_OPTIMIZATION_ENABLE` の代わりに `LTO_ENABLE` を使うことができます。
* LINK_TIME_OPTIMIZATION_ENABLE と同じ意味です。`LINK_TIME_OPTIMIZATION_ENABLE` の代わりに `LTO_ENABLE` を使うことができます。
## AVR MCU オプション
* `MCU = atmega32u4`
@@ -320,56 +326,56 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* `F_USB = $(F_CPU)`
* `OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT`
* `BOOTLOADER = atmel-dfu` と以下のオプション:
* `atmel-dfu`
* `lufa-dfu`
* `qmk-dfu`
* `halfkay`
* `caterina`
* `bootloadHID`
* `USBasp`
* `atmel-dfu`
* `lufa-dfu`
* `qmk-dfu`
* `halfkay`
* `caterina`
* `bootloadHID`
* `USBasp`
## 機能オプション
## 機能オプション :id=feature-options
これらを使って特定の機能のビルドを有効または無効にします。有効にすればするほどファームウェアが大きくなり、MCU には大きすぎるファームウェアを構築するリスクがあります。
* `BOOTMAGIC_ENABLE`
* 仮想 DIP スイッチ設定
* 仮想 DIP スイッチ設定
* `MOUSEKEY_ENABLE`
* マウスキー
* マウスキー
* `EXTRAKEY_ENABLE`
* オーディオ制御とシステム制御
* オーディオ制御とシステム制御
* `CONSOLE_ENABLE`
* デバッグ用コンソール
* デバッグ用コンソール
* `COMMAND_ENABLE`
* デバッグ及び設定用のコマンド
* デバッグ及び設定用のコマンド
* `COMBO_ENABLE`
* キーコンボ機能
* キーコンボ機能
* `NKRO_ENABLE`
* USB N-キーロールオーバー - これが動作しない場合は、ここを見てください: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* USB N-キーロールオーバー - これが動作しない場合は、ここを見てください: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `AUDIO_ENABLE`
* オーディオサブシステムを有効にします。
* オーディオサブシステムを有効にします。
* `RGBLIGHT_ENABLE`
* キーボードアンダーライト機能を有効にします
* キーボードアンダーライト機能を有効にします
* `LEADER_ENABLE`
* リーダーキーコードを有効にします
* リーダーキーコードを有効にします
* `MIDI_ENABLE`
* MIDI 制御
* MIDI 制御
* `UNICODE_ENABLE`
* Unicode
* Unicode
* `BLUETOOTH_ENABLE`
* Adafruit EZ-Key HID で Bluetooth を有効にするレガシーオプション。BLUETOOTH を見てください
* Adafruit EZ-Key HID で Bluetooth を有効にするレガシーオプション。BLUETOOTH を見てください
* `BLUETOOTH`
* 現在のオプションは、AdafruitEzKey、AdafruitBLE、RN42
* 現在のオプションは、AdafruitEzKey、AdafruitBLE、RN42
* `SPLIT_KEYBOARD`
* 分割キーボード (let's split や bakingpy のキーボードのようなデュアル MCU) のサポートを有効にし、quantum/split_common にある全ての必要なファイルをインクルードします
* 分割キーボード (let's split や bakingpy のキーボードのようなデュアル MCU) のサポートを有効にし、quantum/split_common にある全ての必要なファイルをインクルードします
* `CUSTOM_MATRIX`
* 標準マトリックス走査ルーチンを独自のものに置き換えることができます。
* 標準マトリックス走査ルーチンを独自のものに置き換えることができます。
* `DEBOUNCE_TYPE`
* 標準キーデバウンスルーチンを代替または独自のものに置き換えることができます。
* 標準キーデバウンスルーチンを代替または独自のものに置き換えることができます。
* `WAIT_FOR_USB`
* キーボードが起動する前に、USB 接続が確立されるのをキーボードに待機させます
* キーボードが起動する前に、USB 接続が確立されるのをキーボードに待機させます
* `NO_USB_STARTUP_CHECK`
* キーボードの起動後の usb サスペンドチェックを無効にします。通常、キーボードはタスクが実行される前にホストがウェイク アップするのを待ちます。分割キーボードは半分はウェイクアップコールを取得できませんが、マスタにコマンドを送信する必要があるため、役に立ちます。
* キーボードの起動後の usb サスペンドチェックを無効にします。通常、キーボードはタスクが実行される前にホストがウェイク アップするのを待ちます。分割キーボードは半分はウェイクアップコールを取得できませんが、マスタにコマンドを送信する必要があるため、役に立ちます。
## USB エンドポイントの制限

View File

@@ -1,8 +1,8 @@
# 貢献方法
<!---
original document: d47809575:docs/contributing.md
git diff d47809575 HEAD -- docs/contributing.md | cat
original document: 0.8.62:docs/contributing.md
git diff 0.8.62 HEAD -- docs/contributing.md | cat
-->
👍🎉 まず、これを読み貢献する時間を作ってくれてありがとうございます!🎉👍
@@ -106,7 +106,7 @@ enum my_keycodes {
};
```
### ドキュメントのプレビュー
### ドキュメントのプレビュー :id=previewing-the-documentation
開発環境をセットアップした場合は、プルリクエストを開く前に以下のコマンドを `qmk_firmware/` フォルダから実行することで、あなたの変更をプレビューすることができます:
@@ -122,7 +122,7 @@ enum my_keycodes {
ほとんどの初めての QMK 貢献者は、個人のキーマップから始めます。キーマップの標準はかなりカジュアルなものにしようとしています(キーマップは結局のところ作成者の性格を反映しています)が、他の人があなたのキーマップを簡単に見つけて学ぶことができるように、これらのガイドラインに従うようにお願いします。
* [the template](documentation_templates.md) を使って `readme.md` を書きます。
* [テンプレート](documentation_templates.md) を使って `readme.md` を書きます。
* 全てのキーマップの PR は squash されるため、コミットがどのように squash されるかを気にする場合は、自分で行う必要があります。
* キーマップの PR に機能をまとめないでください。最初に機能をサブミットし、次にキーマップのための2つ目の PR をサブミットします。
* `Makefile` をキーマップフォルダに含めないでください(もう使われていません)。
@@ -134,7 +134,7 @@ enum my_keycodes {
また以下のガイドラインに従うことをお願いします:
* [the template](ja/documentation_templates.md) を使って `readme.md` を書きます。
* [テンプレート](ja/documentation_templates.md) を使って `readme.md` を書きます。
* コミットの数を適切に保ってください。そうでなければあなたの PR を squash します。
* コア機能を新しいキーボードにまとめないでください。最初に機能をサブミットし、次にキーボード用に別の PR をサブミットしてください。
* `.c`/`.h` ファイルにすぐ上の親フォルダに従って名前を付けます。例えば、`/keyboards/<kb1>/<kb2>/<kb2>.[ch]`

114
docs/ja/custom_matrix.md Normal file
View File

@@ -0,0 +1,114 @@
# カスタムマトリックス
<!---
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
original document: 0.8.46:docs/custom_matrix.md
git diff 0.8.46 HEAD -- docs/custom_matrix.md | cat
-->
QMKは、デフォルトのマトリックススキャンルーチンを独自のコードで部分的に入れ替えたり全部入れ替えたりしたりするメカニズムを提供します。
この機能を使用する理由は次のとおりです:
* キーボードのスイッチと MCU ピンの間に追加のハードウェアがある場合
* I/O マルチプレクサ
* ラインデコーダー
* 一般的ではないキースイッチマトリックス
* `COL2ROW``ROW2COL` の同時使用
## 前提条件
カスタムマトリックスの実装には、通常、追加のソースファイルのコンパイルが含まれます。
一貫性を保つために、このソースファイルのファイル名は `matrix.c` とすることをお勧めします。
あなたのキーボードディレクトリに新しいファイルを追加します:
```text
keyboards/<keyboard>/matrix.c
```
そして、新しいファイルのコンパイルを指定するため、以下を `rules.mk` に追加します
```make
SRC += matrix.c
```
## マトリックスコードの部分置き換え
カスタムマトリックスを実装する際、定型コードを書かなくてすむように、さまざまなスキャン関数のデフォルト実装を提供しています。
設定するには、以下を `rules.mk` に追加します:
```make
CUSTOM_MATRIX = lite
```
そして、キーボードディレクトリの `matrix.c` ファイルに次の関数を実装します。
```c
void matrix_init_custom(void) {
// TODO: ここでハードウェアの初期化をする
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
bool matrix_has_changed = false;
// TODO: ここで、マトリックススキャンを行なう
return matrix_has_changed;
}
```
## マトリックスコードの全面置き換え
スキャンルーチンをさらに変更する必要がある場合は、完全なスキャンルーチンを実装することを選択できます。
設定するには、以下を `rules.mk` に追加します:
```make
CUSTOM_MATRIX = yes
```
そして、キーボードディレクトリの `matrix.c` ファイルに次の関数を実装します。
```c
matrix_row_t matrix_get_row(uint8_t row) {
// TODO: 要求された行データを返します
}
void matrix_print(void) {
// TODO: printf() を使って現在のマトリックスの状態をコンソールにダンプします
}
void matrix_init(void) {
// TODO: ここでハードウェアとグローバルマトリックスの状態を初期化します
// ハードウェアによるデバウンスがない場合 - 設定されているデバウンスルーチンを初期化します
debounce_init(MATRIX_ROWS);
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
bool matrix_has_changed = false;
// TODO: ここにマトリックススキャンルーチンを追加します
// ハードウェアによるデバウンスがない場合 - 設定されているデバウンスルーチンを使用します
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
matrix_scan_quantum();
return matrix_has_changed;
}
```
また、次のコールバックのデフォルトも提供します。
```c
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
__attribute__((weak)) void matrix_init_user(void) {}
__attribute__((weak)) void matrix_scan_user(void) {}
```

View File

@@ -1,8 +1,8 @@
# キーボードの挙動をカスタマイズする方法
<!---
original document: 7494490d6:docs/custom_quantum_functions.md
git diff 7494490d6 HEAD -- docs/custom_quantum_functions.md | cat
original document: 0.8.62:docs/custom_quantum_functions.md
git diff 0.8.62 HEAD -- docs/custom_quantum_functions.md | cat
-->
多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。
@@ -39,7 +39,7 @@ enum my_keycodes {
};
```
## 任意のキーコードの挙動のプログラミング
## 任意のキーコードの挙動のプログラミング :id=programming-the-behavior-of-any-keycode
既存のキーの挙動を上書きしたい場合、あるいは新しいキーについて挙動を定義する場合、`process_record_kb()` および `process_record_user()` 関数を使うべきです。これらは実際のキーイベントが処理される前のキー処理中に QMK によって呼び出されます。これらの関数が `true` を返す場合、QMK はキーコードを通常通りに処理します。これは、キーを置き換えるのではなく、キーの機能を拡張するのに便利です。これらの関数が `false` を返す場合、QMK は通常のキー処理をスキップし、必要なキーのアップまたはダウンイベントを送信するのかはユーザ次第です。
@@ -62,7 +62,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case KC_ENTER:
// enter が押された時に音を再生します
if (record->event.pressed) {
PLAY_NOTE_ARRAY(tone_qwerty);
PLAY_SONG(tone_qwerty);
}
return true; // QMK に enter のプレスまたはリリースイベントを送信させます
default:
@@ -316,7 +316,7 @@ void suspend_wakeup_init_user(void) {
* キーボード/リビジョン : `void suspend_power_down_kb(void)` および `void suspend_wakeup_init_user(void)`
* キーマップ: `void suspend_power_down_kb(void)` および `void suspend_wakeup_init_user(void)`
# レイヤー切り替えコード
# レイヤー切り替えコード :id=layer-change-code
これはレイヤーが切り替えられるたびにコードを実行します。レイヤー表示あるいはカスタムレイヤー処理に役立ちます。
@@ -440,7 +440,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case KC_ENTER:
// enter が押された時に音を再生します
if (record->event.pressed) {
PLAY_NOTE_ARRAY(tone_qwerty);
PLAY_SONG(tone_qwerty);
}
return true; // QMK に enter のプレスまたはリリースイベントを送信させます
case RGB_LYR: // これにより、アンダーグローをレイヤー表示として、あるいは通常通りに使うことができます。
@@ -491,17 +491,27 @@ void eeconfig_init_user(void) { // EEPROM がリセットされます!
# カスタムタッピング期間
デフォルトでは、タッピング期間はグローバルに設定されていて、キーでは設定することができません。ほとんどのユーザにとって、これは全然問題ありません。しかし、場合によっては、`LT` キーとは異なるタイムアウトによって、デュアルファンクションキーが大幅に改善されます。なぜなら、一部のキーは他のキーよりも押し続けやすいためです。それぞれにカスタムキーコードを使う代わりに、キーごとに設定可能な `TAPPING_TERM` を使用できます。
デフォルトでは、タッピング期間と(`IGNORE_MOD_TAP_INTERRUPT` のような)関連オプションはグローバルに設定されていて、キーでは設定することができません。ほとんどのユーザにとって、これは全然問題ありません。しかし、場合によっては、`LT` キーとは異なるタイムアウトによって、デュアルファンクションキーが大幅に改善されます。なぜなら、一部のキーは他のキーよりも押し続けやすいためです。それぞれにカスタムキーコードを使う代わりに、キーごとに設定可能なタイムアウトの挙動を設定できます。
この機能を有効にするには、最初に `config.h``#define TAPPING_TERM_PER_KEY` を追加する必要があります
キーごとのタイムアウトの挙動を制御するための2つの設定可能なオプションがあります:
- `TAPPING_TERM_PER_KEY`
- `IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
必要な機能ごとに、`config.h``#define` 行を追加する必要があります。
```
#define TAPPING_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```
## `get_tapping_term` の実装例
キーコードに基づいて `TAPPING TERM` を変更するには、次のようなものを `keymap.c` ファイルに追加します:
キーコードに基づいて `TAPPING_TERM` を変更するには、次のようなものを `keymap.c` ファイルに追加します:
```c
uint16_t get_tapping_term(uint16_t keycode) {
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return TAPPING_TERM + 1250;
@@ -513,6 +523,21 @@ uint16_t get_tapping_term(uint16_t keycode) {
}
```
### `get_tapping_term` 関数のドキュメント
## `get_ignore_mod_tap_interrupt` の実装例
キーコードに基づいて `IGNORE_MOD_TAP_INTERRUPT` の値を変更するには、次のようなものを `keymap.c` ファイルに追加します:
```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```
## `get_tapping_term` / `get_ignore_mod_tap_interrupt` 関数のドキュメント
ここにある他の多くの関数とは異なり、quantum あるいはキーボードレベルの関数を持つ必要はありません (または理由さえありません)。ここではユーザレベルの関数だけが有用なため、そのようにマークする必要はありません。

View File

@@ -1,11 +0,0 @@
# よくある質問
<!---
original document: d598f01cb:docs/faq.md
git diff d598f01cb HEAD -- docs/faq.md | cat
-->
* [一般](ja/faq_general.md)
* [QMK のビルドあるいはコンパイル](ja/faq_build.md)
* [QMK のデバッグとトラブルシューティング](ja/faq_debug.md)
* [キーマップ](ja/faq_keymap.md)

View File

@@ -152,10 +152,3 @@ https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
## FLIP が動作しない
### `AtLibUsbDfu.dll` が見つかりません
デバイスマネージャから現在のドライバを削除し、FLIP が提供するものを再インストールします。
http://imgur.com/a/bnwzy

View File

@@ -1,14 +1,52 @@
# よくある質問
<!---
original document: d598f01cb:docs/faq_general.md
git diff d598f01cb HEAD -- docs/faq_general.md | cat
original document: 0.8.62:docs/faq_general.md
git diff 0.8.62 HEAD -- docs/faq_general.md | cat
-->
## QMK とは何か?
Quantum Mechanical Keyboard の略である [QMK](https://github.com/qmk) は、カスタムキーボードのためのツールをビルドしている人々のグループです。[TMK](https://github.com/tmk/tmk_keyboard) の大幅に修正されたフォークである [QMK ファームウェア](https://github.com/qmk/qmk_firmware)から始まりました。
## どこから始めればいいかわかりません!
この場合は、[初心者ガイド](ja/newbs.md) から始めるべきです。ここには多くの素晴らしい情報があり、それらはあなたが始めるのに必要な全てをカバーするはずです。
問題がある場合は、[QMK Configurator](https://config.qmk.fm)にアクセスしてください。あなたが必要なものの大部分が処理されます。
## ビルドしたファームウェアを書き込むにはどうすればいいですか?
まず、[コンパイル/書き込み FAQ ページ](ja/faq-build.md) に進みます。そこにはたくさんの情報があり、そこには一般的な問題に対する多くの解決策があります。
## ここで取り上げていない問題がある場合はどうしますか?
OK、問題ありません。[GitHub で issue を開く](https://github.com/qmk/qmk_firmware/issues) をチェックして、誰かが同じこと(似ているかだけでなく実際に同じであることを確認してください)を経験しているかどうかを確認してください。
もし何も見つからない場合は、[新しい issue](https://github.com/qmk/qmk_firmware/issues/new) を開いてください!
## バグを見つけたらどうしますか?
[issue](https://github.com/qmk/qmk_firmware/issues/new) を開いてください。そしてもし修正方法を知っている場合は、GitHub で修正のプルリクエストを開いてください。
## しかし、`git` と `GitHub` は怖いです!
心配しないでください。開発を容易にするために `git` と GitHub を使い始めるための、かなり良い [ガイドライン](ja/newbs_git_best_practices.md) があります。
さらに、追加の `git` と GitHub の関連リンクを [ここ](ja/newbs_learn_more_resources.md) に見つけることができます。
## サポートを追加したいキーボードがあります
素晴らしい!プルリクエストを開いてください。私たちはコードをレビューし、マージします!
### `QMK` でブランドしたい場合はどうればいいですか?
素晴らしい!私たちはあなたを支援したいと思います!
実際、私たちにはあなたのページとキーボードに QMK ブランドを追加するための [完全なページ](https://qmk.fm/powered/) があります。これは QMK を公式にサポートするために必要なほぼ全て(知識と画像)をカバーしています。
これについて質問がある場合は、issue を開くか、[Discord](https://discord.gg/Uq7gcHh) に進んでください。
## QMK と TMK の違いは何か?
TMK は [Jun Wako](https://github.com/tmk) によって設計され実装されました。QMK は [Jack Humbert](https://github.com/jackhumbert) の Planck 用 TMK のフォークとして始まりました。しばらくして、Jack のフォークは TMK からかなり分岐し、2015年に Jack はフォークを QMK に名前を変えることにしました。

View File

@@ -1,8 +1,8 @@
# キーマップの FAQ
<!---
original document: 376419a4f:docs/faq_keymap.md
git diff 376419a4f HEAD -- docs/faq_keymap.md | cat
original document: 0.8.62:docs/faq_keymap.md
git diff 0.8.62 HEAD -- docs/faq_keymap.md | cat
-->
このページは人々がキーマップについてしばしば持つ疑問について説明します。まだ読んだことが無い場合には、[キーマップの概要](ja/keymap.md)を最初に読むべきです。
@@ -19,9 +19,20 @@
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
![キーボードのレイアウトイメージ](https://i.imgur.com/5wsh5wM.png)
## 複雑なキーコードのカスタム名を作成する方法はありますか?
時には、読みやすくするために、一部のキーコードにカスタム名を定義すると役に立ちます。人々は、しばしば `#define` を使ってカスタム名を定義します。例えば:
```c
#define FN_CAPS LT(_FL, KC_CAPSLOCK)
#define ALT_TAB LALT(KC_TAB)
```
これにより、キーマップで `FN_CAPS``ALT_TAB` を使えるようになり、読みやすくなります。
## 一部のキーが入れ替わっているか、または動作しない
QMK には2つの機能、ブートマジックとコマンドがあり、これによりその場でキーボードの動作を変更することができます。これには Ctrl/Caps の交換、Gui の無効化、Alt/GUI の交換、Backspace/Backslash の交換、全てのキーの無効化およびその他の動作の変更が含まれますが、これらに限定されません。
QMK には2つの機能、ブートマジックとコマンドがあり、これによりその場でキーボードの動作を変更することができます。これには Ctrl/Caps の交換、Gui の無効化、Alt/Gui の交換、Backspace/Backslash の交換、全てのキーの無効化およびその他の動作の変更が含まれますが、これらに限定されません。
迅速な解決策として、キーボードを接続している時に `Space`+`Backspace` を押してみてください。これはキーボードに保存されている設定をリセットし、これらのキーを通常の操作に戻します。うまく行かない場合は、以下を見てください:

View File

@@ -0,0 +1,85 @@
# レイヤーの切り替えとトグル :id=switching-and-toggling-layers
<!---
original document: 5d5ff80:docs/feature_advanced_keycodes.md
git diff 5d5ff80 HEAD -- docs/feature_advanced_keycodes.md | cat
-->
これらの機能により、様々な方法でレイヤーをアクティブ化することができます。レイヤーは一般的に独立したレイアウトでは無いことに注意してください -- 複数のレイヤーを一度にアクティブ化することができ、レイヤーが `KC_TRNS` を使ってキーの押下を下のレイヤーに渡すことが一般的です。レイヤーの詳細については、[キーマップの概要](ja/keymap.md#keymap-and-layers)を見てください。MO()、LM()、TT() あるいは LT() を使って一時的なレイヤーの切り替えを使う場合、上のレイヤーのキーを透過にするようにしてください。さもないと意図したように動作しないかもしれません。
* `DF(layer)` - デフォルトレイヤーを切り替えます。デフォルトレイヤーは、他のレイヤーがその上に積み重なっている、常にアクティブな基本レイヤーです。デフォルトレイヤーの詳細については以下を見てください。これは QWERTY から Dvorak レイアウトに切り替えるために使うことができます。(これは一時的な切り替えであり、キーボードの電源が切れるまでしか持続しないことに注意してください。デフォルトレイヤーを永続的に変更するには、[process_record_user](ja/custom_quantum_functions.md#programming-the-behavior-of-any-keycode) 内で `set_single_persistent_default_layer` 関数を呼び出すなど、より深いカスタマイズが必要です。)
* `MO(layer)` - 一時的に*レイヤー*をアクティブにします。キーを放すとすぐに、レイヤーは非アクティブになります。
* `LM(layer, mod)` - (`MO` のように)一時的に*レイヤー*をアクティブにしますが、モディファイア *mod* がアクティブな状態です。layer 0-15 と、左モディファイアのみをサポートします: `MOD_LCTL``MOD_LSFT``MOD_LALT``MOD_LGUI` (`KC_` の代わりに `MOD_` 定数を使うことに注意してください)。これらのモディファイアは、例えば `LM(_RAISE, MOD_LCTL | MOD_LALT)` のように、ビット単位の OR を使って組み合わせることができます。
* `LT(layer, kc)` - ホールドされた時に*レイヤー*を一時的にアクティブにし、タップされた時に *kc* を送信します。layer 0-15 のみをサポートします。
* `OSL(layer)` - 次のキーが押されるまで、一時的に*レイヤー*をアクティブにします。詳細と追加機能については、[ワンショットキー](ja/one_shot_keys.md)を見てください。
* `TG(layer)` - *レイヤー*を切り替えます。非アクティブな場合はアクティブにし、逆も同様です。
* `TO(layer)` - *レイヤー*をアクティブにし、他の全てのレイヤー(デフォルトレイヤーを除く)を非アクティブにします。この関数は特別です。1つのレイヤーをアクティブなレイヤースタックに追加/削除する代わりに、現在のアクティブなレイヤーを完全に置き換え、唯一上位のレイヤーを下位のレイヤーで置き換えることができるからです。これはキーダウンで(キーが押されるとすぐに)アクティブになります。
* `TT(layer)` - レイヤーのタップ切り替え。キーを押したままにすると*レイヤー*がアクティブにされ、放すと非アクティブになります (`MO` 風)。繰り返しタップすると、レイヤーはオンあるいはオフを切り替えます (`TG` 風)。デフォルトでは5回のタップが必要ですが、`TAPPING_TOGGLE` を定義することで変更することができます -- 例えば、2回のタップだけで切り替えるには、`#define TAPPING_TOGGLE 2` を定義します。
## 注意事項
現在のところ、`LT()``MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()``KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。レイヤータップあるいはモッドタップのキーコードの一部として指定されたモディファイアは無視されます。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)を使うことができます。
さらに、モッドタップあるいはレイヤータップで少なくとも1つの右手用のモディファイアが指定された場合、指定された全てのモディファイアが右手用になるため、2つをうまく組み合わせて一致させることはできません。
# レイヤーの使用
レイヤーを切り替える時は注意してください。(キーボードを取り外さずに)そのレイヤーを非アクティブにすることができずレイヤーから移動できなくなる可能性があります。最も一般的な問題を避けるためのガイドラインを作成しました。
## 初心者
QMK を使い始めたばかりの場合は、全てを単純にしたいでしょう。レイヤーをセットアップする時は、これらのガイドラインに従ってください:
* デフォルトの "base" レイヤーとして、layer 0 をセットアップします。これは通常の入力レイヤーであり、任意のレイアウト (qwerty、dvorak、colemak など)にすることができます。通常はキーボードのキーのほとんどまたは全てが定義されているため、これを最下位のレイヤーとして設定することが重要です。そうすることで、もしそれが他のレイヤーの上 (つまりレイヤー番号が大きい)にある場合の影響を防ぎます。
* layer 0 をルートとして、レイヤーを "ツリー" レイアウトに配置します。他の複数のレイヤーから同じレイヤーに行こうとしないでください。
* 各レイヤーのキーマップでは、より高い番号のレイヤーのみを参照します。レイヤーは最大の番号(最上位)のアクティブレイヤーから処理されるため、下位レイヤーの状態を変更するのは難しくエラーが発生しやすくなります。
## 中級ユーザ
複数の基本レイヤーが必要な場合があります。例えば、QWERTY と Dvorak を切り替える場合、国ごとに異なるレイアウトを切り替える場合、あるいは異なるビデオゲームごとにレイアウトを切り替える場合などです。基本レイヤーは常に最小の番号のレイヤーである必要があります。複数の基本レイヤーがある場合、常にそれらを相互排他的に扱う必要があります。1つの基本レイヤーがオンの場合、他をオフにします。
## 上級ユーザ
レイヤーがどのように動作し、何ができるかを理解したら、より創造的になります。初心者のセクションで列挙されている規則は、幾つかの巧妙な詳細を回避するのに役立ちますが、特に超コンパクトなキーボードのユーザにとって制約になる場合があります。レイヤーの仕組みを理解することで、レイヤーをより高度な方法で使うことができます。
レイヤーは番号順に上に積み重なっています。キーの押下の動作を決定する時に、QMK は上から順にレイヤーを走査し、`KC_TRNS` に設定されていない最初のアクティブなレイヤーに到達すると停止します。結果として、現在のレイヤーよりも数値的に低いレイヤーをアクティブにし、現在のレイヤー(あるいはアクティブでターゲットレイヤーよりも高い別のレイヤー)に `KC_TRNS` 以外のものがある場合、それが送信されるキーであり、アクティブ化したばかりのレイヤー上のキーではありません。これが、ほとんどの人の "なぜレイヤーが切り替わらないのか" 問題の原因です。
場合によっては、マクロ内あるいはタップダンスルーチンの一部としてレイヤーを切り替えほうが良いかもしれません。`layer_on` はレイヤーをアクティブにし、`layer_off` はそれを非アクティブにします。もっと多くのレイヤーに関する関数は、[action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h) で見つけることができます。
# 修飾キー :id=modifier-keys
以下のようにキーコードとモディファイアを組み合わせることができます。押すと、モディファイアのキーダウンイベントが送信され、次に `kc` のキーダウンイベントが送信されます。放すと、`kc` のキーアップイベントが送信され、次にモディファイアのキーアップイベントが送信されます。
| キー | エイリアス | 説明 |
|----------|-------------------------------|----------------------------------------------------|
| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | 左 Alt を押しながら `kc`を押します。 |
| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | 右 Alt を押しながら `kc` を押します。 |
| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | 左 Shift と左 GUI を押しながら `kc` を押します。 |
| `LCA(kc)` | | 左 Control と左 Alt を押しながら `kc` を押します。 |
| `LCAG(kc)` | | 左 Control、左 Alt、左 GUI を押しながら `kc` を押します。 |
| `MEH(kc)` | | 左 Control、左 Shift、左 Alt を押しながら `kc` を押します。 |
| `HYPR(kc)` | | 左 Control、左 Shift、左 Alt、左 GUI を押しながら `kc` を押します。 |
また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。
# 過去の内容
このページには多くの機能が含まれていました。このページを構成していた多くのセクションをそれぞれのページに移動しました。これより下は全て単なるリダイレクトであるため、web上で古いリンクをたどっている人は探しているものを見つけることができます。
## モッドタップ :id=mod-tap
* [モッドタップ](ja/mod_tap.md)
## ワンショットキー :id=one-shot-keys
* [ワンショットキー](ja/one_shot_keys.md)
## タップホールド設定オプション :id=tap-hold-configuration-options
* [タップホールド設定オプション](ja/tap_hold.md)

328
docs/ja/feature_audio.md Normal file
View File

@@ -0,0 +1,328 @@
# オーディオ
<!---
original document: 5d5ff80:docs/feature_audio.md
git diff 5d5ff80 HEAD -- docs/feature_audio.md | cat
-->
キーボードは音を出すことができますPlanck、Preonic あるいは特定の PWM 対応ピンにアクセスできる AVR キーボードがある場合は、単純なスピーカーを接続してビープ音を鳴らすことができます。これらのビープ音を使ってレイヤーの変化、モディファイア、特殊キーを示したり、あるいは単にイカした8ビットの曲を鳴らすことができます。
最大2つの同時オーディオ音声がサポートされ、1つはタイマー1によってもう一つはタイマー3によって駆動されます。以下のピンは config.h の中でオーディオ出力として定義することができます:
Timer 1:
`#define B5_AUDIO`
`#define B6_AUDIO`
`#define B7_AUDIO`
Timer 3:
`#define C4_AUDIO`
`#define C5_AUDIO`
`#define C6_AUDIO`
`rules.mk``AUDIO_ENABLE = yes` を追加すると、他の設定無しで自動的に有効になる幾つかの異なるサウンドがあります:
```
STARTUP_SONG // キーボードの起動時に再生 (audio.c)
GOODBYE_SONG // RESET キーを押すと再生 (quantum.c)
AG_NORM_SONG // AG_NORM キーを押すと再生 (quantum.c)
AG_SWAP_SONG // AG_SWAP キーを押すと再生 (quantum.c)
CG_NORM_SONG // CG_NORM キーを押すと再生 (quantum.c)
CG_SWAP_SONG // CG_SWAP キーを押すと再生 (quantum.c)
MUSIC_ON_SONG // 音楽モードがアクティブになると再生 (process_music.c)
MUSIC_OFF_SONG // 音楽モードが非アクティブになると再生 (process_music.c)
CHROMATIC_SONG // 半音階音楽モードが選択された時に再生 (process_music.c)
GUITAR_SONG // ギター音楽モードが選択された時に再生 (process_music.c)
VIOLIN_SONG // バイオリン音楽モードが選択された時に再生 (process_music.c)
MAJOR_SONG // メジャー音楽モードが選択された時に再生 (process_music.c)
```
`config.h` の中で以下のような操作を行うことで、デフォルトの曲を上書きすることができます:
```c
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(STARTUP_SOUND)
#endif
```
サウンドの完全なリストは、[quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) で見つかります - このリストに自由に追加してください!利用可能な音は [quantum/audio/musical_notes.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/musical_notes.h) で見つかります。
特定の時にカスタムサウンドを再生するために、以下のように曲を定義することができます(ファイルの上部付近に):
```c
float my_song[][2] = SONG(QWERTY_SOUND);
```
以下のように曲を再生します:
```c
PLAY_SONG(my_song);
```
または、以下のようにループで再生することができます:
```c
PLAY_LOOP(my_song);
```
オーディオがキーボードに組み込まれていない時に問題が起きる事を避けるために、`#ifdef AUDIO_ENABLE` / `#endif` で全てのオーディオ機能をくるむことをお勧めします。
オーディオで利用可能なキーコードは以下の通りです:
* `AU_ON` - オーディオ機能をオン
* `AU_OFF` - オーディオ機能をオフ
* `AU_TOG` - オーディオ機能を切り替え
!> これらのキーコードは全てのオーディオ機能をオンおよびオフにします。オフにするとオーディオフィードバック、オーディオクリック、音楽モードなどが完全に無効になります。
## ARM オーディオボリューム
ARM デバイスの場合、DAC サンプル値を調整できます。キーボードがあなたやあなたの同僚にとって騒々しい場合、`config.h` 内の `DAC_SAMPLE_MAX` を使って最大量を設定することができます:
```c
#define DAC_SAMPLE_MAX 65535U
```
## 音楽モード
音楽モードは列を半音階に、行をオクターブにマップします。これは格子配列キーボードで最適に動作しますが、他のものでも動作させることができます。`0xFF` 未満の全てのキーコードはブロックされるため、音の演奏中は入力できません - 特別なキー/mod があればそれらは引き続き動作します。これを回避するには、音楽モードを有効にする前(あるいは後)で、KC_NO を使って別のレイヤーにジャンプします。
メモリの問題により、録音は実験的です - 奇妙な動作が発生した場合は、キーボードの取り外しと再接続で問題が解決するでしょう。
利用可能なキーコード:
* `MU_ON` - 音楽モードをオン
* `MU_OFF` - 音楽モードをオフ
* `MU_TOG` - 音楽モードの切り替え
* `MU_MOD` - 音楽モードの循環
* `CHROMATIC_MODE` - 半音階。行はオクターブを変更します
* `GUITAR_MODE` - 半音階、ただし行は弦を変更します (+5 階)
* `VIOLIN_MODE` - 半音階。ただし行は弦を変換します (+7 階)
* `MAJOR_MODE` - メージャースケール
音楽モードでは、以下のキーコードは動作が異なり、通過しません:
* `LCTL` - 録音を開始
* `LALT` - 録音を停止/演奏を停止
* `LGUI` - 録音を再生
* `KC_UP` - 再生をスピードアップ
* `KC_DOWN` - 再生をスローダウン
ピッチ標準 (`PITCH_STANDARD_A`) はデフォルトで 440.0f です - これを変更するには、`config.h` に以下のようなものを追加します:
#define PITCH_STANDARD_A 432.0f
音楽モードも完全に無効にすることができます。コントローラの容量が足りなくて困っている場合に役に立ちます。無効にするには、これを `config.h` に追加します:
#define NO_MUSIC_MODE
### 音楽マスク
デフォルトで、`MUSIC_MASK``keycode < 0xFF` に設定されます。これは、`0xFF` 未満のキーコードが音に変換され、何も出力しないことを意味します。`config.h` の中で以下のものを定義することで、これを変更することができます:
#define MUSIC_MASK keycode != KC_NO
これは全てのキーコードを捕捉します - これは、キーボードを再起動するまで、音楽モードで動けなくなることに注意してください!
どのキーコードを引き続き処理するかを制御する、より高度な方法については、`<keyboard>.c` の中の `music_mask_kb(keycode)` および `keymap.c` の中の `music_mask_user(keycode)` を使うことができます:
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}
false を返すものはマスクの一部では無く、常に処理されます。
### 音楽マップ
デフォルトでは、音楽モードはキーのスケールを決定するために列と行を使います。キーボードレイアウトに一致する長方形のマトリックスを使うキーボードの場合、これで十分です。しかし、(Planck Rev6 あるいは多くの分割キーボードなどのように)より複雑なマトリックスを使うキーボードの場合、非常に歪んだ感じを受けることになります。
しかしながら、音楽マップオプションにより、音楽モードのためにスケーリングを再マップすることができるため、レイアウトに一致し、より自然になります。
この機能を使うには、`#define MUSIC_MAP``config.h` ファイルに追加します。そして、`キーボードの名前.c` または `keymap.c``uint8_t music_map` を追加します。
```c
const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_4x12(
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
);
```
キーボードが使用する `LAYOUT` マクロも使用したいでしょう。これは正しいキーの位置にマップします。キーボードレイアウトの左下から開始し、右に移動してさらに上に移動します。完全なマトリックスができるまで、全てのエントリを入力します。
これを実装する方法の例として、[Planck Keyboard](https://github.com/qmk/qmk_firmware/blob/e9ace1487887c1f8b4a7e8e6d87c322988bec9ce/keyboards/planck/planck.c#L24-L29) を見ることができます。
## オーディオクリック
これは、ボタンを押すたびにクリック音を追加し、キーボードからのクリック音をシミュレートします。キーを押すたびにわずかに音が異なるため、すばやく入力しても長い単一の音のようには聞こえません。
* `CK_TOGG` - ステータスを切り替えます (有効にされた場合、音を再生します)
* `CK_ON` - オーディオクリックをオンにします (音を再生します)
* `CK_OFF` - オーディオクリックをオフにします (音を再生しません)
* `CK_RST` - 周波数をデフォルトの状態に再設定します (デフォルトの周波数で音を再生します)
* `CK_UP` - クリック音の周波数を増やします (新しい周波数で音を再生します)
* `CK_DOWN` - クリック音の周波数を減らします (新しい周波数で音を再生します)
容量を節約するためにデフォルトではこの機能は無効です。有効にするには、`config.h` に以下を追加します:
#define AUDIO_CLICKY
これらの値を定義することで、デフォルト、最小および最大周波数、ステッピングおよび組み込みのランダム性を設定することができます:
| オプション | デフォルト値 | 説明 |
|--------|---------------|-------------|
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | クリック音のデフォルト/開始音の周波数を設定します。 |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | 最小周波数を設定します (60f 未満は少しバグがあります)。 |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | 最大周波数を設定します。高すぎると同僚があなたを攻撃する可能性があります。 |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f | UP/DOWN キーコードのステップを設定します。これは掛け算の係数です。デフォルトでは、音楽のマイナーの1/3ずつ、周波数を上げ/下げします。 |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | クリックのランダム性の係数を設定します。これを `0f` に設定すると各クリックが同一になり、`1.0f` に設定するとこの音は90年代のコンピュータ画面のスクロール/タイピングの効果があります。 |
| `AUDIO_CLICKY_DELAY_DURATION` | 1 | 1がテンポの 1/16、または64分音符である整数音符の長さ (実装の詳細については、`quantum/audio/musical_notes.h` を見てください)。メインのクリック効果は、この時間だけ遅れます。これらを6-12前後の値に調整すると、うるさいスイッチの補正に役立ちます。 |
## MIDI 機能
これはまだ WIP ですが、何が起きているかを見るために、`quantum/process_keycode/process_midi.c` を調べてください。Makefile から有効にします。
## オーディオキーコード
| キー | エイリアス | 説明 |
|----------------|---------|----------------------------------|
| `AU_ON` | | オーディオモードオン |
| `AU_OFF` | | オーディオモードオフ |
| `AU_TOG` | | オーディオモードを切り替えます |
| `CLICKY_TOGGLE` | `CK_TOGG` | オーディオクリックモードを切り替えます |
| `CLICKY_UP` | `CK_UP` | クリック音の周波数を増やします |
| `CLICKY_DOWN` | `CK_DOWN` | クリック音の周波数を減らします |
| `CLICKY_RESET` | `CK_RST` | 周波数をデフォルトに再設定します |
| `MU_ON` | | 音楽モードをオンにします |
| `MU_OFF` | | 音楽モードをオフにします |
| `MU_TOG` | | 音楽モードを切り替えます |
| `MU_MOD` | | 音楽モードを循環します |
<!-- FIXME: this formatting needs work
## Audio
```c
#ifdef AUDIO_ENABLE
AU_ON,
AU_OFF,
AU_TOG,
#ifdef FAUXCLICKY_ENABLE
FC_ON,
FC_OFF,
FC_TOG,
#endif
// Music mode on/off/toggle
MU_ON,
MU_OFF,
MU_TOG,
// Music voice iterate
MUV_IN,
MUV_DE,
#endif
```
### Midi
#if !MIDI_ENABLE_STRICT || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
MI_ON, // send midi notes when music mode is enabled
MI_OFF, // don't send midi notes when music mode is enabled
#endif
MIDI_TONE_MIN,
MIDI_TONE_MAX
MI_C = MIDI_TONE_MIN,
MI_Cs,
MI_Db = MI_Cs,
MI_D,
MI_Ds,
MI_Eb = MI_Ds,
MI_E,
MI_F,
MI_Fs,
MI_Gb = MI_Fs,
MI_G,
MI_Gs,
MI_Ab = MI_Gs,
MI_A,
MI_As,
MI_Bb = MI_As,
MI_B,
MIDI_TONE_KEYCODE_OCTAVES > 1
where x = 1-5:
MI_C_x,
MI_Cs_x,
MI_Db_x = MI_Cs_x,
MI_D_x,
MI_Ds_x,
MI_Eb_x = MI_Ds_x,
MI_E_x,
MI_F_x,
MI_Fs_x,
MI_Gb_x = MI_Fs_x,
MI_G_x,
MI_Gs_x,
MI_Ab_x = MI_Gs_x,
MI_A_x,
MI_As_x,
MI_Bb_x = MI_As_x,
MI_B_x,
MI_OCT_Nx 1-2
MI_OCT_x 0-7
MIDI_OCTAVE_MIN = MI_OCT_N2,
MIDI_OCTAVE_MAX = MI_OCT_7,
MI_OCTD, // octave down
MI_OCTU, // octave up
MI_TRNS_Nx 1-6
MI_TRNS_x 0-6
MIDI_TRANSPOSE_MIN = MI_TRNS_N6,
MIDI_TRANSPOSE_MAX = MI_TRNS_6,
MI_TRNSD, // transpose down
MI_TRNSU, // transpose up
MI_VEL_x 1-10
MIDI_VELOCITY_MIN = MI_VEL_1,
MIDI_VELOCITY_MAX = MI_VEL_9,
MI_VELD, // velocity down
MI_VELU, // velocity up
MI_CHx 1-16
MIDI_CHANNEL_MIN = MI_CH1
MIDI_CHANNEL_MAX = MI_CH16,
MI_CHD, // previous channel
MI_CHU, // next channel
MI_ALLOFF, // all notes off
MI_SUS, // sustain
MI_PORT, // portamento
MI_SOST, // sostenuto
MI_SOFT, // soft pedal
MI_LEG, // legato
MI_MOD, // modulation
MI_MODSD, // decrease modulation speed
MI_MODSU, // increase modulation speed
#endif // MIDI_ADVANCED
-->

View File

@@ -0,0 +1,135 @@
# 自動シフト: なぜシフトキーが必要ですか?
<!---
original document: 5d5ff80:docs/feature_auto_shift.md
git diff 5d5ff80 HEAD -- docs/feature_auto_shift.md | cat
-->
キーをタップすると、その文字を取得します。キーをタップするが、*わずかに*長く押し続けると、シフト状態になります。ほら!シフトキーは必要ありません!
## なぜ自動シフトなのですか?
多くの人が腱鞘炎などの症状に苦しんでいます。一般的な原因は、指を繰り返し長い距離を伸ばすことです。私たちはキーボード上でシフトキーに手を伸ばすためにあまりにも頻繁に小指を伸ばします。自動シフトキーはそれを軽減しようとしています。
## どのように動作しますか?
キーをタップする時に、キーを放す前にほんの短い間押したままにします。この押したままにする時間は全ての人にとって異なる長さです。自動シフトは、定数 `AUTO_SHIFT_TIMEOUT` を定義し、これは普段の押された状態の時間の2倍に通常は設定されます。タイマーは、キーを押す時に開始され、キーを放す時に止まります。押された時間が `AUTO_SHIFT_TIMEOUT` 以上の場合に、キーのシフトバージョンが発行されます。時間が `AUTO_SHIFT_TIMEOUT` 時間よりも短い場合は、通常の状態が発行されます。
## 自動シフトには制限がありますか?
残念ながらあります。
1. キーリピートが動作しなくなります。例えば、20個の 'a' 文字が必要な場合、'a' キーを1、2秒押し続けるかもしれません。オペレーティングシステムに押されたキーの状態を発行する代わりに押された時間を計るので、自動シフトでは動作しません。
2. シフトをするつもりがない時にシフトされた文字を取得し、シフトしたい時にそうではない他の文字を取得するでしょう。これは結局は練習になります。急いでいる時は、シフトされたバージョンのために十分長くキーを押したと思うかもしれませんが、そうではありませんでした。一方、キーをタップしていると思うかもしれませんが、実際には予想よりも少し長い間押していました。
## どうやって自動シフトを有効にしますか?
キーマップフォルダの `rules.mk` に追加します:
AUTO_SHIFT_ENABLE = yes
`rules.mk` が存在しない場合、それを作成することができます。
そして自動シフトキーを有効にした新しいファームウェアをコンパイルしてインストールします!以上です!
## モディファイア
デフォルトで、1つ以上のモディファイアと一緒にキーが押されると自動シフトは無効になります。従って、本当に長い間 Ctrl+A を保持しても、Ctrl+Shift+A と同じではありません。
`config.h` に定義を追加することで、モディファイアの自動シフトを再度有効にすることができます
```c
#define AUTO_SHIFT_MODIFIERS
```
この場合、`AUTO_SHIFT_TIMEOUT` を超えて押された Ctrl+A は Ctrl+Shift+A として送信されます
## 自動シフトの設定
必要に応じて、自動シフトの挙動を変更することができる幾つかの設定があります。キーマップフォルダにある `config.h` に様々な変数を設定することで行われます。`config.h` ファイルが存在しない場合、それを作成することができます。
```c
#pragma once
#define AUTO_SHIFT_TIMEOUT 150
#define NO_AUTO_SHIFT_SPECIAL
```
### AUTO_SHIFT_TIMEOUT (単位: ミリ秒)
これは、シフトされた状態を取得するためにどれだけ長くキーを押し続けなければならないかを制御します。
明らかにこれは人によって異なります。一般的な人にとって、135 から 150 の設定がうまく機能します。ただし、少なくとも 175 の値から開始する必要があります。これはデフォルト値です。その後、ここから下げていきます。間違って検出することなくシフトされた状態を取得するのに必要な、最も短い時間を得るという考え方です。
完璧に動作するまで、いろいろな値を試してみます。多くの人は、全てが所定の値で適切に動作するものの、時々、1つあるいは2つのキーがシフト状態を発行することが分かるでしょう。これは単に習慣と、幾つかのキーを他のキーよりも少し長く押し続けることによるものです。この値を見つけたら、問題のキーを通常よりも少し早くタップするとともに、その値を設定します。
?> 自動シフトには、この値を素早く取得するのに役立つ3つの特別なキーがあります。詳細は「自動シフトのセットアップ」を見てください
### NO_AUTO_SHIFT_SPECIAL (単純にこのように定義します)
-\_, =+, [{, ]}, ;:, '", ,<, .> および /? を含む特殊キーを自動シフトしません
### NO_AUTO_SHIFT_NUMERIC (単純にこのように定義します)
0から9までの数字キーを自動シフトしません。
### NO_AUTO_SHIFT_ALPHA (単純にこのように定義します)
AからZを含むアルファベット文字を自動シフトしません。
## 自動シフトセットアップの使用
これにより、`AUTO_SHIFT_TIMEOUT` で設定している時間を一時的に増減させたり報告するために、3つのキーを定義することができます。
### セットアップ
3つのキーを一時的にキーマップにマップします:
| キー名 | 説明 |
|----------|-----------------------------------------------------|
| KC_ASDN | 自動シフトタイムアウト変数を下げる |
| KC_ASUP | 自動シフトタイムアウト変数を上げる |
| KC_ASRP | 現在の自動シフトタイムアウト値を報告する |
| KC_ASON | 自動シフト機能をオンにする |
| KC_ASOFF | 自動シフト機能をオフにする |
| KC_ASTG | 自動シフト機能の状態を切り替える |
新しいファームウェアをコンパイルしてアップロードします。
### 使い方
これらのテスト中は、完全に普段通り入力する必要があり、意図的にシフトされたキーを使わずに入力するように注意する必要があります。
1. アルファベットの複数の文を入力します。
2. 大文字に注意してください。
3. 大文字が存在しない場合は、自動シフトタイムアウト値を減らすために `KC_ASDN` にマップしたキーを押し、ステップ1に戻ります。
4. 大文字が幾つかある場合は、押す時間を短くしてこれらのキーをタップする必要があるか、あるいはタイムアウトを増やす必要があるかを決定します。
5. タイムアウトを増やすことに決めた場合は、`KC_ASUP` にマップしたキーを押し、ステップ1に戻ります。
6. 結果に満足したら、`KC_ASRP` にマップしたキーを押します。キーボードは `AUTO_SHIFT_TIMEOUT` の値を自動的に入力します。
7. 報告された値で `config.h``AUTO_SHIFT_TIMEOUT` を更新します。
8. `config.h` から `AUTO_SHIFT_SETUP` を削除します。
9. `KC_ASDN``KC_ASUP` および `KC_ASRP` のキーバインディングを削除します。
10. 新しいファームウェアをコンパイルしてアップロードします。
#### 実行例
hello world. my name is john doe. i am a computer programmer playing with
keyboards right now.
[KC_ASDN を何度か押します]
heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
KEYboArDS RiGHT NOw.
[KC_ASUP を数回押します]
hello world. my name is john Doe. i am a computer programmer playing with
keyboarDs right now.
[KC_ASRPを押します]
115
キーボードは現在の `AUTO_SHIFT_TIMEOUT` 値を表す `115` を入力しました。これで設定が完了しました!テスト中に現れる *D* キーを少し練習してください。それで完璧です。

View File

@@ -0,0 +1,253 @@
# バックライト
<!---
original document: 5d5ff80:docs/feature_backlight.md
git diff 5d5ff80 HEAD -- docs/feature_backlight.md | cat
-->
多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。
QMK は *パルス幅変調*(*Pulse Width Modulation*) すなわち PWM として知られている技術で急速にオンおよびオフを切り替えることで、これらの LED の輝度を制御できます。PWM 信号のデューティサイクルを変えることで、調光の錯覚を起こすことができます。
MCU は、GPIO ピンにはそんなに電流を供給できません。MCU から直接バックライトに給電せずに、バックライトピンは LED への電力を切り替えるトランジスタあるいは MOSFET に接続されます。
## 機能の設定
ほとんどのキーボードではバックライトをサポートしている場合にデフォルトで有効になっていますが、もし機能しない場合は `rules.mk` が以下を含んでいることを確認してください:
```makefile
BACKLIGHT_ENABLE = yes
```
## キーコード
有効にすると、以下のキーコードを使ってバックライトレベルを変更することができます。
| キー | 説明 |
|---------|------------------------------------------|
| `BL_TOGG` | バックライトをオンあるいはオフにする |
| `BL_STEP` | バックライトレベルを循環する |
| `BL_ON` | バックライトを最大輝度に設定する |
| `BL_OFF` | バックライトをオフにする |
| `BL_INC` | バックライトレベルを上げる |
| `BL_DEC` | バックライトレベルを下げる |
| `BL_BRTG` | バックライトの明滅動作を切り替える |
## バックライト関数群
| 関数 | 説明 |
|----------|-----------------------------------------------------------|
| `backlight_toggle()` | バックライトをオンあるいはオフにする |
| `backlight_enable()` | バックライトをオンにする |
| `backlight_disable()` | バックライトをオフにする |
| `backlight_step()` | バックライトレベルを循環する |
| `backlight_increase()` | バックライトレベルを上げる |
| `backlight_decrease()` | バックライトレベルを下げる |
| `backlight_level(x)` | バックライトのレベルを特定のレベルに設定する |
| `get_backlight_level()` | 現在のバックライトレベルを返す |
| `is_backlight_enabled()` | バックライトが現在オンかどうかを返す |
### バックライトの明滅動作の関数群
| 関数 | 説明 |
|----------|---------------------------------------------------|
| `breathing_toggle()` | バックライトの明滅動作をオンまたはオフにする |
| `breathing_enable()` | バックライトの明滅動作をオンにする |
| `breathing_disable()` | バックライトの明滅動作をオフにする |
## ドライバの設定
どのドライバを使うかを選択するには、以下を使って `rules.mk` を設定します:
```makefile
BACKLIGHT_DRIVER = software # 有効なドライバの値は 'pwm,software,no' です
```
各ドライバについてのヘルプは以下を見てください。
## 共通のドライバ設定
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|---------------------|-------------|--------------------------------------------------------------------------------------|
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `0` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
### バックライトオン状態
ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
## AVR ドライバ
AVR ボードでは、デフォルトのドライバは現在のところ最善のシナリオを選択するために構成を探っています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
```makefile
BACKLIGHT_DRIVER = pwm
```
### 注意事項
ハードウェア PWM は以下の表に従ってサポートされます:
| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328P |
|-------------|-------------|-------------|-------------|---------|----------|
| `B1` | | | | | Timer 1 |
| `B2` | | | | | Timer 1 |
| `B5` | Timer 1 | Timer 1 | | | |
| `B6` | Timer 1 | Timer 1 | | | |
| `B7` | Timer 1 | Timer 1 | Timer 1 | | |
| `C4` | Timer 3 | | | | |
| `C5` | Timer 3 | | Timer 1 | | |
| `C6` | Timer 3 | Timer 3 | Timer 1 | | |
| `D4` | | | | Timer 1 | |
| `D5` | | | | Timer 1 | |
他の全てのピンはソフトウェア PWM を使います。[オーディオ](ja/feature_audio.md)機能が無効あるいは1つのタイマだけを使っている場合は、ハードウェアタイマによってバックライト PWM を引き起こすことができます:
| オーディオピン | オーディオタイマ | ソフトウェア PWM タイマ |
|---------|-----------|------------------|
| `C4` | Timer 3 | Timer 1 |
| `C5` | Timer 3 | Timer 1 |
| `C6` | Timer 3 | Timer 1 |
| `B5` | Timer 1 | Timer 3 |
| `B6` | Timer 1 | Timer 3 |
| `B7` | Timer 1 | Timer 3 |
両方のタイマーがオーディオのために使われている場合、バックライト PWM はハードウェアタイマを使いませんが、代わりにマトリックススキャンの間に引き起こされます。この場合、PWM の計算は十分なタイミングの精度で呼ばれないかもしれないため、バックライトの明滅はサポートされず、バックライトもちらつくかもしれません。
### AVR 設定
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|---------------------|-------------|--------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください |
| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
| `BACKLIGHT_ON_STATE` | `1` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
### バックライトオン状態
ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
### 複数のバックライトピン
ほとんどのキーボードは、全てのバックライト LED を制御するたった1つのバックライトピンを持ちます (特にバックライトがハードウェア PWM ピンに接続されている場合)。
ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらすべてのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock の代わりに LCTRL をマップしていて、Caps Lock がオンの時に Caps Lock LED をアクティブにする代わりにバックライトの一部にする必要がある場合に便利です。
複数のバックライトピンをアクティブにするには、`config.h` に次のようなものを追加する必要があります:
```c
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
### ハードウェア PWM 実装
バックライト用にサポートされているピンを使う場合、QMK は PWM 信号を出力するように設定されたハードウェアタイマを使います。タイマーは 0 にリセットする前に `ICRx` (デフォルトでは `0xFFFF`) までカウントします。
希望の輝度が計算され、`OCRxx` レジスタ内に格納されます。カウンタがこの値まで達すると、バックライトピンは low になり、カウンタがリセットされると再び high になります。
このように `OCRxx` は基本的に LED のデューティサイクル、従って輝度を制御します。`0x0000` は完全にオフで、 `0xFFFF` は完全にオンです。
明滅動作の効果はカウンタがリセットされる(秒間あたりおよそ244回)たびに呼び出される `TIMER1_OVF_vect` の割り込みハンドラを登録することで可能になります。
このハンドラ内で、増分カウンタの値が事前に計算された輝度曲線にマップされます。明滅動作をオフにするには、割り込みを単純に禁止し、輝度を EEPROM に格納されているレベルに再設定します。
### タイマーにアシストされた PWM 実装
`BACKLIGHT_PIN` がハードウェアバックライトピンに設定されていない場合、QMK はソフトウェア割り込みを引き起こすように設定されているハードウェアタイマを使います。タイマーは 0 にリセットする前に `ICRx` (デフォルトでは `0xFFFF`) までカウントします。
0 に再設定すると、CPU は LED をオンにする OVF (オーバーフロー)割り込みを発火し、デューティサイクルを開始します。
希望の輝度が計算され、`OCRxx` レジスタ内に格納されます。カウンタがこの値に達すると、CPU は比較出力一致割り込みを発火し、LED をオフにします。
このように `OCRxx` は基本的に LED のデューティサイクル、従って輝度を制御します。 `0x0000` は完全にオフで、 `0xFFFF` は完全にオンです。
明滅の効果はハードウェア PWM 実装と同じです。
## ARM ドライバ
まだ初期段階ですが、ARM バックライトサポートは最終的に AVR と同等の機能を持つことを目指しています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
```makefile
BACKLIGHT_DRIVER = pwm
```
### 注意事項
現在のところ、ハードウェア PWM のみがサポートされ、タイマーはアシストされず、自動設定は提供されません。
?> STMF072 のバックライトサポートのテストは制限されています。人によって違うかもしれません。不明な場合は、rules.mk で `BACKLIGHT_ENABLE = no` を設定します。
### ARM 設定
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PWM_DRIVER` | `PWMD4` | 使用する PWM ドライバ。ピンから PWM タイマへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PWM_CHANNEL` | `3` | 使用する PWM チャンネル。ピンから PWM チャンネルへのマッピングについては、ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PAL_MODE` | `2` | 使用するピンの代替機能。ピンの AF マッピングについては ST データシートを見てください。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
## Software PWM Driver :id=software-pwm-driver
他のキーボードのタスクを実行中に PWM をエミュレートすることにより、追加のプラットフォーム設定なしで最大のハードウェア互換性を提供します。トレードオフは、キーボードが忙しい時にバックライトが揺れる可能性があることです。有効にするには、rules.mk に以下を追加します:
```makefile
BACKLIGHT_DRIVER = software
```
### ソフトウェア PWM 設定
バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
| 定義 | デフォルト | 説明 |
|-----------------|-------------|-------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | `B7` | LED を制御するピン。自身のキーボードを設計している場合を除き、これを変更する必要はないはずです |
| `BACKLIGHT_PINS` | *定義なし* | 実験的: 詳細は以下を見てください |
### 複数のバックライトピン
ほとんどのキーボードは、全てのバックライト LED を制御するたった1つのバックライトピンを持ちます (特にバックライトがハードウェア PWM ピンに接続されている場合)。
ソフトウェア PWM では、複数のバックライトピンを定義することができます。これらすべてのピンは PWM デューティサイクル時に同時にオンおよびオフになります。
この機能により、例えば Caps Lock LED (またはその他の制御可能な LED) の輝度を、バックライトの他の LED と同じレベルに設定することができます。Caps Lock の代わりに LCTRL をマップしていて、Caps Lock がオンの時に Caps Lock LED をアクティブにする代わりにバックライトの一部にする必要がある場合に便利です。
複数のバックライトピンをアクティブにするには、`config.h` に次のようなものを追加する必要があります:
```c
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
## カスタムドライバ
有効にするには、rules.mk に以下を追加します:
```makefile
BACKLIGHT_DRIVER = custom
```
カスタムドライバ API を実装する場合、提供されるキーボードフックは以下の通りです:
```c
void backlight_init_ports(void) {
// オプション - 起動時に実行されます
// - 通常、ここでピンを設定します
}
void backlight_set(uint8_t level) {
// オプション - レベルの変更時に実行されます
// - 通常、ここで新しい値に応答します
}
void backlight_task(void) {
// オプション - 定期的に実行されます
// - ここで長時間実行されるアクションはパフォーマンスの問題を引き起こします
}
```

View File

@@ -0,0 +1,52 @@
# Bluetooth
<!---
original document: 5d5ff80:docs/feature_bluetooth.md
git diff 5d5ff80 HEAD -- docs/feature_bluetooth.md | cat
-->
## Bluetooth の既知のサポートハードウェア
現在のところ Bluetooth のサポートは AVR ベースのチップに限られます。Bluetooth 2.1 については、QMK は RN-42 モジュールと、Bluefruit EZ-Key をサポートしますが、後者はもう生産されていません。より最近の BLE プロトコルについては、現在のところ Adafruit Bluefruit SPI Friend のみが直接サポートされています。iOS デバイスに接続するには、BLE が必要です。iOS はマウス入力をサポートしないことに注意してください。
| ボード | Bluetooth プロトコル | 接続タイプ | rules.mk | Bluetooth チップ |
|----------------------------------------------------------------|----------------------------|----------------|---------------------------|--------------|
| [Adafruit EZ-Key HID](https://www.adafruit.com/product/1535) | Bluetooth Classic | UART | `BLUETOOTH = AdafruitEZKey` | |
| Roving Networks RN-42 (Sparkfun Bluesmirf) | Bluetooth Classic | UART | `BLUETOOTH = RN42` | RN-42 |
| [Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633) | Bluetooth Low Energy | SPI | `BLUETOOTH = AdafruitBLE` | nRF51822 |
まだサポートされていませんが、可能性のあるもの:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479)。[tmk 実装がおそらく見つかります](https://github.com/tmk/tmk_keyboard/issues/514)
* RN-42 ファームウェアが書き込まれた HC-05 ボード。どちらも明らかに CSR BC417 チップを使っています。RN-42 ファームウェアを使って書き込むと、HID 機能が提供されます。
* Sparkfun Bluetooth Mate
* HM-13 ベースのボード
### Adafruit BLE SPI Friend
現在のところ QMK によってサポートされている唯一の bluetooth チップセットは、Adafruit Bluefruit SPI Friend です。Adafruit のカスタムファームウェアを実行する Nordic nRF5182 ベースのチップです。データは Hardware SPI を介した Adafruit の SDEP を使って転送されます。[Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) は Adafruit ファームウェアを搭載した Nordic BLE チップに SPI 経由で接続された AVR mcu であるため、サポートされます。SPI friend を使ってカスタムボードを構築する場合、32u4 feather が使用するピン選択を使うのが最も簡単ですが、以下の定義で config.h オプションでピンを変更することができます:
* #define AdafruitBleResetPin D4
* #define AdafruitBleCSPin B4
* #define AdafruitBleIRQPin E6
Bluefruit UART friend は SPI friend に変換することができますが、これにはMDBT40 チップへの直接の再書き込みとはんだ付けが[必要です](https://github.com/qmk/qmk_firmware/issues/2274)。
## Adafruit EZ-Key hid
これには[ハードウェアの変更](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts)が必要ですが、Makefile を使って有効にすることができます。ファームウェアは引き続き USB 経由で文字を出力するため、コンピュータ経由で充電する場合は注意してください。任意にオフにするために Bluefruit 上にスイッチを持つことは理にかなっています。
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth の Rules.mk オプション
これらのうちの1つだけを使ってください
* BLUETOOTH_ENABLE = yes (レガシーオプション)
* BLUETOOTH = RN42
* BLUETOOTH = AdafruitEZKey
* BLUETOOTH = AdafruitBLE
## Bluetooth キーコード
これは複数のキーボードの出力が選択できる場合に使われます。現在のところ、これは USB と Bluetooth の両方をサポートするキーボードで、それらの間の切り替えのみが可能です。
| 名前 | 説明 |
|----------|----------------------------------------------|
| `OUT_AUTO` | USB と Bluetooth を自動的に切り替える |
| `OUT_USB` | USB のみ |
| `OUT_BT` | Bluetooth のみ |

View File

@@ -0,0 +1,171 @@
# ブートマジック
<!---
original document: 5d5ff80:docs/feature_bootmagic.md
git diff 5d5ff80 HEAD -- docs/feature_bootmagic.md | cat
-->
再書き込みせずにキーボードの挙動を変更することができる、3つの独立した関連する機能があります。それぞれは似たような機能を持ちますが、キーボードがどのように設定されているかによって異なる方法でアクセスされます。
**ブートマジック**は初期化の間にキーボードを設定するためのシステムです。ブートマジックコマンドを起動するには、ブートマジックキーと1つ以上のコマンドキーを押し続けます。
**ブートマジックキーコード** は前に `MAGIC_` が付いており、キーボードが初期化された*後で*ブートマジックの機能にアクセスすることができます。キーコードを使うには、他のキーコードと同じようにそれらをキーマップに割り当てます。
以前は**マジック**として知られていた**コマンド**は、キーボードの異なる側面を制御することができる別の機能です。ブートマジックと一部の機能を共有しますが、コンソールにバージョン情報を出力するような、ブートマジックにはできないこともできます。詳細は、[コマンド](ja/feature_command.md)を見てください。
一部のキーボードでは、ブートマジックはデフォルトで無効になっています。その場合、`rules.mk` 内で以下のように明示的に有効にする必要があります:
```make
BOOTMAGIC_ENABLE = full
```
?> `full` の代わりに `yes` が使われていることがあるかもしれませんが、これは問題ありません。ただし、`yes` は非推奨で、理想的には `full` (あるいは`lite`) が使われるべきです。
さらに、以下を `rules.mk` ファイルに追加することで、[ブートマジックライト](#bootmagic-lite) (スケールダウンした、とても基本的なバージョンのブートマジック)を使うことができます:
```make
BOOTMAGIC_ENABLE = lite
```
## ホットキー
キーボードを接続しながら、ブートマジックキー(デフォルトはスペース)と目的のホットキーを押します。例えば、スペースと `B` を押したままにすると、ブートローダに入ります。
| ホットキー | 説明 |
|------------------|---------------------------------------------|
| エスケープ | EEPROM のブートマジック設定を無視する |
| `B` | ブートローダに入る |
| `D` | シリアルを介するデバッグ出力の切り替え |
| `X` | キーマトリックスのデバッグ出力の切り替え |
| `K` | キーボードのデバッグの切り替え |
| `M` | マウスのデバッグの切り替え |
| `L` | EE_HANDS 左右設定に、"左手"を設定 |
| `R` | EE_HANDS 左右設定に、"右手"を設定 |
| Backspace | EEPROM をクリア |
| Caps Lock | Caps Lock を左コントロールとして扱うかを切り替え |
| 左 Control | Caps Lock と左コントロールの入れ替えを切り替え |
| 左 Alt | 左 Alt と左 GUI の入れ替えを切り替え |
| 右 Alt | 右 Alt と右 GUI の入れ替えを切り替え |
| 左 GUI | GUI キーの有効・無効を切り替え (ゲームの時に便利です) |
| <code>&#96;</code> | <code>&#96;</code> とエスケープの入れ替えを切り替え |
| `\` | `\` とバックスペースの入れ替えを切り替え |
| `N` | N キーロールオーバー (NKRO) の有効・無効を切り替え |
| `0` | レイヤー 0 をデフォルトレイヤーにする |
| `1` | レイヤー 1 をデフォルトレイヤーにする |
| `2` | レイヤー 2 をデフォルトレイヤーにする |
| `3` | レイヤー 3 をデフォルトレイヤーにする |
| `4` | レイヤー 4 をデフォルトレイヤーにする |
| `5` | レイヤー 5 をデフォルトレイヤーにする |
| `6` | レイヤー 6 をデフォルトレイヤーにする |
| `7` | レイヤー 7 をデフォルトレイヤーにする |
## キーコード :id=keycodes
| キー | エイリアス | 説明 |
|----------------------------------|---------|--------------------------------------------------------------------------|
| `MAGIC_SWAP_CONTROL_CAPSLOCK` | `CL_SWAP` | Caps Lock と左コントロールの入れ替え |
| `MAGIC_UNSWAP_CONTROL_CAPSLOCK` | `CL_NORM` | Caps Lock と左コントロールの入れ替えの解除 |
| `MAGIC_CAPSLOCK_TO_CONTROL` | `CL_CTRL` | Caps Lock をコントロールとして扱う |
| `MAGIC_UNCAPSLOCK_TO_CONTROL` | `CL_CAPS` | Caps Lock をコントロールとして扱うことを止める |
| `MAGIC_SWAP_LCTL_LGUI` | `LCG_SWP` | 左コントロールと GUI の入れ替え |
| `MAGIC_UNSWAP_LCTL_LGUI` | `LCG_NRM` | 左コントロールと GUI の入れ替えを解除 |
| `MAGIC_SWAP_RCTL_RGUI` | `RCG_SWP` | 右コントロールと GUI の入れ替え |
| `MAGIC_UNSWAP_RCTL_RGUI` | `RCG_NRM` | 右コントロールと GUI の入れ替えを解除 |
| `MAGIC_SWAP_CTL_GUI` | `CG_SWAP` | 両側のコントロールと GUI の入れ替え |
| `MAGIC_UNSWAP_CTL_GUI` | `CG_NORM` | 両側のコントロールと GUI の入れ替えを解除 |
| `MAGIC_TOGGLE_CTL_GUI` | `CG_TOGG` | 両側のコントロールと GUI の入れ替えの切り替え |
| `MAGIC_SWAP_LALT_LGUI` | `LAG_SWP` | 左 Alt と GUI の入れ替え |
| `MAGIC_UNSWAP_LALT_LGUI` | `LAG_NRM` | 左 Alt と GUI の入れ替えを解除 |
| `MAGIC_SWAP_RALT_RGUI` | `RAG_SWP` | 右 Alt と GUI の入れ替え |
| `MAGIC_UNSWAP_RALT_RGUI` | `RAG_NRM` | 右 Alt と GUI の入れ替えを解除 |
| `MAGIC_SWAP_ALT_GUI` | `AG_SWAP` | 両側の Alt と GUI の入れ替え |
| `MAGIC_UNSWAP_ALT_GUI` | `AG_NORM` | 両側の Alt と GUI の入れ替えを解除 |
| `MAGIC_TOGGLE_ALT_GUI` | `AG_TOGG` | 両側の Alt と GUI の入れ替えの切り替え |
| `MAGIC_NO_GUI` | `GUI_OFF` | GUI キーを無効にする |
| `MAGIC_UNNO_GUI` | `GUI_ON` | GUI キーを有効にする |
| `MAGIC_SWAP_GRAVE_ESC` | `GE_SWAP` | <code>&#96;</code> とエスケープの入れ替え |
| `MAGIC_UNSWAP_GRAVE_ESC` | `GE_NORM` | <code>&#96;</code> とエスケープの入れ替えを解除 |
| `MAGIC_SWAP_BACKSLASH_BACKSPACE` | `BS_SWAP` | `\` とバックスペースを入れ替え |
| `MAGIC_UNSWAP_BACKSLASH_BACKSPACE` | `BS_NORM` | `\` とバックスペースの入れ替えを解除する |
| `MAGIC_HOST_NKRO` | `NK_ON` | N キーロールオーバーを有効にする |
| `MAGIC_UNHOST_NKRO` | `NK_OFF` | N キーロールオーバーを無効にする |
| `MAGIC_TOGGLE_NKRO` | `NK_TOGG` | N キーロールオーバーの有効・無効を切り替え |
| `MAGIC_EE_HANDS_LEFT` | `EH_LEFT` | 分割キーボードのマスター側を左手に設定(`EE_HANDS` 用) |
| `MAGIC_EE_HANDS_RIGHT` | `EH_RGHT` | 分割キーボードのマスター側を右手に設定(`EE_HANDS` 用) |
## 設定
ブートマジックのためのホットキーの割り当てを変更したい場合は、キーボードあるいはキーマップレベルのどちらかで、`config.h` にこれらを `#define` します。
| 定義 | デフォルト | 説明 |
|----------------------------------------|-------------|---------------------------------------------------|
| `BOOTMAGIC_KEY_SALT` | `KC_SPACE` | ブートマジックキー |
| `BOOTMAGIC_KEY_SKIP` | `KC_ESC` | EEPROM のブートマジック設定を無視する |
| `BOOTMAGIC_KEY_EEPROM_CLEAR` | `KC_BSPACE` | EEPROM 設定をクリアする |
| `BOOTMAGIC_KEY_BOOTLOADER` | `KC_B` | ブートローダに入る |
| `BOOTMAGIC_KEY_DEBUG_ENABLE` | `KC_D` | シリアルを介するデバッグ出力の切り替え |
| `BOOTMAGIC_KEY_DEBUG_MATRIX` | `KC_X` | マトリックスのデバッグを切り替え |
| `BOOTMAGIC_KEY_DEBUG_KEYBOARD` | `KC_K` | キーボードのデバッグの切り替え |
| `BOOTMAGIC_KEY_DEBUG_MOUSE` | `KC_M` | マウスのデバッグの切り替え |
| `BOOTMAGIC_KEY_EE_HANDS_LEFT` | `KC_L` | EE_HANDS 左右設定に、"左手"を設定 |
| `BOOTMAGIC_KEY_EE_HANDS_RIGHT` | `KC_R` | EE_HANDS 左右設定に、"右手"を設定 |
| `BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK` | `KC_LCTRL` | 左コントロールと Caps Lock の入れ替え |
| `BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL` | `KC_CAPSLOCK` | Caps Lock を左コントロールとして扱うかを切り替え |
| `BOOTMAGIC_KEY_SWAP_LALT_LGUI` | `KC_LALT` | 左 Alt と左 GUI の入れ替えを切り替え (macOS 用) |
| `BOOTMAGIC_KEY_SWAP_RALT_RGUI` | `KC_RALT` | 右 Alt と右 GUI の入れ替えを切り替え (macOS 用) |
| `BOOTMAGIC_KEY_NO_GUI` | `KC_LGUI` | GUI キーの有効・無効を切り替え (ゲームの時に便利です) |
| `BOOTMAGIC_KEY_SWAP_GRAVE_ESC` | `KC_GRAVE` | <code>&#96;</code> とエスケープの入れ替えを切り替え |
| `BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE` | `KC_BSLASH` | `\` とバックスペースの入れ替えを切り替え |
| `BOOTMAGIC_HOST_NKRO` | `KC_N` | N キーロールオーバー (NKRO) の有効・無効を切り替え |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_0` | `KC_0` | レイヤー 0 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_1` | `KC_1` | レイヤー 1 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_2` | `KC_2` | レイヤー 2 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_3` | `KC_3` | レイヤー 3 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_4` | `KC_4` | レイヤー 4 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_5` | `KC_5` | レイヤー 5 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_6` | `KC_6` | レイヤー 6 をデフォルトレイヤーにする |
| `BOOTMAGIC_KEY_DEFAULT_LAYER_7` | `KC_7` | レイヤー 7 をデフォルトレイヤーにする |
# ブートマジックライト :id=bootmagic-lite
本格的なブートマジック機能の他に、ブートローダへのジャンプのみを処理するブートマジックライトがあります。これは、物理的なリセットボタンが無くブートローダにジャンプする方法が必要だが、ブートマジックが引き起こす問題を扱いたくないキーボードに適しています。
ブートマジックのこのバージョンを有効にするには、以下を使って `rules.mk` で有効にする必要があります:
```make
BOOTMAGIC_ENABLE = lite
```
さらに、どのキーを使うかを指定したほうが良いかもしれません。これは普通ではないマトリックスを持つキーボードで特に便利です。そのためには、使いたいキーの行と列を指定する必要があります。`config.h` ファイルにこれらのエントリを追加します:
```c
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
```
デフォルトでは、これらは 0 と 0 に設定されます。これは通常はほとんどのキーボードで "ESC" キーです。
ブートローダを起動するには、キーボードを接続する時にこのキーを押し続けます。たった1つのキーです。
!> ブートマジックライトを使用すると、EEPROM を**常にリセットします**。つまり保存された全ての設定は失われます。
## 高度なブートマジックライト
`bootmagic_lite` 関数は必要に応じてコード内で置き換えることができるように、弱く定義されています。これの良い例は Zeal60 キーボードで、追加の処理が必要です。
関数を置き換えるには、以下のようなものをコードに追加するだけです:
```c
void bootmagic_lite(void) {
matrix_scan();
wait_ms(DEBOUNCE * 2);
matrix_scan();
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
// ブートローダにジャンプする。
bootloader_jump();
}
}
```
追加の機能をここに追加することができます。例えば、eeprom のリセットやブートマジックを起動するために押す必要がある追加のキーです。`bootmagic_lite` はファームウェア内で大部分の機能が初期化される前に呼ばれることに注意してください。

108
docs/ja/feature_combo.md Normal file
View File

@@ -0,0 +1,108 @@
# コンボ
<!---
original document: 0.8.94:docs/feature_combo.md
git diff 0.8.94 HEAD -- docs/feature_combo.md | cat
-->
コンボ機能は、同時押し方式でのカスタムアクション追加機能です。同時に複数のキーを押して、異なる効果を生み出すことができます。例えば、タッピング時間内で `A``S` を押すと、代わりに `ESC` が押されます。もっと複雑なタスクを実行させることもできます。
この機能を有効にするには、`rules.mk``COMBO_ENABLE = yes` を追加する必要があります。
さらに、使用するコンボの数を `config.h` の中で、`#define COMBO_COUNT 1` (1を使用するコンボの数で置き換えます)と書いて、指定する必要があります。
<!-- At this time, this is necessary -->
また、デフォルトでは、コンボのタッピング時間は `TAPPING_TERM` と同じ値に設定されます (ほとんどのキーボードではデフォルトで 200)。ただし、`config.h` で定義することにより異なる値を指定することができます。例えば: `#define COMBO_TERM 300` はコンボのためのタイムアウト時間を 300ms に設定します。
次に、`keymap.c` ファイルに、`COMBO_END` で終了するキーのシーケンス、およびキーの組み合わせを列挙する構造体、その結果のアクションを定義する必要があります。
```c
const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {COMBO(test_combo, KC_ESC)};
```
これは、A と B のキーを押した場合に、"Escape" を送信します。
!> このメソッドは[基本的なキーコード](ja/keycodes_basic.md)のみをサポートします。詳細な制御については例を見てください。
## 例
リストを追加したい場合は、以下のようなものを使います:
```c
enum combos {
AB_ESC,
JK_TAB
};
const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END};
const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {
[AB_ESC] = COMBO(ab_combo, KC_ESC),
[JK_TAB] = COMBO(jk_combo, KC_TAB)
};
```
より複雑な実装として、カスタム処理を追加するために `process_combo_event` 関数を使うことができます。
```c
enum combo_events {
ZC_COPY,
XV_PASTE
};
const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
combo_t key_combos[COMBO_COUNT] = {
[ZC_COPY] = COMBO_ACTION(copy_combo),
[XV_PASTE] = COMBO_ACTION(paste_combo),
};
void process_combo_event(uint8_t combo_index, bool pressed) {
switch(combo_index) {
case ZC_COPY:
if (pressed) {
tap_code16(LCTL(KC_C));
}
break;
case XV_PASTE:
if (pressed) {
tap_code16(LCTL(KC_V));
}
break;
}
}
```
これは、Z と C を押すと Ctrl+C を送信し、X と V を押すと Ctrl+V を送信します。これを変更して、レイヤーの変更、サウンドの再生、設定の変更などを行うこともできます。
## 追加の設定
長いコンボあるいはさらに長いコンボを使っている場合、構造体があなたのしていることに対応するのに十分な大きさで無いかもしれないため、問題が発生するかもしれません。
この場合、`config.h` ファイルに `#define EXTRA_LONG_COMBOS` または `#define EXTRA_EXTRA_LONG_COMBOS` のどちらかを追加することができます。
`COMBO_ALLOW_ACTION_KEYS` を定義することでアクションキーを有効にすることもできます。
## キーコード
その場でコンボ機能を有効、無効および切り替えすることができます。ゲームなどで、一時的にそれらを無効にする必要がある場合に便利です。
| キーコード | 説明 |
|----------|---------------------------------|
| `CMB_ON` | コンボ機能をオンにします |
| `CMB_OFF` | コンボ機能をオフにします |
| `CMB_TOG` | コンボ機能のオンとオフを切り替えます |
## ユーザコールバック
キーコードに加えて、状態を設定または状態をチェックするために使うことができる幾つかの関数があります:
| 関数 | 説明 |
|-----------|--------------------------------------------------------------------|
| `combo_enable()` | コンボ機能を有効にします |
| `combo_disable()` | コンボ機能を無効にし、コンボバッファをクリアします |
| `combo_toggle()` | コンボ機能の状態を切り替えます |
| `is_combo_enabled()` | コンボ機能の状態(true か false)を返します |

View File

@@ -0,0 +1,56 @@
# コマンド
<!---
original document: 0.8.94:docs/feature_command.md
git diff 0.8.94 HEAD -- docs/feature_command.md | cat
-->
コマンド(旧称:マジック)は、ファームウェアを書き込んだり、[ブートマジック](ja/feature_bootmagic.md)を使うためにプラグを抜いたりすることなくキーボードの挙動を変更する方法です。この機能と[ブートマジックキーコード](feature_bootmagic.md#keycodes)には多くの重複があります。可能な限り、コマンドでは無くブートマジックキーコードの機能を使うことをお勧めします。
一部のキーボードではコマンドがデフォルトで無効になっています。その場合、`rules.mk` 内で明示的に有効にする必要があります:
```make
COMMAND_ENABLE = yes
```
## 使用法
コマンドを使うには、`IS_COMMAND()` マクロで定義されたキーの組み合わせを押し続けます。デフォルトでは、これは「左Shift + 右Shift」です。次に、目的のコマンドに対応するキーを押します。例えば、現在の QMK バージョンを QMK Toolbox コンソールに出力するには、「左Shift + 右Shift + `V`」を押します。
## 設定
コマンドのためのキーの割り当てを変更したい場合は、キーボードあるいはキーマップレベルのどちらかで、`config.h` にこれらを `#define` します。ここで割り当てる全てのキーコードは `KC_` 接頭辞を省略する必要があります。
| 定義 | デフォルト | 説明 |
|------------------------------------|--------------------------------|------------------------------------------------|
| `IS_COMMAND()` | `(get_mods() == MOD_MASK_SHIFT)` | コマンドをアクティブにするキーの組み合わせ |
| `MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` | `true` | ファンクション行を使ってデフォルトレイヤーを設定 |
| `MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` | `true` | 数字キーでデフォルトレイヤーを設定 |
| `MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM` | `false` | `MAGIC_KEY_LAYER0..9` を使ってデフォルトレイヤーを設定 |
| `MAGIC_KEY_DEBUG` | `D` | シリアルを介するデバッグの切り替え |
| `MAGIC_KEY_DEBUG_MATRIX` | `X` | キーマトリックスのデバッグの切り替え |
| `MAGIC_KEY_DEBUG_KBD` | `K` | キーボードのデバッグの切り替え |
| `MAGIC_KEY_DEBUG_MOUSE` | `M` | マウスのデバッグの切り替え |
| `MAGIC_KEY_CONSOLE` | `C` | コマンドコンソールを有効にする |
| `MAGIC_KEY_VERSION` | `V` | コンソールに実行中の QMK バージョンを出力 |
| `MAGIC_KEY_STATUS` | `S` | コンソールに現在のキーボードの状態を出力 |
| `MAGIC_KEY_HELP` | `H` | コンソールにコマンドのヘルプを出力 |
| `MAGIC_KEY_HELP_ALT` | `SLASH` | コンソールにコマンドのヘルプを出力 (代替) |
| `MAGIC_KEY_LAYER0` | `0` | レイヤー 0 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER0_ALT` | `GRAVE` | レイヤー 0 をデフォルトレイヤーにする (代替) |
| `MAGIC_KEY_LAYER1` | `1` | レイヤー 1 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER2` | `2` | レイヤー 2 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER3` | `3` | レイヤー 3 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER4` | `4` | レイヤー 4 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER5` | `5` | レイヤー 5 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER6` | `6` | レイヤー 6 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER7` | `7` | レイヤー 7 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER8` | `8` | レイヤー 8 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER9` | `9` | レイヤー 9 をデフォルトレイヤーにする |
| `MAGIC_KEY_BOOTLOADER` | `B` | ブートローダにジャンプする |
| `MAGIC_KEY_BOOTLOADER_ALT` | `ESC` | ブートローダにジャンプする (代替) |
| `MAGIC_KEY_LOCK` | `CAPS` | 何も入力できないようにキーボードをロック |
| `MAGIC_KEY_EEPROM` | `E` | 保存された EEPROM 設定をコンソールに出力 |
| `MAGIC_KEY_EEPROM_CLEAR` | `BSPACE` | EEPROM をクリア |
| `MAGIC_KEY_NKRO` | `N` | N キーロールオーバー (NKRO) の有効・無効を切り替え |
| `MAGIC_KEY_SLEEP_LED` | `Z` | コンピュータがスリープの時に LED を切り替え |

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